59秒计时器的设计.asm

来自「基于Proteus的51系列单片机设计与仿真」· 汇编 代码 · 共 48 行

ASM
48
字号
       ORG    00H
 START:MOV    TMOD,#10H
       MOV    TH0,#3CH
       MOV    TL0,#0B0H
       MOV    DPTR,#TABLE
       MOV    R0,#20
       SETB   TR0 
LP1:   JBC    TF0,LP2
       AJMP   LP1
LP2:   MOV    A,R4          ;加一子程序
       CJNE   A,#59,ADD1    ;当前值是否为59
       MOV    R4,#00H
       AJMP   JP1
 ADD1: ADD    A,#01H
       MOV    R4,A
   JP1:ACALL  DISP
       AJMP   START
       RET
DISP:  MOV    A,R4
       MOV    B,#10         
       DIV    AB            ;当前值除以十
       MOV    20H,A         ;商送十位
       MOV    21H,B         ;余数送个位
DISP1: MOV    A,20H         ;十位显示
       MOVC   A,@A+DPTR
       MOV    P1,A
       CLR    P2.0
       SETB   P2.1 
       LCALL  DELAY      
DISP2: MOV    A,21H         ;个位显示
       MOVC   A,@A+DPTR
       MOV    P1,A
       CLR    P2.1
       SETB   P2.0
       LCALL  DELAY
DELAY: MOV    R7,#05H
DELA:  MOV    R6,#28H
DEL:   MOV    R5,#8AH
       DJNZ   R5,$
       DJNZ   R6,DEL
       DJNZ   R7,DELA
       RET    
TABLE:DB 0c0H,0f9H,0a4H,0b0H,99H  ;共阳极0~9显示代码
      DB 92H,82H,0f8H,80H,90H
      RET
      END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?