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

📄 复件 中断计数(老).asm

📁 简单档位计,可根据需要改编成计数器或其它需测速显示设备上.
💻 ASM
字号:
;-------------转速计------------------------------------
;--05-09-03   6M 1分频 机器周期1uS
;(老)输出脚位为P1.3 P1.2 P1.1 P1.0
;------------------RAM---------------------------------------------
  GEVEI       EQU   30H
  SHIVE       EQU   31H
  BAIVEI      EQU   32H
  QIANVEI     EQU   33H
  COUNT       EQU   34H
  COUNTBUF    EQU   35H
  MSINC       EQU   36H


  B_1S        BIT   00H



;------------------------------------------------------------------

      ORG    0000H
      LJMP   MAIN


      ORG    000BH
      LJMP   T0_INT



      ORG    0013H    ;INT1 COUNT PIN
      LJMP   X1INT


;;--------------------------------------------------------;

         ORG   040H

T0_INT:  MOV    TH0,#03CH        ;50MS
         MOV    TL0,#0B0H
         INC    MSINC
T0RET:   RETI

;;---------------------------------------------------------
X1INT:  INC    COUNT
        RETI
;;---------------------------------------------------------
        ;ORG   100H
MAIN:    MOV   SP,#60H
         MOV   P0M1,#0FFH
         MOV   P0M2,#0FFH

         MOV    WDRST,#1EH
         MOV    WDRST,#0E1H
         MOV    WDCON,#04H           ;看门狗时间值262ms

         MOV   30H,#00H
         MOV   31H,#00H
         MOV   32H,#00H
         MOV   33H,#00H
         MOV   34H,#00H
         MOV   35H,#00H
         MOV   36H,#00H

         CLR   B_1S

         MOV    TMOD,#01H         ;T0定时模式1
         MOV    TH0,#03CH
         MOV    TL0,#0B0H
         SETB   ET0
         SETB   EX1
         SETB   IT1              ;外部边沿触发(约2uS)
         SETB   EA
         SETB   TR0
         MOV    WDCON,#10H             ;开看门狗

M_LOOP:  MOV    WDRST,#1EH
         MOV    WDRST,#0E1H             ;喂狗

         MOV    A,MSINC
         CJNE   A,#3cH,LOOP1
         MOV    MSINC ,#00H
         SETB   B_1S
         
         

LOOP1:   MOV    A,COUNT
         CJNE   A,#0FFH,LOOP1_1
         MOV    MSINC,#00H
         AJMP   LOOP1_2
         
LOOP1_1: JNB    B_1S,LOOP2
         CLR    B_1S
         
LOOP1_2: 
         
         MOV    TH0,#03H
         MOV    TL0,#0B0H
         
         CJNE   A,COUNTBUF,LOOP3
         MOV    COUNT,#00H

LOOP2:   LCALL  DP
         AJMP   LOOP4

LOOP3:   MOV    COUNTBUF,COUNT
         MOV    COUNT,#00H


LOOP4:   LCALL  DISP
         AJMP   M_LOOP

;;--------------------------------------------------------
;------------DISPLAY子程序----------------------
;入口条件:30H,31H,32H,33H,分别对应个位,十位,百位,千位
;影响资源:30H,31H,32H,33H,A,DPTR
DISP:     MOV  A,33H           ;千位
          MOV  DPTR,#NUMTAB
          MOVC  A,@A+DPTR
          MOV  P0,A
          CLR  P1.3
          LCALL DELAY1M
          MOV  P0,#00H
          SETB P1.3

          MOV  A,32H          ;百位
          MOV  DPTR,#NUMTAB
          MOVC  A,@A+DPTR
          MOV  P0,A
          CLR  P1.2
          LCALL DELAY1M
          MOV  P0,#00H
          SETB P1.2

          MOV  A,31H           ;十位
          MOV DPTR,#NUMTAB
          MOVC  A,@A+DPTR
          MOV  P0,A
          CLR  P1.1
          LCALL DELAY1M
          MOV  P0,#00H
          SETB P1.1

          MOV  A,30H          ;个位
          MOV  DPTR,#NUMTAB
          MOVC  A,@A+DPTR
          MOV  P0,A
          CLR  P1.0
          LCALL DELAY1M
          MOV  P0,#00H
          SETB P1.0
          RET

