кнопка виклику таймера
; 1 - натиснута кнопка установки таймера
; 2 - необхідність оновлення в екранному буфері часу, що залишився в таймері
; 3 - відбулося натискання кнопки виклику таймера, необхідно подати короткий звуковий сигнал
; 4 - закінчилася витримка часу таймера, необхідно подати умовний звуковий сигнал
; 5 - раз на секунду сигналізує про необхідність зчитування показань DS1820
; 6 - необхідність виведення десяткового точкіEQU 0x1A
J EQU 0x1BEQU 0x1CEQU 0x1DEQU 0x1EEQU 0x1F
T7SEG0 EQU 0x20SEG1 EQU 0x21SEG2 EQU 0x22_IND EQU 0x23
TEMP_READH EQU 0x24_READL EQU 0x25EQU 0x26EQU 0x27EQU 0x28_BYTE EQU 0x29
_N EQU 0x2AEQU 0x2B_BYTE EQU 0x2CEQU 0x2DEQU 0x2E
T_ALARM EQU 0x2F_ALARM EQU 0x30
CONSTANT DATA_PIN = 7
; ****** Початкова ініціалізація контролера і програми ******* STATUS, RP0; Встановлюємо сторінку пам'яті 1TRISA; Налаштовуємо всі лінії порту А і В на висновок
CLRF TRISB
GOTO BEGIN_PROG
; ***** Точка входу в процедуру обробки переривань від таймера ************* INTCON, GIE; Забороняємо прериваніяBACKUPW; Зберігаємо вміст робочого регістра
MOVF STATUS, 0; і регістру STATUSBACKUPS
; Програмні таймериTIME0, 1TIME0, 0.81; 122STATUS, CL22TIME0TIME2, 1MOVF TIME2, 0
SUBLW.2; Встановлюємо період вимірювання температури рівним 1 сек.
BTFSC STATUS, CL26TIME2
BSF FLAGS, 5BTFSS FLAGS, 0; Коригування таймера можлива лише при натисканні кнопкіL22; виклику таймераFLAGS, 1; Якщо натиснута кнопка установки таймера
GOTO L22FLAGS, 2FLAGS, 7T_ALARM, 1
MOVF T_ALARM, 00x7D; Якщо досяг 125 градусів, скидаємо до -55 градусів
BTFSS STATUS, ZL220xC9
MOVWF T_ALARM
; Опитування стану кнопок управленіяBCF PA, 0; Прапори, показивающіеFLAGS, 1; стан кнопок.PA, 1; Вимикаємо індікаториPA, 2
BSF PA, 4PA, 0PORTA
BSF STATUS, RP0; Встановлюємо сторінку пам'яті 1TRISB, 5; Розряди порту В, підключення до кнопок налаштовуємо на вводTRISB, 6STATUS, RP0; Встановлюємо сторінку пам'яті 0PORTB, 6; Встановлюємо прапори залежно від стану кнопок
GOTO L23FLAGS, 0.255
MOVWF T_INDDECFSZ T_IND
GOTO L24FLAGS, 0FLAGS, 7SEEPROM
BCF FLAGS, 7BTFSS PORTB, 5FLAGS, 1
BSF STATUS, RP0; Встановлюємо сторінку пам'яті 1TRISB, 5; Розряди порту В, підключення до кнопок налаштовуємо на в...