📄 无敌版.asm
字号:
RS EQU P3.7
RW EQU P3.6
E EQU P3.5
key1 equ p1.0 ;里程
key2 equ p1.1 ;速度
key3 equ p1.2 ;单位转换
key4 equ p1.3 ;所用时间
ORG 0000H
AJMP START
ORG 0BH
JMP TIME
org 13h
jmp shumu
ORG 0100H
START: MOV SP,#60H
MOV a,#00H
MOV 6CH,#10
MOV 6DH,A
MOV 6EH,A
MOV 6FH,#10
mov 70h,a
mov 71h,a
mov 72h,#10
mov 73h,a
mov 74h,a
mov 7ah,a
mov 7bh,a
mov 7ch,a
mov 7dh,a
mov 7eh,a
mov 7fh,a
MOV 2fH,A
mov 30h,a
mov 31h,a
mov 32h,a
MOV 3EH,A ;圈数
MOV 3FH,A
MOV 40H,A
MOV 41H,A ;里程
MOV 42H,A
MOV 43H,A
MOV 44H,A
MOV 45H,A
MOV 46H,A
MOV 47H,A
MOV 48H,A
MOV 49H,A
MOV 4aH,A
MOV 4bH,A
MOV 4cH,A
MOV 4dH,A
MOV 4eH,A
MOV 50h,A
MOV 51h,A
MOV 52h,A
MOV 53h,A
MOV 54h,A
MOV 55h,A
MAIN:LCALL DELAY
MOV P2,#01H ;清屏
LCALL ENABLE
MOV P2,#06H ;输入方式
LCALL ENABLE
MOV P2,#0cH ;显示控制
LCALL ENABLE
MOV P2,#01H ;清屏
LCALL ENABLE
MOV P2,#38H
LCALL ENABLE
MOV P2,#38H
LCALL ENABLE
MOV P2,#80H
LCALL ENABLE
MOV DPTR,#TABLE1
LCALL DISP
; SETB 00H
MOV TMOD,#01H
MOV TH0,#0D8H
MOV TL0,#0f0H
SETB ET0
SETB TR0
SETB EX1
SETB IT1
SETB EA
mainloop:
MOV P2,#80H
LCALL ENABLE
MOV DPTR,#TABLE1
LCALL DISP
JNB KEY1,TLICHENG
JNB key2,TDISSUDU
JNB KEY3,Tdissudukmps
JNB key4,TDISTIME
MOV P2,#0c0H
LCALL ENABLE
MOV DPTR,#TABLE4
MOV R1,#16
LOOPkong: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPkong
jmp out
TLICHENG:lcall distenor
jmp out
TDISSUDU:lcall dissudu
jmp out
Tdissudukmps:lcall dissudukmps
jmp out
TDISTIME:lcall distime
out: jmp mainloop
ENABLE: CLR RS
CLR RW
CLR E
LCALL DELAY1
SETb E
RET
DISP: MOV R1,#16
LOOP: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOP
RET
ENABLE1: MOV P2,A
SETB RS
CLR RW
CLR E
LCALL DELAY1
SETB E
RET
DELAY: MOV R7,#255
D1: MOV R6,#255
D2: DJNZ R6,D2
DJNZ R7,D1
RET
DELAY1:
MOV R6,#255
D0:DJNZ R6,D0
RET
TIME:
PUSH A
CLR TR0
MOV TH0,#0D8H
MOV TL0,#0f0H
MOV A,#1
ADD A,32H
DA A
MOV 32H,A
JNC OUT_INT_T0
MOV A,#1
ADD A,31H
da a
MOV 31H,A
CJNE A,#60h,OUT_INT_T0
lcall meter
MOV 31H,#0
MOV A,#1
add a,30h
DA A
MOV 30H,A
CJNE A,#60h,OUT_INT_T0
MOV 30H,#0
MOV A,#1
add a,2fh
DA A
MOV 2fH,A
CJNE A,#24h,OUT_INT_T0
MOV 2fH,#0
OUT_INT_T0:
lcall datas
POP A
SETB TR0
RETI
METER:mov 44h,#00h
mov 43h,#00h
mov 42h,#00h
MOV R1,#50
QQQ:MOV A,40H ;41h,42H,43H,44H中放T+1秒里程
ADD A,44H ;45H,46H,47H,48h中放T秒里程
DA A ;49H,4AH,4b,4c中放T秒速度 ;显示速度放4dH,4eH,4fH
MOV 44H,A
MOV A,43H
ADDC A,#0H
DA A
MOV 43H,A
MOV A,42H
ADDC A,#0H
DA A
MOV 42H,A
MOV A,41H
ADDC A,#0H
DA A
MOV 41H,A
DJNZ R1,QQQ
MOV R1,#50
QQQ1:MOV A,3fH
ADD A,43H
DA A
MOV 43H,A
MOV A,42H
ADDC A,#0H
DA A
MOV 42H,A
MOV A,41H
ADDC A,#0H
DA A
MOV 41H,A
DJNZ R1,QQQ1
MOV R1,#50
QQQ2:MOV A,3eH
ADD A,42H
DA A
MOV 42H,A
MOV A,41H
ADDC A,#0H
DA A
MOV 41H,A
DJNZ R1,QQQ2
mov r1,#44h
mov r0,#48h
clr c
LCALL BSUB
MOV 4cH,A
LCALL BSUB
MOV 4bH,A
lcall bsub
mov 4Ah,a
lcall bsub
mov 49h,a
MOV A,41H
MOV 45H,A
MOV A,42H
MOV 46H,A
MOV A,43H
MOV 47H,A
MOV A,44H
MOV 48H,A
;;;;;;;;;;;;;;
mov 56h,#00h ;56,57,58,59h放速度(kmph)
mov 57h,#00h
mov 58h,#00h
mov 59h,#00h
MOV R1,#36
QQQ59:MOV A,4cH
ADD A,59H
DA A
MOV 59H,A
MOV A,58H
ADDC A,#0H
DA A
MOV 58H,A
MOV A,57H
ADDC A,#0H
DA A
MOV 57H,A
MOV A,56H
ADDC A,#0H
DA A
MOV 56H,A
DJNZ R1,QQQ59
MOV R1,#36
QQQ58:MOV A,4bH
ADD A,58H
DA A
MOV 58H,A
MOV A,57H
ADDC A,#0H
DA A
MOV 57H,A
MOV A,56H
ADDC A,#0H
DA A
MOV 56H,A
DJNZ R1,QQQ58
MOV R1,#36
QQQ57:MOV A,4aH
ADD A,57H
DA A
MOV 57H,A
MOV A,56H
ADDC A,#0H
DA A
MOV 56H,A
DJNZ R1,QQQ57
MOV A,4bH
ANL A,#0F0H
SWAP A
MOV 4DH,A
MOV A,4bH ;速度显示(mps)4d,4e,4f
ANL A,#0FH
MOV 4eH,A
MOV A,4cH
ANL A,#0F0H
SWAP A
MOV 4fH,A
MOV A,57H ;速度(kmph)显示放79,7a,7b,7c,7d,7e
ANL A,#0FH
MOV 79H,A
MOV A,57H
ANL A,#0F0H
SWAP A
MOV 7aH,A
MOV A,57H
ANL A,#0FH
MOV 7bH,A
MOV A,58H
ANL A,#0F0H
SWAP A
MOV 7cH,A
MOV A,58H
ANL A,#0FH
MOV 7dH,A
MOV A,59H
ANL A,#0F0H
SWAP A
MOV 7eH,A
MOV A,47H ;50h,51h52h53h放里程显示
ANL A,#0F0H
SWAP A
MOV 50H,A
MOV A,47H
ANL A,#0FH
MOV 51H,A
MOV A,48h
ANL A,#0F0H
SWAP A
MOV 52H,A
MOV A,48H
ANL A,#0FH
MOV 53H,A
RET
bsub:mov a,#9ah
subb a,@r0
add a,@r1
da a
DEC r0
DEC r1
cpl c
ret
DATAS:
MOV A,2fH ;6d,6e,6f,70,71,72,73,74放时间显示
anl a,#0fh
MOV 6EH,A
mov a,2fh
anl a,#0f0h
swap a
MOV 6DH,A
MOV A,30H
anl a,#0fh
MOV 71H,A
mov a,30h
anl a,#0f0h
swap a
MOV 70H,A
MOV A,31H
anl a,#0fh
MOV 74H,A
mov a,31h
anl a,#0f0h
swap a
MOV 73H,A
RET
dissudukmps: ;速度kmph
MOV P2,#38H
LCALL ENABLE
MOV P2,#0C0H ;位置
LCALL ENABLE
MOV DPTR,#TABLE3
MOV R1,#6
LOOPSUDU6: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPSUDU6
MOV DPTR,#TABLE2
MOV A,#10 ;XIE:
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#7ah ;小数点前1
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#7bh ;小数点前2
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#7ch ;小数点前3
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV A,#12 ;XIE.
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
inc r0 ;小数点后1
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV DPTR,#TABLE7
MOV R1,#4
LOOPkmps: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPkmps
RET
dissudu:
MOV P2,#38H
LCALL ENABLE
MOV P2,#0C0H ;位置
LCALL ENABLE
MOV DPTR,#TABLE3
MOV R1,#6
LOOPSUDU: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPSUDU
MOV DPTR,#TABLE2
MOV A,#10 ;XIE:
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#4dh ;小数点前1
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#4eh ;小数点前2
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV A,#12 ;XIE.
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
inc r0 ;小数点后1
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV DPTR,#TABLE6
MOV R1,#3
LOOPmps: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPmps
MOV DPTR,#TABLE4
MOV R1,#2
LOOPms: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPms
RET
distime: ;时间显示
MOV P2,#38H
LCALL ENABLE
MOV P2,#0C0H ;位置
LCALL ENABLE
MOV DPTR,#TABLE5
MOV R1,#4
LOOPSHIJIAN: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPSHIJIAN
mov dptr,#table2
MOV r0,#06ch ;;;
mov r1,#9
dlp:mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
inc r0
djnz r1,dlp
mov dptr,#table2
mov r1,#3
qing:mov a,#11
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
djnz r1,qing
ret
distenor: ;路程显示
MOV P2,#38H
LCALL ENABLE
MOV P2,#0c0H
LCALL ENABLE
MOV DPTR,#TABLE8
MOV R1,#6
LOOPtenor: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPtenor
MOV DPTR,#TABLE2
MOV A,#10 ;XIE:
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#50h ;千
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV r0,#51h ;百
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
inc r0 ;十
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
inc r0 ;个
mov a,@r0
movc a,@a+dptr
mov p2,a
setb rs
clr rw
clr e
lcall delay1
setb e
MOV DPTR,#TABLE6
MOV R1,#1
LOOPm: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPm
MOV DPTR,#TABLE4
MOV R1,#4
LOOPk: MOV A,#00H
MOVC A,@A+DPTR
LCALL ENABLE1
INC DPTR
DJNZ R1,LOOPk
RET
shumu: ;送霍尔脉冲
;至3e,3f,40H,
push psw
push a
clr EX1
MOV A,#1
ADD A,40H
DA A
MOV 40H,A
JNC fanh
MOV A,#1
ADD A,3fH
da a
MOV 3fH,A
JNC fanh
MOV A,#1
ADD A,3eH
da a
MOV 3eH,A
fanh:
setb EX1
pop a
pop psw
reti
TABLE1: DB " control system "
table2: db "0123456789: ."
table3: db " speed"
table4: db " "
table5:db "Time"
TABLE6: DB "mps"
TABLE7:DB "kmph"
table8:db " tenor"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -