📄 feng.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP OUT0
ORG 001BH
AJMP BRT1
OUT0: MOV FLAG1,#1
MOV A,DAC0L
ADD A,#55H
MOV DAC0L,A
MOV A,DAC0H
ADDC A,#1
JB ACC.4,NEXT
MOV DAC0H,A
JMP LAST
NEXT: MOV DAC0H,#08H
MOV DAC0L,#00H
LAST: RETI
BRT1: MOV A,FLAG
JZ OPEN
CLR TR0
MOV FLAG,#0
MOV 57H,TH0
MOV 58H,TL0
MOV TH1,#1CH
MOV TL1,#67H
AJMP BACK
OPEN: MOV TH0,#0
MOV TL0,#0
SETB TR0
MOV FLAG,#1
BACK: RETI
DACCON EQU 0FDH
DAC0L EQU 0F9H
DAC0H EQU 0FAH
DATA1 EQU 50H
DATA2 EQU 51H
DATA3 EQU 52H
LEN EQU 43H
FLAG EQU 44H
FLAG1 EQU 45H
/*写左半屏命令*/
WRITE_COMMAND_L:
PUSH DPH
PUSH DPL
MOV DPTR,#0102H
MOV A,#04H
MOVX @DPTR,A
MOV DPTR,#0101H
MOV A,DATA1
MOVX @DPTR,A
INC DPTR
MOV A,#14H
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
POP DPL
POP DPH
RET
/*写左半屏数据*/
WRITE_DATA_L:
PUSH DPH
PUSH DPL
MOV DPTR,#0102H
MOV A,#05H
MOVX @DPTR,A
MOV DPTR,#0101H
MOV A,DATA2
MOVX @DPTR,A
INC DPTR
MOV A,#15H
MOVX @DPTR,A
MOV A,#01H
MOVX @DPTR,A
POP DPL
POP DPH
RET
/*写右半屏命令*/
WRITE_COMMAND_R:
PUSH DPH
PUSH DPL
MOV DPTR,#0102H
MOV A,#08H
MOVX @DPTR,A
MOV DPTR,#0101H
MOV A,DATA1
MOVX @DPTR,A
INC DPTR
MOV A,#18H
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
POP DPL
POP DPH
RET
/*写右半屏数据*/
WRITE_DATA_R:
PUSH DPH
PUSH DPL
MOV DPTR,#0102H
MOV A,#09H
MOVX @DPTR,A
MOV DPTR,#0101H
MOV A,DATA2
MOVX @DPTR,A
INC DPTR
MOV A,#19H
MOVX @DPTR,A
MOV A,#01H
MOVX @DPTR,A
POP DPL
POP DPH
RET
/*延时程序*/
MS40: MOV R7,#0E8H
MS2: MOV R6,#0FFH
MS1: DJNZ R6,MS1
DJNZ R7,MS2
RET
DELAY: MOV R5,#04H
DELAY1: LCALL MS40
DJNZ R5,DELAY1
RET
/*************************/
MAIN: MOV P2,#00H
MOV SP,#60H
MOV DACCON,#2DH
MOV DAC0H,#08H
MOV DAC0L,#00H
MOV DPTR,#0100H
MOV A,#0FH
MOVX @DPTR,A
SETB EA
SETB EX0
SETB IT0
MOV FLAG,#0
; MOV FLAG1,#0
MOV DATA1,#3EH
LCALL WRITE_COMMAND_L
LCALL WRITE_COMMAND_R ;显示关
MOV DATA1,#3FH
LCALL WRITE_COMMAND_L
LCALL WRITE_COMMAND_R ;显示开
MOV DATA1,#0C0H
LCALL WRITE_COMMAND_L
LCALL WRITE_COMMAND_R
MOV R1,#8
MOV DATA3,#0B8H
MOV DATA1,DATA3
M21: MOV DATA1,DATA3
LCALL WRITE_COMMAND_L ;左第DATA3页
LCALL WRITE_COMMAND_R
MOV DATA1,#40H
LCALL WRITE_COMMAND_L
LCALL WRITE_COMMAND_R
MOV R2,#64
L21: MOV DATA2,#00H
LCALL WRITE_DATA_L
LCALL WRITE_DATA_R
DJNZ R2,L21
INC DATA3
DJNZ R1,M21
;显示汉字‘转速’
MOV DATA1,#0C0H
LCALL WRITE_COMMAND_L
MOV DPTR,#WORD
MOV R1,#2
MOV DATA3,#0B9H ;第2页开始显示
M11: MOV DATA1,DATA3
LCALL WRITE_COMMAND_L ;左第DATA3页
MOV DATA1,#48H
LCALL WRITE_COMMAND_L ;Y开始地址
MOV R2,#20H
L11: CLR A
MOVC A,@A+DPTR
MOV DATA2,A
LCALL WRITE_DATA_L
INC DPTR
DJNZ R2,L11
INC DATA3
DJNZ R1,M11
;显示单位‘转/分’
MOV DATA1,#0C0H
LCALL WRITE_COMMAND_R
MOV DPTR,#UNIT1
MOV R1,#2
MOV DATA3,#0BBH ;第4页开始显示
M3: MOV DATA1,DATA3
LCALL WRITE_COMMAND_R ;右第DATA3页
MOV DATA1,#48H
LCALL WRITE_COMMAND_R ;Y开始地址
MOV R2,#22H
L3: CLR A
MOVC A,@A+DPTR
MOV DATA2,A
LCALL WRITE_DATA_R
INC DPTR
DJNZ R2,L3
INC DATA3
DJNZ R1,M3
MOV TMOD,#15H ;T1方式1,定时器
MOV TH1,#28H
MOV TL1,#00H ;定时器赋初值;60ms
SETB ET1
SETB PX0
SETB TR1 ;启动T1
MAIN1:
MOV A,58H
MOV B,#0E8H
MUL AB
MOV R5,A
MOV R4,B
MOV A,57H
MOV B,#0E8H
MUL AB
ADD A,R4
MOV R4,A
MOV A,B
ADDC A,#0
MOV R3,A
MOV A,58H
MOV B,#03H
MUL AB
ADD A,R4
MOV R4,A
MOV A,B
ADDC A,R3
MOV R3,A
MOV A,#0
ADDC A,#0
MOV R2,A
MOV A,57H
MOV B,#03H
MUL AB
ADD A,R3
MOV R3,A
MOV A,B
ADDC A,R2
MOV R2,A
MOV R6,#00H
MOV R7,#09H
MOV A,R3
CLR C
SUBB A,R7
MOV A,R2
SUBB A,R6
MOV LEN,#16 ;57H58H/#0DH->R0R1
DIVL: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C
CLR C
SUBB A,R7
MOV R1,A
MOV A,R2
SUBB A,R6
JB F0,DVME
JC DMDE
DVME: MOV R2,A
MOV A,R1
MOV R3,A
INC R5
DMDE: DJNZ LEN,DIVL
CLR F0
MOV A,R4
MOV R0,A
MOV A,R5
MOV R1,A
;进制转换 R0R1->R3R4
BINBCD: CLR A
MOV R3,#00H
MOV R4,#00H
MOV LEN,#16
BINBCL: CLR C
MOV A,R1
RLC A
MOV R1,A
MOV A,R0
RLC A
MOV R0,A ;R0R1左移
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A
DJNZ LEN,BINBCL
;40h41h42h43h存储转速
MOV A,R3
SWAP A
ANL A,#0FH
MOV 40H,A
MOV A,R3
ANL A,#0FH
MOV 41H,A
MOV A,R4
SWAP A
ANL A,#0FH
MOV 42H,A
MOV A,R4
ANL A,#0FH
MOV 43H,A
;液晶显示
MOV R0,#40H
MOV LEN,#4
SHOW: MOV A,@R0
JNZ N1
MOV DPTR,#NUM0
JMP YESHEZHI
N1: DEC A
JNZ N2
MOV DPTR,#NUM1
JMP YESHEZHI
N2: DEC A
JNZ N3
MOV DPTR,#NUM2
JMP YESHEZHI
N3: DEC A
JNZ N4
MOV DPTR,#NUM3
JMP YESHEZHI
N4: DEC A
JNZ N5
MOV DPTR,#NUM4
JMP YESHEZHI
N5: DEC A
JNZ N6
MOV DPTR,#NUM5
JMP YESHEZHI
N6: DEC A
JNZ N7
MOV DPTR,#NUM6
JMP YESHEZHI
N7: DEC A
JNZ N8
MOV DPTR,#NUM7
JMP YESHEZHI
N8: DEC A
JNZ N9
MOV DPTR,#NUM8
JMP YESHEZHI
N9: MOV DPTR,#NUM9
JMP YESHEZHI
TIAO: JMP SHOW
YESHEZHI: MOV R1,#2
MOV DATA3,#0BBH ;第四页开始显示
M1: MOV DATA1,DATA3
LCALL WRITE_COMMAND_L ;左第DATA3页
MOV A,LEN
DEC A
JNZ LEN1
MOV DATA1,#78H
JMP DIZHI
LEN1: DEC A
JNZ LEN2
MOV DATA1,#70H
JMP DIZHI
LEN2: DEC A
JNZ LEN3
MOV DATA1,#68H
JMP DIZHI
LEN3: MOV DATA1,#60H
DIZHI: LCALL WRITE_COMMAND_L ;Y开始地址
MOV R2,#8
L1: CLR A
MOVC A,@A+DPTR
MOV DATA2,A
LCALL WRITE_DATA_L
INC DPTR
DJNZ R2,L1
INC DATA3
DJNZ R1,M1
INC R0
DJNZ LEN,TIAO
LCALL DELAY
LJMP MAIN1
NUM0:
DB 00H,0FCH,04H,04H,04H,04H,0FCH,00H, 00H,1FH,10H,10H,10H,10H,1FH,00H
NUM1:
DB 00H,00H,00H,00H,0FCH,00H,00H,00H, 00H,00H,00H,00H,1FH,00H,00H,00H
NUM2:
DB 00H,84H,84H,84H,84H,84H,0FCH,00H, 00H,1FH,10H,10H,10H,10H,10H,00H
NUM3:
DB 00H,84H,84H,84H,84H,84H,0FCH,00H, 00H,10H,10H,10H,10H,10H,1FH,00H
NUM4:
DB 00H,0FCH,80H,80H,80H,80H,0FCH,00H, 00H,00H,00H,00H,00H,00H,1FH,00H
NUM5:
DB 00H,0FCH,84H,84H,84H,84H,84H,00H, 00H,10H,10H,10H,10H,10H,1FH,00H
NUM6:
DB 00H,0FCH,84H,84H,84H,84H,84H,00H, 00H,1FH,10H,10H,10H,10H,1FH,00H
NUM7:
DB 00H,04H,04H,04H,04H,04H,0FCH,00H, 00H,00H,00H,00H,00H,00H,1FH,00H
NUM8:
DB 00H,0FCH,84H,84H,84H,84H,0FCH,00H, 00H,1FH,10H,10H,10H,10H,1FH,00H
NUM9:
DB 00H,0FCH,84H,84H,84H,84H,0FCH,00H, 00H,10H,10H,10H,10H,10H,1FH,00H
WORD:
DB 0C8H,0A8H,9CH,0EBH,88H,88H,88H,40H, 48H,0F8H,4FH,48H,48H,48H,40H,00H
DB 40H,42H,0CCH,00H,04H,0E4H,24H,24H, 0FFH,24H,24H,24H,0E4H,04H,00H,00H
DB 08H,08H,04H,0FFH,04H,04H,00H,02H, 0BH,12H,22H,0D2H,0EH,02H,00H,00H
DB 40H,20H,1FH,20H,48H,49H,45H,43H, 7FH,41H,43H,45H,4DH,40H,40H,00H
UNIT1:
DB 0C8H,0A8H,9CH,0EBH,88H,88H,88H,40H, 48H,0F8H,4FH,48H,48H,48H,40H,00H,0FCH,00H
DB 80H,40H,20H,98H,87H,82H,80H,80H,83H,84H,98H,30H,60H,0C0H,40H,00H
DB 08H,08H,04H,0FFH,04H,04H,00H,02H, 0BH,12H,22H,0D2H,0EH,02H,00H,00H,5FH,00H
DB 00H,80H,40H,20H,10H,0FH,00H,00H,20H,40H,3FH,00H,00H,00H,00H,00H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -