📄 复件 中断计数(老).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 + -