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

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

?? lcddrive.c

?? LCD T6963C 顯示驅動 在ARM2210上的應用
?? C
字號:
/****************************************************************************************
* 文件名:LCDDRIVE.C
* 功能:圖形液晶240*128驅動(型號為SMG240128A)。32K顯示存,0000H-7FFFH地址。顯示是橫向字節,高位
*      在前。
* 說明:圖形液晶采用T6963C為LCD控制芯片,內帶負壓產生器,單5伏供電,并行接口(使用LPC2210驅動)。
* 硬件連接: D0--D7  <===>  D0--D7
*           /WR     <===>  nWE
*           /RD     <===>  nOE
*           /CE     <===>  nCS3_1
*           C/D     <===>  A1
*
*           /RST    <===>  VCC
****************************************************************************************/
#include "config.h"

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

/* 定義LCM地址 */
#define  TG240128_COM    	(*((volatile unsigned short *) 0x83000002))
#define  TG240128_DAT    	(*((volatile unsigned short *) 0x83000000))
	

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


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



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


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


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

/* T6963C 命令定義 */
#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;

   for(i=100; i>0; i--)
   {  if( (LCD_ReadState()&0x03)==0x03 ) break;
   }
   
   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字節數據子程序。會先判斷狀態字。
* 入口參數:dat  		要寫入LCM的數據
* 出口參數:操作出錯返回0,否則返回1
***********************************************************************/
uint8  LCD_WriteTData1(uint8 dat)
{  if( LCD_TestStaBit3()==0 ) return(0);
   LCD_WriteData(dat);				// 發送命令字
   
   return(1);
}


/* 以下為LCM的用戶接口層,主要負責解釋用戶命令,并發送到LCM,為用戶編程提供接口 */


/***********************************************************************
* 名稱:LCD_Initialize()
* 功能:LCM初始化,將LCM初始化為純圖形模式,顯示起始地址為0x0000,。
* 入口參數:無
* 出口參數:無
* 說明:函數會設置LCM數據總線為輸出方式
***********************************************************************/
void  LCD_Initialize(void)
{  LCD_WriteTCommand3(LCD_TXT_STP, 0x00, 0x00);			// 設置文本方式RAM起始地址
   LCD_WriteTCommand3(LCD_TXT_WID, 30, 0x00);			// 設置文本模式的寬度,寬度為N/6或N/8,N為寬度點數,如240
   LCD_WriteTCommand3(LCD_GRH_STP, 0x00, 0x00);			// 設置圖形方式RAM起始地址
   LCD_WriteTCommand3(LCD_GRH_WID, 30, 0x00);			// 設置圖形模式的寬度,寬度為N/6或N/8,N為寬度點數,如240
   LCD_WriteTCommand1(LCD_MOD_OR);						// 設置顯示方式為"或"
   LCD_WriteTCommand1(LCD_DIS_SW|0x08);					// 設置純圖形顯示模式
}


/***********************************************************************
* 名稱:LCD_FillAll()
* 功能:LCD填充。以圖形方式進行填充,起始地址為0x0000。
* 入口參數:dat		要填充的數據
* 出口參數:無
***********************************************************************/
void  LCD_FillAll(uint8 dat)
{  uint32  i;

   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_UpdatePoint()
* 功能:在指定位置上畫點,刷新某一點。
* 入口參數: x		指定點所在列的位置
*           y		指定點所在行的位置
* 出口參數:返回值為1時表示操作成功,為0時表示操作失敗。
* 說明:操作失敗原因是指定地址超出緩沖區范圍。
****************************************************************************/
void  LCD_UpdatePoint(uint32 x, uint32 y)
{  uint32  addr; 
 
   /* 找出目標地址 */
   addr = y*(GUI_LCM_XMAX>>3) + (x>>3);
   LCD_WriteTCommand3(LCD_ADR_POS, addr&0xFF, addr>>8);	// 置地址指針
   
   /* 輸出數據 */
   LCD_WriteTCommand2(LCD_INC_WR, gui_disp_buf[y][x>>3]);
}













?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视| 久久久久成人黄色影片| 在线视频国内自拍亚洲视频| av不卡免费电影| 99这里都是精品| 91女厕偷拍女厕偷拍高清| av电影天堂一区二区在线观看| 国产成人综合网站| 国产超碰在线一区| 粉嫩av亚洲一区二区图片| 国产成a人亚洲精| 成人app网站| 99这里都是精品| 在线观看免费亚洲| 欧美午夜电影在线播放| 欧美日韩免费一区二区三区视频| 欧美日韩精品是欧美日韩精品| 欧美日韩电影在线| 宅男噜噜噜66一区二区66| 精品日产卡一卡二卡麻豆| 精品奇米国产一区二区三区| 久久久亚洲国产美女国产盗摄 | 色偷偷一区二区三区| 99九九99九九九视频精品| 91亚洲精品一区二区乱码| 在线亚洲人成电影网站色www| 欧美三级在线播放| 日韩亚洲欧美成人一区| 国产亚洲精品免费| 日本在线观看不卡视频| 久久er精品视频| 国产成人综合网站| 色激情天天射综合网| 宅男在线国产精品| 国产日产欧美一区二区三区 | 免费av网站大全久久| 国产一区二区三区免费在线观看| 成人免费三级在线| 欧美老女人在线| 亚洲精品在线三区| 日韩毛片精品高清免费| 日本中文一区二区三区| 丁香网亚洲国际| 欧美午夜理伦三级在线观看| 精品国产一区二区三区忘忧草| 亚洲欧洲美洲综合色网| 美女爽到高潮91| 99亚偷拍自图区亚洲| 日韩精品一区二| ...av二区三区久久精品| 日本成人在线不卡视频| av在线一区二区三区| 欧美一区二区三区在线| 成人免费小视频| 奇米色777欧美一区二区| 99久久99久久精品国产片果冻| 欧美一区日本一区韩国一区| 国产精品你懂的| 日韩激情中文字幕| 成人久久18免费网站麻豆| 宅男在线国产精品| 亚洲婷婷综合久久一本伊一区| 久久99精品久久久久| 一本到一区二区三区| 久久久精品tv| 另类小说色综合网站| 在线免费观看成人短视频| 国产片一区二区| 免费日本视频一区| 欧美综合一区二区三区| 国产精品美女久久久久久| 国产在线视频精品一区| 欧美日韩免费一区二区三区视频| 国产精品三级av| 国产一区二区三区精品欧美日韩一区二区三区| 91电影在线观看| 国产欧美1区2区3区| 蜜臀av一区二区在线免费观看| 色吊一区二区三区| 国产欧美精品在线观看| 美女性感视频久久| 欧美日韩免费高清一区色橹橹| 亚洲女女做受ⅹxx高潮| 国产激情视频一区二区三区欧美| 日韩三级视频中文字幕| 午夜天堂影视香蕉久久| 一本色道亚洲精品aⅴ| 国产欧美精品国产国产专区| 激情五月婷婷综合| 91精品国产麻豆国产自产在线| 亚洲国产视频一区二区| 色欧美乱欧美15图片| 久久99精品久久久久| 日韩一区二区三区电影在线观看 | 亚洲成人激情av| 色丁香久综合在线久综合在线观看| 国产精品乱人伦| 国产99久久久国产精品| 久久亚洲一级片| 麻豆久久久久久| 欧美一二三四区在线| 五月天欧美精品| 欧美精品丝袜中出| 午夜久久久影院| 欧美色视频在线| 亚洲国产成人porn| 欧美精品1区2区3区| 日韩国产精品久久久久久亚洲| 欧美日韩一级二级| 日本女人一区二区三区| 91精品免费观看| 久久精品国产一区二区三区免费看| 日韩欧美另类在线| 精彩视频一区二区三区| 欧美激情在线一区二区三区| 国产精品18久久久| 中文字幕av一区 二区| 99久久久久免费精品国产| 一区精品在线播放| 日本韩国精品在线| 亚洲一区av在线| 69堂精品视频| 国产自产v一区二区三区c| 欧美国产国产综合| 99在线视频精品| 亚洲电影一区二区| 日韩欧美久久一区| 国产黄色精品视频| 亚洲麻豆国产自偷在线| 宅男在线国产精品| 国产美女一区二区| 亚洲精品视频在线| 欧美一区二区精品久久911| 精品系列免费在线观看| 国产日韩欧美制服另类| 在线一区二区三区四区五区| 日本不卡中文字幕| 欧美国产一区在线| 91国偷自产一区二区三区观看| 免费在线观看不卡| 中文字幕成人av| 欧美主播一区二区三区| 久久99精品国产麻豆婷婷| 欧美激情一区在线| 精品视频一区二区三区免费| 精品一区二区成人精品| 国产精品传媒入口麻豆| 69av一区二区三区| 国产成人三级在线观看| 亚洲国产综合91精品麻豆| 337p粉嫩大胆噜噜噜噜噜91av | 日韩天堂在线观看| 成人av中文字幕| 午夜欧美2019年伦理| 国产精品三级久久久久三级| 51久久夜色精品国产麻豆| bt欧美亚洲午夜电影天堂| 男女激情视频一区| 亚洲天堂精品视频| 精品久久久久久无| 色视频一区二区| 国产一区二区三区四区五区美女| 亚洲乱码精品一二三四区日韩在线| 日韩一本二本av| 91麻豆成人久久精品二区三区| 麻豆精品一二三| 亚洲欧美日本在线| 久久精品男人天堂av| 欧美肥胖老妇做爰| 波多野结衣在线aⅴ中文字幕不卡| 日韩二区三区四区| 亚洲丝袜制服诱惑| 国产日韩欧美电影| 日韩精品中文字幕在线一区| 日本高清不卡在线观看| 国产成人亚洲综合a∨婷婷图片| 午夜视频在线观看一区二区| 亚洲欧美综合另类在线卡通| 精品久久久久久久久久久久久久久久久| 日本久久一区二区三区| 丰满岳乱妇一区二区三区| 日韩精品久久理论片| 亚洲一线二线三线视频| 国产精品乱码久久久久久| 精品欧美一区二区在线观看| 欧美日韩一区二区三区四区 | 国产精品久久久久久久久免费丝袜| 91精品国产91综合久久蜜臀| 精品视频色一区| 91久久国产综合久久| 成人午夜看片网址| 国产精品99久久久久久有的能看| 免费在线观看成人| 日韩电影在线看| 亚洲第一福利视频在线| 亚洲国产乱码最新视频| 亚洲激情网站免费观看| 亚洲情趣在线观看| 亚洲视频一区二区在线| 亚洲欧美日韩系列|