51单片机控制1602LCD显示程序

上传人:fe****16 文档编号:131872237 上传时间:2020-05-10 格式:DOC 页数:5 大小:104KB
返回 下载 相关 举报
51单片机控制1602LCD显示程序_第1页
第1页 / 共5页
51单片机控制1602LCD显示程序_第2页
第2页 / 共5页
51单片机控制1602LCD显示程序_第3页
第3页 / 共5页
51单片机控制1602LCD显示程序_第4页
第4页 / 共5页
51单片机控制1602LCD显示程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《51单片机控制1602LCD显示程序》由会员分享,可在线阅读,更多相关《51单片机控制1602LCD显示程序(5页珍藏版)》请在金锄头文库上搜索。

1、LCD显示电路#includesbit RS=P37; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P36; /读写选择位,将RW位定义为P2.1引脚sbit E=P27; /使能信号位,将E位定义为P2.2引脚sbit BF=P07; /忙碌标志位,将BF位定义为P0.7引脚#define Lcd_Data P0 #include #include /包含_nop_()函数定义的头文件unsigned char code string1 = 0x77,0x75,0x20,0x79,0x61,0x6E,0x67,0x20,0x79,0x61,0x6E,0x67,0x20,0x20

2、,0x20,0x20; /第一行显示的字符void Lcd_delay1ms() / 函数功能:延时1ms/注:不同单片机不同晶振需要对此函数进行修改 unsigned char i,j;for(i=0;i90;i+) for(j=0;j33;j+); void Lcd_delay(unsigned int n) / 函数功能:延时若干毫秒,入口参数:n unsigned int i;for(i=0;in;i+)Lcd_delay1ms();/*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/bit Lcd_BusyTest(void)b

3、it result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态RW=1;E=1; /E=1,才允许读写_nop_(); /空操作_nop_();_nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间result=BF; /将忙碌标志电平赋给resultE=0;return result;/*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void Lcd_WriteCom (unsigned char dictate) while(Lcd_BusyTest()=1); /如果忙就等待RS=0; /根据规定,RS和R/W同时为低电

4、平时,可以写入指令RW=0; E=0; /E置低电平(写指令时就是让E从0到1发生正跳变,所以应先置0_nop_();_nop_(); /空操作两个机器周期,给硬件反应时间Lcd_Data=dictate; /将数据送入P0口,即写入指令或地址_nop_();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=1; /E置高电平_nop_();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:指定字符显示的实际地址入口参数:x注:此函数已经加上了

5、0x80,故只需写上实际地址就行*/ void Lcd_WriteAddress(unsigned char x) Lcd_WriteCom(x|0x80); /显示位置的确定方法规定为80H+地址码x /*函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)*/ void Lcd_WriteData(unsigned char y) while(Lcd_BusyTest()=1); RS=1; /RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0; /E置低电平(写指令时就是让E从0到1发生正跳变所以应先置0 Lcd_Data=y; /将数据送入P0口

6、,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:对LCD的显示模式进行初始化设置*/void Lcd_Int(void) Lcd_delay(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间 Lcd_WriteCom(0x38); /显示模式设置:162显示,57点阵,8位数据接口Lc

7、d_delay(5); /延时5msLcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式L

8、cd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x0C); /显示模式设置:显示开,有光标,光标闪烁Lcd_delay(5);Lcd_WriteCom(0x06); /显示模式设置:光标右移,字符不移Lcd_delay(5);Lcd_WriteCom(0x01

9、); /清屏幕指令,将以前的显示内容清零Lcd_delay(5);void hanying_show(void) unsigned char Lcd_i; Lcd_WriteCom(0x01);/清显示:清屏幕指令Lcd_delay(2);Lcd_WriteAddress(0x00); / 设置显示位置为最左侧Lcd_delay(2);Lcd_i=0;while(string1Lcd_i!=0) /0是数组结束标志 需先将字符存入 Lcd_WriteData(string1Lcd_i); / 显示字符 Lcd_i+; Lcd_delay(4); void main() Lcd_Int(); /1602初始化while(1) hanying_show();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号