⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_io.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 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 + -