基于C51 的液晶1620程序

基于C51 的液晶1620程序

ID:40638752

大小:124.50 KB

页数:8页

时间:2019-08-05

基于C51 的液晶1620程序_第1页
基于C51 的液晶1620程序_第2页
基于C51 的液晶1620程序_第3页
基于C51 的液晶1620程序_第4页
基于C51 的液晶1620程序_第5页
资源描述:

《基于C51 的液晶1620程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于proteus的51单片机仿真实例六十四、字符液晶LCD1602显示字符串实例标签: proteus 单片机 实例 液晶 字符 2010-02-2000:121、本例用1602液晶循环右移显示一串字符串。显示模式设置如下1)16*2显示,5*7点阵,8位数据接口2)开显示,有光标且光标闪烁3)光标右移,字符不移动 2、由于一次只能向液晶写入一个字符,因此如果需要显示字符串的话,需要用到指针或者字符串数组,然后再设置一个循环,从第一个字符开始写入液晶,直到写到字符串结束标志“”为止。字符显示地址的确定:由于1602液晶在第一个地址显示完毕后,能够自动指向先一个

2、地址,因此只需要指定字符串的第一个字符显示的地址即可, 3、在keilc51中新建工程ex52,编写如下程序代码,编译并生成ex52.hex文件//LCD1602.C//液晶控制与显示程序#include#includesbitRS=P2^0;   //寄存器选择位,将RS位定义为P2.0引脚sbitRW=P2^1;   //读写选择位,将RW位定义为P2.1引脚sbitE=P2^2;    //使能信号位,将E位定义为P2.2引脚//延时函数voiddelayms(unsignedintms){  unsignedchari

3、; while(ms--) {  for(i=0;i<120;i++); }}//忙检测函数unsignedcharbusy_check(void){  unsignedcharLCD_Status;   //定义忙状态变量 RS=0;        // RW=1; EN=1; delayms(1);       LCD_Status=P0;    //读取忙状态 EN=0; returnLCD_Status;    //返回忙状态}//写命令voidwrite_LCD_Command(unsignedcharcmd){  while((busy_check()&

4、0x80)==0x80); //等待忙状态结束 RS=0; RW=0; EN=0; P0=cmd; EN=1; delayms(1);  EN=0;}//写数据voidwrite_LCD_data(unsignedchardat){  while((busy_check()&0x80)==0x80); RS=1; RW=0; EN=0; P0=dat; EN=1; delayms(1);  EN=0;}//初始化voidinit_LCD(void){  write_LCD_Command(0x38);    //显示模式设置 delayms(1); write_LC

5、D_Command(0x01);    //清屏 delayms(1); write_LCD_Command(0x06);   //字符进入模式:屏幕不动,字符后移 delayms(1); write_LCD_Command(0x0c);   //显示开,关光标 delayms(1);}//显示字符串voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){  unsignedchari=0; //设置起始位置 if(y==0) {  write_LCD_Command(0x80

6、x); } if(y=

7、=1) {  write_LCD_Command(0xc0

8、x); } //输出字符串 for(i=0;i<16;i++) {  write_LCD_data(str[i]); }}·voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){  unsignedchari=0;//设置起始位置if(y==0){  write_LCD_Command(0x80

9、x);}if(y==1){  write_LCD_Command(0xc0

10、x);}//输出字符串for(i=0;i<16;i++){  writ

11、e_LCD_data(str);}}这个咋整的哦?看不明白,麻烦解释一下!·回复tiankai0012011-01-1618:49戴梓:voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){  unsignedchari=0;//设置起始位置if(y==0){  write_LCD_Command(0x80具体哪一句话不明白呢?·回复超级群2011-08-1422:34戴梓:voidShowString(unsignedcharx,unsignedchary,unsignedchar*str){

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。