Counter EQU 59H ;¼ÆÊýÆ÷£¬ÏÔʾ³ÌÐòͨ¹ýËüµÃÖªÏÖÕýÏÔʾÄĸöÊýÂë¹Ü FIRST EQU P2.7 ;µÚһλÊýÂë¹ÜµÄλ¿ØÖÆ SECOND EQU P2.6 ;µÚ¶þλÊýÂë¹ÜµÄλ¿ØÖÆ DISPBUFF EQU 5AH ;ÏÔʾ»º³åÇøΪ5AHºÍ5BH ORG 0000H AJMP START ORG 000BH ;¶¨Ê±Æ÷T0µÄÈë¿Ú AJMP DISP ;ÏÔʾ³ÌÐò ORG 30H START: MOV SP,#5FH ;ÉèÖöÑÕ» MOV P1,#0FFH MOV P0,#0FFH MOV P2,#0FFH ;³õʼ»¯£¬ËùÏÔʾÆ÷£¬LEDÃð MOV TMOD,#00000001B ;¶¨Ê±Æ÷T0¹¤×÷ÓÚģʽ1£¨16λ¶¨Ê±/¼ÆÊýģʽ£© MOV TH0,#HIGH(65536-2000) MOV TL0,#LOW(65536-2000) SETB TR0 SETB EA SETB ET0 MOV Counter,#0 ;¼ÆÊýÆ÷³õʼ»¯ MOV DISPBUFF,#0 ;µÚһλʼÖÕÏÔʾ0 MOV A,#0 LOOP: MOV DISPBUFF+1,A ;µÚ¶þλÂÖÁ÷ÏÔʾ0-9 INC A LCALL DELAY CJNE A,#10,LOOP MOV A,#0 AJMP LOOP ;Ö÷³ÌÐòµ½´Ë½áÊø DISP: PUSH ACC ;ACCÈëÕ» PUSH PSW ;PSWÈëÕ» MOV TH0,#HIGH(65536-2000) MOV TL0,#LOW(65536-2000) SETB FIRST SETB SECOND ;¹ØÏÔʾ MOV A,#DISPBUFF ;ÏÔʾ»º³åÇøÊ×µØÖ·» ADD A,Counter MOV R0,A MOV A,@R0 ;¸ù¾Ý¼ÆÊýÆ÷µÄֵȡÏàÓ¦µÄÏÔʾ»º³åÇøµÄÖµ MOV DPTR,#DISPTAB ;×ÖÐαíÊ×µØÖ· MOVC A,@A+DPTR ;È¡×ÖÐÎÂë MOV P0,A ;½«×ÖÐÎÂëËÍP0루¶Î¿Ú£© MOV A,Counter ;È¡¼ÆÊýÆ÷µÄÖµ JZ DISPFIRST ;Èç¹ûÊÇ0ÔòÏÔʾµÚһλ CLR SECOND ;·ñÔòÏÔʾµÚ¶þλ AJMP DISPSECOND DISPFIRST: CLR FIRST ;ÏÔʾµÚһλ DISPSECOND: INC Counter ;¼ÆÊýÆ÷¼Ó1 MOV A,Counter DEC A ;Èç¹û¼ÆÊýÆ÷¼Æµ½2Íû£¬ÔòÈÃËü»Ø0 DEC A JZ RSTCOUNT AJMP DISPNEXT RSTCOUNT: MOV Counter,#0 ;¼ÆÊýÆ÷µÄÖµÖ»ÄÜÊÇ0»ò1 DISPNEXT: POP PSW POP ACC RETI DELAY: ;ÑÓʱ130ºÁÃë PUSH PSW SETB RS0 MOV R7,#255 D1: MOV R6,#255 D2: NOP NOP NOP NOP DJNZ R6,D2 DJNZ R7,D1 POP PSW RET DISPTAB:DB 28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H END