- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LCD1602液晶显示C程序
1、关于1602液晶的电气参数
???????? 一般市场上的1602液晶使用的驱动器为HD44780U或HD44780S,市场上大部分液晶用的是后者。HD44780S的供电电压为5V±10%,而HD44780U的供电电压为2.7V~5.5V。也就是说,绝大部分1602液晶只能工作在5V电压下,其供电电压必须为5V。经过试验发现,1602液晶的供电虽然必须为5V,但其控制总线和数据总线可以用3.3V电平(因为对于TTL电平,一般大于2.5V以上都算高电平,不过最可靠的是大于3.6V),只不过在3.3V电平下,数据的通信速度会大大降低,这一点需要在写驱动时注意。需要时,可以将MCU的IO配置为漏极开路方式,用上拉电阻拉到5V电平;实在不能配置为漏极开路方式时,请查阅MCU的电气参数,在允许的条件下,直接使用电阻弱上拉也可以。
2、 硬件连接
1602液晶可以使用4位或8位通信模式,通信可以是双向的或单向的,双向通信主要是为了读取LCD忙标志和AC地址寄存器和DDRAM和CGRAM中的值,一般用处不大,因为1602不支持点阵绘图功能。在连接时,注意4位通信方式下,LCD只使用DB7~DB4,一般情况下会使用MCU某端口的高4位或低4位与之连接,注意写驱动时在必要的情况下对端口的其它几位要保护,防止破坏其数据;当然如果没有使用其它4位时则不必要保护(奇怪,不使用其它4位干嘛用4位通信方式嘛?)。还要注意的是,如果需要双向通信,则必须选择既能做输入又能做输出的IO口,特别是对于RS、RW和E这三条控制线,若能选择支持位寻址的IO口则可以方便编程。
3、底层驱动问题
通用1602液晶的时序如图:
(1)、写时序
?????????(2)、读时序
总的说来,按照这个时序图来编写驱动程序是不会出什么问题的,只是要深刻理解时序图中各参数的涵义。编程中要特别关注E这根控制线。
写操作的时序应该是:①、RS=0(写指令寄存器)或RS=1(写数据寄存器);②、RW=0(写操作);③、将数据写到数据线上;④、E=1;⑤、E=0 。在写操作时,LCD是在E的下降沿将数据锁存,即写操作时E下降沿有效。但尽管这样,为防止LCD出错,在E变为高电平后,尽量不要再改变数据线上的数据值。即最好按照上述的时序来操作。
读操作的时序应该是:①、RS=0(读忙标志BF和地址计数器AC)或RS=1(读数据寄存器);②、RW=1(读操作);③、E=1;④、从数据线上读取数据;⑤、E=0 。在读操作时,E一旦变为高电平,LCD马上将数据发到数据线上并保持,一直到E=0为止。即写操作时E高电平有效。
一般如果时序没有错,不会出什么问题。绝大部分问题都是延时不够造成的,注意看上面两个图表,有许多时间参数的。要注意的是这些参数的条件,如“Vdd=5V5V±5%,Vss=0,Ta=25℃”,其它条件下这些指标都要留有余量。此外,电源电压、MCU数据线的电平、驱动能力、PCB布局… …均会影响速度,注意留有足够的余量,建议先留大的余量,调通后再逐渐减小延时。
4、 1602液晶的初始化
通用1602液晶的初始化需要注意一个问题,即一定要在最开始写入功能设定指令,该指令用以控制LCD的数据通信位数,及显示行数和字型。并且强烈建议将此指令写两次,因为LCD启动后并不知道您使用的是4位数据通信方式还是8位方式,所以它总是先执行高4位的指令,也就是说第一次写入该指令时,低四位的数据可能被忽略(这是我根据使用其它液晶的猜测)。总之为了可靠,最好写两遍该指令。
下面是1602的接线
1602液晶显示C程序
* 描??? 述 : *??????????????? 此程序实现,完成液晶的驱动程序,可以显示任意的ASCII字符****************************************************************************/#include reg52.h //调用头文件(单片机内部的寄存器定义)
/******本段为硬件I/O口定义********/sbit KEY0?? = P0 ^ 0; //KEY和发光管复用,请将跳线插到KEY端sbit KEY1?? = P0 ^ 1;sbit KEY2?? = P0 ^ 2;sbit KEY3?? = P0 ^ 3;sbit DIG0?? = P0 ^ 4; //数码管位0sbit DIG1?? = P0 ^ 5; //数码管位1
sbit BUZZ?? = P3 ^ 3; //蜂鸣器sbit LCD_RW = P3 ^ 6; sbit LCD_RS = P3 ^ 7; sbit LCD_E = P3 ^ 4;
#define LED_SEG??? P1 //数码管#define L
您可能关注的文档
最近下载
- 国美家电卖场管理部管理制度精选.doc
- 警示教育党风廉政建设作风整治专题学习.doc VIP
- 2006年色漆、清漆和色漆与清漆用原材料取样.pdf VIP
- 天翼云电脑知识测试卷含答案.doc
- 2024厚植家国情怀 青春告白祖国建国75周年课件.ppt VIP
- 人教版小学二年级上册数学全册预习单预习学案.docx
- 必考点04全等三角形的性质与判定-【题型·技巧培优系列】2022-2023学年八年级数学上册精选专题(人教版)(原卷版+解析).docx VIP
- 标点符号使用公开课省公开课一等奖全国示范课微课金奖PPT课件.pptx VIP
- 《洁净室施工及验收规范》(GB50591-2010).pdf
- 移动式操作平台的方案.doc VIP
文档评论(0)