LCD1602的温馨提示和实现代码
LCD1602的温馨提示
1.系统的电源从上电到稳定要有几十毫秒甚至更长的时间,这段时间极易使单片机程序走乱,或者开始几行代码没有正确执行。解决的方法是在配置位(--CONFIG())中一定要加入上电定时使能位:PWRTEN。这样就可以使得单片机在上电时的72MS内保持复位状态,避免由于电压还未稳定而发生程序执行错误等问题。
2.在字符间隔的空白处,要写入空格补齐,如数组里的字符串,即使不足16位,后面也要用空格补齐到16位,其他没有字符的空白处,同样写入空格。总的原则是:所有字符间隔的空白处,一定不要使它们处于游离状态。这样可以有效的抗电源等干扰,避免出现乱码。
3.如果程序的功能比较复杂,要完成的任务比较多,使用液晶时,一定要考虑的是:不要频繁的去读写液晶,那会占用很多的计时,会严重影响任务的执行。所以,刷新屏幕,更新数据一定要安排的合理。

下面的代码所用指令是STC 89C51单片机所用如需用其它芯片请另行更改。
LCD1602的实现代码
#include "reg51.h"
#include "LCD1602.h"
unsigned char code tab[]={" wellcome to "}
void delay_1602(uc z) //延迟z ms
{
uc x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uc com) //写指令 参照时序写程序
{
lcd_rs=0; //进入写命令模式
lcd_rw=0;
P1=com; //P1口为数据口
delay_1602(5); //延迟作用是等待数据稳定
lcd_en=0; //下面4行为让E产生高脉冲
delay_1602(5); //
lcd_en=1; //
delay_1602(5);
lcd_en=0;
}
void write_date(uc date) //写数据 参照时序写 参照写命令程序理解
{
lcd_rs=1;
lcd_rw=0;
P1=date;
delay_1602(5);
lcd_en=0;
delay_1602(5);
lcd_en=1;
delay_1602(5);
lcd_en=0;
}
void lcd_init() //初始化程序。先设置显示开关和光标
{
//
lcd_en=0;
write_com(0x38); //设置16*2显示。
write_com(0x0c); //设置开显示,显示光标
write_com(0x06); //写一个字符后地址指针加1
write_com(0x01); //清平指令
}
void main()
{
lcd_init(); // 初始化LCD
delay_1602(100); //延时10ms
while(1)
{
write_com(0x06); //向右移动光标
while(tab[ i ] != '?')
{
write_date (tab[ i ]); //显示字符"WLCOME TO"
i++;
}
}
以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!
图片新闻
最新活动更多
-
4月16日预约观看>> 开发前服,优化项目投资价值 筑牢落地关键防线
-
4月17日立即报名 >> 【线下论坛】新唐科技×芯唐南京 2026 年度研讨会
-
4月22日立即报名>> 【在线会议】ADI六款仪器仪表方案助力产品快速上市
-
5月13日立即预约>>> 【线下会议】恩智浦创新技术峰会·深圳
-
5月14日立即下载>> 【白皮书】村田室内外定位解决方案
-
即日-5.20立即下载>> 【限时免费】物理场仿真助力生物医学领域技术创新


分享














发表评论
登录
手机
验证码
手机/邮箱/用户名
密码
立即登录即可访问所有OFweek服务
还不是会员?免费注册
忘记密码其他方式
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论