MOV R5,30H ; ȡʮλ MOV R4,31H ; È¡¸öλ MOV A,R6 CLR C SUBB A,#07H
JNC LARGER ;´óÓÚ5sÌøµ½LARGER,СÓÚµÈÓÚ5s»áÌáÐÑ MOV A,R0
CJNE A,#0AH,FULL;1s CLR RING AJMP CHECK
FULL: CJNE A,#14H,CHECK ; 1s SETB RING MOV A,R6
JZ QUIT ; MOV R0,#00H
DEC R6 ; AJMP CHECK LARGER: MOV A,R0
CJNE A,#14H,CHECK ; DEC R6; MOV R0,#00H
CHECK: JNB P3.1,QUIT; ACALL DISPLAY JNB P1.0,TRUE1
JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TRUE7
ÖÐ0.5sÏòÏÂÔËÐРʱ,Ïì²¢ÏÔʾºÅÊý²¢ÇåR0,ÖØÐ¼ÆÊ± ¼ÆÊ±Íê±Ï Ò»Ãë±êÖ¾¼õ1 Èç¹û1sÏòÏÂÔËÐÐ,·ñÕßÌøµ½²é\Í£/ÏÔʾ\¼ÆÊ±Ò»ÃëR6×Ô¶¯¼õ1 Èç°´ÏÂÍ£Ö¹¼üÍ˳ö JNB P1.1,TRUE2
- 12 -
JNB P1.7,TRUE8 AJMP RECOUNT
QUIT: CLR OK ; Èç¹û°´ÏÂÁË\Í£Ö¹¼ü\ÖØÐ»ص½¿ªÊ¼ CLR RING ACALL BARK AJMP START Õý³£ÇÀ´ð´¦Àí³ÌÐò£º
TRUE1: ACALL BARK; °´¼ü·¢Éù MOV A,R2
MOV R6,A; ÇÀ´ðʱ¼äR2ËÍR6 MOV R3,#01H CLR OK; AJMP LOOP2 TRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP LOOP2 TRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP LOOP2 TRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK
- 13 -
AJMP LOOP2 TRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP LOOP2 TRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP LOOP2 TRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP LOOP2 TRUE8: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#08H CLR OK
LOOP2: AJMP DISPLAY ;SETB RING
JNB P3.1 QUIT AJMP LOOP2 ·¸¹æÇÀ´ð³ÌÐò:
ERROR: SETB RING ;
ÇÀ´ðºóÍ£Ö¹¼ÆÊ±£¬µÈ´ý·µ»Ø·¸¹æÏìÁå
- 14 -
MOV R5,#0BH
MOV R4,#0BH; ÏÔʾFFºÍ·¸¹æºÅÊý LOOP3: ACALL DISPLAY
JNB P3.1 QUIT1; µÈ´ý¡°Í£Ö¹¡±¼ü°´Ï AJMP LOOP3 QUIT1: CLR RING CLR OK AJMP START ÏÔʾ³ÌÐò:
DISPLAY:MOV DPTR,#DAT1; ²é±íÏÔʾ³ÌÐò,ÀûÓÃP0¿Ú×ö¶ÎÑ¡Âë¿ÚÊä³ö/P2µÍÈýλ
×öλѡÂëÊä³ö
MOV A,R5 MOVC A,@A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,@A+DPTR MOV P2,#02H
MOV P0,A ACALL DELAY MOV A,R3 MOVC A,@A+DPTR MOV P2,#04H
MOV P0,A ACALL DELAY RET
DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;\Ãð\Ãð\
- 15 -