(毕业设计)转速表计数器的设计制作之程序代码BZW0 EQU 20H
BZW1 EQU BZW0+1
Hour EQU BZW1+1
Minuter EQU HOUR+1
FLASHBIT EQU MINUTER+1 ;=55Hshownoflash;=03H showled8flash
;=02Hshowled7flash
;=01Hshowled6flash
;=00H showled5flash
KEYFLAG EQU FLASHBIT+1 ;D0=1 show PRG Down;D1=1 showYZ Down
;D2=1 showJST Down
Zszl EQU KEYFLAG+1
Zszh EQU Zszl+1
Yzszl EQU Zszh+1
Yzszh EQU Yzszl+1
Jszl EQU Yzszh+1
Jszh EQU Jszl+1
AAL00 EQU Jszh+1
AAH00 EQU AAL00+1
YZSZL1 EQU AAH00+1
YZSZH1 EQU YZSZL1+1
JSZL1 EQU YZSZH1+1
JSZH1 EQU JSZL1+1
Disbuf0 EQU JSZH1+1 ;Disbuf0---Disbuf3 displaynumberorCouner Disbuf1 EQU Disbuf0+1
Disbuf2 EQU Disbuf1+1
Disbuf3 EQU Disbuf2+1
Disbuf4 EQU Disbuf3+1 ;Disbuf4---Disbuf7displaytimeorspeed Disbuf5 EQU Disbuf4+1
Disbuf6 EQU Disbuf5+1
Disbuf7 EQU Disbuf6+1
Zscs EQU Disbuf7+1
DDcs1 EQU Zscs+1
DDcs2 EQU DDcs1+1
KEYCOU EQU DDCS2+1
FLASHFLAG EQU KEYCOU+1
FLASHC EQU FLASHFLAG+1
JSZL10 EQU FLASHC+1 JSZH10 EQU
JSZL10+1 JSZL11 EQU JSZH10+1 JSZH11 EQUJSZL11+1 STAKk EQU JSZH11+1 stakkk equstakk+1 stak equ stakkk+1 ywk1 equstak+1
ywk2 equ ywk1+1ywk3 equ ywk2+1 ywk4 equ ywk3+1 ywk5 equywk4+1 ywk6 equ ywk5+1 ywk7 equ ywk6+1 ywk8 equywk7+1 ywk9 equ ywk8+1 ywk10 equ ywk9+1 ywk11 equywk10+1 ywk12 equ ywk11+1 ywk13 equ ywk12+1 ywk14equywk13+1 ywk15 equywk14+1 ywkend equywk15+1 checkequ stak
ORG0000H
LJMP START ORG0003H
CLR EX0
RETI
ORG000BH
LJMP TIME0 ORG0013H
CLR EX1
RETI
ORG001BH
LJMP TIME1
ORG0023Hljmpssint
ORG00100H
START: MOV R0, #0 MOV R1, #0
LOOP: DJNZ R1, LOOP DJNZ R0, LOOP
MOV IE, #00H MOV SP, #STAK MOVTMOD,#16H MOV R0, #20H
MOV R1, #STAK-20H CLR A
Clear: MOV @R0, A INC R0djnz R1, Clear
MOV TL0, #0FFH MOV TH0, #0FFHMOV TL1, #0f0H MOV TH1, #0d8Hmov 0cdh, #0ffh mov 0cch, #0eehmov 0cbh, #0ffh mov 0cah, #0eehmov scon, #50h mov 0c8h, #34h
MOV ZSCS, #64H SETB EA
SETB ES
SETB TR1
SETB ET1
SETB ET0
SETB TR0lcal l read1mov a,checklcal l readlcal l readsum
SETB BZW1.2 MAIN:
LCALL KEY
LCALL DATT
LCALL SENDZS LCALL SENDYZ LCALL SENDJS
LCALL CONTROL
LCALL DISPLAY LJMP MAIN
KEY: MOV A, P3 JNB P3.7,yz
JNB P3.6, JST jnbp0.4,abcjmpabcdabc:lcal l ywxsabcd:
MOV KEYCOU, #0 CLR BZW1.0 LJMPKEYRET
YZ: MOV KEYFLAG,#02H INC KEYCOUMOV A, KEYCOU CJNE A,#10H,KEYRET jbbzw0.1,keyret MOV A, stakk INCA
CJNE A, #0AH,YZZ MOV A, #00H YZZ:MOVstakk, A lcal l writelcal l readsum
SETB BZW1.2 LJMP KEYRET
JST: MOV KEYFLAG,#04H INC KEYCOU
MOV A, KEYCOU
CJNE A,#10H,KEYRET
CLR BZW1.2
JB BZW0.1, JST23
SETB BZW0.1
CLR BZW0.5
MOV R0, #AAL00
MOV R5, #02H
CLR A
CLEAR1: MOV @R0, A
INC R0
DJNZ R5, CLEAR1
LJMP KEYRET
JST23: CLR BZW0.1
SETB BZW0.3
SETB BZW1.1 KEYRET: RETDATT: JNB BZW0.1,DATT3 MOV R5, AAH00MOV R4, AAL00
MOV R3, #00H
MOV R2, #60
LCALL DUDIV
MOV JSZH10, R5
MOV JSZL10, R4
MOV YZSZL1, YZSZL MOV YZSZH1, YZSZH MOV
JSZL11, JSZL10 MOV JSZH11, JSZH10 MOVR0, #YZSZL1
MOV R1, #JSZL11
MOV R3, #02H
LCALL MSUB
JB BZW0.7, DATT22 MOV A, @R0INC R0
ORL A, @R0
CJNE A,#00H,DATT3
DATT22:CLR BZW0.1
SETB BZW0.3
DATT3: JB BZW0.5, DATT31 LJMP DATTRETDATT31: CLR BZW0.5
MOV A, ZSZL
MOV B, ZSZH
ORL A, B
CJNE A, #00H,DATT310 JB BZW0.4,DATT32CLR BZW0.6
MOV DDCS1,#0C8H
MOV DDCS2,#12H
SETB BZW0.4
SJMP DATTRET
DATT310:CLR BZW0.4
SETB BZW0.0
CLR BZW0.2
MOV FLASHBIT, #55H SJMP DATTRET
DATT32: JNB BZW0.6, DATTRET CLR BZW0.0DATTRET: RET
MSUB: CLR BZW0.7
MOV A, R0
MOV R2, A
MOV A, R3
MOV R7, A
CLR C
LP0: MOV A, @R0
SUBB A, @R1
MOV @R0,A
INC R0
INC R1
DJNZ R7, LP0
JNC LP1
SETB BZW0.7
LP1: MOV A, R2
MOV R0, A
RET
TIME0: PUSH Acc
PUSH PSW
MOV A, #01H
CLR C
ADD A, JSZL
MOV JSZL, A
CLR A
ADDC A, JSZH
MOV JSZH, A
JNB BZW0.1, TIME01
MOV A, #01H CLR C
ADD A, AAL00 MOV AAL00, A CLR AADDC A, AAH00 MOV AAH00, A TIME01: POPPSW
POP Acc
RETI
TIME1: PUSH Acc
PUSH PSW
MOV TH1, #0d8H MOV TL1, #0f0H
DJNZ ZSCS, TIME1RET SETB BZW0.5
MOV ZSZH, JSZH MOV ZSZL, JSZL