📄 lcd_io.c
字号:
#include "Lcd_io.h"
void Set_LCD_CLK(BYTE value)
{
if(value!=2)
LCD_CLK=value;
else
{
LCD_CLK=1;
LCD_CLK=0;
}
}
void Set_LED(BYTE color)
{
/* LED_POWER =(color&0x01)?1:0;
LED_RED =(color&0x02)?1:0;
LED_GREEN =(color&0x04)?1:0;
LED_BLUE =(color&0x08)?1:0;
*/}
void Set_LCD_DATA(BYTE value)
{
LCD_DB7=(value&0x80)?1:0;
LCD_DB6=(value&0x40)?1:0;
LCD_DB5=(value&0x20)?1:0;
LCD_DB4=(value&0x10)?1:0;
}
void LCD_Display_Data(BYTE data)
{
LCD_RS=1;
Set_LCD_DATA(data);
Set_LCD_CLK(2);
Set_LCD_DATA(data<<4);
Set_LCD_CLK(2);
delay_us(40);
}
void LCD_Setup(BYTE data)
{
LCD_RS=0;
Set_LCD_DATA(data);
Set_LCD_CLK(2);
Set_LCD_DATA(data<<4);
Set_LCD_CLK(2);
delay_us((data>0x3)?40:1600);
}
void LCD_SET()
{
delay_us(20000);// Wait time > 15ms after Power On (VDD=5V)
// Wait time > 40ms after Power On (VDD=3V)
LCD_Setup(0x30);
delay_us(5000);//Wait Time > 4.1ms
LCD_Setup(0x30);//(00110000b);
delay_us(150);
LCD_Setup(0x30);//(00110000b);
Set_LCD_DATA(0x20);//(00100000b);
Set_LCD_CLK(2);
delay_us(50);
LCD_Setup(0x28);// 4-Bit Mode , 2 Line , 5x8 dots Font Type
LCD_Setup(0x0e);//LCD display Turn On , Cursor On , Blink Off
LCD_Setup(0x06);//Cursor shift to right when writing ,The entire display not to shift
}
void LCD_Write_String(BYTE *string)
{
int i=0;
while(string[i])
LCD_Display_Data(string[i++]);
}
void LCD_CGRAM()
{
BYTE a1[9]={0xe0,0xf0,0xfc,0xff,0xfc,0xf0,0xe0,0xe0,0};//play
BYTE a2[9]={0xf1,0xf1,0xf1,0xf1,0xf1,0xf1,0xf1,0xe0,0};//pause
BYTE a3[9]={0xe0,0xff,0xff,0xff,0xff,0xff,0xe0,0xe0,0};//stop
LCD_Setup(0x40);//(01000000b);
LCD_Write_String(a1);
LCD_Write_String(a2);
LCD_Write_String(a3);
}
void LCD_InitDisplay(void)
{
Set_LCD_CLK(0);
LCD_Setup(0x08);//Turn off LCD display , and clear DDRAM
LCD_Setup(0x01);//content to ensure no garbage data shown on LCD after Power On .
delay_us(20000);// Wait time > 15ms after Power On (VDD=5V)
// Wait time > 40ms after Power On (VDD=3V)
LCD_Setup(0x30); // 4 bit interface
delay_us(5000);//Wait Time > 4.1ms
LCD_Setup(0x30);//(00110000b);
delay_us(150);
LCD_Setup(0x30);//(00110000b);
Set_LCD_DATA(0x20);//(00100000b);
Set_LCD_CLK(2);
delay_us(50);
LCD_Setup(0x28);// 4-Bit Mode , 2 Line , 5x8 dots Font Type
LCD_Setup(0x0c);//LCD display Turn On , Cursor Off , Blink Off
LCD_Setup(0x01);
LCD_Setup(0x40);//(01000000b);
LCD_CGRAM();
LCD_Refresh_Display(" Please Wait \0",1);
LCD_Refresh_Display(" Paciently \0",2);
}
void LCD_Refresh_Display(BYTE *line,BYTE linenum)
{
int i;
if(linenum%2)
LCD_Setup(0x80);
else
LCD_Setup(0xc0);//(11000000b);
for(i=0;i<12;i++)
LCD_Display_Data(line[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -