- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
总结资料_1602显示方法
1602显示方法
先写指令构成LCD初始化。(RS端为低电平,RW端为低电平,为选择指令寄存器)
第一个指令 功能设定指令
第二个指令 显示开关控制指令
第三个指令 进入模式设置指令
第四个指令 清屏指令
这些指令就构成了LCD的初始化。
写数据 (RS端为高电平,RW端为低电平,为选择数据寄存器)
使能端E,通过使能端的电平变化把指令送入
(忙检测用延时来代替)
注意点:
(在写字符显示位置时, 因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以 实际写入的数据应该是(40H)(80H) (00H) +(80H) )
最简单的显示方法:
最直接把要显示的内容写在数组里,程序开始lcd初始化,写字符显示位置指令,然后根据显示的字符所占的位数,写个for循环语句,放入数据函数,这样就可以在指定位置开始显示要显示的内容。
程序如下:
#includereg52.h
/*程序中没有用到忙检测,而是用的是延时函数来替代忙检测*/
#define uchar unsigned char
#define uint unsigned int
uchar code table[]=LCD 1602A; //要显示的内容1放入table
uchar code table1[]=zheng zhibin; //要显示的内容放入table1
sbit rs=P0^7;//数据、指令选择控制线
sbit rw=P0^6;//读写信号控制线
sbit en=P0^5;//使能信号端
void delay(uint a) //延时函数
{
uchar b;
while(a--)
{
for(b=5000;b0;b--);
}
}
void lcd_wcom(uchar com) //写指令函数
{
rs=0; //选择指令寄存器
rw=0; //选择写操作
P2=com; //把指令送入P2口
delay(100); //延时一小会,让1602准备接受数据
en=1; //使用端电平变化,把指令送入1602
delay(100);
en=0;
}
void lcd_wdat(uchar dat) //写数据函数
{
rs=1; //选择数据寄存器
rw=0; //选择写操作
P2=dat; //把要显示的数据送入P2口
delay(100); //延时一小会,让1602准备接受数据
en=1; //使用端电平变化,把数据送入1602
delay(100);
en=0;
}
void lcd_init() //1602初始化
{
lcd_wcom(0x38); //选择8位数据总线,双列显示,5*7字形
lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁
lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位
lcd_wcom(0x01); //清屏
}
void main() //主函数
{
uchar n,m;
lcd_init(); //初始化
lcd_wcom(0x80+0x04); //显示地址设为84H,上排第4位
for(n=0;n9;n++) //将table[]中的数据依次写入1602显示
{
lcd_wdat(table[n]);
delay(100);
}
lcd_wcom(0x80+0x42); //重新设定显示地址为0xc4,即下排第3位
for(m=0;m12;m++) //将table1[]中的数据依次写入1602显示
{
lcd_wdat(table1[m]);
delay(100);
}
while(1);
}
滚动的显示方法:
之前设定步骤一样,只是在某些指令做更改,如果要使字符向右或向左滚动的话,在初始化中的第三指令(进入模式设置指令)要根据实际情况做更改调整。然后在完整的程序后添加一个指令函数,就是添加(设定显示屏或光标移动方向指令)使产生滚动效果。
添加指令为:设定显示屏或光标移动方向指令
如果要显现显示屏整体右移就是滚动效果,如果没把初始化函数中的第三条(进入模式设置指令)指令做更改调整,显示效果会变成开始没滚动效果,等所有字符都显示出来后,才整体的向右移,产生滚动效果。就是把第三指令改为(写入新数据后显示屏整体右移1个字)。然后在完整的程序中主函数中最后面添加一个(设定显示屏或光标移动方向指令)指令,就可以显示向右滚动的效果了
您可能关注的文档
最近下载
- 法国规范NFP94-051-阿太堡极限的测定要点解析.pdf VIP
- 2025年陕西高中学业水平合格考试地理试卷试题(含答案).pdf VIP
- 山西省2025年中考考试数学真题试卷(含答案) .pdf VIP
- ERP实施顾问招聘笔试题与参考答案2024年.docx VIP
- 2025年国家公务员考试行测试题(+答案).docx VIP
- 5.厨房学艺 安全第一 课件 湘教版生命与安全六年级上册.pptx
- 飞机手册及维修文件.pdf VIP
- 飞机驾驶技术手册.docx VIP
- DB23T 2069-2019 精细球形石墨加工技术规程.pdf VIP
- DB23 2618-2020 黑龙江省既有居住建筑加装电梯工程技术规程.pdf VIP
文档评论(0)