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

📄 demom.c

📁 ra8806demo驱动程序
💻 C
字号:
#include<aduc836.h>
#include<intrins.h>
#include<userdef.h>
#include<ra8806reg.h>
sbit bWRZ = P3^4;
sbit bRDZ = P3^5;
sbit bCSZ = P3^7;
sbit bA0  = P1^1;
sbit bRST = P1^0;
sbit DATA_BUS=P0;



void Delay2us(uchar Counter)
{
	while(--Counter);
}

//==============================================================================
//Subroutine:	Delay100us
//==============================================================================
void Delay100us(uchar Counter)
{
	while(Counter--)
	{	Delay2us(150);
	}
}

//==============================================================================
//Subroutine:	Delay1ms
//==============================================================================
void Delay1ms(uchar Counter)
{
	while(Counter--)
	{	Delay100us(11);			
	}
}

//==============================================================================
//Subroutine:	Delay10ms
//==============================================================================
void Delay10ms(uchar Counter)
{
	while(Counter--)
	{	Delay1ms(11);			
	}
}

//==============================================================================
//Subroutine:	Delay100ms
//==============================================================================
void Delay100ms(uchar Counter)
{
	while(Counter--)
	{	Delay1ms(101);			
	}
}
void LCD_Reset(void)
{
	bRST = 0;
 	Delay100ms(5);
	bRST = 1;
	Delay100ms(2);		
}

void LCD_CmdWrite(uchar cmd)
{
//	LCD_ChkBusy();

//	DATA_BUS = cmd;
	bCSZ = 0;
	bA0  = 1;
//	DATA_BUS = cmd;				
	bWRZ = 0;
	DATA_BUS = cmd;

//	Delay2us(3);
	bWRZ = 1;
//	bCSZ = 0;	
	bCSZ = 1;
	DATA_BUS = 0xff;				
}

void LCD_DataWrite(uchar Data)
{
//	LCD_ChkBusy();
//	DATA_BUS = Data;
	bCSZ = 0;
	bA0  = 0;
//	DATA_BUS = Data;
	bWRZ = 0;	
	DATA_BUS = Data;
	bWRZ = 1;	
//	bCSZ = 0;	
	bCSZ = 1;						
	DATA_BUS = 0xff;  				
}
uchar LCD_DataRead(void)
{
	uchar Data;


	   bWRZ = 1;
	   bCSZ = 0;
	   bA0  = 0;
//	   Data = DATA_BUS;
	   bRDZ = 0;
	   Data = DATA_BUS;
	   bRDZ = 1;
//	   bCSZ = 0;	
	   bCSZ = 1;
	   return(Data);		
}
void LCD_Initial(void)
{
	LCD_CmdWrite(WLCR);		//[00H] , Default --> 0x00
	LCD_DataWrite(0x00);	

	LCD_CmdWrite(MISC);		//[01H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(ADSR);		//[03H] , Default --> 0x00 
	LCD_DataWrite(0x00);

	LCD_CmdWrite(INTR);		//[0FH] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(WCCR);		//[10H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(CHWI);		//[11H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(MAMR);		//[12H] , Default --> 0x11 
	LCD_DataWrite(0x11);

	LCD_CmdWrite(AWRR);		//[20H] , Default --> 0x27
	LCD_DataWrite(0x27);

	LCD_CmdWrite(DWWR);		//[21H] , Default --> 0x27
	LCD_DataWrite(0x27);

	LCD_CmdWrite(AWBR);		//[30H] , Default --> 0xEF	
	LCD_DataWrite(0xef);

	LCD_CmdWrite(DWHR);		//[31H] , Default --> 0xEF
	LCD_DataWrite(0xef);

	LCD_CmdWrite(AWLR);		//[40H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(AWTR);		//[50H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(CURX);		//[60H] , Default --> 0x00 
	LCD_DataWrite(0x00);

	LCD_CmdWrite(BGSG);		//[61H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(EDSG);		//[62H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(CURY);		//[70H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(BGCM);		//[71H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(EDCM);		//[72H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(BTMR);		//[80H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(ITCR);		//[90H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(KSCR1);	//[A0H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(KSCR2);	//[A1H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(KSDR0);	//[A2H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(KSDR1);	//[A3H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(KSDR2);	//[A3H] , Default --> 0x00
	LCD_DataWrite(0x00);

//	LCD_CmdWrite(MWCR);		//[B0H] , Default --> NA 

//	LCD_CmdWrite(MRCR);		//[B1H] , Default --> NA

//	LCD_CmdWrite(TPCR);		//[C0H] , Default --> 0x00
//	LCD_DataWrite(0x00);

//	LCD_CmdWrite(TPXR);		//[C1H] , Default --> 0x00
//	LCD_DataWrite(0x00);

//	LCD_CmdWrite(TPYR);		//[C2H] , Default --> 0x00
//	LCD_DataWrite(0x00);

//	LCD_CmdWrite(TPZR);		//[C3H] , Default --> 0x00
//	LCD_DataWrite(0x00);

	LCD_CmdWrite(PCR);		//[D0H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(PDCR);		//[D1H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(PNTR);		//[E0H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(FNCR);		//[F0H] , Default --> 0x00
	LCD_DataWrite(0x00);

	LCD_CmdWrite(FVHT);		//[F1H] , Default --> 0x00
	LCD_DataWrite(0x00);
}
void LCD_ON(void)
{
	uchar temp;

	LCD_CmdWrite(WLCR);
	temp = LCD_DataRead();
	temp |= cSetb2;
	LCD_CmdWrite(WLCR);
	LCD_DataWrite(temp);
}

void main(void)
{
	Delay10ms(1);
	LCD_Reset();
	LCD_Initial();
	LCD_ON();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -