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

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

?? lcddrive.c

?? 這段代碼是基于飛利浦的arm7
?? C
字號:
/****************************************************************************************
* 文件名:LCDDRIVE.C
* 功能:TFT4267液晶模塊驅動。驅動芯片為S6D0129 (片內172800字節GRAM,即240*320*18/8),
*                                  
*  RGB對應值(16位數據,d15--d0):
*  d15--d11		R色
*  d10--d5      G色
*  d4--d0		B色
*  寫操作時地址計數器會自動增長,而讀操作則不會自動增長。讀操作時,讀第2個數
*  據才是有效的數據
****************************************************************************************/
#include "config.h"


/*******************************************************
* 名稱: TftSendCom
* 功能: 向TFT液晶模塊發送命令字。
* 入口參數: com   命令字(uint16)
* 出口參數: 無
*******************************************************/
void  TftSendCom(uint16 com)
{  
	S6D0129_IR = com;			//控制指令 
}


/*******************************************************
* 名稱: TftSendDat
* 功能: 向TFT液晶模塊發送數據。
* 入口參數: dat   待發送的數據(uint16)
* 出口參數: 無
*******************************************************/
void  TftSendDat(uint16 dat)
{  
	S6D0129_DR = dat;			//數據
}
/*******************************************************
* 名稱: TftRcvDat
* 功能: 讀取TFT液晶模塊的數據。
* 入口參數: 無
* 出口參數: 返回值即是讀出的數據
*******************************************************/
uint16  TftRcvDat(void)
{  
	uint16  ret;

   	ret = S6D0129_DR;			//儲存接收數據
   	return(ret);
}
/*******************************************************
* 名稱: TftSetAddr
* 功能: 設置數據地址指針(坐標值)。
* 入口參數: x		橫坐標的值 (0-239)
*           y       縱坐標的值 (0-319)
* 出口參數: 設置正確返回TRUE,參數超出范圍返回FALSE
*******************************************************/
uint8  TftSetAddr(uint16 x, uint16 y)
{  
	TftSendCom(SET_ADDR_X);		// 設置地址低8位
   	TftSendDat(x);
   
   	TftSendCom(SET_ADDR_Y);		// 設置地址高9位
   	TftSendDat(y);
   
   	if((x<240) && (y<320)) return(TRUE);
    else  return(FALSE);
}


/*******************************************************
* 名稱: TftSetWrite
* 功能: 設置數據地址指針(坐標值),并發送寫數據命令。
*       接著不斷的寫入數據即可,GRAM地址會自動增加。
* 入口參數: x		橫坐標的值 (0-239)
*           y       縱坐標的值 (0-319)
* 出口參數: 設置正確返回TRUE,參數超出范圍返回FALSE
*******************************************************/
uint8  TftSetWrite(uint16 x, uint16 y)
{  
	uint8  ret;

   	ret = TftSetAddr(x, y);
   	TftSendCom(WR_RD_DATA);		// 寫數據
   	return(ret);
}


/*******************************************************
* 名稱: TftSetWindow
* 功能: 設置數據填充窗口大小。
* 入口參數: x0,y0		窗口左上角座標
*           x1,y1	    窗口右上角座標
* 出口參數: 設置正確返回TRUE,參數錯誤返回FALSE
*******************************************************/
uint8  TftSetWindow(uint16 x0, uint16 y0, uint16 x1, uint16 y1)  
{  
	uint16  hea_hsa;

   	// 參數過濾
   	if(x1>239) x1 = 239;		//行超過范圍(240),處理
   	if(y1>319) y1 = 319;		//列超過范圍(320),處理
   	if((x1<=x0) || (y1<=y0)) return(FALSE);         
   
   // 設置數據填充窗口大小
   hea_hsa = (x1<<8) | x0;
   TftSendCom(SET_WINDOW_SX_EX);	//行地址設置		
   TftSendDat(hea_hsa);   
   TftSendCom(SET_WINDOW_SY);		//列地址設置		
   TftSendDat(y0);
     
   TftSendCom(SET_WINDOW_EY);		
   TftSendDat(y1);
   
   return(TRUE);
}


