ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:504.50KB ,
资源ID:10049447      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10049447.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LCD1602工作原理及与51单片机的接口电路.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

LCD1602工作原理及与51单片机的接口电路.doc

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

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

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

4、功能 RS R/W D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 0 0 1清除屏幕 清除屏幕,并把光标移至左上角0 0 0 0 0 0 0 0 1 x光标回到原点 光标移至左上角,显示内容不变0 0 0 0 0 0 0 1 I/D S设定进入模式I/D=1:地址递增,I/D=0:地址递减 S=1:开启显示屏,S=0:关闭显示屏0 0 0 0 0 0 1 D C B显示器开关 D=1:开启显示幕 C=1:开启光标 B=1:光标所在位置的字符闪烁0 0 0 0 0 1 S/C R/L x x移位方式S/C=0、R/L=0:光标左移;S/C=0、R/L=1:光标右移 S

5、/C=1、R/L=0:字符和光标左移;S/C=1、R/L=1:字符和光标右移0 0 0 0 1 DL N F x x功能设定DL=1:数据长度为 8 位,DL=0:数据长度为 4 位 N=1:双列字,N=0:单列字;F=1:5x10 字形,F=0:5x7 字形0 0 0 1 CG RAM 地址CG RAM 地址设定 将所要操作的 CG RAM 地址放入地址计数器0 0 1 DD RAM 地址DD RAM 地址设定 将所要操作的 DD RAM 地址放入地址计数器0 1 BF 地址计数器内容忙碌标志位BF 读取地址计数器,并查询 LCM 是否忙碌,BF 表示 LCM 忙碌1 0 写入数据写入数据

6、将数据写入 CG RAM 或 DD RAM1 1 读取数据读取数据 读取 CG RAM 或 DD RAM 的数据图 10-57 1602LCD 内部显示地址 例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。 1602

7、 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如图 10-58 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B (41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A ”开始结束判断 L C D 是否忙碌 ?r s = 1 ;r w = 0 ;e p = 0 ;P 1 = d a t ;延时 4 u se p = 1 ;延时 4 u se p = 0 ;否是图表 1 写数据流程开始结束判断 L C D 是否忙碌 ?

8、r s = 0 ;r w = 0 ;e p = 0 ;P 1 = d a t ;延时 4 u se p = 1 ;延时 4 u se p = 0 ;否是图表 2 写命令流程开始结束r s = 0 ;r w = 1 ;e p = 1 ;P 1 = d a t ;延时 4 u sr e s u l t = ( b i t ) ( P 1 e p = 0 ;返回 r e s u l t图表 3 判断 LCD 是否忙碌,忙则返回 1#include #include sbit rs= P35; /寄存器类型,1 表示数据寄存器,2 表示指令寄存器sbit rw = P36; /读写选择,1 表示读,0

9、 表示写sbit ep = P37; /读写使能,下降沿使能void delay(unsigned char ms) /延时 n ms unsigned char i; while(ms-) for(i = 0; i123; i+) ; bit lcd_bz() /判断 LCD 是否忙碌,1 忙碌 bit result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P1 ep = 0; return result; void lcd_wcmd(unsigned char cmd) /写指令

10、 while(lcd_bz();/判断 LCD 是否忙碌 rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); P1 = cmd; _nop_(); _nop_(); _nop_(); _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

11、; 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 main(void) lcd_init();/ 初始化 LCD delay(10); lcd_pos(0x01);/设置显示位置 /i = 0; while(1)lcd_wstr(“abcdefg“);lcd_pos(0x42);lcd_wstr(“abcdefg“);lcd_wcmd(0x01);delay(3);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报