📄 text1.asm
字号:
RS EQU P2.1 ;LCD 寄存器选择信号
RW EQU P2.2 ;LCD 读/写选择信号
E EQU P2.3 ;LCD enable
COM EQU 50H
DAT EQU 51H
ORG 0000H
LJMP MAIN
ORG 0013H
LCALL READ ;READ 0808
RETI
ORG 0030H
MAIN:
LCALL LINT ;LCD INITIAL
KK: MOV SP,#60H
AINT:
MOV TCON,#04H
MOV IE,#084H
MOV R2,#0
MOV DPTR,#0F0FFH
MOV A,R2
MOVX @DPTR,A ;START 0808
LCALL DELAY ;WAIT TO INTRRUPT 1
DJNZ R3,AINT ;再次测量
;**************BEGIN TO PROCESS DIGITAL****************
MULT:
MOV B,#0C4H
MUL AB
MOV R3,A
MOV R2,B
DISPLAY:
MOV R0,#00H
MOV R7,#10H
MOV R6,#27H
LP1:
MOV A,R3
CLR C
SUBB A,R7
MOV R5,A
MOV A,R2
SUBB A,R6
MOV R4,A
JC NEXT0
INC R0
MOV A,R5
MOV R3,A
MOV A,R4
MOV R2,A
AJMP LP1
NEXT0:
MOV 30H,R0
AJMP LOOP1
LOOP1:
MOV R0,#00H
MOV R6,#03H
MOV R7,#0E8H
LP2:
MOV A,R3
CLR C
SUBB A,R7
MOV R5,A
MOV A,R2
SUBB A,R6
MOV R4,A
JC NEXT1
INC R0
MOV A,R5
MOV R3,A
MOV A,R4
MOV R2,A
AJMP LP2
NEXT1:
MOV 31H,R0
AJMP LOOP2
LOOP2:
MOV R0,#00H
MOV R6,#00H
MOV R7,#64H
LP3:
MOV A,R3
CLR C
SUBB A,R7
MOV R5,A
MOV A,R2
SUBB A,R6
MOV R4,A
JC NEXT2
INC R0
MOV A,R5
MOV R3,A
MOV A,R4
MOV R2,A
AJMP LP3
NEXT2:
MOV 32H,R0
MOV 34H,#10
MOV 35H,#11
MOV 36H,#12
MOV 37H,#13
AJMP LOOP3
;******************求第四位***************************
LOOP3:
MOV R0,#00H
MOV R6,#00H
MOV R7,#0AH
LP4:
MOV A,R3
CLR C
SUBB A,R7
MOV R5,A
MOV A,R2
SUBB A,R6
MOV R4,A
JC NEXT3
INC R0
MOV A,R5
MOV R3,A
MOV A,R4
MOV R2,A
AJMP LP4
NEXT3:
MOV 33H,R0
;***************************end**********************
LCALL WPAD
;************************PROCES END************
;******************显示*************************
MOV COM,#82H ;从第1行第2位开始,设置DDRAM地址
LCALL PR1 ;写入
MOV R4,#12 ;第1行共9个字符
MOV DPTR,#ZIFU ;指向显示字符代码首地址
LCALL WP3 ;第1行字符代码写入DDAM
MOV COM,#0C1H ;设置第2行DDRAM地址
LCALL PR1 ;write
MOV R4,#015 ;第2行共6个字符
LCALL WP3 ;第2行字符代码写入DDRAM
LCALL DELAY0
AJMP KK
;********************program end**********************
ZIFU: DB 04H,05H,"10509:"," ",06H," ",07H;显示字符
DB "Voltage=", 00H,02EH,01H,02H,03H,076H,20H
;*****************0808initial**********************
;*****************自定义汉字*******************
WPAD: MOV COM,#40H
LCALL PR1
MOV R1,#30H
MOV R4,#08H
WP2:
MOV A,@R1
MOV R3,A
MOV B,R3
MOV R5,#08H
MOV A,#08H
MUL AB
MOV R7,A
MOV DPTR,#ZIMO
WP1: MOV A,R7
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
INC DPTR
DJNZ R5,WP1
INC R1
DJNZ R4,WP2
RET
WP3: CLR A
MOVC A,@A+DPTR ;写入1字节字模数据
MOV DAT,A
LCALL PR2
INC DPTR
DJNZ R4,WP3
RET
;*****************end********************
;***********************字库*************
ZIMO: DB 0eH,11H,11H,11H,11H,11H,0eH,00H; 0
DB 04H,0CH,04H,04H,04H,04H,0EH,00H; 1
DB 0EH,11H,01H,02H,04H,08H,1FH,00H; 2
DB 1FH,02H,04H,02H,01H,11H,0EH,00H; 3
DB 02H,06H,0AH,12H,1FH,02H,02H,00H; 4
DB 0FH,08H,0EH,01H,01H,11H,0EH,00H; 5
DB 06H,08H,10H,1EH,11H,11H,0EH,00H; 6
DB 1FH,01H,02H,04H,08H,08H,08H,00H; 7
DB 0EH,11H,11H,0EH,11H,11H,0EH,00H; 8
DB 0EH,11H,11H,0FH,01H,02H,0CH,00H; 9
DB 18H,1FH,17H,15H,1FH,11H,1FH,00H; 自
DB 04H,1FH,0EH,15H,04H,0EH,04H,00H; 本
DB 0FH,15H,07H,01H,17H,11H,07H,00H; 冯
DB 04H,1FH,0CH,1FH,04H,15H,0CH,00H; 东
;***************end****************************
;*****************INTERRUPT PROGRAME************
READ:
CLR EA
MOVX A,@DPTR
RET
;******************END***************************
;***************LCD INITIAL**********************
LINT:
LCALL DELAY;
MOV COM,#38H;
LCALL PR1
MOV COM,#01H
LCALL PR1
MOV COM,#06H
LCALL PR1
MOV COM,#0CH
LCALL PR1
MOV P0,#0
RET
DELAY: MOV 4BH,#02H
MOV 4CH,#02H
DELAY1:
DJNZ 4BH,DELAY1
DJNZ 4CH,DELAY1
RET
DELAY0: MOV 4BH,#01FH
MOV 4CH,#00H
DELAY2:
DJNZ 4BH,DELAY2
DJNZ 4CH,DELAY2
RET
;***********************初始化结束*********************
;************************读忙标志and write command**********************
PR1: PUSH ACC
CLR RS
SETB RW
PR11: MOV P0,#0FFH
SETB E
LCALL DELAY
MOV A,P0 ;读lcd端口
CLR E
JB ACC.7,PR11 ;判断忙标志
CLR RW ;准备写命令
MOV P0,COM
SETB E ;write command
CLR E ;lcd enable
POP ACC
RET
;********************busy end and ready to write command*****************
;**********************写显示数据程序************************************
PR2: PUSH ACC
CLR RS
SETB RW
PR21: MOV P0,#0FFH
SETB E
LCALL DELAY
MOV A,P0
CLR E
JB ACC.7,PR21
SETB RS
CLR RW
MOV P0,DAT
SETB E
CLR E
POP ACC
RET
;*************************END*********************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -