单片机LCD显示

单片机LCD显示
单片机LCD显示

目录

1、设计题目

2、设计要求及实现功能

3、硬件电路原路图

4、软件流程图

5、程序代码

6、实验结果

7、实验总结

8、参考文献

一、设计题目

题目三:液晶LCD显示

二、设计要求及实现功能

要求:用实验台上的

16列*1行的字符LCD显示器显示两屏字符:Welcome!Design By 姓名

实现功能:编写完程序后,运行时可以在

LCD字符显示器上显示:Welcome!

Design By 姓名

三、硬件电路原理图

字符LCD 模块是一种专用显示字符、数字或符号的液晶显示模块。这种模块每一个符号由5×7、5×8 或5×11 的点阵像素排列组成的,字符间隔为一个点距,行间隔为一个行距,模块本身附有显示驱动控制电路,可以与单片机的I/O 口线直接连接,使用方便。目前广泛使用的字符LCD 模块其显示驱动控制电路多是HD44780 或兼容品,其接口信号、操作指令相同。本实验选用的字符LCD 模块是香港精电公司生产的规格为16×1 的字符LCD 模块,可以在一行上显示16 个字符。该模块与8051 单片机I/O 口线直接连接的电路如图1所示。

字符LCD模块的接口信号:

①GND、VCC:电源,VCC=+5V。

②Vee:液晶显示对比度调节电压输入。可以通过调节LCD 左上角的多圈电位器RW2 来调节。

③DB7~ DB0:数据总线,三态。用于与模块之间传送信息。这里连接P1.0~P1.7。以下3 个信号为控制信号:

④RS:寄存器选择信号,输入。这里连接P3.3(INT1)。模块中有两类寄存器,一类是指令寄存器,用于写入指令;另一类是数据寄存器,用于写入的数据。RS=0,选择指令寄存器。RS=1,选择数据寄存器。

⑤R/W :读/写信号,输入。这里连接P3.4(T0)。R/W =1,读操作;R/W =0,写操作

⑥E:使能信号,输入。模块的读/写控制信号。这里连接P3.5(T1)。读操作时,

E 为高电平时,模块的数据或状态输出至DB7~DB0 上,供单片机读取;写操作时,E 信号的下降沿将单片机送至数据总线上的数据或指令写入模块中。这里3 个控制信号,均通过单片机的I/O 口线产生。

I/O口连接原理图四、软件流程图

五、程序源代码

ORG 0H

RS EQU P3.3 ;寄存器选择信号RW EQU P3.4 ;读/写控制信号E EQU P3.5 ;使能信号

COM EQU 20H ;命令字暂存单元CLR RS

CLR RW

MOV P1,#30H ;向LCD写入3条30H指,使之复位?

MOV R7,#03H

INT: SETB E

CLR E

CALL DELAY

DJNZ R7,INT

MOV P1,#38H ;设置8位数据总线方式

SETB E

CLR E

MOV COM,#01H 清屏指令01H

CALL PR1 ;调向LCD写指令子程序

MOV COM,#06H ;设置输入方式:AC加1计数,光标右移1个字符? CALL PR1

MOV COM,#0FH ;设置显示方式:开显示,光标显示;闪烁

CALL PR1

LOOP1: MOV R6,#16; ;R6作字符计数器

MOV DPTR,#DATA1

MOV R4,#0

DISPLY: CALL F_BUSY ;调判忙子程序

MOV A,R4

MOVC A,@A+DPTR ;取数

CLR RW

MOV P1,A

SETB E

CLR E

INC R4

CJNE R4,#08h,NEXT;不到显示位9?转

MOV COM,#0C0H ;设置地址40H至AC,调整显示位置为9 CALL PR1

NEXT: DJNZ R6,DISPLY

CALL DELAY

CALL DELAY

CALL DELAY

MOV COM,#01H ;清屏指令01H

CALL PR1 ;调向LCD写指令子程序

MOV R6,#16; ;R6作字符计数器

MOV DPTR,#DATA2

MOV R4,#0

DISPLY1:CALL F_BUSY ;调判忙子程序

MOV A,R4

MOVC A,@A+DPTR ;取数

CLR RW

MOV P1,A

SETB E

CLR E

INC R4

CJNE R4,#08h,NEXT1;不到显示位9?转

MOV COM,#0C0H ;设置地址40H至AC,调整显示位置为9 CALL PR1

NEXT1: DJNZ R6,DISPLY1

CALL DELAY

CALL DELAY

CALL DELAY

MOV COM,#01H ;清屏指令01H

CALL PR1 ;调向LCD写指令子程序

AJMP LOOP1

PR1: CALL F_BUSY ;写指令子程序

CLR RW

MOV P1,COM

SETB E

CLR E RET

F_BUSY: CLR RS ;判忙子程序

SETB RW

F_BY1: MOV P1,#0FFH

SETB E

MOV A,P1

CLR E

JB ACC.7,F_BY1;忙转?

RET

DELAY: MOV R0,#0FFH ;延时子程序DLY0: MOV R1,#0FFH

DLY1: DJNZ R1,DLY1

DJNZ R0,DLY0

RET

DATA1: DB 20H,'Welcome! design',20H DATA2: DB 'by zhangjinkai',20H

END

六、实验结果

七、总结

实验是一个知识巩固与自我提升的过程。在试验中我们会遇到很多自己匪夷所思的问题,这也就表明了我们对所学的知识还有很多错误和不足之处。经过实验,我们对所实验的内容,所使用的方法及其涉及的各方面知识等有了更深刻更全面的了解。同时,实验也是一个发现自我,认识自我,改正自我,完善自我的过程。

通过此次液晶LCD显示实验,我真正领略到了科技的神奇性与伟大性,同时又伴随着无尽的乐趣。虽然实验中遇到了很多问题与挫折,但我所体会到的是探索中的神秘感与各种问题解决后的成就感,这就使我们有了继续深究下去的决心和毅力,推动着我们一步步走向成功。

八、参考文献

《单片机中级教程》

《TMC-2开放式单片机实验说明书》

相关主题
相关文档
最新文档