?»??»?;FUCTION:·í«ö¤UÁä½L¼Æ­È®É¡A¤C¬qÅã¥Ü¾¹Åã¥Ü¼Æ­È¦b­Ó¦ì¼Æ¡A¦Ó ; ¤U¦¸¦A«öÁä®É¡A¤W¦¸¸ê®Æ¥ª²¾¦Ü¤Q¦ì¼Æ¡A³Ì·s¸ê®ÆÅã ; ¥Ü¦b­Ó¦ì¼Æ¡A¦Ó¨C·í¦³¸ê®Æ¿é¤J®É¡A¸ê®Æ·|¥ª²¾ª½¦Ü ; ¡@¤d¦ì¼Æ¡C¦Ó¸ê®Æ½d³ò¬°0~9 ; DISP_BCD EQU 30H ;³]©wÅã¥Üªì©l¦ì§} SPPOINT EQU 50H ;³]©w°ïÅ|«ü¼Ðªì­È ORG 00H ;­«¸m¦ì§} JMP INITIAL ORG 30H INITIAL: MOV R7,#0FFH ;«Ý¹q·½Ã­©w DJNZ R7,$ ; MOV SP,#SPPOINT ;³]©w°ïÅ|«ü¼Ð¦ì§} MOV R0,#DISP_BCD ;(M30)=00H MOV @R0,#00H ; MOV R0,#DISP_BCD+1 ;(M31)=00H MOV @R0,#00H ; ;======================================================= ; NAME:DISPLAY ; FUNCTION:Åã¥Ü¼Æ­È ;======================================================= DISPLAY:MOV R0,#DISP_BCD ;­Ó¦ì¼ÆÅã¥Ü MOV A,@R0 ; ORL A,#11100000B ; ANL A,#11101111B ; MOV P1,A ; CALL DELAY ; ORL P1,#11111111B ; MOV A,@R0 ;¤Q¦ì¼ÆÅã¥Ü SWAP A ; ORL A,#11010000B ; ANL A,#11011111B ; MOV P1,A ; CALL DELAY ; ORL P1,#11111111B ; MOV R0,#DISP_BCD+1 ;¦Ê¦ì¼ÆÅã¥Ü MOV A,@R0 ; ORL A,#10110000B ; ANL A,#10111111B ; MOV P1,A ; CALL DELAY ; ORL P1,#11111111B ; MOV A,@R0 ;¤d¦ì¼ÆÅã¥Ü SWAP A ; ORL A,#01110000B ; ANL A,#01111111B ; MOV P1,A ; CALL DELAY ; ORL P1,#11111111B ; ;======================================================= ; NAME:SCAMKEY ; FUNCTION:±½´yÁä½L ;======================================================= SCANKEY:MOV P2,#0FH MOV A,P2 MOV R1,A ;±N±½´y½XŪ¤JR1 MOV P2,#F0H MOV A,P2 MOV R2,A ;±N¸ê®Æ½XŪ¤JR2 XRL A,#F0H JZ DISPLAY ;§PÂ_¸ê®Æ½X¤wŪ¤J MOV A,R1 XRL A,#0FH JZ DISPLAY ;§PÂ_±½´y½X¤wŪ¤J ;======================================================= MOV R3,#FFH ;¨Ï¥ÎR3­pºâ¦C MOV R4,#FFH ;¨Ï¥ÎR4­pºâ¦æ MOV A,R1 ;§â±½´y½XÂàºA ANL A,#0FH ;¨Ï±½´y½XÅܬ°¦æ¸¹ XRL A,#0FH ;(¦æ¸¹¥]¬A 0 1 2 3) TEST: INC R3 ; CLR C ; RRC A ; JNC TEST ; ;======================================================= MOV A,R2 ;§â¸ê®Æ½XÂàºA SWAP A ;¨Ï¸ê®Æ½XÅܬ°¦C¸¹ ANL A,#0FH ;(¦C¸¹¥]¬A 0 1 2 3) XRL A,#0FH ; SERC: INC R4 ; CLR C ; RRC A ; JNC SERC ; ;======================================================= CLR C ;²M°£¶i¦ìºX¼Ð¬°¹s MOV A,#4 ; MOV B,R4 ; MUL AB ; ADD A,R3 ;(¦C¸¹x4+¦æ¸¹=«öÁä­È) MOV DPTR,#TABLE MOVC A,@A+DPTR ;¨ú½X MOV R5,A ;Àx¦s«öÁä­È¦ÜR5 ;======================================================= ; NAME:²¾¦ì ; FUNCTION:§@²¾¦ì°Ê§@ ;======================================================= MOV R3,#00H MOV R4,#00H MOV R0,#DISP_BCD ;±N(M30)ªº°ª, MOV A,@R0 ;§C¦ì¤¸¥æ´« SWAP A ; MOV R3,A ; MOV @R0,A ; CALL DELAY_100M MOV R0,#DISP_BCD+1 ;±N(M31)ªº°ª, MOV A,@R0 ;§C¦ì¤¸¥æ´« SWAP A ; MOV R4,A ; MOV @R0,A ; CALL DELAY_100M MOV A,R3 ;±N(M30),(M31)ªº XCHD A,@R0 ;§C4¦ì¤¸¥æ´« MOV R0,#DISP_BCD ; MOV A,R4 ; XCHD A,@R0 ; R_KEY: MOV A,@R0 ANL A,#F0H ORL A,R5 MOV @R0,A JMP DISPLAY ;======================================================= ; NAME:DELAY ; FUNCTION:©µ¿ð®É¶¡ ;======================================================= DELAY_100M: ;©µ®É100MSEC°Æµ{¦¡ MOV R6,#200 DELAY_2:MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY_2 RET ;======================================================= DELAY: MOV R6,#30 ;©µ®É°Æµ{¦¡ T2: MOV R7,#98 DJNZ R7,$ DJNZ R6,T2 RET ;======================================================= ; NAME:TABLE ; FUNCTION:«öÁä­È¨ú½X ;======================================================= TABLE: DB 00 ;¨ú½X«ü¼Ðªì©l­È DB 01 DB 02 DB 03 DB 04 DB 05 DB 06 DB 07 DB 08 DB 09 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ END ;µ{¦¡µ²§ô