📄 lcd1602.h
字号:
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^2;
#define LCDPORT P0
//*************LCD1602驱动程序***************************///
void lcd_delay(unsigned char delaytime)
{
while(delaytime)delaytime--;
}
void write_lcd_command(unsigned char write_command)
{
lcd_delay(40);
RS=0;
RW=0;
LCDPORT=write_command;
EN=1;
EN=0;
}
void write_lcd_data(unsigned char write_data)
{
lcd_delay(40);
RS=1;
RW=0;
LCDPORT=write_data;
EN=1;
EN=0;
}
void LCD_write_char( unsigned x,unsigned char y,unsigned char dat) //x表示行,y表示该行的位置(也就是列)
{
//LCD_set_xy( x, y );
switch(x)
{
case 0:
write_lcd_command(0x80+y);
break;
case 1:
write_lcd_command(0xc0+y);
break;
}
// LCD_en_dat(dat);
write_lcd_data(dat|0x30); //dat或上0x30,就时把数字0123456789转换成ASIIC码
}
void lcd_displaystr(unsigned char x,unsigned char y,unsigned char code *str)
{
switch(x)
{
case 0:
write_lcd_command(0x80+y);
break;
case 1:
write_lcd_command(0xc0+y);
break;
}
while (*str)
{
write_lcd_data(*str);
str++;
}
}
void initial_lcd1602(void) //初始化LCD1602
{
unsigned char i;
EN=0;
for(i=200;i>0;i--)
lcd_delay(248);
write_lcd_command(0x38);
for(i=4;i>0;i--)
lcd_delay(248);
write_lcd_command(0x38);
for(i=4;i>0;i--)
lcd_delay(248);
write_lcd_command(0x0c); //光标不显示,不闪烁
for(i=4;i>0;i--)
lcd_delay(248);
write_lcd_command(0x06);
for(i=4;i>0;i--)
lcd_delay(248);
write_lcd_command(0x01);
for(i=4;i>0;i--)
lcd_delay(248);
}
//********************lcd1602驱动程序到此完********************//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -