📄 频率计.asm
字号:
DW1 EQU 53H
DW2 EQU 54H
DW3 EQU 55H
XIAN1 EQU 50H
XIAN2 EQU 51H
XIAN3 EQU 52H
COUNTT0 EQU 56H
SAME EQU 01H
TTM EQU 5AH
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP ITO0
MAIN: MOV A,#00H
MOV DW1,A
MOV DW2,A
MOV DW3,A
MOV XIAN1,A
MOV XIAN2,A
MOV XIAN3,A
MOV COUNTT0,A
MOV 40H,A
MOV 41H,A
MOV 42H,A
MOV 43H,A
MOV 44H,A
MOV 45H,A
MOV SP,#60H
CLR SAME
SETB TCON.2
START:
MOV TMOD,#51H ;T0-->TO TIME;T1-->TO COUNT
MOV TL0,#0B0H ;50ms
MOV TH0,#3CH
MOV TL1,#00H
MOV TH1,#00H
MOV TTM,#14H ;50ms*20=1s
DENG: SETB P3.5
JB P3.5,DENG
SETB TR0
SETB TR1
SETB ET0
SETB ET1
SETB PT1
SETB EA
CLR SAME
WAIT1: MOV COUNTT0,#00H
WAIT: LCALL DIS
JNB SAME,WAIT ;T0=1S?
CLR TR0 ;STOP T0 TIMER
CLR ET0
CLR TR1
CLR ET1
MOV R1,TH1
CJNE R1,#00H,JX22
CLR C
MOV A,TL1
SUBB A,#0AH
JC JX
JX22: LJMP JX2
JX: INC COUNTT0
MOV R1,TL1
CJNE R1,#00H,H
AJMP JX1
H: AJMP JX3
JX1: CLR SAME
MOV TL0,#0B0H ;RESTART TIMER
MOV TH0,#3CH
SETB TR0
SETB ET0
SETB TR1
SETB ET1
JJX: LCALL DIS
JNB SAME,JJX
CLR TR0
CLR ET0
AJMP JX
WAIT2: MOV COUNTT0,#00H
WAIT3: LCALL DSPP
JNB SAME,WAIT3 ;T0=1S?
CLR TR0 ;STOP T0 TIMER
CLR ET0
CLR TR1
CLR ET1
MOV R1,TH1
CJNE R1,#00H,JX2
MOV R1,TL1
CLR C
MOV A,R1
SUBB A,#0AH
JC JXX
LJMP JX2
JXX: INC COUNTT0
MOV R1,TL1
CJNE R1,#00H,JX3
AJMP JX11
JX11: CLR SAME
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
SETB ET0
SETB TR1
SETB ET1
JJXX: LCALL DSPP
JNB SAME,JJXX
CLR TR0
CLR ET0
AJMP JXX
JX2: CLR TR0
CLR TR1
CLR ET0
CLR ET1
CLR EA
MOV XIAN1,TL1
MOV XIAN2,TH1
MOV XIAN3,#00h
CLR SAME
MOV TMOD,#51H ;T0-->TIMER,T1-->COUNTER
MOV TL0,#0B0H ;50ms
MOV TH0,#3CH
MOV TL1,#00H
MOV TH1,#00H
MOV TTM,#14H ;50ms*20=1s
SETB TR0
SETB TR1
SETB ET0
SETB ET1
SETB EA
LCALL TZ
DISP1: LCALL DIS
LCALL DIS
AJMP WAIT
JX3: CLR TR0
CLR TR1
CLR ET0
CLR ET1
CLR EA
MOV A,TL1
MOV B,#100
MUL AB
MOV R3,B
MOV R2,A
MOV R4,COUNTT0
DV: MOV R7,#08H
DV1: CLR C
CLR 07H
MOV A,R2
RLC A
MOV R2,A
MOV A,R3
RLC A
MOV 07H,C
CLR C
SUBB A,R4
JB 07H,GOU
JNC GOU
ADD A,R4
AJMP DV2
GOU: INC R2
DV2: MOV R3,A
DJNZ R7,DV1
MOV XIAN1,R2
MOV XIAN2,#00H
MOV XIAN3,#00H
CLR SAME
MOV TMOD,#51H ;PLACE THE FIRST NUMBER
MOV TL0,#0B0H ;50ms
MOV TH0,#3CH
MOV TL1,#00H
MOV TH1,#00H
MOV TTM,#14H ;50ms*20=1s
SETB TR0
SETB TR1
SETB ET0
SETB ET1
SETB EA
LCALL TZ
DISP2: LCALL DSPP
LCALL DSPP
AJMP WAIT2
ITO0: MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ TTM,T0RET
CLR TF0
SETB SAME
T0RET:RETI
TZ: MOV R0,#45H ;CHANGE BINARY TO BCD
MOV R7,#05H
MOV DPTR,#PWTAB
MOV R6,#00H
BBC1: MOV A,R6
MOVC A,@A+DPTR
MOV DW1,A
INC R6
MOV A,R6
MOVC A,@A+DPTR
MOV DW2,A
INC R6
MOV A,R6
MOVC A,@A+DPTR
MOV DW3,A
INC R6
MOV @R0,#00H
BBC2: CLR C
MOV A,XIAN1
SUBB A,DW1
MOV XIAN1,A
MOV A,XIAN2
SUBB A,DW2
MOV XIAN2,A
MOV A,XIAN3
SUBB A,DW3
MOV XIAN3,A
JC BBC3
INC @R0
SJMP BBC2
BBC3: CLR C ;REBACK THE NUMBER
MOV A,XIAN1
ADDC A,DW1
MOV XIAN1,A
MOV A,XIAN2
ADDC A,DW2
MOV XIAN2,A
MOV A,XIAN3
ADDC A,DW3
MOV XIAN3,A
DEC R0
DJNZ R7,BBC1
MOV A,XIAN1
MOV @R0,A
RET
PWTAB: DB 0A0H,86H,01H
DB 10H,27H,00H
DB 0E8H,03H,00H
DB 64H,00H,00H
DB 0AH,00H,00H
DIS: CLR P3.1 ;TO DISPLAY
SETB P3.2
MOV R0,#40H
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
;CLR P3.7
;SETB P3.0
MOV P1,A
LCALL DL1
CLR P3.2
SETB P3.3
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.0
;SETB P3.1
MOV P1,A
LCALL DL1
CLR P3.3
SETB P3.4
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.1
;SETB P3.2
MOV P1,A
LCALL DL1
CLR P3.4
SETB P3.7
MOV DPTR,#TAB
INC R0
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.2
;SETB P3.3
MOV P1,A
LCALL DL1
CLR P3.7
SETB P3.0
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.3
;SETB P3.4
MOV P1,A
LCALL DL1
CLR P3.0
SETB P3.1
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
LCALL DL1
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0-9
DL1: MOV R5,#100
LOOP: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R5,LOOP
RET
DSPP: CLR P3.7 ;TO DISPLAY
SETB P3.0
MOV R0,#40H
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
;CLR P3.7
;SETB P3.0
MOV P1,A
LCALL DL1
CLR P3.0
SETB P3.1
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.0
;SETB P3.1
MOV P1,A
LCALL DL1
CLR P3.1
SETB P3.2
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.1
;SETB P3.2
MOV P1,A
LCALL DL1
CLR P3.2
SETB P3.3
MOV DPTR,#TAB
INC R0
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.2
;SETB P3.3
MOV P1,A
LCALL DL1
CLR P3.3
SETB P3.4
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
;CLR P3.3
;SETB P3.4
MOV P1,A
LCALL DL1
CLR P3.4
SETB P3.7
INC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
CLR P3.4
SETB P3.7
LCALL DL1
CLR P3.4
SETB P3.7
MOV R0,#45H
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
;CLR P3.4
;SETB P3.7
LCALL DL1
CLR P3.7
SETB P3.4
DEC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
;CLR P3.4
;SETB P3.7
LCALL DL1
CLR P3.4
SETB P3.3
DEC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
;CLR P3.4
;SETB P3.7
LCALL DL1
CLR P3.3
SETB P3.2
DEC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
;CLR P3.4
;SETB P3.7
LCALL DL1
CLR P3.2
SETB P3.1
DEC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
;CLR P3.4
;SETB P3.7
LCALL DL1
CLR P3.1
SETB P3.0
DEC R0
MOV DPTR,#TAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
;CLR P3.4
;SETB P3.7
LCALL DL1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -