项目61602液晶显示模块使用

上传人:宝路 文档编号:48311297 上传时间:2018-07-13 格式:PPT 页数:17 大小:2.05MB
返回 下载 相关 举报
项目61602液晶显示模块使用_第1页
第1页 / 共17页
项目61602液晶显示模块使用_第2页
第2页 / 共17页
项目61602液晶显示模块使用_第3页
第3页 / 共17页
项目61602液晶显示模块使用_第4页
第4页 / 共17页
项目61602液晶显示模块使用_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《项目61602液晶显示模块使用》由会员分享,可在线阅读,更多相关《项目61602液晶显示模块使用(17页珍藏版)》请在金锄头文库上搜索。

1、 1602 液晶显示模块应用项目6:液晶显示模块LCD1602引脚号引脚名称引脚功能含义1VSS地管脚(GND)2VDD+5V电源管脚(Vcc)3VO液晶显示驱动电 源(0V5V),可接电位器4RS数据和指令选择 控制端,RS=0:命令/状态;RS=1:数据5RW 读写控制线,R/ =0:写操作;R/ =1:读操作6E数据读写操作控制位,E线向LCD模块发 送一个脉冲,LCD 模块与单片机之间将进行一次数据交换714D0D7数据线,可以用8位连接,也可以只用高4位连接,节约单 片机资源 15A背光控制正电源16K背光控制地字符型LCD模块内部存储结构的划分LCD控制器HD44780内部有80字

2、节的显示数据存储器(显存 ),用于存储当前要求显示的字符ASCII码,各个存储单元与显示 屏上的字符位相对应,其映射关系如图所示,需要注意的是第1行 DDRAM地址与第2行DDRAM地址并不连续。如果在第二行的第3列显示字符E,请问应如何操作? 首先 定位显示字符的光标位置,根据上图的地址映射可知,字符E的 显存地址为42H;然后得到字符E的显示码为45H。将显示码45H 写入DDRAM的42H单元,即可显示字符E。字符型LCD模块控制命令字首先,LCD上电电,都必须须按照一定的时时序进进行初始化操作,主要任务务是设设置 LCD的工作方式、显显示状态态、清屏、输输入方式、光标标位置等,使用命令

3、字对对 LCD进进行初始化的流程如图图所示,根据显显示功能要求构造命令字,通过过写命令 操作完成命令字的写入时时序。LCD初始 延时15ms工作方式设置 写指令显示开及光标 状态设 置清屏返回输入方式设 置001DL N F * *设置单片机与LCD接口数据位数DL、显示行数N、字型F DL=1:8位、DL=0:4位; N=1:2行、N=0:1行 F=1:510、F=0:57 0011100038H 00001DCB设整体显示开关D、光标开关C、光标位的字符闪耀B D=1:开显示;C=0:不显示光标;B=0:光标位字符不闪烁 000011000CH清屏命令字01H,将光标设 置为第一行第一列0

4、00001 I/D S设光标移动方向并确定整体显示是否移动 I/D=1:增量方式右移、I/D=0:减量方式左移 S=1:移位、S=0:不移位 0000011006HMCU对LCD模块的基本操作模式单片机对LCD模块有四种基本操作:写命令、写数据、读状态和读数据,由 LCD1602模块三个控制引脚RS、R/ 和E的不同组合状态确定,如表5所示,结合 读操作和写操作时序,编制软件输出控制引脚脉冲电平即可产生LCD读写访问时 序。在进行写命令、写数据和读数据三种操作之前,必须先进行读状态操作,查 询忙标志。当忙标志为0时,才能进行这三种操作。 状态字格式如下,最高位的BF为忙标志位,1表示LCD正在

5、忙,0表示不忙。通过判断最高位BF的0、1状态,就可以知道LCD当前是否处于忙状态,如果LCD 一直处于忙状态,则继续查询等待,否则可进行后面的操作。BFAC6AC5AC4 AC3 AC2AC1AC0LCD模块块控制端LCD基本操作RSR/ E00写命令操作:用于初始化、清屏、光标定位等。01读状态操作:读忙标志,当忙标志为“1”时,表明LCD正在进行内部操作, 此时不能进行其它三类操作;当忙标志为“0”时,表明LCD内部操作已经结 束,可以进行其它三类操作,一般采用查询方式。10写数据操作:写入要显示的内容。11读数据操作:将显示存储区中的数据反读出来,一般比较少用。硬件连接参考电路图 单片

6、机的P1口与液晶模块的8条数据线相连,P3口的P3.0、P3.1、P3.2 分别与液晶模块的三个控制端RS、R/ 、E连接。程序举例编写1602液晶模块显示问候语“Hello Everyone”的程序/功能:1602液晶模块显示问候语“Hello Everyone” #include #include /库函数头文件,代码中引用了_nop_()函数 / 定义控制信号端口 sbit RS=P30; sbit RW=P31; sbit E= P32; / 声明调用函数 void lcd_w_cmd(unsigned char com); /写命令字函数 void lcd_w_dat(unsigne

7、d char dat); /写数据函数 unsigned char lcd_r_start(); /读状态函数 void lcd_init(); /LCD初始化函数 void delay100us(unsigned char t);/可控延时函数 void delay5us(unsigned char n);/软件实现延时函数,n*5个机器周期void main()/主 函数 unsigned char Disp=“Hello Everyone“; /定义字符数组Dispunsigned char i;P1=0xff; / 送全1到P1口lcd_init(); / 初始化LCDdelay100

8、us(255);lcd_w_cmd(0xc2); / 定位光标设置显示位置delay100us(255);for(i=0;i14;i+) / 显示字符串 lcd_w_dat(Dispi);delay100us(200);while(1); / 显示完成 /函数名:delay100us void delay100us(unsigned char t) unsigned char j,i;for(i=0;it;i+)for(j=0;j10;j+); /函数名:delay5usvoid delay5us(unsigned char n) do_nop_();_nop_();_nop_();n-;wh

9、ile(n); /函数名:lcd_init /函数功能:lcd初始化 void lcd_init() lcd_w_cmd(0x3c); / 设置工作方式lcd_w_cmd(0x0e); / 设置光标lcd_w_cmd(0x01); / 清屏lcd_w_cmd(0x06); / 设置输入方式lcd_w_cmd(0x80); / 设置初始显示位置 /函数名:lcd_r_start /函数功能:读状态字 unsigned char lcd_r_start() unsigned char s;RW=1;/RW=1,RS=0,读LCD状态delay5us(1);RS=0;delay5us(1);E=1;

10、/E端时序delay5us(1);s=P1;/从LCD的数据读状态delay5us(1);E=0;delay5us(1);RW=0;delay5us(1);return(s);/返回读取的LCD状态字 /函数名:lcd_w_cmd /函数功能:写命令字 void lcd_w_cmd(unsigned char com) unsigned char i;do / 查LCD忙操作i=lcd_r_start(); / 调用读状态字函数i=i / 与操作屏蔽掉低7位 delay100us(2);while(i!=0); / LCD忙,继续查询,否则退出循环RW=0;delay5us(1);RS=0;

11、/ RW=1,RS=0,写LCD命令字delay5us(1);E=1; /E端时序delay5us(1);P1=com; /将com中的命令字写入LCD数据口delay5us(1);E=0;delay5us(1);RW=1;delay100us(255); /函数名:lcd_w_dat /函数功能:写数据 void lcd_w_dat(unsigned char dat) unsigned char i;do / 查忙操作i=lcd_r_start();/ 调用读状态字函数i=i / 与操作屏蔽掉低7位 delay100us(2); while(i!=0); / LCD忙,继续查询,否则退出循环RW=0;delay5us(1);RS=1;/ RW=1,RS=0,写LCD命令字delay5us(1);E=1;/ E端时序delay5us(1);P1=dat;/ 将dat中的显示数据写入LCD数据口delay5us(1);E=0;delay5us(1);RW=1;delay100us(255);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号