📄 1602.c
字号:
//------------------------------------------------------------------------------
void lcd_check(void)//LCD忙检测
{
P1OUT=0xff; //先输出高电平
P1DIR=0x00; //设置为输入状态
LVC_DIR=1; //设置4245的输入输出方向
delay_us(1);
RS=0;
RW=1;
EN=1;
delay_us(1);
while((P1IN&0x80)==0x80); //判断是否输出为0
EN=0;
LVC_DIR=0; //输出
delay_us(1);//管脚方向改变,时间
P1DIR=0xff; //单片机管脚,设置为输出
}
//------------------------------------------------------------------------------
void write_com(unsigned char com,unsigned char biao) //写命令函数
{
if(biao==1)//判断是否忙检测
lcd_check();
RS=0;
RW=0;
P1OUT=com;
EN=1;
delay_us(2);
EN=0;
}
//------------------------------------------------------------------------------
void write_data(unsigned char wdata)//写入数据
{
lcd_check();//进行忙检测
RS=1;
RW=0;
P1OUT=wdata;
EN=1;
delay_us(2);
EN=0;
}
//------------------------------------------------------------------------------
void lcd_reset(void) //LCD初始化命令
{
delay_ms(15);
write_com(0x38,0);
delay_ms(5);
write_com(0x38,0);
delay_ms(5);
write_com(0x38,0);
write_com(0x38,1);
write_com(0x08,1);
write_com(0x01,1);
write_com(0x06,1);
write_com(0x0c,1);
}
//------------------------------------------------------------------------------
void display_char(unsigned char y,unsigned char x,unsigned char ddata)
{
unsigned char addr=0;
if(y==0)
{
addr=x+0x80;//表示第一行地址
}
if(y==1)
{
addr=x+0x40+0x80; //表示第二行地址
}
write_com(addr,1); //写显示地址
write_data(ddata); //写显示数据
}
//------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -