⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdspeedmeter.asm

📁 LCD转速表源代码
💻 ASM
📖 第 1 页 / 共 3 页
字号:
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 + -