NUMTAB:  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H;
        ;0,1,2,3,4,5,6,7,8,9,灭
;;--------------------------------------------------------
;;----------DP数据处理子程序---------------------
DP:      MOV  A,COUNTBUF
         CJNE  A,#232,CE1
 J_11:   AJMP  DP11
 J_12:   AJMP  DP12
CE1:     JNC   J_12
         CJNE  A,#174,CE2
 J_10:   AJMP  DP10
CE2:     JNC   J_11
         CJNE  A,#127,CE3
 J_9:    AJMP  DP9
CE3:     JNC   J_10
         CJNE  A,#95,CE4
 J_8:    AJMP  DP8
CE4:     JNC   J_9
         CJNE  A,#72,CE5
 J_7:    AJMP  DP7
CE5:     JNC   J_8
         CJNE  A,#54,CE6
         AJMP  DP6
CE6:     JNC   J_7
         CJNE  A,#40,CE7
         AJMP  DP5
CE7:     JNC   DP6
         CJNE  A,#28,CE8
         AJMP  DP4
CE8:     JNC   DP5
         CJNE  A,#21,CE9
         AJMP  DP3
CE9:     JNC   DP4
         CJNE  A,#16,CE10
         AJMP  DP2
CE10:    JNC   DP3
         CJNE  A,#12,CE11
         AJMP  DP1
CE11:    JNC   DP2
         CJNE  A,#00,CE12
         AJMP  DP0
CE12:    JNC   DP1
         AJMP  DPRET

DP0:
         MOV  30H,#00H
         MOV  31H,#00H
         MOV  32H,#00H
         MOV  33H,#00H
         AJMP DPRET
DP1:     MOV  30H,#04H
         MOV  31H,#05H
         MOV  32H,#00H
         MOV  33H,#00H
         AJMP DPRET
DP2:     MOV  30H,#05H
         MOV  31H,#07H
         MOV  32H,#00H
         MOV  33H,#00H
         AJMP DPRET
DP3:     MOV  30H,#00H
         MOV  31H,#00H
         MOV  32H,#01H
         MOV  33H,#00H
         AJMP DPRET
DP4:     MOV  30H,#00H
         MOV  31H,#03H
         MOV  32H,#01H
         MOV  33H,#00H
         AJMP DPRET
DP5:     MOV  30H,#05H
         MOV  31H,#08H
         MOV  32H,#01H
         MOV  33H,#00H
         AJMP DPRET
DP6:     MOV  30H,#00H
         MOV  31H,#06H
         MOV  32H,#02H
         MOV  33H,#00H
         AJMP DPRET
DP7:     MOV  30H,#00H
         MOV  31H,#04H
         MOV  32H,#03H
         MOV  33H,#00H
         AJMP DPRET
DP8:     MOV  30H,#00H
         MOV  31H,#05H
         MOV  32H,#04H
         MOV  33H,#00H
         AJMP DPRET
DP9:     MOV  30H,#00H
         MOV  31H,#00H
         MOV  32H,#06H
         MOV  33H,#00H
         AJMP DPRET
DP10:     MOV  30H,#00H
         MOV  31H,#03H
         MOV  32H,#08H
         MOV  33H,#00H
         AJMP DPRET
DP11:    MOV  30H,#00H
         MOV  31H,#00H
         MOV  32H,#01H
         MOV  33H,#01H
         AJMP DPRET
DP12:    MOV  30H,#00H
         MOV  31H,#05H
         MOV  32H,#04H
         MOV  33H,#01H
DPRET:    RET




;;--------------------------------------------------------
DELAY1M:  NOP
          NOP
          MOV   R1,#0AH            ;延时1MS
DELAY1:   MOV   R2,#30H
          DJNZ  R2,$

          DJNZ  R1,DELAY1
          NOP
          NOP
          NOP

          RET



⌨️ 快捷键说明

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