/*******************************************************
* 名稱: DelaymS
* 功能: 軟件延時(1mS,與系統時鐘有關)。
* 入口參數: no   延時控制(uint32),值越大延時越長
* 出口參數: 無
*******************************************************/
void  DelaymS(uint32 no)
{  
	uint32 i;

   	for(; no>0; no--)
   	{  
   		for(i=0; i<900; i++);
   	}
}


/****************************************************************************
* 名稱:TFT_FillSCR()
* 功能:全屏填充。直接使用數據填充顯示緩沖區。
* 入口參數:dat		填充的數據
* 出口參數:無
****************************************************************************/
void  TFT_FillSCR(uint16 dat)
{  
	uint16  i, j;

   	TftSetWindow(0,0, 239, 319); 
   	TftSetWrite(0, 0);
   	for(i=0; i<GUI_LCM_YMAX; i++)			// 歷遍所有行
   	{  
   		for(j=0; j<GUI_LCM_XMAX; j++)		// 歷遍所有行
      	{  
      		TftSendDat(dat); 				// 填充數據
	  	}
   	}
}


/*******************************************************
* 名稱: TftReset
* 功能: 控制TFT液晶模塊復位。
* 入口參數: 無
* 出口參數: 無
*******************************************************/
void  TftReset(void)
{   
	PINSEL1 = PINSEL1 & (~(0x03<<12));	//置
    IO0DIR = IO0DIR | S6D0129_RST;    

    IO0CLR = S6D0129_RST;
    DelaymS(10);
    IO0SET = S6D0129_RST;
    DelaymS(10);   
}


// 定義TFT4267初始化數據信息
STCOM_INI  TFT4267_INI[] = 
{   // 電源設置
    {0x0000, 0x0001, 10},	// Start Oscillation
    {0x000B, 0x0000,  0},	// Frame cycle setting
    {0x000C, 0x0000, 15},	// External display interface setting
    {0x0011, 0x2E00,  0},	// Power control2 setting
    {0x0014, 0x1119,  0},	// Power control5 setting
    {0x0010, 0x1040, 15},	// Power control1 setting
    {0x0013, 0x0040, 15},	// Power control4 setting
    {0x0013, 0x0060, 15},	// Power control4
    {0x0013, 0x0070, 60},	// Power control4
    {0x0011, 0x3100,  0},   // Power control2
    {0x0010, 0x1600, 20},   // Power control1 
    
    // 顯示設置
    {0x0001, 0x0927,   0},  // Driver output setting (240x320 mode, GS=0, SS=1)
    {0x0002, 0x0700,   0},  // LCD driving waveform setting
    {0x0003, 0x1030,   0},  // Entry mode setting (TRI=0, DFM=0, BGR=1, ID1:ID0 =11)
    {0x0007, 0x0004,   0},  // Display control1 (VLE2:VLE1=00, REV=1)
    {0x0008, 0x0505,   0},  // Display control2
    {0x0009, 0x0000,   0},  // ***
    
    {0x0040, 0x0000,   0},  // Gate scan position (start G1 scan)
    {0x0041, 0x0000,   0},  // Vertical scroll setting
    {0x0042,    319,   0},  // Screen end position (320-1)
    {0x0043,      0,   0},  // Screen start position (0)
    {0x0044,      0,   0},  // 2th Screen end position
    {0x0045,      0,   0},  // 2th Screen start position
    {0x0046, 0xEF00,   0},  // window addr set for x0,x1 (0, 239)
    {0x0047, 0x013F,   0},  // window addr set for y0    (319)
    {0x0048, 0x0000,   20}, // window addr set for y1    (0)
    
    {0x0030, 0x0404,   0},  // Gamma control1
    {0x0031, 0x0006,   0},  // Gamma control2
    {0x0032, 0x0000,   0},  // Gamma control3
    {0x0033, 0x0202,   0},  // Gamma control4
    {0x0034, 0x0707,   0},  // Gamma control5
    {0x0035, 0x0107,   0},  // Gamma control6
    {0x0036, 0x0303,   0},  // Gamma control7
    {0x0037, 0x0202,   0},  // Gamma control8
    {0x0038, 0x1100,   0},  // Gamma control9
    {0x0039, 0x1100,   0},  // Gamma control10
    
    // 打開顯示
    {0x0007, 0x0015,  40},  // Display control (GON=1, open disp)
    {0x0007, 0x0017,  40},
    {0x0020, 0x0000,   0},  // set GRAM addr(AD7--0)
    {0x0021, 0x0000,  20},  // set GRAM addr(AD16--8)
    
    {DATA_END,    0,  0}
};



