📄 1602流动显示两行字符.c
字号:
/*************************************************************************************
* 程序名称:在LCD1602中心位置第一行显示"welcomel!" 第二行显示“www.mcusy.cn"
**************************************************************************************/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]=" Welcome! "; //第一行字符定义/空格可当一个字符(共16)
uchar code table2[]=" WWW.MCUSY.CN "; //第二行字符定义
uchar num;
sbit lcdRS=P2^5; //读写命令/数据端 0-写命令/1-读写数据
sbit lcdRW=P2^6; //读写控释命令端 1-读/0-写
sbit lcdE=P2^7; //使能端
void delay(uint z) //1MS延时
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=110;y>0;y--);
}
}
void write_com(uchar com) //写命令函数
{
lcdRS=0; //写命令
P0=com; //送命令
delay(5);
lcdE=1; //使能
delay(5);
lcdE=0; //关使能
}
void write_data(uchar date) //写数据函数
{
lcdRS=1; //写数据
P0=date; //送数据
delay(5);
lcdE=1; //使能
delay(5);
lcdE=0; //关使能
}
void init()
{ //指令
write_com(0x38); //显示为16*2、5*7
write_com(0x0f); //打开光标
write_com(0x06); //光标闪烁/加一
write_com(0x01); //清屏
write_com(0x80); //数据指针指向第一位
}
void main()
{
lcdRW=0;//只写不读
init();
for(num=0;num<14;num++) //对字符个数的调节
{
write_data(table[num]); //送数显示
delay(200);
}
// write_com(0x01); //加入清屏指令可使写完第一行后清除再写第二行
write_com(0x80+0x40); //0x80-第一行起始地址+0x40-第二行起始地址
for(num=0;num<16;num++)
{
write_data(table2[num]);
delay(200);
}
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -