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

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

?? lcddrive_mem.c

?? TFTLCD驅動器在LPC2200上的使用
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************************
* 文件名:LCDDRIVE.C
* 功能:圖形液晶240*320驅動(型號為ILI9320)。
* 說明:圖形液晶采用ILI9320為LCD控制芯片,內帶負壓產生器,單3.3伏供電,并行接口(使用LPC2210驅動)。
* 硬件連接: D0-D15 <===>  D0-D15
*           /WR     <===>  nWE
*           /RD     <===>  nOE
*           /CE     <===>  nCS2
*           RS      <===>  A1
*           /RESET  <===>  P0.15
* Color Definition:
*	 Black:    0x00000000
*        White:    0x00FFFFFF
****************************************************************************************/
#include "config.h"

TCOLOR  	gui_disp_buf[GUI_LCM_YMAX][GUI_LCM_XMAX];				// 聲明GUI顯示緩沖區

/* 定義LCM地址 */
#define  DRIVER_COM    	(*((volatile unsigned short *) 0x82000000))
#define  DRIVER_DAT    	(*((volatile unsigned short *) 0x82000002))
#define  ColorMode 0    /*0 for 64k color, and 1 for 262k color*/ 
	
/* 以下為LCM的驅動層,主要負責發送ILI9320的各種命令,提供設置顯示地址等功能,在發送命令
前會檢測其狀態字。帶參數命令模式:先參數,后命令;操作模式:先命令,后數據 */

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


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

#define		LCD_RST_L()		IO0CLR=(1<<15)
#define		LCD_RST_H()		IO0SET=(1<<15)
#define		LCD_LightOn()	IO0SET=(3<<29)
#define		LCD_LightOff()	IO0CLR=(3<<29)

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


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


/***********************************************************************
* 名稱:LCD_Write2REG()
* 功能:寫單參數命令子程序。會先判斷LCM狀態字。
* 入口參數:command  	要寫入LCM的命令字
*          dat1		參數1
* 出口參數:操作出錯返回0,否則返回1
* 說明:先發送參數據數據,再發送命令字
***********************************************************************/
uint8  LCD_Write2REG(uint8 COM_Index, uint16 COM_Dat)
{  
	//LCD_CS_L();
	LCD_WriteCommand(COM_Index);
	LCD_WriteData(COM_Dat);
	//LCD_CS_H();
  return(1);
}

uint8  LCD_Write2REG2(uint8 COM_Index, uint16 COM_Dat, uint16 COM_Dat2)
{  
	//LCD_CS_L();
	LCD_WriteCommand(COM_Index);
	LCD_WriteData(COM_Dat);
	LCD_WriteData(COM_Dat2);
	//LCD_CS_H();
  return(1);
}


/***********************************************************************
* 名稱:LCD_Write2RAM1()
* 功能:Write one pixel to LCD, with AC input
* 入口參數:dat  		要寫入LCM的數據
* 出口參數:操作出錯返回0,否則返回1
***********************************************************************/
uint8  LCD_SetXY(uint16 X_POS, uint16 Y_POS)
{  
	LCD_Write2REG(0x20, (uint16)X_POS);
	LCD_Write2REG(0x21, (uint16)Y_POS);
   return(1);
}
/***********************************************************************
* 名稱:LCD_Write2RAM1()
* 功能:Write one pixel to LCD, with AC input
* 入口參數:dat  		要寫入LCM的數據
* 出口參數:操作出錯返回0,否則返回1
***********************************************************************/
uint8  LCD_Write2RAM(TCOLOR aPixel)
{  
	uint16 aPixelH,aPixelL; uint8 *aByte; void *pPix;
#if ColorMode==0	
  	aPixel &= 0x00FFFFFF;
  	aPixelL = 0x0000;
  	pPix=&aPixel;
  	aByte=(uint8 *)pPix;
	aPixelH=(*(aByte+2) & 0x3E);
	aPixelL=(aPixelH<<11);
	aPixelH=(*(aByte+1) & 0x3F);
	aPixelL += (aPixelH<<5);
	aPixelH =  (*aByte & 0x3E);
	aPixelL += aPixelH;
	LCD_Write2REG(0x22, aPixelL);
#else
  	aPixel &= 0x00FFFFFF;
  	aPixelL = 0x0000;
  	pPix=&aPixel;
  	aByte=(uint8 *)pPix;
	aPixelH=(*(aByte+2) & 0x0F);
	aPixelL=(aPixelH<<12);
	aPixelH=(*(aByte+1) & 0x3F);
	aPixelL += (aPixelH<<6);
	aPixelH =  (*aByte & 0x3F);
	aPixelL += aPixelH;
	aPixelH=(*(aByte+2) & 0x30);
	aPixelH=(aPixelH>>4);
	LCD_Write2REG2(0x22, aPixelH,aPixelL);
#endif
   return(1);
}

/***********************************************************************
* added driving functions
*
*
***********************************************************************/
void LCD_Reset(void) {
  // VCI=2.8V	
  //************* Reset LCD Driver ****************//
    LCD_RST_H();			
    DelayMS(1);		// Delay 1ms
    LCD_RST_L();	
    DelayMS(1);	// Delay 10ms
    LCD_RST_H();	
    DelayMS(1);	// Delay 50ms  	
}

void LCD_InitFunc1(void) {
	LCD_Write2REG(0xE5, 0x8000);						//RE5,??????
	LCD_Write2REG(0x00, 0x0001);						//R00,Start oscillator
	DelayMS(1);									//Wait to stablize
	LCD_Write2REG(0x2B,0x0010);						//R2B,264k color, 80Hz output
	LCD_Write2REG(0x01,0x0100);						//R01,Scan direction
	LCD_Write2REG(0x02,0x0700);						//R02,Line inversion
#if ColorMode==0	
	LCD_Write2REG(0x03,0x1230);						//R03,1 transfers, scan left-right/up-down
#else
	LCD_Write2REG(0x03,0xD230);						//R03,2 transfers, scan left-right/up-down
#endif
	LCD_Write2REG(0x04,0x0000);						//R04,no resizing
	LCD_Write2REG(0x08,0x0202);						//R08,
	LCD_Write2REG(0x09,0x0000);						//R09,
	LCD_Write2REG(0x0A,0x0000);						//R0A,
	LCD_Write2REG(0x0C,0x0000);						//R0C,not RGB mode
	LCD_Write2REG(0x0D,0x0000);						//R0D,
	LCD_Write2REG(0x0F,0x0000);						//R0F,
	LCD_Write2REG(0x50,0x0000);						//R50,x start is 0
	LCD_Write2REG(0x51,0x00EF);						//R51,x end is 0xEF(240)
	LCD_Write2REG(0x52,0x0000);						//R52,y start is 0
	LCD_Write2REG(0x53,0x013F);						//R53,y end is 0x013F(320)
	LCD_Write2REG(0x60,0x2700);						//R60,Gate scan control(3 registers)
	LCD_Write2REG(0x61,0x0001);						//R61,
	LCD_Write2REG(0x6A,0x0000);						//R6A,
	LCD_Write2REG(0x80,0x0000);						//R80,Partial image disabled(6 registers)
	LCD_Write2REG(0x81,0x0000);						//R81,
	LCD_Write2REG(0x82,0x0000);						//R82,
	LCD_Write2REG(0x83,0x0000);						//R83,
	LCD_Write2REG(0x84,0x0000);						//R84,
	LCD_Write2REG(0x85,0x0000);						//R85,
	LCD_Write2REG(0x90,0x0010);						//R90,Panel control setup
	LCD_Write2REG(0x92,0x0000);						//R92,
	LCD_Write2REG(0x93,0x0003);						//R93,
	LCD_Write2REG(0x95,0x0110);						//R95,
	LCD_Write2REG(0x97,0x0000);						//R97,
	LCD_Write2REG(0x98,0x0000);						//R98,	
}

void LCD_InitFunc2(void) {
	LCD_Write2REG(0x30,0x0007);						//R30,	Gamma polarity adjustment
	LCD_Write2REG(0x31,0x0403);						//R31,	
	LCD_Write2REG(0x32,0x0404);						//R32,	
	LCD_Write2REG(0x35,0x0002);						//R35,	
	LCD_Write2REG(0x36,0x0707);						//R36,	
	LCD_Write2REG(0x37,0x0600);						//R37,	
	LCD_Write2REG(0x38,0x0106);						//R38,	
	LCD_Write2REG(0x39,0x0007);						//R39,	
	LCD_Write2REG(0x3C,0x0700);						//R3C,	
	LCD_Write2REG(0x3D,0x0707);					//R3D,	
}

