📄 lcd1602.h
字号:
#define uchar unsigned char
#define uint unsigned int
//----------------------------------------
//sbit dula=P2^6; // 数码管段选
//sbit wela=P2^7; // 数码管段选
//开发板硬件原因,其它地方则可删除这两句
//----------------------------------------
//-----------定义端口(具体情况,具体对待)------------
#define DATA_PORT P0 //定义数据端口 // 次处定义为P0口
sbit lcden=P2^7; //LCD使能信号(开发板为P3.5)
sbit lcdrs=P2^5; //LCD数据/命令选择信号(开发板为P3.5)
sbit lcdrw=P2^6; //此处只写不读,故lcdrw接地处理
//----硬件电路改变时候只需修改以上4个------------------
//----------函数声明---------------
void lcd_init(); //LCD初始化函数
void write_com(uchar); //写命令函数
void write_data(uchar); //写数据函数
void lcd_delay(uint); //延时函数
void cursor_flash(uchar,uchar); //光标在指定坐标闪烁
//----------------------------------
//**********LCD初始化函数开始*********
void lcd_init()
{
// dula=0; // 关闭数码管显示
// wela=0;
lcdrw=0; // 开发板硬件原因,其它地方则可删除这两句
lcden=0;
write_com(0x38); //设置显示模式:16X2,5X7,8位数据接口
write_com(0x08);
write_com(0x01);
write_com(0x0c); //开显示,显示光标,光标闪烁
write_com(0x06); //读写一个字符后,地址指针及光标加一,且光标加一整屏显示不移动
write_com(0x80); //设置光标指针
}
//-----------------------------
//**********写命令函数开始************
void write_com(uchar com)
{
lcdrs=0; //低电平写命令
DATA_PORT=com; //写入命令,DATA_PORT为数据端口
lcd_delay(3); //延时约3ms
lcden=1; //LCD使能端置高电平
lcd_delay(5); //延时约5ms
lcden=0; //LCD使能端拉低电平
}
//---------------------------------
//**********写数据函数开始************
void write_data(uchar dat)
{
lcdrs=1; //低电平写数据
DATA_PORT=dat; //写入命令,DATA_PORT为数据端口
lcd_delay(3); //延时约3ms
lcden=1; //LCD使能端置高电平
lcd_delay(5); //延时约5ms
lcden=0; //LCD使能端拉低电平
}
//==========================================
//--------光标在指定坐标闪烁函数----
void cursor_flash(uchar a,uchar b)
{
write_com(0x80+a*0x40+b);
write_com(0x14);
write_com(0x0f);
write_com(0x80+a*0x40+b);
}
//-----------延时函数---------------
void lcd_delay(uint k)
{
uint i,j;
for(i=k;i>0;i--)
for(j=50;j>0;j--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -