📄 lcdspeedmeter.asm
字号:
KEYCON5:
KEYOUT:
RET
;*******************************************************************************
;;速度显示程序。
;*******************************************************************************
SPEEDCONVERT:
CLR C
MOV A,SPEEDHEX0
RLC A
MOV R7,A
MOV A,SPEEDHEX1
RLC A
MOV R6,A
MOV A,SPEEDHEX2
RLC A
MOV R5,A
CLR C
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5
RLC A
MOV R5,A
CLR C
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5
RLC A
MOV R5,A
CLR C
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5
RLC A
MOV R5,A
CLR C
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5
RLC A
MOV R5,A
CALL H2B20
MOV RPMSPEED0,R4
MOV RPMSPEED1,R3
MOV RPMSPEED2,R2
CALL SPEED2LCD
RET
;*******************************************************************************
;;速度显示程序。
;*******************************************************************************
SPEED2LCD:
JB FCW,SPEEDCON0A
SETB LCDP2
CLR LCDP3
JMP SPEEDCON0B
SPEEDCON0A:
CLR LCDP2
SETB LCDP3
SPEEDCON0B:
MOV A,RPMSPEED2
ANL A,#01H
JZ SPEEDCON1
SETB LCD1BC
CLR FZERO1
JMP SPEEDCON2
SPEEDCON1:
CLR LCD1BC
SETB FZERO1
SPEEDCON2:
CLR FZERO2
CLR FZERO3
MOV A,RPMSPEED1
SWAP A
ANL A,#0FH
RL A
MOV DPTR,#SPEEDTAB1
JMP @A+DPTR
SPEEDTAB1:
AJMP SPEEDTAB1A
AJMP SPEEDTAB1B
AJMP SPEEDTAB1C
AJMP SPEEDTAB1D
AJMP SPEEDTAB1E
AJMP SPEEDTAB1F
AJMP SPEEDTAB1G
AJMP SPEEDTAB1H
AJMP SPEEDTAB1I
AJMP SPEEDTAB1J
AJMP SPEEDTAB1K
AJMP SPEEDTAB1L
AJMP SPEEDTAB1M
AJMP SPEEDTAB1N
AJMP SPEEDTAB1O
AJMP SPEEDTAB1P
SPEEDTAB1A: ;===0
JB FZERO1,SPEEDTAB1A0
ORL LCDDATA1,#00000010B ; D=1
ORL LCDDATA2,#00000011B ; C=1,E=1
ANL LCDDATA3,#11111100B ; B=1,G=0
ORL LCDDATA3,#00000010B
ORL LCDDATA4,#00000011B ; A=1,F=1
LJMP SPEEDTAB1OUT
SPEEDTAB1A0:
SETB FZERO2
ANL LCDDATA1,#11111101B ; D=0
ANL LCDDATA2,#11111100B ; C=0,E=0
ANL LCDDATA3,#11111100B ; B=0,G=0
ANL LCDDATA4,#11111100B ; A=0,F=0
LJMP SPEEDTAB1OUT
SPEEDTAB1B: ;===1
ANL LCDDATA1,#11111101B ; 2D=0
ANL LCDDATA2,#11111100B ; 2C=1,2E=0
ORL LCDDATA2,#00000010B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000010B
ANL LCDDATA4,#11111100B ; 2A=0,2F=0
LJMP SPEEDTAB1OUT
SPEEDTAB1C: ;===2
ORL LCDDATA1,#00000010B ; 2D=1
ANL LCDDATA2,#11111100B ; 2C=0,2E=1
ORL LCDDATA2,#00000001B
ORL LCDDATA3,#00000011B ; 2B=1,2G=1
ANL LCDDATA4,#11111100B ; 2A=1,2F=0
ORL LCDDATA4,#00000010B
LJMP SPEEDTAB1OUT
SPEEDTAB1D: ;===3
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000010B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000011B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000010B
LJMP SPEEDTAB1OUT
SPEEDTAB1E: ;===4
ANL LCDDATA1,#11111101B ; 2D=0
ANL LCDDATA2,#11111100B ; 2C=1,2E=0
ORL LCDDATA2,#00000010B
ANL LCDDATA3,#11111100B ; 2B=1,2G=1
ORL LCDDATA3,#00000011B
ANL LCDDATA4,#11111100B ; 2A=0,2F=1
ORL LCDDATA4,#00000001B
LJMP SPEEDTAB1OUT
SPEEDTAB1F: ;===5
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000010B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000001B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1G: ;===6
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000011B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000001B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1H: ;===7
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000000B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000010B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000010B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000010B
LJMP SPEEDTAB1OUT
SPEEDTAB1I: ;===8
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000011B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000011B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1J: ;===9
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=0
ORL LCDDATA2,#00000010B
ANL LCDDATA3,#11111100B ; 2B=1,2G=1
ORL LCDDATA3,#00000011B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1K: ;===A
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000000B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000011B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000011B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1L: ;===B
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000011B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000001B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000001B
LJMP SPEEDTAB1OUT
SPEEDTAB1M: ;===C
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000001B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000000B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1N: ;===D
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000011B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000011B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000000B
LJMP SPEEDTAB1OUT
SPEEDTAB1O: ;===E
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000010B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000001B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000001B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1P: ;===F
ANL LCDDATA1,#11111101B ; 2D=1
ORL LCDDATA1,#00000000B
ANL LCDDATA2,#11111100B ; 2C=1,2E=1
ORL LCDDATA2,#00000001B
ANL LCDDATA3,#11111100B ; 2B=1,2G=0
ORL LCDDATA3,#00000001B
ANL LCDDATA4,#11111100B ; 2A=1,2F=1
ORL LCDDATA4,#00000011B
LJMP SPEEDTAB1OUT
SPEEDTAB1OUT:
MOV A,RPMSPEED1
ANL A,#0FH
RL A
MOV DPTR,#SPEEDTAB2
JMP @A+DPTR
SPEEDTAB2:
AJMP SPEEDTAB2A
AJMP SPEEDTAB2B
AJMP SPEEDTAB2C
AJMP SPEEDTAB2D
AJMP SPEEDTAB2E
AJMP SPEEDTAB2F
AJMP SPEEDTAB2G
AJMP SPEEDTAB2H
AJMP SPEEDTAB2I
AJMP SPEEDTAB2J
AJMP SPEEDTAB2K
AJMP SPEEDTAB2L
AJMP SPEEDTAB2M
AJMP SPEEDTAB2N
AJMP SPEEDTAB2O
AJMP SPEEDTAB2P
SPEEDTAB2A: ;===0
JB FZERO2,SPEEDTAB2A0
ORL LCDDATA1,#00001000B ; D=1
ORL LCDDATA2,#00001100B ; C=1,E=1
ANL LCDDATA3,#11110011B ; B=1,G=0
ORL LCDDATA3,#00001000B
ORL LCDDATA4,#00001100B ; A=1,F=1
LJMP SPEEDTAB2OUT
SPEEDTAB2A0:
SETB FZERO3
ANL LCDDATA1,#11110111B ; D=0
ANL LCDDATA2,#11110011B ; C=0,E=0
ANL LCDDATA3,#11110011B ; B=0,G=0
ANL LCDDATA4,#11110011B ; A=0,F=0
LJMP SPEEDTAB2OUT
SPEEDTAB2B: ;===1
ANL LCDDATA1,#11110111B ; 2D=1
ANL LCDDATA2,#11110011B ; 2C=1,2E=0
ORL LCDDATA2,#00001000B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00001000B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
LJMP SPEEDTAB2OUT
SPEEDTAB2C: ;===2
ORL LCDDATA1,#00001000B ; 2D=1
ANL LCDDATA2,#11110011B ; 2C=0,2E=1
ORL LCDDATA2,#00000100B
ORL LCDDATA3,#00001100B ; 2B=1,2G=1
ANL LCDDATA4,#11110011B ; 2A=1,2F=0
ORL LCDDATA4,#00001000B
LJMP SPEEDTAB2OUT
SPEEDTAB2D: ;===3
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001000B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00001100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001000B
LJMP SPEEDTAB2OUT
SPEEDTAB2E: ;===4
ANL LCDDATA1,#11110111B ; 2D=0
ANL LCDDATA2,#11110011B ; 2C=1,2E=0
ORL LCDDATA2,#00001000B
ANL LCDDATA3,#11110011B ; 2B=1,2G=1
ORL LCDDATA3,#00001100B
ANL LCDDATA4,#11110011B ; 2A=0,2F=1
ORL LCDDATA4,#00000100B
LJMP SPEEDTAB2OUT
SPEEDTAB2F: ;===5
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001000B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00000100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001100B
LJMP SPEEDTAB2OUT
SPEEDTAB2G: ;===6
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001100B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00000100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001100B
LJMP SPEEDTAB2OUT
SPEEDTAB2H: ;===7
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00000000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001000B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00001000B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001000B
LJMP SPEEDTAB2OUT
SPEEDTAB2I: ;===8
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001100B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00001100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001100B
LJMP SPEEDTAB2OUT
SPEEDTAB2J: ;===9
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=0
ORL LCDDATA2,#00001000B
ANL LCDDATA3,#11110011B ; 2B=1,2G=1
ORL LCDDATA3,#00001100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001100B
LJMP SPEEDTAB2OUT
SPEEDTAB2K: ;===A
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00000000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001100B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00001100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001100B
LJMP SPEEDTAB2OUT
SPEEDTAB2L: ;===B
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001100B
ANL LCDDATA3,#11110011B ; 2B=0,2G=1
ORL LCDDATA3,#00000100B
ANL LCDDATA4,#11110011B ; 2A=0,2F=1
ORL LCDDATA4,#00000100B
LJMP SPEEDTAB2OUT
SPEEDTAB2M: ;===C
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=0,2E=1
ORL LCDDATA2,#00000100B
ANL LCDDATA3,#11110011B ; 2B=0,2G=0
ORL LCDDATA3,#00000000B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00001100B
LJMP SPEEDTAB2OUT
SPEEDTAB2N: ;===D
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00001100B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00001100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
ORL LCDDATA4,#00000000B
LJMP SPEEDTAB2OUT
SPEEDTAB2O: ;===E
ANL LCDDATA1,#11110111B ; 2D=1
ORL LCDDATA1,#00001000B
ANL LCDDATA2,#11110011B ; 2C=1,2E=1
ORL LCDDATA2,#00000100B
ANL LCDDATA3,#11110011B ; 2B=1,2G=0
ORL LCDDATA3,#00000100B
ANL LCDDATA4,#11110011B ; 2A=1,2F=1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -