欢迎来到天天文库
浏览记录
ID:40638752
大小:124.50 KB
页数:8页
时间:2019-08-05
《基于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){
此文档下载收益归作者所有