;----------------------------------------------------------; ; Термостат DS v2; ;----------------------------------------------------------; ; от 1 до 15 датчиков температуры; ; DS18B20; ; внешний/паразитный источник питания; ;----------------------------------------------------------; ; диапазон от -55 до +125°С; ;----------------------------------------------------------; ; разрешение 0,1°С; ; в диапазоне от -9,9 до +99,9°С; ; (предельное разрешение 1°C) ; ;----------------------------------------------------------; ; 3 выхода; ; нагрев, охлаждение, датчик ERR; ;----------------------------------------------------------; ; ;светодиодный дисплей 3 места, общие аноды. ; ;Кнопки, TlS(слева), TlM(посередине), TlP(справа). ; ;Анимация: (после запуска, сброс) ;Автоматическое переключение температуры, название (1,5 с), температура (5 с). ;Любая кнопка завершает анимацию, после чего следует ручная прокрутка. ; ;Ручная навигация по меню: ;TlM/TlP Выбор элемента вверх/вниз. Удержание кнопки - быстрая прокрутка заголовков. ;TLS Заголовок текущего отображаемого значения. Удерживание кнопки (2с) - установка лимитов, либо переключение с температуры на Анимацию. ; ;Меню: ;[°C1.] title - температура 1-го датчика (переход TlM к последнему пункту) ;[Hi.1.] заголовок - верхнее предельное значение ;[Lo.1.] title - нижнее предельное значение ; . ; . ; . ;[°CF.] title - температура 15-го датчика ;[Hi.F.] заголовок - верхнее предельное значение ;Заголовок [Lo.F.] - нижнее предельное значение (переход TlP к первому элементу) ;Количество пунктов меню автоматически настраивается в соответствии с количеством искомых датчиков DS. ;Номера датчиков от 10 до 15 отображаются в шестнадцатеричном формате. ; ;Ошибка чтения температуры: (Анимация/Прокрутка) ;[Er.x.] x=номер неисправного датчика. ; ;Настройки: (диапазон от -55 до +125°C, шаг 0,1 в маргинальной полосе, шаг 1) ;Выберите необходимый лимит (TlP/TlM). ;TLS Удерживать (2 с) значение начинает мигать. ;TlP/TlM Настройка +/- (удерживание клавиши ускоряет сложение/вычитание). ;TLS Сохранить значение, вернуться к просмотру. ; ;Термостат: ;Каждый датчик имеет регулируемые пределы: [Hi.x.] верхний, [Lo.x.] нижний. ;Верхний предел минус нижний предел = гистерезис. ; ;Выход B4, обогрев: ;B4 = 1, если хотя бы одна температура =< нижнего предела ;B4 = 0, когда все температуры => верхние пределы ; ;Выход A1, охлаждение: ;A1 = 1, если хотя бы одна температура => верхний предел ;A1 = 0, когда все температуры =< нижнего предела ; ;выход A3, датчик ОШИБКИ: ;A3 = 1, если какой-то датчик неисправен ;A3 = 0, когда все (найденные) датчики работают ; ;Ищем цепи DS на шине 1-Wire: ;Выберите температуру (TlP/TlM). ;TLS+TlM Начать поиск. ;[0.dS] найденной цепи присваивается номер от 1 до 15 (0=нет датчика). ;Последовательные коды (первые 8 бит) цепей DS хранятся в EEPROM, от наименьшего к наибольшему. ;Ошибка поиска: ;[E.00] цепь DS не найдена, поиск повторяется, [E.00] мигает. ;[E.02] две или более цепи DS с одинаковым кодом, поиск повторяется, мигает [E.02]. Постепенно удаляйте цепи. ;Начинайте поиск только при удалении, добавлении, замене неисправного датчика и после первого включения нового термостата. ; ;Микропроцессор PIC 16F88 ;RB7 Катод f ;RB6 Катод а ;RB5 Анод A1 (символ слева) ;Выход RB4 Нагрев ;RB3 Вход/выход шины 1-Wire ;RB2 Катод e, TLS ;RB1 Катод d, TlM (-) ;RB0 Катод T, TlP (+) ; ;RA7 Анод A3 (символ справа) ;RA6 Анод A2 (средний знак) ;вход RA5 (не используется) ;RA4 Катод g ;датчик ОШИБКИ выхода RA3 ;RA2 Катод c ;выход RA1 Охлаждение ;RA0 Катод б ; ;Датчик питания DS18B20, внешний/паразитный, оба метода можно комбинировать ;Внешний, 3 провода, GND/1-провод/+5В ;/"""|-----3 +5В ;|DS |-----2 1-wire ;\___|-----1 GND ; ;паразитный, 2-проводной, GND/1-проводной ;/"""|-----3 GND ;|DS |-----2 1-wire ;\___|-----1 GND ;(усиленный автобус во время ПРЕОБРАЗОВАНИЯ) ; ;-------------------------------- LIST P=16F88, R=DEC, MM=ON ;директивы компилятора include ;определение имен регистров ;Настройки конфигурации ЦП: __CONFIG _CONFIG1,_CP_OFF ??& _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF ??& _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_ON & _INTRC_IO __CONFIG _CONFIG2,_IESO_OFF и _FCMEN_OFF