2
Äàííàÿ ïîäïðîãðàììà îñóùåñòâëÿåò îïðîñ ñîñòîÿíèÿ êíîïîê «+1» è «-1» ÷åðåç ïðîìåæóòêè âðåìåíè, îïðåäåëÿåìûå òàéìåðîì TMR2. Åñëè íàæàòà è óäåðæèâàåòñÿ îäíà èç êíîïîê «+1» è «-1», ïðîèñõîäèò èíêðåìåíòèðîâàíèå èëè äåêðåìåíòèðîâàíèå ñîîòâåòñòâóþùèõ ðåãèñòðîâ ñ ÷àñòîòîé ïðåðûâàíèé îò òàéìåðà TMR2. Ïðè êðàòêîâðåìåííîì íàæàòèè ïðîèñõîäèò îäíîêðàòíîå èçìåíåíèå çíà÷åíèé ðåãèñòðîâ.
Åñëè íè îäíà èç êíîïîê «+1» è «-1» íå íàæàòà, òî òàéìåð TMR2 âûêëþ÷àåòñÿ.
Ëèñòèíã ïîäïðîãðàììû ïðèâåäåí íèæå.
;-_TMR2 ; ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈÉ ÎÒ TMR2 PIR1, TMR2IF ; ÑÁÐÎÑÈÒÜ ÔËÀà ÏÐÅÐÛÂÀÍÈß ÎÒ ÒÀÉÌÅÐÀ TMR2
BCF STATUS, Z COUNTER, W COUNT STATUS, Z ; Ñ×ÅÒ×ÈÊ ÇÀÊÎÍ×ÈË Ñ×ÅÒ
GOTO DOWN_BUTT ; ÄÀ - ÏÅÐÅÕÎÄ Ê ÏÐÎÂÅÐÊÅ ÑÎÑÒÎßÍÈÉ ÊÍÎÏÎÊ COUNTER, F ; ÍÅÒ - ÈÍÊÐÅÌÅÍÒÈÐÎÂÀÍÈÅ Ñ×ÅÒ×ÈÊÀ INT_SOURCE ; ÂÅÐÍÓÒÜÑß Ê ÏÎÈÑÊÓ ÈÑÒÎ×ÍÈÊΠÏÐÅÐÛÂÀÍÈÉ
_BUTT ; ÏÐÎÂÅÐÊÀ ÑÎÑÒÎßÍÈÉ ÊÍÎÏÎÊ
; - FLAG_R, 0 ; ÐÅÆÈÌ ÓÑÒÀÍÎÂÊÈ ÒÅÌÏÅÐÀÒÓÐÛ ÂÊËÞ×ÅÍ START_TIME ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÓÑÒÀÍÎÂÊÅ ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß
PORTB, 6 ; ÍÀÆÀÒÀ ÊÍÎÏÊÀ «+1» M6 ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÏÐÎÂÅÐÊÅ ÍÀÆÀÒÈß ÊÍÎÏÊÈ «- 1» MAX_TL ; ÈÍÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÐÅÃÈÑÒÐ MAX_TL
MOVF MAX_TH, W MAX_TH MAX_TH, F 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 ; ÇÍÀ×ÅÍÈÅ Â MAX_TH ÄÎÑÒÈÃËÎ TEMP_MAXH
BTFSS STATUS, Z M6 ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÏÐÎÂÅÐÊÅ ÍÀÆÀÒÈß ÊÍÎÏÊÈ «- 1» STATUS, Z MAX_TH ; ÄÀ - ÎÁÍÓËÈÒÜ ÐÅÃÈÑÒÐÛ MAX_TH È MAX_TL
CLRF MAX_TL CALL_BIN_DEC PORTB, 7 ; ÍÀÆÀÒÀ ÊÍÎÏÊÀ «- 1»
GOTO STOP_TMR2 ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÎÑÒÀÍÎÂÊÅ TMR2 MAX_TL ; ÄÅÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÐÅÃÈÑÒÐ MAX_TL STATUS, C ; ÅÑËÈ ÁÛË ÇÀÅÌ MAX_TH, W ; ÄÅÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÐÅÃÈÑÒÐ MAX_TH
BCF STATUS, C
STATUS, Z
MOVF MAX_TL, F ; ÇÍÀ×ÅÍÈÅ Â MAX_TL ÄÎÑÒÈÃËÎ 0 STATUS, Z STOP_TMR2 ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÎÑÒÀÍÎÂÊÅ TMR2 STATUS, Z MAX_TH, F ; ÇÍÀ×ÅÍÈÅ Â MAX_TH ÄÎÑÒÈÃËÎ 0 STATUS, Z STOP_TMR2 ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÎÑÒÀÍÎÂÊÅ TMR2
BCF STATUS, Z TEMP_MAXL MAX_TL TEMP_MAXH MAX_TH
_BIN_DEC MAX_TL, W TEMP_TL MAX_TH, W TEMP_TH
CALL BIN_DEC ; ÂÛÇΠÏÎÄÏÐÎÃÐÀÌÌÛ ÄÂÎÈ×ÍÎ-ÄÅÑßÒÈ×ÍÎÉ ÊÎÐÐÅÊÖÈÈ_TMR2 T2CON, TMR2ON; ÎÑÒÀÍÎÂÊÀ ÒÀÉÌÅÐÀ TMR2 INT_SOURCE ; ÂÅÐÍÓÒÜÑß Ê ÏÎÈÑÊÓ ÈÑÒÎ×ÍÈÊΠÏÐÅÐÛÂÀÍÈÉ
;-_TIME ; ÓÑÒÀÍÎÂÊÀ ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß FLAG_R, 1 ; ÐÅÆÈÌ ÓÑÒÀÍÎÂÊÈ ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß ÂÊËÞ×ÅÍ STOP_TIME ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÓÑÒÀÍÎÂÊÅ ÂÐÅÌÅÍÈ ÂÛÊËÞ×ÅÍÈß
FLAG_R, 5 ; ÐÅÆÈÌ ÓÑÒÀÍÎÂÊÈ ÌÈÍÓÒ ÂÊËÞ×ÅÍ SET_HOUR ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÓÑÒÀÍÎÂÊÅ ×ÀÑÎÂ
PORTB, 6 ; ÍÀÆÀÒÀ ÊÍÎÏÊÀ «+1» M7 ; ÍÅÒ - ÏÅÐÅÕÎÄ Ê ÏÐÎÂÅÐÊÅ ÍÀÆÀÒÈß ÊÍÎÏÊÈ «- 1»
;-
; Ñ×ÅÒ×ÈÊ ÅÄÈÍÈÖ ÌÈÍÓÒ START_ML, F ; ÈÍÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÌËÀÄØÈÉ Ñ×ÅÒ×ÈÊ ÌÈÍÓÒ STATUS, Z START_ML, W ; Ñ×ÅÒ×ÈÊ ÄÎÑ×ÈÒÀË ÄÎ 10 0x0A STATUS, Z SET_REG_LCD ; ÍÅÒ - ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÓÏÐÀÂËÅÍÈß ÂÛÂÎÄÎÌ
; ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß ÍÀ ÈÍÄÈÊÀÖÈÞ START_ML ; ÄÀ - Î×ÈÑÒÈÒÜ ÌËÀÄØÈÉ Ñ×ÅÒ×ÈÊ ÌÈÍÓÒ
;-
; Ñ×ÅÒ×ÈÊ ÄÅÑßÒÊΠÌÈÍÓÒ START_MH, F ; ÈÍÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÑÒÀÐØÈÉ Ñ×ÅÒ×ÈÊ ÌÈÍÓÒ STATUS, Z START_MH, W ; Ñ×ÅÒ×ÈÊ ÄÎÑ×ÈÒÀË ÄÎ 6
XORLW 0x06 STATUS, Z
GOTO SET_REG_LCD ; ÍÅÒ - ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÓÏÐÀÂËÅÍÈß ÂÛÂÎÄÎÌ
; ÒÅÊÓÙÅÃÎ ÂÐÅÌÅÍÈ ÍÀ ÈÍÄÈÊÀÖÈÞ START_MH ; ÄÀ - Î×ÈÑÒÈÒÜ ÑÒÀÐØÈÉ Ñ×ÅÒ×ÈÊ ÌÈÍÓÒ SET_REG_LCD ; ÍÅÒ - ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÓÏÐÀÂËÅÍÈß ÂÛÂÎÄÎÌ
; ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß ÍÀ ÈÍÄÈÊÀÖÈÞ
;-
PORTB, 7 ; ÍÀÆÀÒÀ ÊÍÎÏÊÀ «- 1» STOP_TMR2_2 ; ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÎÑÒÀÍÎÂÊÈ ÒÀÉÌÅÐÀ TMR2
;-
; Ñ×ÅÒ×ÈÊ ÅÄÈÍÈÖ ÌÈÍÓÒ STATUS, C START_ML, F ; ÄÅÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÌËÀÄØÈÉ Ñ×ÅÒ×ÈÊ ÌÈÍÓÒ STATUS, C ; ÏÐÎÈÇÎØÅË ÇÀÅÌ SET_REG_LCD ; ÍÅÒ - ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÓÏÐÀÂËÅÍÈß ÂÛÂÎÄÎÌ
; ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß ÍÀ ÈÍÄÈÊÀÖÈÞ STATUS, C 0x09 ; ÄÀ - ÇÀÃÐÓÇÊÀ ÍÀ×ÀËÜÍÎÃÎ ÇÍÀ×ÅÍÈß START_ML
;-
; Ñ×ÅÒ×ÈÊ ÄÅÑßÒÊΠÌÈÍÓÒ START_MH, F ; ÄÅÊÐÅÌÅÍÒÈÐÎÂÀÒÜ ÑÒÀÐØÈÉ Ñ×ÅÒ×ÈÊ ÌÈÍÓÒ STATUS, C ; ÏÐÎÈÇÎØÅË ÇÀÅÌ SET_REG_LCD ; ÍÅÒ - ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÓÏÐÀÂËÅÍÈß ÂÛÂÎÄÎÌ
; ÂÐÅÌÅÍÈ ÂÊËÞ×ÅÍÈß ÍÀ ÈÍÄÈÊÀÖÈÞ STATUS, C 0x05 ; ÄÀ - ÇÀÏÈÑÀÒÜ ÍÀ×ÀËÜÍÎÅ ÇÍÀ×ÅÍÈÅ START_MH SET_REG_LCD ; ÍÅÒ - ÏÅÐÅÕÎÄ ÍÀ ÏÎÄÏÐÎÃÐÀÌÌÓ ÓÏÐÀÂËÅÍÈß ÂÛÂÎÄÎÌ
Ñàìîå ÷èòàåìîå:
Àëãîðèòì ïîèñêà íåèñïðàâíîñòè è ñïîñîá íàñòðîéêè è ðåãóëèðîâêè èìïóëüñíîãî èñòî÷íèêà ïèòàíèÿ
Èñòî÷íèêàìè
ïèòàíèÿ íàçûâàþò óñòðîéñòâà, ïðåäíàçíà÷åííûå äëÿ ñíàáæåíèÿ ýëåêòðîííîé
àïïàðàòóðû ýëåêòðè÷åñêîé ýíåðãèåé è ïðåäñòàâëÿþùèå ñîáîé êîìïëåêñ ïðèáîðîâ è
àïïàðàòîâ, êîòîðûå âûðàáàòûâàþò ýëåêòðè÷åñêóþ ýíåðãèþ è ïðåîáðàçóþò å¸ ê âèäó,
íåîáõîäèìîìó äëÿ íîðìàëüíîé ðàáîòû êàæäîãî óçëà ýëåêòðîííîé àïïàðàòóðû.
Â
íàñòîÿùåå âðåìÿ ñ ...