void LCD_PwrSetFunc(void) {
	LCD_Write2REG(0x10,0x0000);						//R10,	Output disabled
	LCD_Write2REG(0x11,0x0000);						//R11,	
	LCD_Write2REG(0x12,0x0000);						//R12,	
	LCD_Write2REG(0x13,0x0000);						//R13,	
	DelayMS(20);											//Delay 200ms
	LCD_Write2REG(0x10,0x17B0);						//R10,	Source/Drived enabled
	LCD_Write2REG(0x11,0x0001);						//R11,	Reference voltage set
	DelayMS(5);											//Delay 50ms
	LCD_Write2REG(0x12,0x013E);						//R12,	Gray control
	DelayMS(5);											//Delay 50ms
	LCD_Write2REG(0x13,0x1D00);						//R13,	Amplitude select
	LCD_Write2REG(0x29,0x0013);						//R29,	Voltage control
	DelayMS(5);											//Delay 50ms
	LCD_Write2REG(0x20,0x0000);						//R20,	GRAM x position set
	LCD_Write2REG(0x21,0x0000);						//R21,	GRAM y position set
}
void LCD_PwrOnFunc(void) {
	LCD_Reset();
	DelayMS(1);											//Delay 10ms
	LCD_InitFunc1();
	LCD_PwrSetFunc();
	LCD_InitFunc2();
	LCD_DispOnFunc();
}

void LCD_PwrOffFunc(void) {
	LCD_Write2REG(0x10,0x0000);						//R10,	
	LCD_Write2REG(0x11,0x0000);						//R11,	
	LCD_Write2REG(0x12,0x0000);						//R12,	
	LCD_Write2REG(0x13,0x0000);						//R13,	
	DelayMS(20);											//Delay 200ms
	LCD_Write2REG(0x10,0x0002);						//R10,	
}

