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

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

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

1、LCD1 Lmj-idlU1il d 亠P2.7/A15 FZ.5/A14 FZ.5/fll3 尸 Z.4/A1Z FZ.3/ft11 FZ.2XMOF2.1/A9 FZ.Q/ASALE_ F5ENP3 7/RDP2.6A?R P2.5/T1 P2.4TTCI pa.afNTT R52TmT0 P2 1/FXD P2J3/RXDzz厶r;RST瓦 TQLZ叭 TAL1FD.7/.fd7 PO ADO FD.5/AK5 尸 D.4/ADQ FO 3华旳 FD.2/.iDZ FD.1/AD1 FD.O/.DO3Z3334閃3738Af59C51LCD显示电路#include sbit RS=P3A

2、7;sbit RW=P3A6;sbit E=P2A7;sbit BF=P0A7;/包含_nop_()函数定义的头文件寄存器选择位,将RS位定义为P2.0引脚读写选择位,将RW位定义为P2.1引脚使能信号位,将E位定义为P2.2引脚 忙碌标志位,将BF位定义为P0.7引脚#define Lcd_Data P0#include #includeunsignedcharcodestring1=0x77,0x75,0x20,0x79,0x61,0x6E,0x67,0x20,0x79,0x61,0x6E,0x67,0x20,0x20,0x20,0x20;/第一行显示的字符void Lcd_delay1m

3、s()/ 函数功能:延时 1ms注:不同单片机不同晶振需要对此函数进行修改 unsigned char i,j;for(i=0;i90;i+) for(j=0;j33;j+);/函数功能:延时若干毫秒,入口参数:nvoid Lcd_delay(unsigned int n) unsigned int i;for(i=0;in;i+) Lcd_delay1ms();函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=O,不忙bit Lcd_BusyTest(void)bit result;RS=O;/根据规定, RS 为低电平, RW 为高电平时,可以读状

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

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

6、 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;Lcd_Data=y;_nop_();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;函数功能:对 LCD 的显示模式进行初始化设置/E置低电平(写指令时就是让E从

7、0到1发生正跳变所以应先置0将数据送入P0 口,即将数据写入液晶模块/空操作四个机器周期,给硬件反应时间/E置高电平/空操作四个机器周期,给硬件反应时间当E由高电平跳变成低电平时,液晶模块开始执行命令void Lcd_Int(void)Lcd_delay(15);延时15ms,首次写指令时应给LCD 一段较长的反应时间Lcd_WriteCom(0x38); 显示模式设置:16X2显示,5X7点阵,8位数据接口 Lcd_delay(5);/延时 5msLcd_WriteCom(0x38); /9 次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9 次写 设置模式

8、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 次写 设置模式Lcd_delay(5);Lcd_WriteCom(0x38); /9 次写 设置模

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);/清屏幕指令,将以前的显示内容清零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号