您的位置 首页 汽车

51单片机 LCD1602

LCD1602算是很简单的人机交互,有了这家伙,从此学习不再寂寞了,至少有这家伙的陪伴。注释很详细的,看代码。原理图:代码:includ

LCD1602算是很简单的人机交互,有了这家伙,从此学习不再孤寂了,至少有这家伙的陪同。注释很具体的,看代码。

原理图:

代码:

#include
#define uint unsigned int
#define uchar unsigned char
//端口声明
sbit duanxuan=P2^6;
sbit weixuan=P2^7;
sbit lcd1602_E=P3^4;
sbit lcd1602_RS=P3^5;
//显现数据数组
uchar table1[]=”^_^I LOVE MCU^_^”; //榜首行显现数据
uchar table2[]=” –WgChnLn–“; //第二行显现数据
//变量界说
uint number; //用于顺次显现出一切数据
//相关函数声明
void delay(uint); //延时函数声明
void lcd1602_control(uchar); //输入控制指令函数声明
void lcd1602_init(); //lcd初始化函数声明
void lcd1602_data(uchar); //输入数据函数声明
//主函数
void main()
{
lcd1602_init(); //初始化
//输入榜首行数据
lcd1602_control(0x80+0x10); //定位到榜首行刚好不能显现的区域
for(number=0;number<16;number++)
{
lcd1602_data(table1[number]); //显现出榜首行
delay(5);
}
//输入第二行数据
lcd1602_control(0x80+0x50); //定位到第二行刚好不能显现的区域
for(number=0;number<16;number++)
{
lcd1602_data(table2[number]); //显现出第二行
delay(5);
}
//循环左移作用
while(1)
{
for(number=0;number<16;number++)
{
lcd1602_control(0x18); //左移
delay(500);
}
delay(1000);
delay(1000);
}
}
//延时函数主体
void delay(uint xs)
{
uint i,j;
for(i=xs;i>0;i–)
{
for(j=110;j>0;j–)
{
}
}
}
//lcd1602写入控制指令函数主体
void lcd1602_control(uchar control_data)
{
lcd1602_RS=0; //RS=0,处于输入控制指令状况
P0=control_data;
delay(5);
lcd1602_E=1; //使能端高电平有用
delay(5);
lcd1602_E=0;
}
//lcd1602初始化函数主体
void lcd1602_init()
{
duanxuan=0;
weixuan=0;
lcd1602_E=0; //由于引脚默许是高电平
lcd1602_control(0x0c);
lcd1602_control(0x06);
lcd1602_control(0x38);
lcd1602_control(0x01);
}
//lcd1602写入数据指函数主体
void lcd1602_data(uchar data_data)
{
lcd1602_RS=1; //RS=1.处于输入数据状况
P0=data_data;
delay(5);
lcd1602_E=1; //使能端高电平脉冲有用
delay(5);
lcd1602_E=0;
}

以上,完毕。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/259192.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部