void LCD_DispOnFunc(void) {
	LCD_Write2REG(0x07,0x0173);						//R07,	
	LCD_LightOn();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久午夜精品| 成人动漫在线一区| 91精品国产入口| 天天色综合成人网| 欧美少妇xxx| 一级特黄大欧美久久久| 欧美三级电影在线看| 丝袜诱惑亚洲看片| 精品国产不卡一区二区三区| 国产精品羞羞答答xxdd| 久久九九全国免费| 一本色道久久综合狠狠躁的推荐| 中文字幕亚洲在| 这里只有精品免费| 国产一区二区免费视频| 中文成人av在线| 在线观看av一区| 麻豆国产精品官网| 久久只精品国产| 国产91综合一区在线观看| 国产精品久久久久久久午夜片| 欧美日韩成人在线| 加勒比av一区二区| 亚洲精品久久嫩草网站秘色| 69堂精品视频| 国产成人精品午夜视频免费| 一级女性全黄久久生活片免费| 欧美一级久久久久久久大片| 国产sm精品调教视频网站| 亚洲一区二区三区四区在线| 国产欧美日韩综合| 日韩欧美高清dvd碟片| 99久免费精品视频在线观看 | 91丨porny丨户外露出| 亚洲小说欧美激情另类| 久久久亚洲国产美女国产盗摄| 欧美日本乱大交xxxxx| 91亚洲国产成人精品一区二三| 国产一区二区三区综合| 亚洲一区二区美女| 亚洲伦理在线免费看| 久久精子c满五个校花| 日韩欧美电影一二三| 欧美精品1区2区3区| 91高清在线观看| 色女孩综合影院| 91国偷自产一区二区使用方法| 国产成人亚洲综合a∨婷婷图片 | 日本vs亚洲vs韩国一区三区| 中文字幕色av一区二区三区| 久久久99精品久久| 欧美一级爆毛片| 日韩视频一区二区三区在线播放| 在线精品国精品国产尤物884a| 在线免费亚洲电影| 在线精品国精品国产尤物884a| av在线这里只有精品| 91免费精品国自产拍在线不卡| 国产黄色精品网站| 91亚洲国产成人精品一区二三| 在线中文字幕一区二区| 欧美精品一二三四| 久久久精品国产免大香伊| 国产网站一区二区三区| 日韩电影在线一区| 91影院在线观看| 国产精品―色哟哟| 肉丝袜脚交视频一区二区| 国产精品一区二区免费不卡| 欧美专区在线观看一区| xf在线a精品一区二区视频网站| 亚洲欧美福利一区二区| 激情图片小说一区| 欧美日韩dvd在线观看| 国产区在线观看成人精品| 蜜臀精品一区二区三区在线观看| 成人精品国产一区二区4080| 欧美在线看片a免费观看| 26uuu亚洲综合色| 青青草国产成人99久久| 欧美色倩网站大全免费| 亚洲人成网站在线| 国产精品一区久久久久| 欧美妇女性影城| 夜夜嗨av一区二区三区四季av| 国产99久久久国产精品 | 蜜臀99久久精品久久久久久软件| 日本高清不卡aⅴ免费网站| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品传媒入口麻豆| 国产91综合网| 一区二区成人在线观看| 一本一道综合狠狠老| 亚洲女同女同女同女同女同69| 国产精品伊人色| 久久精品亚洲麻豆av一区二区| 精品一区二区三区在线观看| 久久久久久免费毛片精品| 麻豆一区二区三| 国产欧美一区二区三区在线看蜜臀| 国产一区二区三区在线观看精品| 国产三级一区二区三区| 国产乱码精品一区二区三区av| 欧美一区二区三区四区视频| 麻豆成人av在线| 自拍偷拍亚洲综合| 欧美一级黄色录像| av不卡在线观看| 亚洲成人免费电影| 26uuu精品一区二区| 99视频在线精品| 久久er精品视频| 亚洲日本在线观看| 91麻豆精品国产91久久久久久久久| 国产一区二区三区不卡在线观看| 亚洲精品一二三| 精品嫩草影院久久| 欧美吞精做爰啪啪高潮| 久久成人免费日本黄色| 成人免费小视频| 欧美大尺度电影在线| 91丨九色丨黑人外教| 日韩av成人高清| 亚洲精品视频一区二区| 欧美国产日韩精品免费观看| 欧美区在线观看| 99久久精品99国产精品| 风流少妇一区二区| 另类欧美日韩国产在线| 午夜视频久久久久久| 中文字幕日韩一区二区| www一区二区| 日本一区二区三区在线不卡| 欧美不卡一区二区三区| 制服丝袜国产精品| 欧美伊人久久久久久久久影院| 国产在线观看一区二区| 午夜久久电影网| 首页欧美精品中文字幕| 午夜电影一区二区三区| 亚洲国产另类av| 日韩国产欧美在线播放| 一级日本不卡的影视| 日韩久久一区二区| 亚洲精品老司机| 日韩电影免费一区| 九九热在线视频观看这里只有精品| 亚洲福利视频三区| 久久国内精品视频| 黑人精品欧美一区二区蜜桃| 日本成人中文字幕| 国产成人av影院| 欧美婷婷六月丁香综合色| 日韩久久精品一区| 亚洲天堂免费看| 九九热在线视频观看这里只有精品 | 色香蕉成人二区免费| 91视频精品在这里| 视频一区二区三区中文字幕| 国产一区二区三区免费| 成人精品小蝌蚪| 色哟哟精品一区| 欧美成人a视频| 精品捆绑美女sm三区| 亚洲一二三区不卡| 91搞黄在线观看| 一区二区三区四区在线| 欧美aaa在线| 欧美三区在线视频| 国产精品不卡一区二区三区| 久久99热99| 欧美电影一区二区| 亚洲妇女屁股眼交7| 国产精品亚洲午夜一区二区三区| 欧美一区二区三区性视频| 亚洲第一福利视频在线| 欧美亚洲综合色| 久久麻豆一区二区| 日韩**一区毛片| 91精品国产黑色紧身裤美女| 亚洲成人中文在线| 欧美另类z0zxhd电影| 日日摸夜夜添夜夜添亚洲女人| 在线观看视频欧美| 亚洲午夜一区二区| 欧美在线一区二区三区| 国产欧美日韩综合| 99精品视频在线观看| 一区二区三区中文字幕在线观看| 色综合久久综合网欧美综合网| 亚洲欧美日韩中文播放| 欧美一区午夜精品| 成人免费视频免费观看| 日韩综合在线视频| 欧美—级在线免费片| 欧美大肚乱孕交hd孕妇| 99久久99久久精品免费观看| 久久久国产精品麻豆| 成人污污视频在线观看| 日韩美女视频19|