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

📄 miaobiao.asm

📁 学习单片机一个简单程序和硬件的开发
💻 ASM
字号:
         ORG 0000H
        AJMP  MAIN
         ORG 000BH
        AJMP  TIMER
        ORG 0030H
  MAIN: MOV DPTR,#TABLE
        MOV SP,#50H
        MOV  TMOD, #01H
        MOV  IE,#82H
        CLR  TR0
        CALL CLEAR
  LOOP: CALL SCANKEY
        CALL DISP
        MOV A,42H
        CJNE A,#09,E3
        MOV A,41H
        CJNE A,#05,E3
        MOV A,40H
        CJNE A,#09,E3
        MOV A,3FH
        CJNE A,#09,E3
        CLR TR0
        CALL CLEAR
     E3:AJMP LOOP
         SCANKEY: PUSH A
               JB P3.0, KEYEND ;有键按下吗?
               CALL  DELAY_10MS ;延时消抖
               JNB P3.0,$ ;按键释放了吗?
               INC R7
               MOV A, R7
               CJNE A,#01,STOP;如果R1中的数为1则表示第1次按键,启动定时器。
               SETB TR0
               AJMP KEYEND
        STOP: CJNE A,#02,RESET;如果A中的数为2则表示第2次按键,关闭定时器。
               CLR TR0
               AJMP  KEYEND
        RESET:  CJNE A,#03,KEYEND
                CALL CLEAR
        KEYEND: POP A
                 RET
         DISP: CLR A
               MOV R0,#3FH
               MOV R2,#08H
               MOV R3,#04
          E1: MOV A,@R0 ;读存放秒的个位、十位、百位数据的单元的值。
               MOVC A,@A+DPTR ;根据读取数值查表得跟这个数据值对应得显示段码。
               MOV P2,#00H
               MOV P1,A
               MOV A,R2
               MOV P2,A
               MOV R6,#255
               DJNZ R6,$
               INC R0
               RR A
               MOV R2,A
               DJNZ R3,E1
                 RET
        TIMER: PUSH  A
              MOV TH0,#3CH
              MOV TL0,#0B0H
              INC 43H
              MOV A, 43H
              CJNE A,#2, END_TIME
              MOV 43H,#00H
              INC 3FH
              MOV A,3FH
              CJNE A,#10,END_TIME
              MOV 3FH,#00H
              INC 40H
              MOV A,40H
              CJNE A,#10,END_TIME
              MOV 40H,#00H
              INC 41H
              MOV A,41H
              CJNE A,#06,END_TIME
              MOV 41H,#00H
              INC 42H
    END_TIME: POP A
              RETI
    CLEAR:  MOV A,#00H
            MOV R1,#3FH
        E2: MOV @R1,A
            INC R1
            CJNE R1,#43H,E2
            MOV R7,#00H
            RET
      DELAY_10MS:MOV R5,#50
            D1: MOV R4, #100
                DJNZ R4,$
               DJNZ R5,D1
               RET
     TABLE:DB  3FH,06H,05BH,4FH,66H,6DH,7DH,07H,7FH,6FH
               END



⌨️ 快捷键说明

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