/*******************************************************
* 名稱: TftInit
* 功能: 初始化TFT液晶模塊。
* 入口參數: 無
* 出口參數: 無
*******************************************************/
void  TftInit(void)  
{   
	STCOM_INI  init_dat;
    int  i;
   
    TftReset();
    for(i=0; i<100; i++)		// 設定最多100條初始化命令
    {   
    	init_dat = TFT4267_INI[i];
        if(init_dat.com==DATA_END) break;
        TftSendCom(init_dat.com);
        TftSendDat(init_dat.dat);            
        DelaymS(init_dat.dly);      
    }
}



/****************************************************************************
* 名稱:GUI_Initialize()
* 功能:初始化GUI,包括初始化顯示緩沖區,初始化LCM并清屏。
* 入口參數:無
* 出口參數:無
* 說明:用戶根據LCM的實際情況編寫此函數。
****************************************************************************/
void  GUI_Initialize(void)
{   
	TftInit();						//初始化TFT顯示屏幕
    TFT_FillSCR(GUI_CCOLOR);		//清屏色
}


/****************************************************************************
* 名稱:GUI_FillSCR()
* 功能:全屏填充。直接使用數據填充顯示緩沖區。
* 入口參數:dat		填充的數據
* 出口參數:無
* 說明:用戶根據LCM的實際情況編寫此函數。
****************************************************************************/
void  GUI_FillSCR(TCOLOR dat)
{   
	TFT_FillSCR(dat);
}


/****************************************************************************
* 名稱:GUI_ClearSCR()
* 功能:清屏。
* 入口參數:無
* 出口參數:無
* 說明:用戶根據LCM的實際情況編寫此函數。
****************************************************************************/
void  GUI_ClearSCR(void)
{   
	TFT_FillSCR(GUI_CCOLOR);
}


/****************************************************************************
* 名稱:GUI_Point()
* 功能:在指定位置上畫點。
* 入口參數:x		指定點所在列的位置
*           y		指定點所在行的位置
*           color	顯示顏色
* 出口參數:返回值為1時表示操作成功,為0時表示操作失敗。
****************************************************************************/
uint8  GUI_Point(uint16 x, uint16 y, TCOLOR color)
{  /* 參數過濾 */
   if(x>=GUI_LCM_XMAX) return(0);
   if(y>=GUI_LCM_YMAX) return(0);
   
   /* 刷新顯示 */
   TftSetWrite(x, y);
   TftSendDat(color);
   
   return(1);
}


/****************************************************************************
* 名稱:GUI_ReadPoint()
* 功能:讀取指定位置點的顏色數據。
* 入口參數:x		指定點所在列的位置
*           y		指定點所在行的位置
* 出口參數:返回值即是讀出值(RRRRRGGGGGGBBBBB)。
****************************************************************************/
uint8  GUI_ReadPoint(uint16 x, uint16 y, TCOLOR *ret)
{  uint16  bak;

   /* 參數過濾 */
   if(x>=GUI_LCM_XMAX) return(0);
   if(y>=GUI_LCM_YMAX) return(0);
   
   /* 讀取數據 */
   TftSetAddr(x, y);		// 設置地址
   TftSendCom(WR_RD_DATA);
   bak = TftRcvDat();
   bak = TftRcvDat();      
   *ret = bak;
   
   return(1);
}


