📄 lcd1602.h
字号:
#ifndef _RZ_LCD1602_
#define _RZ_LCD1602_
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
//请根据自己的线路连接修改以下信号线设置。
sbit RS_LCD1602=P3^0;
sbit RW_LCD1602=P3^1;
sbit EN_LCD1602=P3^2;
//根据使用的晶振修改延时程序。
void Delay_Ms_LCD1602(uint ms)
{
//延时程序(以毫秒为单位)。
uchar y,z;
for(;ms>0;ms--)
for(y=0;y<11;y++)
for(z=0;z<25;z++);
}
bit get_status_LCD1602()
{
//读状态。
P0=0xff;
EN_LCD1602=0;
RS_LCD1602=0;
RW_LCD1602=1;
EN_LCD1602=1;
return((bit)(P0&0x80));
}
void write_command_LCD1602(uchar com)
{
//写命令。
while(get_status_LCD1602());
EN_LCD1602=0;
RS_LCD1602=0;
RW_LCD1602=0;
Delay_Ms_LCD1602(5);
P0=com;
EN_LCD1602=1;
Delay_Ms_LCD1602(20);
EN_LCD1602=0;
}
void set_cursor_LCD1602(uchar line,uchar add)
{
//设置光标的行(line),列(add)位置。
write_command_LCD1602(0x80+line*0x40+add);
}
void write_char_LCD1602(uchar indata)
{
//写数据。
while(get_status_LCD1602());
EN_LCD1602=0;
RS_LCD1602=1;
RW_LCD1602=0;
Delay_Ms_LCD1602(5);
P0=indata;
EN_LCD1602=1;
Delay_Ms_LCD1602(20);
EN_LCD1602=0;
}
void Write_CGA_LCD1602(uchar *CGA_Data,uchar CGA_Index)
{
//写自定义字符。
//参数一为一个数据块指针,要求其提供8字节字模数据。
//参数二为一个整数,指定要操作的自定义字符位置。
uchar index;
CGA_Index&=0x07;//最多8个字符。
CGA_Index=CGA_Index<<3;//决定CGARAM相对地址。
for(index=0;index<8;index++)
{
//设置CGARAM地址。
write_command_LCD1602(CGA_Index|index|0x40);
//写入字模数据。
write_char_LCD1602(*CGA_Data);
CGA_Data++;
}
}
void write_char_add_LCD1602(uchar indata,uchar line,uchar add)
{
//在指定的行(line),列(add)位置写入字符(indata)。
set_cursor_LCD1602(line,add);
write_char_LCD1602(indata);
}
void write_string_LCD1602(uchar indata[])
{
//从当位置开始写入指定长度(lenght)的字符串(indata[])。
//貌似一次最多写入255个。
uchar index=0;
while(indata[index]!=0&&index<255)//直到遇到字符串结束标志。
{
write_char_LCD1602(indata[index]);
index++;
}
}
void cursor_show_LCD1602()
{
//打开显示屏并显示闪烁的光标。
write_command_LCD1602(0x0f);
}
void cursor_hide_LCD1602()
{
//隐藏光标。
write_command_LCD1602(0x0c);
}
void clear_LCD1602()
{
//清屏。
while(get_status_LCD1602()&0x80);//等待空闲状态。
write_command_LCD1602(0x01);
Delay_Ms_LCD1602(50);
}
void init_LCD1602()
{
//初始化液晶。
write_command_LCD1602(0x38);//设置显示模式。
write_command_LCD1602(0x80);//光标初始位置。
write_command_LCD1602(0x0f);//打开显示屏并显示闪烁的光标。
write_command_LCD1602(0x06);//输入数据后光标自动向后移。
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -