LCD1602工作原理_第1页
LCD1602工作原理_第2页
LCD1602工作原理_第3页
LCD1602工作原理_第4页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-精选文档 -1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780 ,带背光的比不带背光的厚,是否带背光在应用中并无差别1602LCD主要技术参数:显示容量 :16 ×2 个字符芯片工作电压 :4.5 5.5V工作电流 :2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸 :2.95 ×4.35(W ×H)mm引脚功能说明1602LCD采用标准的14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如表10-13所示 :编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4

2、RS数据 / 命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表 10-13 :引脚接口说明表第 1 脚: VSS 为地电源。可编辑-精选文档 -第 2脚: VDD 接 5V 正电源。第 3脚: VL 为液晶显示器对比度调整端, 接正电源时对比度最弱, 接地时对比度最高,对比度过高时会产生“鬼影” ,使用时可以通过一个10K 的电位器调整对比度。第 4脚: RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5脚:R/W 为读写信号线, 高电平时进行读操作, 低电平时进行写操作。 当 RS

3、 和 R/W共同为低电平时可以写入指令或者显示地址,当RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚: E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚: D0 D7 为 8 位双向数据线。第 15 脚:背光源正极。第 16 脚:背光源负极。LCD 寄存器的选择ER/WRS功能说明100写入命令寄存器101写入数据寄存器110读取忙碌标志及 RAM 地址111读取 RAM 数据可编辑-精选文档 -0X不动作LCD 指令表控制线数据线指令功能RSR/WD7D6D5D4D3D2D1D000000000

4、01清除屏幕清除屏幕,并把光标移至左上角光标回到原000000001x点光标移至左上角,显示内容不变00000001I/DS设定进入模I/D=1:地址递增, I/D=0 :地址递减 S=1 :开启显示屏, S=0 :关式闭显示屏0000001DCB显示器开关D=1 :开启显示幕C=1 :开启光标B=1 :光标所在位置的字符闪烁000001S/CR/LxxS/C=0 、R/L=0: 光标左移;S/C=0 、R/L=1 :光标右移S/C=1 、R/L=0 :移位方式字符和光标左移; S/C=1 、 R/L=1 :字符和光标右移00001DLNFxxDL=1 :数据长度为8 位, DL=0 :数据长

5、度为4 位N=1 :双列字,功能设定N=0 :单列字; F=1:5x10字形, F=0 :5x7 字形CG RAM 地0001CG RAM 地址址设定将所要操作的 CG RAM地址放入地址计数器可编辑-精选文档 -DD RAM 地001DD RAM 地址址设定将所要操作的 DD RAM地址放入地址计数器忙碌标志位01BF地址计数器内容BF读取地址计数器,并查询 LCM是否忙碌, BF 表示 LCM 忙碌10写入数据写入数据将数据写入 CG RAM 或 DD RAM11读取数据读取数据读取 CG RAM 或 DD RAM 的数据图 10-57 1602LCD内部显示地址例如第二行第一个字符的地址

6、是40H ,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7 恒定为高电平1 所以实际写入的数据应该是01000000B( 40H ) +10000000B(80H)=11000000B(C0H)。可编辑-精选文档 -在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM )已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每

7、一个字符都有一个固定的代码,比如大写的英文字母“A ”的代码是01000001B( 41H ),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A ”可编辑-精选文档 -开始否判断 LCD 是否忙碌?是rs=1;rw=0;ep=0;P1=dat;延时 4usep=1;延时 4usep=0;结束图表1 写数据流程可编辑-精选文档 -开始否判断 LCD 是否忙碌?是rs=0;rw=0;ep=0;P1=dat;延时 4usep=1;延时 4usep=0;结束图表2 写命令流程可编辑-精选文档 -开始rs=0;rw=1;ep=1;P1=dat;延时 4usresult = (bit

8、)(P1 & 0x80);ep=0;返回 result结束图表3 判断 LCD 是否忙碌,忙则返回1可编辑-精选文档 -#include <reg51.h>#include <intrins.h>sbit rs= P35;/ 寄存器类型, 1 表示数据寄存器,2 表示指令寄存器sbit rw = P36;/ 读写选择, 1 表示读, 0 表示写sbit ep = P37;/ 读写使能,下降沿使能void delay(unsigned char ms)/ 延时 n ms可编辑-精选文档 -unsigned char i;while(ms-)for(i = 0; i

9、<123; i+);bit lcd_bz()/ 判断 LCD 是否忙碌, 1 忙碌bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P1 & 0x80);ep = 0;return result;可编辑-精选文档 -void lcd_wcmd(unsigned char cmd)/ 写指令while(lcd_bz();/判断LCD 是否忙碌rs = 0;rw = 0;ep = 0;_nop_();_nop_();P1 = cmd;_nop_();_nop_();_nop_(

10、);_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;可编辑-精选文档 -void lcd_pos(unsigned char pos)/ 显示地址lcd_wcmd(pos | 0x80);/ 写数据void lcd_wdat(unsigned char dat)while(lcd_bz();/判断LCD 是否忙碌rs = 1;rw = 0;ep = 0;P1 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;可编辑-精选文档 -void lcd_wstr(const unsigned char *s)/ 写字符串unsigned char i = 0;while(si != '0')lcd_wdat(si);/显示字符delay(1000);i+;void lcd_init()/LCD初始化lcd_wcmd(0x38);/ 功能设定delay(1);lcd_wcmd(0x0c);/ 显示器开关delay(1);lcd_wcmd(0x06);/ 设定进入模式delay(1);lcd_wcmd(0x01);/ 清除显示屏,把光标移至左上角delay(1);可编辑-精选文档 -void ma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论