ється инкрементирования або декрементірованіе відповідних регістрів з частотою переривань від таймера TMR2. При короткочасному натисканні відбувається одноразова зміна значень регістрів. p align="justify"> Якщо жодна з кнопок В«+1В» і В«-1" не натиснута, то таймер TMR2 вимикається.
Лістинг підпрограми наведений нижче.
; ----------------------------------------- ------------------------ _TMR2 ; обробника переривання ВІД TMR2 PIR1, TMR2IF ; СКИНУТИ ПРАПОР ПЕРЕРИВАННЯ ВІД ТАЙМЕРА TMR2
BCF STATUS, Z COUNTER, W COUNT span> STATUS, Z ; СЧЕТЧИК ЗАКІНЧИВ РАХУНОК
GOTO DOWN_BUTT ; ТАК - ПЕРЕХІД До перевірки стану КНОПОК COUNTER, F ; НІ - инкрементирования ЛІЧИЛЬНИКА INT_SOURCE ; ПОВЕРНУТИСЯ ДО ПОШУКУ ДЖЕРЕЛ Переривання
_BUTT ; ПЕРЕВІРКА стан кнопок
; ----------------------------------------- --------------------------------- FLAG_R, 0 ; РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРИ ВКЛЮЧЕНИЙ START_TIME ; НІ - ПЕРЕХІД ДО УСТАНОВКИ ЧАСУ ВКЛЮЧЕННЯ p>
PORTB, 6 ; натисканні кнопки "+1" M6 ; НІ - ПЕРЕХІД ДО ПЕРЕВІРКИ натисканням кнопки" -1 " MAX_TL ; інкрементіровать РЕГІСТР MAX_TL p>
MOVF MAX_TH, W MAX_TH MAX_TH, F span> MAX_TH, F ; додалося до регістру MAX_TH ПРАПОР ПЕРЕНЕСЕННЯ
STATUS, Z MAX_TL, W TEMP_MAXL ; ЗНАЧЕННЯ В MAX_TL досягли TEMP_MAXL
BTFSS STATUS, Z M6 ; НІ - ПЕРЕХІД ДО ПЕРЕВІРКИ натисканням кнопки "-1"
BCF STATUS, Z MAX_TH, W TEMP_MAXH span> ; ЗНАЧЕННЯ В MAX_TH досягли TEMP_MAXH
BTFSS STATUS, Z M6 ; НІ - ПЕРЕХІД ДО ПЕРЕВ...