LCD1602汇编显示程序 联系客服

发布时间 : 星期一 文章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