⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tpp.asm

📁 一个简单的单片机电子钟程序
💻 ASM
字号:
TICK   EQU   50
T20MS  EQU   65536-10000
C20MS  EQU   7BH

       ORG 0000H
       LJMP START
       ORG 000BH
       LJMP INTT0
START: MOV   DPTR,#8003H
       MOV   A,#81H
       MOVX  @DPTR,A
       MOV  R0,#70H
       MOV  R7,#20H
INIT:  MOV  @R0,#00H
       INC  R0
       DJNZ R7,INIT
     
       MOV   TMOD,#01H
       MOV   TH0,#0D8H
       MOV   TL0,#0F0H
       MOV   IE,#10000010B
       SETB  TR0
       MOV   C20MS,#TICK

MLOOP:  
          LCALL SCAN
          LCALL KS1
          JZ  MLOOP
          MOV R1,#76H
          LCALL LK2 
          CJNE A ,#0DH,MLOOP
          CLR  TR0

RRLOOP:    LCALL KEYPLAY
           LCALL KS1
           JZ    RRLOOP
           LCALL LK2
           CJNE A ,#0DH,LOOP1
           SETB  TR0
           LCALL SCAN1
           LJMP  MLOOP
LOOP1:     LJMP  RRLOOP
SCAN1: 
      MOV  A, 71H
      MOV  B,#10
      MUL   AB
      ADD A,70H
      MOV  78H,A
     
      MOV  A, 73H
      MOV  B,#10
      MUL   AB
      ADD A,72H
      MOV 79H,A
      
      MOV  A, 75H
      MOV  B,#10
      MUL   AB
      ADD A,74H
      MOV 7AH,A
      RET
SCAN: MOV   A,78H
      MOV   B,#0AH
      DIV   AB
      MOV   71H,A
      MOV   70H,B
      MOV   A,79H
      MOV   B,#0AH
      DIV   AB
      MOV   73H,A
      MOV   72H,B
      MOV   A,7AH
      MOV   B,#0AH
      DIV   AB
      MOV   75H,A
      MOV   74H,B
KEYPLAY:
DIR1:  MOV R0,#70H
       MOV R3,#01H
       MOV A,R3
  DI1: MOV DPTR,#8000H
       MOVX  @DPTR,A
       MOV  A,@R0
       MOV  DPTR,#CODE1
       MOVC A,@A+DPTR
       MOV  DPTR,#8001H
       MOVX @DPTR,A
       ACALL DELAY1
       INC R0
       MOV A,R3
       JB ACC.6,DI11
       RL A
       MOV R3,A
       AJMP DI1

    DI11:JMP  SCANOUT

    CODE1:DB 3FH,06H,5BH,4FH,66H,6DH
          DB 7DH,07H,7FH,6FH,77H,7CH
          DB 39H,5EH,79H,71H,73H,3EH
          DB 31H,6EH,1CH,23H,40H,03H
          DB 18H,00H,00H,00H
  DELAY1:MOV R7,#02H
  DE1:   MOV R6,#0FFH
  DE2:   DJNZ R6,DE2
         DJNZ R7,DE1
         RET
SCANOUT:RET

INTT0: PUSH  PSW
       CLR   ET1
       MOV   TH0,#0D8H
       MOV   TL0,#0F0H
       SETB  ET1
       DEC   C20MS
       MOV   A,C20MS
       JNZ   OUTT0
       MOV   C20MS,#TICK
       INC   78H
       MOV   A,78H
       CJNE  A,#3CH,OUTT0
       MOV 78H,#00

       INC   79H
       MOV   A,79H
       CJNE  A,#3CH,OUTT0
       MOV   79H,#00

       INC   7AH
       MOV   A,7AH
       CJNE  A,#18H,OUTT0
       MOV   7AH,#00
OUTT0 :POP PSW
       RETI

KKEYBORAD:
LK2:    MOV R2,#0DFH     
        MOV R5,#4
        MOV R4,#00H
LK4:    MOV DPTR,#8000H
        MOV A,R2
        MOVX @DPTR,A
        INC DPTR
        INC DPTR
        MOVX A,@DPTR
        JB ACC.0,LONE  
        MOV A,#00H       
        AJMP LKP          
LONE:   JB ACC.1,LTWO
        MOV A,#04H
        AJMP LKP
LTWO:   JB ACC.2,LTHR
        MOV A,#08H
        AJMP LKP
LTHR:   JB ACC.3,NEXT
        MOV A,#0CH
LKP:    ADD A,R4          

        ACALL KEYIN

        PUSH ACC
LK3:    ACALL KS1         
        JNZ LK3
        POP ACC
        RET
NEXT:   INC R4
        MOV A,R2
        RR A
        MOV R2,A
        DJNZ R5,LK4
KEND:   RET

KEYIN:
        MOV   DPTR,#KEYTAB
        MOVC  A,@A+DPTR
        MOV   @R1,A
        DEC  R1
        RET


KS1:    MOV DPTR,#8000H  
        MOV A,#00H
        MOVX @DPTR ,A
        INC DPTR
        INC DPTR
        MOVX A,@DPTR
        CPL A
        ANL A,#0FH     
        RET

KEYTAB: DB 00H,0FH,0EH,0DH
        DB 01H,02H,03H,0CH
        DB 04H,05H,06H,0BH
        DB 07H,08H,09H,0AH


⌨️ 快捷键说明

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