欢迎来到天天文库
浏览记录
ID:1447684
大小:1.18 MB
页数:23页
时间:2017-11-11
《总结资料_1602显示方法·》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1602显示方法先写指令构成LCD初始化。(RS端为低电平,RW端为低电平,为选择指令寄存器)1.第一个指令功能设定指令1.第二个指令显示开关控制指令2.第三个指令进入模式设置指令1.第四个指令清屏指令这些指令就构成了LCD的初始化。2.写数据(RS端为高电平,RW端为低电平,为选择数据寄存器)3.使能端E,通过使能端的电平变化把指令送入(忙检测用延时来代替)4.注意点:(在写字符显示位置时,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)00000
2、001B(00H)+10000000B(80H))一.最简单的显示方法:最直接把要显示的内容写在数组里,程序开始lcd初始化,写字符显示位置指令,然后根据显示的字符所占的位数,写个for循环语句,放入数据函数,这样就可以在指定位置开始显示要显示的内容。程序如下:#include/*程序中没有用到忙检测,而是用的是延时函数来替代忙检测*/#defineucharunsignedchar#defineuintunsignedintucharcodetable[]="LCD1602A";//要显示的内容1放入tabl
3、eucharcodetable1[]="zhengzhibin";//要显示的内容放入table1sbitrs=P0^7;//数据、指令选择控制线sbitrw=P0^6;//读写信号控制线sbiten=P0^5;//使能信号端voiddelay(uinta)//延时函数{ucharb;while(a--){for(b=5000;b>0;b--);}}voidlcd_wcom(ucharcom)//写指令函数{rs=0;//选择指令寄存器rw=0;//选择写操作P2=com;//把指令送入P2口delay(100);//延时一小会
4、,让1602准备接受数据en=1;//使用端电平变化,把指令送入1602delay(100);en=0;}voidlcd_wdat(uchardat)//写数据函数{rs=1;//选择数据寄存器rw=0;//选择写操作P2=dat;//把要显示的数据送入P2口delay(100);//延时一小会,让1602准备接受数据en=1;//使用端电平变化,把数据送入1602delay(100);en=0;}voidlcd_init()//1602初始化{lcd_wcom(0x38);//选择8位数据总线,双列显示,5*7字形lcd_wc
5、om(0x0c);//开启显示屏,关光标,光标不闪烁lcd_wcom(0x06);//显示地址递增,即写一个数据后,显示位置右移一位lcd_wcom(0x01);//清屏}voidmain()//主函数{ucharn,m;lcd_init();//初始化lcd_wcom(0x80+0x04);//显示地址设为84H,上排第4位for(n=0;n<9;n++)//将table[]中的数据依次写入1602显示{lcd_wdat(table[n]);delay(100);}lcd_wcom(0x80+0x42);//重新设定显示地址为
6、0xc4,即下排第3位for(m=0;m<12;m++)//将table1[]中的数据依次写入1602显示{lcd_wdat(table1[m]);delay(100);}while(1);}一.滚动的显示方法:之前设定步骤一样,只是在某些指令做更改,如果要使字符向右或向左滚动的话,在初始化中的第三指令(进入模式设置指令)要根据实际情况做更改调整。然后在完整的程序后添加一个指令函数,就是添加(设定显示屏或光标移动方向指令)使产生滚动效果。添加指令为:设定显示屏或光标移动方向指令1.如果要显现显示屏整体右移就是滚动效果,如果没把初
7、始化函数中的第三条(进入模式设置指令)指令做更改调整,显示效果会变成开始没滚动效果,等所有字符都显示出来后,才整体的向右移,产生滚动效果。就是把第三指令改为(写入新数据后显示屏整体右移1个字)。然后在完整的程序中主函数中最后面添加一个(设定显示屏或光标移动方向指令)指令,就可以显示向右滚动的效果了。2.如果要显示向左滚动的效果,在之前初始化函数中的第三条(进入模式设置指令)指令中选择(写入新数据后显示屏不移动)指令,然后在完整的程序中主函数中最后面添加一个(设定显示屏或光标移动方向指令)指令,就可以显示向右滚动的效果了。向右滚动
8、程序:#include/*程序中没有用到忙检测,而是用的是延时函数来替代忙检测*/#defineucharunsignedchar#defineuintunsignedintucharcodetable[]="LCD1602A";//要显示的内
此文档下载收益归作者所有