/****************************************************************************
* 名稱:GUI_HLine()
* 功能:畫水平線。
* 入口參數:x0		水平線起點所在列的位置
*           y0		水平線起點所在行的位置
*           x1      水平線終點所在列的位置
*           color	顯示顏色
* 出口參數:無
* 說明:操作失敗原因是指定地址超出緩沖區范圍。
****************************************************************************/
void  GUI_HLine(uint16 x0, uint16 y0, uint16 x1, TCOLOR color) 
{  uint16  bak;

   if(x0>x1) 						// 對x0、x1大小進行排列,以便畫圖
   {  bak = x1;
      x1 = x0;
      x0 = bak;
   }
      
   GUI_Point(x0, y0, color);		// 顯示第一點
   x0++;
   while(x1>=x0)
   {  TftSendDat(color);			// 不斷填充并顯示
      x0++;
   }
}


/****************************************************************************
* 名稱:GUI_RLine()
* 功能:畫垂直線。
* 入口參數: x0		垂直線起點所在列的位置
*           y0		垂直線起點所在行的位置
*           y1      垂直線終點所在行的位置
*           color	顯示顏色
* 出口參數:無
* 說明:操作失敗原因是指定地址超出緩沖區范圍。
****************************************************************************/
void  GUI_RLine(uint16 x0, uint16 y0, uint16 y1, TCOLOR color) 
{  uint16  bak;

   if(y0>y1) 						// 對y0、y1大小進行排列,以便畫圖
   {  bak = y1;
      y1 = y0;
      y0 = bak;
   }
   
   while(y1>=y0)
   {  GUI_Point(x0, y0, color);		// 逐點顯示,描出垂直線
      y0++;
   }	
}














?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清视频免费观看| 美日韩一区二区| 精品国产网站在线观看| 欧美日韩aaa| 欧美日韩一区二区电影| 欧美日韩精品一二三区| 欧美人妇做爰xxxⅹ性高电影 | 欧美日本韩国一区| 欧美视频日韩视频在线观看| 91麻豆视频网站| 色综合久久九月婷婷色综合| 欧美艳星brazzers| 欧美午夜理伦三级在线观看| 色天天综合久久久久综合片| 欧美亚洲国产一区二区三区| 51午夜精品国产| 精品久久久久久久久久久久包黑料| 日韩欧美精品在线视频| 国产精品天美传媒沈樵| 樱花草国产18久久久久| 日韩国产在线一| 国产在线精品一区二区夜色 | 国产精品不卡在线| 亚洲免费观看在线观看| 午夜一区二区三区视频| 韩国女主播成人在线| 成人黄色小视频| 欧美日韩一区二区三区免费看| 欧美精品在线观看一区二区| 久久久青草青青国产亚洲免观| 中文字幕日韩精品一区| 视频一区二区三区在线| 欧美日韩中文一区| www国产成人| 亚洲欧美一区二区久久| 久久精品国产第一区二区三区| 大胆亚洲人体视频| 91精品黄色片免费大全| 最新久久zyz资源站| 日韩精品久久理论片| www.性欧美| 日韩欧美视频在线| 一区二区高清免费观看影视大全 | 成人性生交大合| 欧美二区在线观看| 中文字幕一区日韩精品欧美| 日韩在线卡一卡二| 色综合久久六月婷婷中文字幕| 日韩亚洲国产中文字幕欧美| 亚洲欧洲av色图| 国产成a人无v码亚洲福利| 欧美精品亚洲一区二区在线播放| 国产精品国产三级国产有无不卡| 日韩电影一区二区三区四区| 在线免费观看日本欧美| 亚洲欧美在线观看| 国产精品自在在线| 日韩欧美一级精品久久| 婷婷中文字幕综合| 欧美色图天堂网| 亚洲精品欧美专区| 成人黄动漫网站免费app| 久久一夜天堂av一区二区三区| 视频在线在亚洲| 欧美性猛交xxxx乱大交退制版| 国产精品国产成人国产三级| 国产美女av一区二区三区| 欧美成人激情免费网| 日本欧美一区二区| 91精品国产一区二区| 亚洲一区二区三区免费视频| 91视视频在线观看入口直接观看www| 久久一区二区视频| 国产91精品在线观看| 久久久精品免费免费| 国产美女视频91| 国产亚洲精品中文字幕| 国产成人午夜高潮毛片| 国产女人18毛片水真多成人如厕| 国产一区二区91| 欧美高清一级片在线观看| 粉嫩av一区二区三区在线播放| 国产人成一区二区三区影院| 国产成人亚洲综合a∨婷婷| 国产网站一区二区| 成人动漫一区二区三区| 国产欧美精品一区二区色综合朱莉 | 不卡欧美aaaaa| 亚洲视频 欧洲视频| 一本一本大道香蕉久在线精品| 亚洲人午夜精品天堂一二香蕉| 色综合天天天天做夜夜夜夜做| 亚洲精品v日韩精品| 欧美日本在线一区| 精品一区二区免费| 国产精品黄色在线观看| 欧美日韩一区二区三区在线| 日韩福利电影在线| 久久婷婷久久一区二区三区| 成人h动漫精品一区二| 亚洲黄色尤物视频| 日韩三级高清在线| 成人性生交大片免费看视频在线 | 一本久道中文字幕精品亚洲嫩| 亚洲日本在线观看| 7777精品伊人久久久大香线蕉最新版 | 一本到一区二区三区| 日韩精品亚洲专区| 日韩欧美你懂的| 色综合久久99| 久久91精品国产91久久小草| 国产精品国产三级国产aⅴ无密码| 欧美在线一区二区| 国产一区三区三区| 亚洲午夜在线观看视频在线| 2021中文字幕一区亚洲| 色噜噜狠狠色综合欧洲selulu| 久久99久久久久| 中文字幕综合网| xvideos.蜜桃一区二区| 在线免费观看不卡av| 国产精品一区免费视频| 亚洲成人av免费| 18涩涩午夜精品.www| 日韩亚洲欧美在线| 欧美体内she精高潮| 国产成人午夜精品影院观看视频| 日韩在线一区二区| 亚洲精品国产第一综合99久久 | 欧美mv日韩mv| 欧美三级在线看| 国产aⅴ综合色| 久久99精品国产麻豆婷婷 | 日韩欧美黄色影院| 欧美视频中文字幕| eeuss鲁片一区二区三区| 精品一区二区三区在线播放视频| 性做久久久久久免费观看欧美| 亚洲欧洲日韩在线| 国产精品丝袜一区| 精品国产欧美一区二区| 欧美一区二区三区电影| 欧美日本国产一区| 欧美日韩国产区一| 欧美日韩五月天| 欧美在线观看18| 欧美色涩在线第一页| 欧美最猛性xxxxx直播| 在线视频综合导航| 在线亚洲人成电影网站色www| eeuss影院一区二区三区| 成人午夜视频在线观看| 东方aⅴ免费观看久久av| 国产伦精品一区二区三区视频青涩| 日韩av电影免费观看高清完整版 | 国产精品欧美精品| 国产日韩欧美麻豆| 日本一区二区不卡视频| 国产精品盗摄一区二区三区| 亚洲国产精品av| 国产精品久久777777| 亚洲女性喷水在线观看一区| 亚洲欧美另类久久久精品| 亚洲免费观看高清在线观看| 亚洲综合久久久| 日本一不卡视频| 蜜桃一区二区三区四区| 国产尤物一区二区在线| 国产成人精品亚洲日本在线桃色| 国产麻豆9l精品三级站| 91一区二区三区在线观看| 欧美亚洲图片小说| 91麻豆精品国产91久久久久久 | 成人h版在线观看| 色综合天天综合给合国产| 欧美午夜宅男影院| 日韩天堂在线观看| 国产欧美精品一区| 亚洲在线中文字幕| 久久国产麻豆精品| 粉嫩蜜臀av国产精品网站| 91蝌蚪国产九色| 91麻豆精品国产无毒不卡在线观看| 精品裸体舞一区二区三区| 中文字幕免费不卡在线| 亚洲午夜私人影院| 国产精品一区专区| 91蜜桃视频在线| 欧美一级久久久| 亚洲图片欧美激情| 麻豆精品精品国产自在97香蕉| 成人av一区二区三区| 欧美丝袜第三区| 国产欧美中文在线| 亚洲一区二区三区四区在线观看 | 99久久精品免费看| 日韩一区二区免费视频| 国产精品毛片a∨一区二区三区| 天堂午夜影视日韩欧美一区二区| 国产二区国产一区在线观看|