📄 10 1602.c
字号:
#include<reg52.h>
#define uchar unsigned char //宏定义
#define uint unsigned int //宏定义
sbit rs=P3^5; //液晶数据命令选择端
sbit lcden=P3^4; //液晶写数据控制端
sbit dula=P2^6;
sbit wela=P2^7;
uchar table1[]="TX-1B MCU"; //要显示的字表
uchar table2[]="WWW.TXMCU.COM"; //要显示的字表
void delay(uint x) //延时子函数
{
uint a,b;
for(a=x;a>0;a--)
for(b=10;b>0;b--);
}
void delay1(uint x) //延时子函数
{
uint a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void write_com(uchar com) //写命令函数
{
P0=com;
rs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
void write_date(uchar date) // 写数据函数
{
P0=date;
rs=1;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
void init() //初始化函数
{
dula=0; //关闭数码管显示
wela=0;
write_com(0x38); //液晶显示方式设置
delay(20);
write_com(0x0f); //光标设置
delay(20);
write_com(0x06); //数据指针顺序设计
delay(20);
write_com(0x01); //液晶屏幕清屏命令
delay(20);
}
void main() //主函数
{
uchar a;
init();
write_com(0x80+17); //先写在液晶数据缓冲区第一行不能显示的地方
delay(20);
for(a=0;a<9;a++) //依次把第一个表格中的字符全写入
{
write_date(table1[a]);
delay(20);
}
write_com(0xc0+17); //先写在液晶数据缓冲区第二行不能显示的地方
delay(50);
for(a=0;a<13;a++) //依次把第二个表格中的字符全写入
{
write_date(table2[a]);
delay(40);
}
for(a=0;a<16;a++) //写 16 个 0x18 把字符从右边移入进来显示在液晶上
{ //0x18 命令是移动字符的指令
write_com(0x1c); //原来write_com(0x18);0x1c为左移 仿真的与实物相反
delay1(200);
}
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -