亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcdrive.c

?? ZLG的LPC2220讀取SD卡的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/********************************************************************************************************
** 文件名:LCDDRIVE.C
** 功能:圖形液晶240×128驅動(型號為YMSP-G240128A-1)。使用的SDRAM型號為62256A,為32K顯存,地址為0000H~7FFFH。
**       顯示是橫向字節,高位在前。
** 說明:圖形液晶采用T6963C液晶控制芯片,單5V供電。
**
**
*********************************************************************************************************/

#include "config.h"

#include "ASCII816.h" //標準ASCII庫
#include "HZTable.h"  //漢字點陣庫
#include "menu.h"     //菜單庫


//以8*8字符計算,顯示屏橫向、縱向可以顯示的字符個數

#define LineChar GUI_LCM_XMAX/8  	//一行字符數
#define ColumnChar GUI_LCM_XMAX/8  	//一列字符數


uint8 gui_disp_buf[][GUI_LCM_XMAX/8];   //聲明顯示緩沖區

void  DelayNS1(uint32  dly)
{   uint32  i;

    for(; dly>0; dly--) 
    {
        for(i=0; i<500; i++);
    }
}

/***LCM地址***/
#define       YM240128_COM        (*((volatile unsigned short *)0x82400006))
#define       YM240128_DAT        (*((volatile unsigned short *)0x82400004))

/********************************************************************************************************
** 名稱:LCD_WriteCommand()
** 功能:寫命令子程序(發送命令前,不檢查液晶模塊的狀態)
** 入口參數:command			要寫入LCM的命令字      
** 出口參數:無
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/

//#define			LCD_WriteCommand(command)		YM240128_COM = (uint16)command
void LCD_WriteCommand(uint8 command)	
{
	//volatile uint8 rr;
	//rr = command;
	//(*((volatile unsigned short *)0x81F00004))= rr;
	YM240128_COM = (uint16)command;
}


/********************************************************************************************************
** 名稱:LCD_WriteData()
** 功能:寫數據子程序(發送數據前,不檢查液晶模塊的狀態)
** 入口參數:dat			要寫入LCM的數據
** 出口參數:無
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/

//#define			LCD_WriteData(dat)		YM240128_DAT = (uint16)dat
void LCD_WriteData(uint8 dat)	
{
	//volatile uint8 rr;
	//rr = dat;
	//(*((volatile unsigned short *)0x81F00004))= rr;
	YM240128_DAT = (uint16)dat;
}


/********************************************************************************************************
** 名稱:LCD_ReadState()
** 功能:讀取狀態字子程序
** 入口參數:無
** 出口參數:返回值即為讀出的狀態字
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/

//#define			LCD_ReadState()		YM240128_COM
uint32	LCD_ReadState(void)	
{
	return YM240128_COM;
}

/********************************************************************************************************
** 名稱:LCD_ReadData()
** 功能:讀取數據子程序
** 入口參數:無     
** 出口參數:返回值即為讀出的數據
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/
//#define			LCD_ReadData()		YM240128_DAT
uint32	LCD_ReadData(void)
{
	return YM240128_DAT;
}

/*以下為LCM的驅動層,主要負責發送T6963的各種命令,提供設置顯示地址等功能,在發送命令前會檢測其狀態字。
  帶參數命令模式:先參數,后命令;操作模式:先命令,后數據 (先傳遞的是參數)*/


/*T6963命令定義*/

#define			LCD_CUR_POS			0x21		/*光標位置設置(只有設置到有效顯示地址并打開顯示時才看到)*/
#define			LCD_CGR_POS			0x22		/*CGRAM偏置地址設置(可以增加自己的符號)*/
#define			LCD_ADR_POS			0x24		/*地址指針位置(設置讀寫操作指針)*/


#define			LCD_TXT_STP			0x40		/*文本區首地址(從此地址開始向屏幕左上角顯示字符)*/
#define			LCD_TXT_WID			0x41		/*文本區寬度(設置顯示寬度,N/6或N/8,其中N為x軸的點數)*/

#define			LCD_GRH_STP			0x42		/*圖形區首地址(從此地址開始向屏幕左上角顯示字符)*/
#define			LCD_GRH_WID			0x43		/*圖形區寬度(設置顯示寬度,N/6或N/8,其中N為x軸的點數)*/


#define			LCD_MOD_OR  		0x80		/*顯示方式:邏輯"或"*/
#define			LCD_MOD_XOR  		0x81		/*顯示方式:邏輯"異或"*/
#define			LCD_MOD_AND  		0x82		/*顯示方式:邏輯"與"*/
#define			LCD_MOD_TCH 		0x83		/*顯示方式:文本特征*/


#define			LCD_DIS_SW  		0x90		/*顯示開關:D0=1/0,光標閃爍啟用/禁用*/
												/*     		D1=1/0,光標顯示啟用/禁用*/
												/* 			D2=1/0,文本顯示啟用/禁用(打開后再使用)*/
												/* 			D3=1/0,圖形顯示啟用/禁用(打開后再使用)*/
												
												
#define			LCD_CUR_SHP			0xA0		/*光標形狀選擇:0xA0~0xA7表示光標占的行數*/												


#define			LCD_AUT_WR			0xB0		/*自動寫設置*/	
#define			LCD_AUT_RD			0xB1		/*自動讀設置*/	
#define			LCD_AUT_OVR			0xB2		/*自動讀/寫結束*/	


#define			LCD_INC_WR			0xC0		/*數據一次寫,地址加1*/	
#define			LCD_INC_RD			0xC1		/*數據一次讀,地址加1*/	
#define			LCD_DEC_WR			0xC2		/*數據一次寫,地址減1*/	
#define			LCD_DEC_RD			0xC3		/*數據一次讀,地址減1*/	
#define			LCD_NOC_WR			0xC4		/*數據一次寫,地址不變*/	
#define			LCD_NOC_RD			0xC5		/*數據一次讀,地址不變*/	


#define			LCD_SCN_RD			0xE0		/*屏讀*/	
#define			LCD_SCN_CP			0xE8		/*屏拷貝*/	
#define			LCD_BIT_OP			0xF0		/*位操作:D0~D2用于定義D0~D7。D3為1時置位,為0時清除。*/	


/********************************************************************************************************
** 名稱:LCD_TestStaBit01()
** 功能:判斷讀寫指令和讀寫數據是否允許
** 入口參數:無     
** 出口參數:返回0表示禁止,否則表示允許
*********************************************************************************************************/

uint8 LCD_TestStaBit01(void)
{	uint8 i;
	uint32 RState;
	DelayNS1(1);
	
	for(i=100;i>0;i--)
	{	
		RState = LCD_ReadState();
		if((RState&0x03)==0x03) break;
		 DelayNS1(1);
	}
	if((RState&0x08)==0x08)
	{
		LCD_WriteCommand(LCD_AUT_OVR);
	}	
	return(i);
}



/********************************************************************************************************
** 名稱:LCD_TestStaBit3()
** 功能:數據自動寫狀態是否允許
** 入口參數:無     
** 出口參數:返回0表示禁止,否則表示允許
*********************************************************************************************************/

uint8 LCD_TestStaBit3(void)
{	uint8 i;
	
	for(i=100;i>0;i--)
	{	if((LCD_ReadState()&0x08)==0x08) break;
	}
	return(i);
}



/********************************************************************************************************
** 名稱:LCD_WriteTCommand1()
** 功能:寫無參數命令子程序。會先判斷LCM狀態字
** 入口參數:command	要寫入LCM的命令字     
** 出口參數:操作出錯返回0,否則返回1
*********************************************************************************************************/

uint8 LCD_WriteTCommand1(uint8 command)
{	
	if(LCD_TestStaBit01()==0)  return(0);
	LCD_WriteCommand(command);   //發送命令字
	return(1);
}



/********************************************************************************************************
** 名稱:LCD_WriteTCommand3()
** 功能:寫雙參數命令子程序。會先判斷LCM狀態字
** 入口參數:command	要寫入LCM的命令字  
** 			 dat1		參數1
**			 dat2		參數2   
** 出口參數:操作出錯返回0,否則返回1
** 說明:先發送兩字節參數數據,再發送命令字
*********************************************************************************************************/

uint8 LCD_WriteTCommand3(uint8 command, uint8 dat1, uint8 dat2)
{		
	if(LCD_TestStaBit01()==0)  return(0);
	LCD_WriteData(dat1);   //發送參數1
	
	if(LCD_TestStaBit01()==0)  return(0);;
	LCD_WriteData(dat2);   //發送參數2
	
	if(LCD_TestStaBit01()==0)  return(0);
	LCD_WriteCommand(command);   //發送命令字
	
	return(1);
}



/********************************************************************************************************
** 名稱:LCD_WriteTCommand2()
** 功能:寫單參數命令子程序。會先判斷LCM狀態字
** 入口參數:command	要寫入LCM的命令字  
** 			 dat1		參數1
** 出口參數:操作出錯返回0,否則返回1
** 說明:先發送參數數據,再發送命令字
*********************************************************************************************************/

uint8 LCD_WriteTCommand2(uint8 command, uint8 dat1)
{	if(LCD_TestStaBit01()==0)  return(0);
	LCD_WriteData(dat1);   //發送參數1
		
	if(LCD_TestStaBit01()==0)  return(0);
	LCD_WriteCommand(command);   //發送命令字
	
	return(1);
}



/********************************************************************************************************
** 名稱:LCD_WriteTData1()
** 功能:寫1字節數據子程序。會先判斷LCM狀態字
** 入口參數:dat	要寫入LCM的數據 
** 出口參數:操作出錯返回0,否則返回1
*********************************************************************************************************/

uint8 LCD_WriteTData1(uint8 dat)
{	if(LCD_TestStaBit3()==0)  return(0);
	//DelayNS1(2);
	LCD_WriteData(dat);   //發送參數1
		
	return(1);
}



/********************************************************************************************************
** 名稱:LCD_Initialize()
** 功能:LCM初始化,將LCM初始化為純圖形模式,顯示地址為0x0000
** 入口參數:無
** 出口參數:無
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/

void LCD_Initialize(void)
{	

 	if(LCD_WriteTCommand3(LCD_TXT_STP,0x00,0x00) != 0) // 文本顯示區首地址
 	LCD_WriteTCommand3(LCD_TXT_WID,0x1E,0x00);  // 文本顯示區寬度
 	LCD_WriteTCommand3(LCD_GRH_STP,0x00,0x00);  // 圖形顯示區首地址
 	LCD_WriteTCommand3(LCD_GRH_WID,0x1E,0x00);  // 圖形顯示區寬度
 	LCD_WriteTCommand1(LCD_CUR_SHP | 0x01);  // 光標形狀
 	LCD_WriteTCommand1(LCD_MOD_OR);   // 顯示方式設置
 	LCD_WriteTCommand1(LCD_DIS_SW | 0x08);  // 顯示開關設置
}



/********************************************************************************************************
** 名稱:LCD_FillAll()
** 功能:LCD填充。以圖形方式進行填充,起始地址為0x0000
** 入口參數:dat	要填充的數據
** 出口參數:無
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/

void LCD_FillAll(uint8 dat)
{	uint32	i;
	
	LCD_WriteTCommand1(LCD_MOD_OR);		
	LCD_WriteTCommand1(LCD_DIS_SW|0x08);
	DelayNS1(1);
	LCD_WriteTCommand3(LCD_ADR_POS,0x00,0x00);		//置地址指針
	LCD_WriteTCommand1(LCD_AUT_WR);					//自動寫
	
	for(i=0;i<128*30;i++)
	{	 											//寫數據
		LCD_WriteTData1(dat);
	}
	
	LCD_WriteTCommand1(LCD_AUT_OVR);				//自動寫結束
	LCD_WriteTCommand3(LCD_ADR_POS,0x00,0x00);		//重置地址指針
}


/********************************************************************************************************
** 名稱:LCD_FillRect()
** 功能:LCD填充一塊黑塊,表示選擇了該行。以圖形方式進行填充
** 入口參數:lin行,column列,level子目錄或文件的級數,用來縮進,根目錄=0
** 出口參數:無
** 說明:函數會設置LCM數據總線為輸出方式
*********************************************************************************************************/

void LCD_FillRect(uint8 lin,uint8 level)
{	uint32	i,j;
	uint32 StartAddr;
	
	StartAddr=lin*LineChar + (12+level*2); //定位起始行
	
	LCD_WriteTCommand1(LCD_MOD_OR);		
	LCD_WriteTCommand1(LCD_DIS_SW|0x08);
	DelayNS1(1);
	
	for(j=0;j<16;j++)   //填充的高度
	{
		LCD_WriteTCommand3(LCD_ADR_POS,StartAddr&0xFF,StartAddr>>8);		//置地址指針
	
		for(i=0;i<(30-12-2*level);i++)  //填充的寬度
		{	 											//寫數據
			LCD_WriteTCommand2(LCD_INC_WR,0xFF); 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图另类专区| 日本高清不卡视频| proumb性欧美在线观看| 欧美性受xxxx黑人xyx性爽| 久久精品亚洲一区二区三区浴池| 亚洲综合一区二区三区| 成人性生交大合| 日韩欧美色综合| 亚洲mv在线观看| 在线免费观看日韩欧美| 中文字幕不卡的av| 国产一区 二区 三区一级| 欧美日韩亚洲不卡| 亚洲制服丝袜av| 91丨九色丨国产丨porny| 国产午夜精品一区二区三区视频| 日韩电影免费在线| 欧美三级日韩在线| 亚洲午夜电影在线观看| 一本一道久久a久久精品| 国产精品成人一区二区三区夜夜夜 | 日韩一区二区三免费高清| 一区二区三区国产豹纹内裤在线| 99精品视频一区| 亚洲欧洲日本在线| www.欧美.com| 中文字幕一区二区三区视频| hitomi一区二区三区精品| 国产亚洲综合性久久久影院| 国产大片一区二区| 国产日本亚洲高清| 成人av在线观| 亚洲欧美日韩一区二区三区在线观看 | 午夜精品久久久久久久久久| 欧美亚日韩国产aⅴ精品中极品| 亚洲午夜国产一区99re久久| 欧美日韩高清一区| 美脚の诱脚舐め脚责91| 精品欧美乱码久久久久久1区2区| 黄网站免费久久| 国产人伦精品一区二区| 成人影视亚洲图片在线| 中文字幕人成不卡一区| 在线看不卡av| 麻豆精品一区二区综合av| 久久综合网色—综合色88| 丰满放荡岳乱妇91ww| 亚洲欧洲日本在线| 欧美在线色视频| 蜜桃一区二区三区在线| 国产欧美一区视频| 欧美在线观看视频在线| 欧美a级一区二区| 日本一二三不卡| 欧美中文字幕一区二区三区 | 欧美一区二区在线看| 国模少妇一区二区三区| 国产精品超碰97尤物18| 欧美日韩国产色站一区二区三区| 黄色日韩网站视频| 亚洲欧美自拍偷拍色图| 欧美一区二区三区喷汁尤物| 国产乱子轮精品视频| 亚洲精品写真福利| 精品久久久久久最新网址| 成人h动漫精品一区二| 亚洲国产欧美在线| 久久久噜噜噜久久中文字幕色伊伊| 91麻豆swag| 国产一区二区导航在线播放| 亚洲一卡二卡三卡四卡| 国产午夜一区二区三区| 91高清视频免费看| 国产成人超碰人人澡人人澡| 午夜视黄欧洲亚洲| 国产精品情趣视频| 日韩一区二区影院| 在线免费av一区| 成人97人人超碰人人99| 久久av资源网| 亚洲丰满少妇videoshd| 国产精品福利电影一区二区三区四区| 欧美日韩国产系列| 91在线porny国产在线看| 久久99精品久久久久婷婷| 亚洲在线一区二区三区| 亚洲欧洲精品一区二区三区| wwwwxxxxx欧美| 欧美一级免费大片| 欧美天堂一区二区三区| av电影天堂一区二区在线| 狠狠色丁香婷综合久久| 日韩影视精彩在线| 亚洲一区二区欧美日韩| 亚洲人成影院在线观看| 国产无一区二区| 精品国产91乱码一区二区三区 | 国产夜色精品一区二区av| 日韩欧美的一区| 56国语精品自产拍在线观看| 91视视频在线观看入口直接观看www | 91精品国产综合久久精品性色| 91日韩在线专区| jlzzjlzz国产精品久久| 国产精品99久久久久久久vr| 精品一区二区三区在线播放视频 | 日韩免费一区二区| 91精品国产欧美一区二区成人| 欧美丝袜第三区| 欧美日韩亚洲另类| 欧美久久久久久蜜桃| 91国产免费看| 欧美丰满美乳xxx高潮www| 欧美日韩免费观看一区三区| 欧美日韩国产中文| 91精品蜜臀在线一区尤物| 日韩一区二区免费电影| 日韩欧美aaaaaa| 久久久久久久久一| 国产精品人成在线观看免费| 中文字幕五月欧美| 一区二区三区在线免费视频| 一区二区三区精密机械公司| 一级中文字幕一区二区| 亚洲午夜在线视频| 日韩电影在线观看网站| 久久电影网电视剧免费观看| 激情综合五月天| 成人在线视频首页| 欧美优质美女网站| 欧美老肥妇做.爰bbww视频| 欧美一区二区播放| 久久久噜噜噜久久人人看| 国产精品久久久久国产精品日日| 亚洲精品国产第一综合99久久 | 国产精品乱码一区二区三区软件| 国产精品污污网站在线观看| 亚洲欧美日韩国产成人精品影院| 亚洲一区二区三区中文字幕 | 亚洲午夜免费电影| 免费欧美高清视频| 国产不卡视频在线播放| 色综合久久久久综合| 欧美一区在线视频| 国产精品欧美久久久久无广告 | ...xxx性欧美| 日韩成人午夜精品| 国产99久久久精品| 欧美影院午夜播放| 国产日产欧美一区二区视频| 亚洲免费观看高清在线观看| 日本女优在线视频一区二区| 懂色中文一区二区在线播放| 欧美日韩一区精品| 中文字幕二三区不卡| 首页国产欧美久久| av激情亚洲男人天堂| 91麻豆精品国产91久久久使用方法| 国产午夜精品美女毛片视频| 亚洲一二三区视频在线观看| 国产美女av一区二区三区| 欧美日韩一区在线观看| 欧美国产成人在线| 久久国产精品无码网站| 欧美在线制服丝袜| 国产精品久久久久一区| 蜜臀av一区二区在线观看| 一本久道久久综合中文字幕 | 粉嫩蜜臀av国产精品网站| 制服丝袜日韩国产| 亚洲精品写真福利| 成人黄色av电影| 国产婷婷色一区二区三区四区| 三级影片在线观看欧美日韩一区二区 | 丝瓜av网站精品一区二区| 91视视频在线观看入口直接观看www | 亚洲国产成人91porn| 欧美日韩三级在线| 国产精品久久午夜夜伦鲁鲁| 欧美a级理论片| 欧美日韩视频第一区| 一区二区三区在线视频观看| 99久久精品费精品国产一区二区| 久久理论电影网| 精品亚洲国内自在自线福利| 欧美一区二区播放| 日韩在线一区二区| 在线电影院国产精品| 亚洲国产美女搞黄色| 在线亚洲欧美专区二区| 亚洲美女视频在线| 色88888久久久久久影院野外| 亚洲欧洲在线观看av| 91麻豆免费观看| 亚洲人成网站精品片在线观看| 99视频精品免费视频| 国产精品不卡一区| 日本道色综合久久| 一区二区三区欧美日| 精品视频免费在线|