📄 hd44780.c
字号:
#include"URM37_51demo.H"
/*******************************
* HD44780 16×2液晶驱动
********************************/
void Delay_ms(uchar ms)
{
uchar i;
for(;ms>0;ms--)
for(i=250;i>0;i--)
{
_nop_();
_nop_();
}
}
void LCD_WRITE_COMM(uchar comm) //写命令
{
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 1;
LCD_DATA = (LCD_DATA & 0xf0) | ((comm>>4) & 0x0f); //写高4位
LCD_E = 0;
LCD_E = 1;
LCD_DATA = (LCD_DATA & 0xf0) | (comm & 0x0f); //写低4位
LCD_E = 0;
Delay_ms(2);
}
void LCD_WRITE_DATA(uchar Data)//写数据
{
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 1;
LCD_DATA = (LCD_DATA & 0xf0) | ((Data>>4) & 0x0f); //写高4位
LCD_E = 0;
LCD_E = 1;
LCD_DATA = (LCD_DATA & 0xf0) | (Data & 0x0f); //写低4位
LCD_E = 0;
Delay_ms(2);
}
void LCD_Init(void)
{
Delay_ms(15);
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 1;
LCD_DATA = (LCD_DATA & 0xf0) | 0x00; //上电初使
LCD_E = 0;
Delay_ms(5);
LCD_E = 1;
LCD_E = 0;
Delay_ms(5);
LCD_E = 1;
LCD_E = 0;
Delay_ms(5);
LCD_E = 1;
LCD_DATA = (LCD_DATA & 0xf0) | 0x02; //选择4线接口方式,2行显示,5×7点阵
LCD_E = 0;
Delay_ms(5);
LCD_WRITE_COMM(0x0c); //开显示,开光标,开字符闪烁
LCD_WRITE_COMM(0x06); //显示后自动加一,光标移动
LCD_WRITE_COMM(0x01); //清显示
LCD_WRITE_COMM(0x28); //选择4线接口方式,2行显示,5×7点阵
LCD_WRITE_COMM(0x80); //
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -