发布时间 : 星期一 文章LCD1602汇编显示程序更新完毕开始阅读3ae09375a417866fb84a8ecb
RS BIT P2.0 ;定义RS为P2.0 RW BIT P2.1 ;定义RW为P2.1 E BIT P2.2 ;定义E为P2.2 ORG 0000H SJMP START ORG 0030H START:
LCALL LCDINIT
MAIN:
MOV A,#80H ;显示开及光标设置 LCALL BUSY LCALL WRTC
MOV R2,#04H
MOV DPTR,#TAB1 LCALL DELAY LCALL WRTD
MOV A,#0C0H ;显示开及光标设置 LCALL BUSY LCALL WRTC MOV R2,#04H
MOV DPTR,#TAB2 LCALL DELAY LCALL WRTD LCALL DELAY1 LCALL DELAY1 MOV A,#01H ;清屏 LCALL BUSY LCALL WRTC MOV A,#80H ;显示开及光标设置 LCALL BUSY LCALL WRTC
MOV R2,#0FH
MOV DPTR,#TAB4 LCALL DELAY LCALL WRTD LCALL DELAY1
LCALL DELAY1 MOV A,#01H ;清屏 LCALL BUSY LCALL WRTC
LJMP MAIN
;***************初始化***************** LCDINIT:
LCALL DELAY ;延时15ms LCALL DELAY LCALL DELAY
MOV A,#38H ;显示模式设置(8位数据线,16*2 5*7点阵) LCALL WRTC
LCALL DELAY ;延时5ms
MOV A,#38H LCALL WRTC
LCALL DELAY ;延时5ms
MOV A,#38H LCALL WRTC
LCALL DELAY ;延时5ms
MOV A,#38H LCALL BUSY LCALL WRTC MOV A,#08H LCALL BUSY LCALL WRTC
MOV A,#01H ;清屏 LCALL BUSY LCALL WRTC
MOV A,#06H ;显示光标移动设置 LCALL BUSY LCALL WRTC
MOV A,#0CH ;示开关控制,显示开,无光标,不闪烁。 LCALL BUSY
LCALL WRTC MOV A,#40H ;写CGRAM地址. LCALL BUSY LCALL WRTC
MOV R2,#40H
MOV DPTR,#TAB3;写CGRAM字模. LCALL BUSY LCALL WRTD
RET
;***************写命令子程序***************** WRTC:
CLR RS CLR RW CLR E MOV P0,A
LCALL DELAY ;延时5ms SETB E
LCALL DELAY ;延时5ms CLR E RET
;*****************写数据子程序*************** WRTD: MOV R1,#00H AGAIN: MOV A,R1
MOVC A,@A+DPTR SETB RS CLR RW CLR E MOV P0,A LCALL DELAY SETB E
LCALL DELAY CLR E INC R1 MOV A,R1
MOV B,R2 ; 数据写完没有. CJNE A,B,AGAIN RET
;*****************判忙子程序****************** BUSY:
PUSH ACC CLR RS SETB RW TT0: SETB E MOV A,P0 CLR E
ANL A,#80H JNZ TT0 POP ACC RET TAB1:
DB 00H,01H,02H,03H TAB2:
DB 04H,05H,06H,07H
TAB3:
DB 03H,07H,0fH,1FH,1FH,1FH,1FH,1FH DB 18H,1EH,1FH,1FH,1FH,1FH,1FH,1FH DB 07H,1FH,1FH,1FH,1FH,1FH,1FH,1FH DB 10H,18H,1cH,1EH,1EH,1EH,1EH,1EH DB 0FH,07H,03H,01H,00H,00H,00H,00H DB 1fH,1FH,1FH,1FH,1FH,0FH,07H,01H DB 1fH,1FH,1FH,1FH,1FH,1CH,18H,00H DB 1CH,18H,10H,00H,00H,00H,00H,00H TAB4: DB \
DELAY: MOV R6,#10 D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RET
DELAY1: MOV R3,#1000 D2: MOV R4,#1000 DJNZ R4,$ DJNZ R3,D2 RET END