RETLW B'10111010' ;5
RETLW B'11111010' ;6
RETLW B'00001110' ;7
RETLW B'11111110' ;8
RETLW B'10111110' ;9
RETLW B'00000000' ;10-> ÏÓÑÒÎ.
RETLW B'00100000' ;11-> ÏÐÎ×ÅÐÊ.
RETLW B'10000000' ;12-> ÏÐÎ×ÅÐÊ.
;=================================================
; 4. ÒÀÁËÈÖÀ ÏÅÐÅÊÎÄÈÐÎÂÊÈ ÊÓÐÑÎÐÀ.
KYPCY
MOVFW KYPC ;
ADDWF PCL,1 ;
RETURN ;ÍÅÒ ÊÓÐÑÎÐÀ.
RETLW B'00000100' ;3
RETLW B'00001000' ;4
RETLW B'00010000' ;5
RETLW B'00100000' ;6
RETLW B'01000000' ;7
;===================================================
; 5. ÂÛÁÎÐ ÐÅÆÈÌÀ ÈÍÄÈÊÀÖÈÈ.
VUBOR
MOVFW PEID ;ÈÇÌÅÍßÅÌ ÐÅÆÈÌ ÈÍÄÈÊÀÖÈÈ.
GOTO INDH ;ÈÍÄÈÊÀÖÈß ×ÀÑÎÂ.
GOTO INDT ;ÒÀÉÌÅÐÀ.
GOTO INDU ;ÍÀÏÐßÆÅÍÈß.
;======================================================
; 6. ÂÛÁÎÐ ÐÀÇÐßÄÀ ÓÑÒÀÍÎÂÊÈ.
YCT
BTFSC PORTA,YC;ÅÑËÈ ÊÍÎÏÊÀ "ÐÅÆÈÌ" ÍÀÆÀÒÀ,
RETURN
MOVFW KYPC ;ÒÎ ÏÎ ÊÓÐÑÎÐÓ
ADDWF PCL,1 ;ÂÛÁÈÐÀÅÌ ÐÀÇÐßÄ ÓÑÒÀÍÎÂÊÈ.
GOTO YC0 ;ÌÈÍÓÒÛ.
GOTO YC1 ;ÄÅÑßÒÊÈ ÌÈÍÓÒ.
GOTO YCE ;ÎÁÍÓËÅÍÈÅ.
GOTO YC2 ;×ÀÑÛ.
GOTO YC3 ;ÄÅÑßÒÊÈ ×ÀÑÎÂ.
; 7. ÒÀÁËÈÖÛ ÏÅÐÅÂÎÄÀ ÄÅÑßÒÊΠ ÄÂÎÈ×ÍÎÅ ×ÈÑËÎ.
DEBIN
RETLW .0
RETLW .10
RETLW .20
RETLW .30
RETLW .40
RETLW .50
RETLW .60
RETLW .70
RETLW .80
RETLW .90
; 8. ÏÐÎÂÅÐÊÀ ÍÀÆÀÒÛÕ ÊÍÎÏÎÊ ÓÑÒÀÍÎÂÊÈ.
KHOP
BTFSS FLAG,1 ;ÅÑËÈ ÍÅÒ ÐÅÆÈÌÀ ×ÀÑÎÂ,
GOTO $+5 ;ÒÎ ÊÓÐÑÎÐ ÍÅ ÌÅÍßÅÒÑß.
BTFSS PORTA,KY;ÏÐÈ ÍÀÆÀÒÎÉ ÊÍÎÏÊÅ
CALL KYPCOP ;ÈÄÅÌ ÍÀ ÓÑÒÀÍÎÂÊÓ ÊÓÐÑÎÐÀ.
BTFSC FLAG,7 ;ÅÑËÈ ÈÄÅÒ ÓÑÒÀÍÎÂÊÀ,
GOTO VUBOR ;ÒÎ ÐÅÆÈÌ ÍÅ ÌÅÍßÅÒÑß.
GOTO VUBOR ;ÈËÈ ÈÄÅÌ ÍÀ ÂÛÁÎÐ ÐÅÆÈÌÀ ÈÍÄÈÊÀÖÈÈ.
INCF PEID,1 ;ÈÇÌÅÍÅÍÈÅ ÐÅÆÈÌÀ ÈÍÄÈÊÀÖÈÈ.
MOVLW .3 ;3 ÐÅÆÈÌÎÂ ÈÍÄÈÊÀÖÈÈ.
SUBWF PEID,0 ;ÅÑËÈ ÁÎËÜØÅ,
BTFSS STATUS,2;ÒÎ ÏÎÉÄÅÌ ÍÀ ÑÁÐÎÑ.
GOTO VUBOR ;ÍÀ ÇÀÏÈÑÜ Â ÐÅÃÈÑÒÐÛ ÈÍÄÈÊÀÖÈÈ.
CLRF PEID ;ÑÁÐÎÑ ÐÅÆÈÌÀ.
GOTO VUBOR ;ÍÀ ÂÛÁÎÐ ÐÅÆÈÌÀ ÈÍÄÈÊÀÖÈÈ.
; 9. ÓÑÒÀÍÎÂÊÀ ÊÓÐÑÎÐÀ (ÂÛÁÎÐ ÐÀÇÐßÄÀ ÓÑÒÀÍÎÂÊÈ).
KYPCOP
BSF FLAG,7 ;ÓÑÒÀÍÎÂÊÀ.
BCF FLAG,4 ;ÑÁÐÎÑ ÔËÀÃÀ ÍÅÒ ÊÓÐÑÎÐÀ.
INCF KYPC,1 ;ÏÐÈÁÀÂÈÌ ÅÄÈÍÈÖÓ Â ÊÓÐÑÎÐ.
MOVLW .6 ;ÍÅ ÁÎËÅÅ 5.
SUBWF KYPC,0 ;
SKPC ;ÅÑËÈ ÁÎËÜØÅ ÈËÈ ÐÀÂÍÎ 6,
RETURN ;
CLRF KYPC ;ÎÁÍÓËÈÌ.
BSF FLAG,4 ;ÍÅÒ ÊÓÐÑÎÐÀ Â ÏÎËÅ.
BCF FLAG,7 ;ÍÅÒ ÓÑÒÀÍÎÂÊÈ.
;=========================================
; 10. ÂÂÎÄ ÊÓÐÑÎÐÀ  ÌË. ÐÀÇÐßÄ ÐÅÃÈÑÒÐÎÂ.
KYPVO
BTFSC FLAG,4 ;ÅÑËÈ ÍÅÒ ÊÓÐÑÎÐÀ,
RETURN ;ÒÎ ÂÅÐÍÅÌÑß.
CALL KYPCY ;ÓÑÒÀÍÎÂÈÌ ÐÅÆÈÌÛ.
MOVWF KYPCI ;Â ÊÓÐÑÎÐ ÈÍÄÈÊÀÖÈÈ.
RRF KYPCI,1 ;ÇÀÏÎËÍÈÌ ÁÈÒ "Ñ".
ADDCF R1,1 ;ÏÅÐÅÍÅÑÅÌ Â ÐÅÃÈÑÒÐ ÈÍÄÈÊÀÖÈÈ.
ADDCF R2,1 ;ÏÅÐÅÍÅÑÅÌ Â ÐÅÃÈÑÒÐ ÈÍÄÈÊÀÖÈÈ.
RRF KYPCI,1 ;ÎÑÒÀËÜÍÛÅ ÐÅÃÈÑÒÐÛ
ADDCF R3,1 ;ÇÀÏÎËÍßÅÌ ÀÍÀËÎÃÈ×ÍÎ.
RRF KYPCI,1 ;
ADDCF R4,1 ;
ADDCF R5,1 ;
ADDCF R6,1 ;
ADDCF R7,1 ;
ADDCF R8,1 ;
;=============================================
; 11. ÂÛÂÎÄ ÍÀ ÈÍÄÈÊÀÖÈÞ.
IND
CALL KYPVO ;ÂÂÅÄÅÌ ÊÓÐÑÎÐÛ Â ÐÅÃÈÑÒÐÛ ÈÍÄÈÊÀÖÈÈ.
MOVFW ZPT ;ÇÍÀ×ÅÍÈß ÇÀÏßÒÛÕ ÏÅÐÅÏÈØÅÌ
MOVWF TZPT ;ÂÎ ÂÐÅÌÅÍÍÛÉ ÐÅÃÈÑÒÐ.
BSF FLAG1,2 ;ÇÀÏßÒÀß ÏÅÐÅÄÀÍÀ.
BCF PORTC,DIN ;ÄÀÍÍÛÅ ÐÀÂÍÛ ÍÓËÞ.
BCF PORTC,LOAD ;ÍÀ×ÀËÎ ÏÅÐÅÄÀ×È (LOAD=0).
RRF TZPT,1 ;ÂÛÒÎËÊÍÅÌ Î×ÅÐÅÄÍÓÞ ÇÀÏßÒÓÞ.
CALL VUV0 ;
BCF FLAG1,2 ;ÇÀÏßÒÀß ÏÅÐÅÄÀÍÀ.
MOVLW R1 ;ÇÀÏÈØÅÌ ÀÄÐÅÑ ÏÅÐÂÎÃÎ ÐÅÃÈÑÒÐÀ ÈÍÄÈÊÀÖÈÈ.
MOVWF FSR ;
MOVFW INDF ;ÇÍÀ×ÅÍÈÅ ÏÅÐÂÎÃÎ ÐÅÃÈÑÒÐÀ
MOVWF TEMP ;ÏÅÐÅÏÈØÅÌ ÂÎ ÂÐÅÌÅÍÍÛÉ.
CALL VUVOD ;ÍÀ ÂÛÂÎÄ.
POVT
INCF FSR,1 ;ÓÂÅËÈ×ÈÌ ÀÄÐÅÑ ÐÅÃÈÑÒÐÀ ÈÍÄÈÊÀÖÈÈ.
MOVFW INDF ;ÏÅÐÅÏÈØÅÌ ÅÃÎ ÇÍÀ×ÅÍÈÅ
MOVWF TEMP ;ÂÎ ÂÐÅÌÅÍÍÛÉ.
INCF COUZ,1 ;ÏÎÄÑ×ÈÒÀÅÌ ×ÈÑËÎ
MOVLW .7 ;ÏÅÐÅÄÀÂÀÅÌÛÕ
SUBWF COUZ,0 ;ÇÀÏßÒÛÕ.
BTFSC STATUS,2;
CLRF COUZ ;ÎÁÍÓËÈÌ Ñ×ÅÒ×ÈÊ.
BTFSS STATUS,2;
GOTO POVT ;ÏÎÂÒÎÐÈÌ ÂÛÂÎÄ.
BSF PORTC,LOAD ;ÊÎÍÅÖ ÏÅÐÅÄÀ×È.
CUNX
BSF PORTC,DCLK ;ÑÈÍÕÐÎÒÌÏÓËÜÑ = 1.
CALL PAUS ;ÏÀÓÇÀ.
BCF PORTC,DCLK ;ÑÈÍÕÐÎÈÌÏÓËÜÑ = 0.
RETURN ;ÂÎÇÂÐÀÒ.
PAUS
MOVLW .5 ;ÌÎÆÍÎ ÏÎÄÁÈÐÀÒÜ ÇÍÀ×ÅÍÈÅ ÏÀÓÇÛ.
ADDLW -1 ;ÏÀÓÇÀ = ×ÈÑËÎ Õ 4 ÌÊÑ.
GOTO $-2 ;ÏÎÂÒÎÐÈÌ.
RETURN ;ÂÅÐÍÅÌÑß.
VUVOD
RRF TEMP,1 ;ÑÄÂÈÍÅÌ ÂÏÐÀÂÎ.
VUV0
BTFSS STATUS,0;ÏÎ ÍÓËÅÂÎÌÓ ÐÀÇÐßÄÓ
BCF PORTC,DIN ;ÓÑÒÀÍÀÂËÈÂÀÅÌ ÄÀÍÍÛÅ
BTFSC STATUS,0;Â 0 ÈËÈ 1.
BSF PORTC,DIN ;
CALL CUNX ;ÑÈÍÕÐÎÍÈÇÈÐÓÅÌ ÄÀÍÍÛÅ.
BTFSC FLAG1,2 ;ÅÑËÈ ÇÀÏßÒÀß ÏÅÐÅÄÀÍÀ,
INCF COU,1 ;ÏÎÄÑ×ÈÒÀÅÌ ×ÈÑËÎ ÁÈÒ.
MOVLW .8 ;
SUBWF COU,0 ;
BTFSS STATUS,2;ÅÑËÈ ÍÅ ÂÑÅ ÁÈÒÛ ÏÅÐÅÄÀÍÛ,
GOTO VUVOD ;ÏÎÂÒÎÐÈÌ ÂÛÂÎÄ.
CLRF COU ;ÎÁÍÓËÈÌ Ñ×ÅÒ×ÈÊ.
; 12. ÑÎÕÐÀÍÅÍÈÅ È ÂÎÑÑÒÀÍÎÂËÅÍÈÅ ÇÍÀ×ÅÍÈÉ ÐÅÃÈÑÒÐΠÏÐÈ ÏÐÅÐÛÂÀÍÈÈ.
PRER
MOVWF WTEMP ;ÑÎÕÐÀÍÅÍÈÅ ÇÍÀ×ÅÍÈÉ ÐÅÃÈÑÒÐΠW,
MOVFW STATUS ;STATUS,
MOVWF STEMP ;
MOVFW FSR ;FSR.
MOVWF FTEMP ;
BSF FLAG1,1 ;1 ÑÅÊ ÖÈÊËÀ.
CALL S1 ;ÏÎÄÑ×ÈÒÀÅÌ ÂÐÅÌß.
BTFSC FLAG,2 ;
CALL TAIM ;
REPER ;ÂÎÑÑÒÀÍÎÂËÅÍÈÅ ÑÎÕÐÀÍÅÍÍÛÕ ÇÍÀ×ÅÍÈÉ.
MOVFW STEMP ;ÂÎÑÑÒÀÍÎÂËÅÍÈÅ ÐÅÃÈÑÒÐÎÂ:
MOVWF STATUS ;STATUS,
MOVFW FTEMP ;
MOVWF FSR ;FSR,
MOVFW WTEMP ;W.
BCF INTCON,2;ÑÁÐÀÑÛÂÀÅÌ ÔËÀÃ ÏÐÅÐÛÂÀÍÈß ÎÒ TMR0.
RETFIE ;ÂÎÇÂÐÀÒ ÈÇ ÏÐÅÐÛÂÀÍÈß.
; 13. ÏÎÄÑ×ÅÒ ÂÐÅÌÅÍÈ.
S1
BTFSC FLAG1,5 ;
GOTO $+8 ;
BTFSS FLAG1,4 ;
GOTO $+6 ;
BTFSC PORTC,0 ;ÑÌÅÍÀ ÂÊËÞ×ÅÍÈß ÇÓÌÌÅÐÀ.
GOTO $+3 ;
BSF PORTC,0 ;ÂÊËÞ×ÈÌ ÑÈÃÍÀË.
GOTO $+2 ;
BCF PORTC,0 ;
MOVLW .9 ;ÅÑËÈ ÓÆÅ 9 ÑÅÊÓÍÄ,
SUBWF CL,0 ;
BC SH ;ÈÄÅÌ ÍÀ ÑÐÀÂÍÅÍÈÅ ÄÅÑßÒÊÎÂ ÑÅÊÓÍÄ.
INCF CL,1 ;ÈÍÀ×Å ÏÐÈÁÀÂÈÌ ÅÄÈÍÈÖÓ.
SH
CLRF CL ;ÎÁÍÓËÈÌ ÑÅÊÓÍÄÛ.
MOVFW CH ;ÅÑËÈ ÄÅÑßÒÊÈ ÑÅÊÓÍÄ
ADDLW -5H ;ÐÀÂÍÛ 5,
BZ MIL ;ÈÄÅÌ ÑÐÀÂÍÈÂÀÒÜ ÌÈÍÓÒÛ.
INCF CH,1 ;ÈÍÀ×Å ÓÂÅËÈ×ÈÌ ÄÅÑßÒÊÈ ÑÅÊÓÍÄ.
MIL
CLRF CH ;ÎÁÍÓËÈÌ ÄÅÑßÒÊÈ ÑÅÊÓÍÄ.
MOVFW ML ;ÅÑËÈ ÅÄÈÍÈÖÛ ÌÈÍÓÒ
ADDLW -9H ;ÐÀÂÍÛ 9,
BZ MIH ;ÈÄÅÌ ÑÐÀÂÍÈÂÀÒÜ ÄÅÑßÒÊÈ.
Ñòðàíèöû: 1, 2, 3, 4, 5, 6