📄 1602字符液晶显示.c
字号:
/***********************************************************************************
* 程序名称:LCD1602显示“AT89C51/52/AVR 在第一行显示
************************************************************************************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit LCDEN=P2^7; // 使能信号,H为读,H跳变到L时为写。
sbit LCDRW=P2^6; // H为读LCD数据,L为向LCD写数据,如果仅是写,此端口可直接接地。
sbit LCDRS=P2^5; // H为数据,L为指令
void write_com(uchar com);
void delay(uchar z);
uchar num,temp;
void init()//初始化函数
{
LCDRW=0;//写数据命令
LCDRS=0;//写指令
write_com(0x38);//设置显示模式:8位2行5x7点阵
write_com(0x80);//第1位
write_com(0x0f);//打开光标(闪烁)0x0e为不闪烁
write_com(0x06);//写光标
}
void write_com(uchar com)//指令
{
//以下注意先后顺序:RS-送数据-(延时)使能H-(延时)使能
//LCDRS=0;//写指令
P0=com; //
delay(1); //延时在500NS以上
LCDEN=1;
delay(1); //
LCDEN=0;
}
void write_date(uchar date)//数据
{
//以下注意先后顺序:RS-送数据-使能H-使能L
LCDRS=1;//写数据
P0=date;
delay(1);
LCDEN=1;
delay(1);
LCDEN=0;
}
void main()
{
init();
write_date(' ');delay(50);
write_date('A');delay(50);
write_date('T');delay(50);
write_date('8');delay(50);
write_date('9');delay(50);
write_date('S');delay(50);
write_date('5');delay(50);
write_date('1');delay(50);
write_date('/');delay(100);
write_date('5');delay(50);
write_date('2');delay(50);
write_date('/');delay(50);
write_date('A');delay(50);
write_date('V');delay(50);
write_date('R');delay(50);
write_date(' ');delay(50);
while(1);
}
void delay(uchar z)
{
uint x,y; //局部变量,只在当前函数有效
for(x=200;x>0;x--)
{
for(y=z;y>0;y--);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -