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

📄 lcdspeedmeter.asm

📁 LCD转速表源代码
💻 ASM
📖 第 1 页 / 共 3 页
字号:
						ORL				LCDDATA4,#00001100B
						LJMP			SPEEDTAB2OUT
SPEEDTAB2P:																;===F
						ANL				LCDDATA1,#11110111B				; 2D=1
						ORL				LCDDATA1,#00000000B
						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
						ORL				LCDDATA4,#00001100B
						LJMP			SPEEDTAB2OUT
SPEEDTAB2OUT:
						MOV				A,RPMSPEED0
						SWAP			A
						ANL				A,#0FH
						RL				A
						RL				A
						MOV				DPTR,#SPEEDTAB3
						JMP				@A+DPTR
SPEEDTAB3:
						NOP
						LJMP			SPEEDTAB3A
						NOP
						LJMP			SPEEDTAB3B
						NOP
						LJMP			SPEEDTAB3C
						NOP
						LJMP			SPEEDTAB3D
						NOP
						LJMP			SPEEDTAB3E
						NOP
						LJMP			SPEEDTAB3F
						NOP
						LJMP			SPEEDTAB3G
						NOP
						LJMP			SPEEDTAB3H
						NOP
						LJMP			SPEEDTAB3I
						NOP
						LJMP			SPEEDTAB3J
						NOP
						LJMP			SPEEDTAB3K
						NOP
						LJMP			SPEEDTAB3L
						NOP
						LJMP			SPEEDTAB3M
						NOP
						LJMP			SPEEDTAB3N
						NOP
						LJMP			SPEEDTAB3O
						NOP
						LJMP			SPEEDTAB3P
SPEEDTAB3A:																;===0
						JB				FZERO3,SPEEDTAB3A0
						ORL				LCDDATA1,#00100000B				; D=1
						ORL				LCDDATA2,#00110000B				; C=1,E=1
						ANL				LCDDATA3,#11001111B				; B=1,G=0
						ORL				LCDDATA3,#00100000B
						ORL				LCDDATA4,#00110000B				; A=1,F=1
						LJMP			SPEEDTAB3OUT
SPEEDTAB3A0:
						ANL				LCDDATA1,#11011111B				; D=0
						ANL				LCDDATA2,#11001111B				; C=0,E=0
						ANL				LCDDATA3,#11001111B				; B=0,G=0
						ANL				LCDDATA4,#11001111B				; A=0,F=0
						LJMP			SPEEDTAB3OUT
SPEEDTAB3B:																;===1
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00000000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=0
						ORL				LCDDATA2,#00100000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00100000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00000000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3C:																;===2
						ORL				LCDDATA1,#00100000B				; 2D=1
						ANL				LCDDATA2,#11001111B				; 2C=0,2E=1
						ORL				LCDDATA2,#00010000B
						ORL				LCDDATA3,#00110000B				; 2B=1,2G=1
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=0
						ORL				LCDDATA4,#00100000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3D:																;===3
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00100000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00110000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00100000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3E:																;===4
						ANL				LCDDATA1,#11011111B				; 2D=0
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=0
						ORL				LCDDATA2,#00100000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=1
						ORL				LCDDATA3,#00110000B
						ANL				LCDDATA4,#11001111B				; 2A=0,2F=1
						ORL				LCDDATA4,#00010000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3F:																;===5
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00100000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00010000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3G:																;===6
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00110000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00010000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3H:																;===7
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00000000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00100000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00100000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00100000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3I:																;===8
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00110000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00110000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3J:																;===9
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00100000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00110000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3K:																;===A
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00000000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00110000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00110000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3L:																;===B
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00110000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00010000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00010000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3M:																;===C
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00010000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00000000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3N:																;===D
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00110000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00110000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00000000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3O:																;===E
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00100000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00010000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00010000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3P:																;===F
						ANL				LCDDATA1,#11011111B				; 2D=1
						ORL				LCDDATA1,#00000000B
						ANL				LCDDATA2,#11001111B				; 2C=1,2E=1
						ORL				LCDDATA2,#00010000B
						ANL				LCDDATA3,#11001111B				; 2B=1,2G=0
						ORL				LCDDATA3,#00010000B
						ANL				LCDDATA4,#11001111B				; 2A=1,2F=1
						ORL				LCDDATA4,#00110000B
						LJMP			SPEEDTAB3OUT
SPEEDTAB3OUT:
						MOV				A,RPMSPEED0
						ANL				A,#0FH
						RL				A
						RL				A
						MOV				DPTR,#SPEEDTAB4
						JMP				@A+DPTR
SPEEDTAB4:
						NOP
						LJMP			SPEEDTAB4A
						NOP
						LJMP			SPEEDTAB4B
						NOP
						LJMP			SPEEDTAB4C
						NOP
						LJMP			SPEEDTAB4D
						NOP
						LJMP			SPEEDTAB4E
						NOP
						LJMP			SPEEDTAB4F
						NOP
						LJMP			SPEEDTAB4G
						NOP
						LJMP			SPEEDTAB4H
						NOP
						LJMP			SPEEDTAB4I
						NOP
						LJMP			SPEEDTAB4J
						NOP
						LJMP			SPEEDTAB4K
						NOP
						LJMP			SPEEDTAB4L
						NOP
						LJMP			SPEEDTAB4M
						NOP
						LJMP			SPEEDTAB4N
						NOP
						LJMP			SPEEDTAB4O
						NOP
						LJMP			SPEEDTAB4P
SPEEDTAB4A:																;===0
						ORL				LCDDATA1,#10000000B				; D=1
						ORL				LCDDATA2,#11000000B				; C=1,E=1
						ANL				LCDDATA3,#00111111B				; B=1,G=0
						ORL				LCDDATA3,#10000000B
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4B:																;===1
						ANL				LCDDATA1,#01111111B				; D=0
						ANL				LCDDATA2,#00111111B				; C=1,E=0
						ORL				LCDDATA2,#10000000B
						ANL				LCDDATA3,#00111111B				; B=1,G=0
						ORL				LCDDATA3,#10000000B
						ANL				LCDDATA4,#00111111B				; A=0,F=0
						LJMP			SPEEDTAB4OUT
SPEEDTAB4C:																;===2
						ORL				LCDDATA1,#10000000B				; D=1
						ANL				LCDDATA2,#00111111B				; C=0,E=1
						ORL				LCDDATA2,#01000000B
						ORL				LCDDATA3,#11000000B				; B=1,G=1
						ANL				LCDDATA4,#00111111B				; A=1,F=0
						ORL				LCDDATA4,#10000000B
						LJMP			SPEEDTAB4OUT
SPEEDTAB4D:																;===3
						ORL				LCDDATA1,#10000000B				; D=1
						ANL				LCDDATA2,#00111111B				; C=1,E=0
						ORL				LCDDATA2,#10000000B
						ORL				LCDDATA3,#11000000B				; B=1,G=1
						ANL				LCDDATA4,#00111111B				; A=1,F=0
						ORL				LCDDATA4,#10000000B
						LJMP			SPEEDTAB4OUT
SPEEDTAB4E:																;===4
						ANL				LCDDATA1,#01111111B				; D=0
						ANL				LCDDATA2,#00111111B				; C=1,E=0
						ORL				LCDDATA2,#10000000B
						ORL				LCDDATA3,#11000000B				; B=1,G=1
						ANL				LCDDATA4,#00111111B				; A=0,F=1
						ORL				LCDDATA4,#01000000B
						LJMP			SPEEDTAB4OUT
SPEEDTAB4F:																;===5
						ANL				LCDDATA1,#01111111B				; D=1
						ORL				LCDDATA1,#10000000B
						ANL				LCDDATA2,#00111111B				; C=1,E=0
						ORL				LCDDATA2,#10000000B
						ANL				LCDDATA3,#00111111B				; B=0,G=1
						ORL				LCDDATA3,#01000000B
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4G:																;===6
						ORL				LCDDATA1,#10000000B				; D=1
						ORL				LCDDATA2,#11000000B				; C=1,E=1
						ANL				LCDDATA3,#00111111B				; B=0,G=1
						ORL				LCDDATA3,#01000000B
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4H:																;===7
						ANL				LCDDATA1,#01111111B				; D=0
						ANL				LCDDATA2,#00111111B				; C=1,E=0
						ORL				LCDDATA2,#10000000B
						ANL				LCDDATA3,#00111111B				; B=1,G=0
						ORL				LCDDATA3,#10000000B
						ANL				LCDDATA4,#00111111B				; A=1,F=0
						ORL				LCDDATA4,#10000000B
						LJMP			SPEEDTAB4OUT
SPEEDTAB4I:																;===8
						ORL				LCDDATA1,#10000000B				; D=1
						ORL				LCDDATA2,#11000000B				; C=1,E=1
						ORL				LCDDATA3,#11000000B				; B=1,G=1
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4J:																;===9
						ORL				LCDDATA1,#10000000B				; D=1
						ANL				LCDDATA2,#00111111B				; C=1,E=0
						ORL				LCDDATA2,#10000000B
						ORL				LCDDATA3,#11000000B				; B=1,G=1
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4K:																;===A
						ANL				LCDDATA1,#01111111B				; 2D=0
						ORL				LCDDATA2,#11000000B				; 2C=1,2E=1
						ORL				LCDDATA3,#11000000B				; 2B=1,2G=1
						ORL				LCDDATA4,#11000000B				; 2A=1,2F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4L:																;===B
						ORL				LCDDATA1,#10000000B				; D=1
						ORL				LCDDATA2,#11000000B				; C=1,E=1
						ANL				LCDDATA3,#00111111B				; B=0,G=1
						ORL				LCDDATA3,#01000000B
						ANL				LCDDATA4,#00111111B				; A=0,F=1
						ORL				LCDDATA4,#01000000B
						LJMP			SPEEDTAB4OUT
SPEEDTAB4M:																;===C
						ORL				LCDDATA1,#10000000B				; D=1
						ANL				LCDDATA2,#00111111B				; C=0,E=1
						ORL				LCDDATA2,#01000000B
						ANL				LCDDATA3,#00111111B				; B=0,G=0
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4N:																;===D
						ORL				LCDDATA1,#10000000B				; D=1
						ORL				LCDDATA2,#11000000B				; C=1,E=1
						ORL				LCDDATA3,#11000000B				; B=1,G=1
						ANL				LCDDATA4,#00111111B				; A=0,F=0
						LJMP			SPEEDTAB4OUT
SPEEDTAB4O:																;===E
						ORL				LCDDATA1,#10000000B				; D=1
						ANL				LCDDATA2,#00111111B				; C=0,E=1
						ORL				LCDDATA2,#01000000B
						ANL				LCDDATA3,#00111111B				; B=0,G=1
						ORL				LCDDATA3,#01000000B
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4P:																;===F
						ANL				LCDDATA1,#01111111B				; D=0
						ANL				LCDDATA2,#00111111B				; C=0,E=1
						ORL				LCDDATA2,#01000000B
						ANL				LCDDATA3,#00111111B				; B=0,G=1
						ORL				LCDDATA3,#01000000B
						ORL				LCDDATA4,#11000000B				; A=1,F=1
						LJMP			SPEEDTAB4OUT
SPEEDTAB4OUT:
						RET
;*******************************************************************************
;** 子程序名:H2B20
;** 功    能:20位十六进制整数转换成三字节BCD码整数
;** 入口条件:待转换的双字节十六进制整数在R5、R6、R7中。
;** 出口信息:转换后的三字节BCD码整数在R2、R3、R4中。
;** 影响资源:PSW、A、R1~R7 堆栈需求: 2字节
;*******************************************************************************
H2B20:
						CLR				A								; BCD码初始化
						MOV				R2,A
						MOV				R3,A
						MOV				R4,A
						MOV				R1,#14H							; 转换20位十六进制整数
						MOV				A,R5							; 整体左移4位
						SWAP			A
						ANL				A,#0F0H
						MOV				R5,A
						MOV				A,R6
						SWAP			A
						ANL				A,#0FH
						ORL				A,R5
						MOV				R5,A
						MOV				A,R6
						SWAP			A
						ANL				A,#0F0H
						MOV				R6,A
						MOV				A,R7
						SWAP			A
						ANL				A,#0FH
						ORL				A,R6
						MOV				R6,A
						MOV				A,R7
						SWAP			A
						MOV				R7,A
HB3:
						MOV				A,R7							; 从高端移出待转换数的一位到CY中
						RLC				A
						MOV				R7,A
						MOV				A,R6
						RLC				A
						MOV				R6,A
						MOV				A,R5
						RLC				A
						MOV				R5,A
						MOV				A,R4							; BCD码带进位自身相加,相当于乘2
						ADDC			A,R4
						DA				A								; 十进制调整
						MOV				R4,A
						MOV				A,R3
						ADDC			A,R3
						DA				A
						MOV				R3,A
						MOV				A,R2
						ADDC			A,R2
						DA				A
						MOV				R2,A							; 双字节十六进制数的万位数不超过6,不用调整
						DJNZ			R1,HB3							; 处理完16BIT
						RET
;******************************************************************************
;********************** END OF FILE *******************************************
;******************************************************************************
                        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -