1602.c

来自「字符型液晶显示程序字符型液晶显示程序 字符型液晶显示程序 字符型液晶显示程序」· C语言 代码 · 共 72 行

C
72
字号
//------------------------------------------------------------------------------
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 + =
减小字号Ctrl + -
显示快捷键?