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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sc_t6963.c

?? 驅(qū)動15X20D液晶屏
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**************************************************************************
Copyright (c) HUST ESRI 1999. All Rights Reserved.

當(dāng)前版本:	V1.1
作者:	SeaCow
完成日期:	2007.6.24

取代版本:	T6963driver_1.c
原作者:	魏雪
完成日期:	2007.4

摘要:	NS240128A(T6963C控制器,32K顯存)液晶屏的驅(qū)動

[相關(guān)定義]
1.需要在事件在單片機引腳定義文件中添加以下引腳定義:
	//LCD控制信號寄存器
	#define T6963_COMMAND_REG	P4	//DB0-7口
	//LCD數(shù)據(jù)端口寄存器
	#define T6963_WRITE_CODE_REG	P5	//控制口0-4,依次為WR、RD、CE、CD、RST
	#define T6963_WRITE_DATA_REG	P5
	#define T6963_READ_STATE_REG	P5
	#define T6963_READ_DATA_REG	P5
2.需在工程中包含"SC_T6963.c"文件
3.需在主程序文件中加入:
	#include "inc\SC_T6963.h"	//LCD相關(guān)
**************************************************************************/
#include "inc\ConstDef.h"	//硬件相關(guān)常數(shù)定義
#include "inc\SC_T6963.h"

//----------------------------------------------------------------------------------//
//--------------------------------基本輸入輸出函數(shù)----------------------------------//
//----------------------------------------------------------------------------------//
/***************************************************************
	Function:	//	T6963_WriteCode
	Description://	向T6963控制器寫入一個命令字節(jié)
	Input:	//	CODE:需要寫入的命令字節(jié)
***************************************************************/
void T6963_WriteCode(uchar uCode)
{
	T6963_COMMAND_REG |= T6963_COMMAND_WRITE;
	T6963_COMMAND_REG &= T6963_CE_ENABLE;
	T6963_COMMAND_REG &= T6963_WR_ENABLE;
	T6963_COMMAND_REG |= T6963_RD_DISABLE;
	T6963_WRITE_CODE_REG = uCode;
//	T6963_Delay(5);			//at least 80ns
	T6963_COMMAND_REG |= T6963_WR_DISABLE;
	T6963_COMMAND_REG |= T6963_CE_DISABLE;
}

/***************************************************************
	Function:	//	T6963_WriteData
	Description://	向T6963控制器寫入一個數(shù)據(jù)字節(jié)
	Input:	//	DATA:需要寫入的數(shù)據(jù)字節(jié)
***************************************************************/
void T6963_WriteData(uchar uData)
{
	T6963_COMMAND_REG &= T6963_DATA_WRITE;
	T6963_COMMAND_REG &= T6963_CE_ENABLE;
	T6963_COMMAND_REG &= T6963_WR_ENABLE;
	T6963_COMMAND_REG |= T6963_RD_DISABLE;
	T6963_WRITE_CODE_REG = uData;
//	T6963_Delay(5);			//at least 80ns
	T6963_COMMAND_REG |= T6963_WR_DISABLE;
	T6963_COMMAND_REG |= T6963_CE_DISABLE;
}

/***************************************************************
	Function:	//	T6963_ReadState
	Description://	從T6963控制器讀取狀態(tài)字節(jié)
	Return:	//	STATE:狀態(tài)字節(jié)
***************************************************************/
uchar T6963_ReadState(void)
{	
	uchar uSTATE = 0;
	T6963_COMMAND_REG |= T6963_STATE_READ;
	T6963_COMMAND_REG &= T6963_CE_ENABLE;
	T6963_COMMAND_REG |= T6963_WR_DISABLE;
	T6963_COMMAND_REG &= T6963_RD_ENABLE;
//	T6963_Delay(5);
	T6963_READ_STATE_REG = 0xFF;
	uSTATE = T6963_READ_STATE_REG;
	T6963_COMMAND_REG |= T6963_RD_DISABLE;
	T6963_COMMAND_REG |= T6963_CE_DISABLE;
	return uSTATE;
}

/***************************************************************
	Function:	//	T6963_ReadData
	Description://	從T6963控制器讀取一個數(shù)據(jù)字節(jié)
	Return:		//	DATA:數(shù)據(jù)字節(jié)
***************************************************************/
uchar T6963_ReadData(void)
{
	uchar uData = 0;
	T6963_COMMAND_REG &= T6963_DATA_READ;
	T6963_COMMAND_REG &= T6963_CE_ENABLE;
	T6963_COMMAND_REG |= T6963_WR_DISABLE;
	T6963_COMMAND_REG &= T6963_RD_ENABLE;
//	T6963_Delay(5);
	T6963_READ_DATA_REG = 0xFF;
	uData = T6963_READ_DATA_REG;
	T6963_COMMAND_REG |= T6963_RD_DISABLE;
	T6963_COMMAND_REG |= T6963_CE_DISABLE;
	return uData;
}

//----------------------------------------------------------------------------------//
//----------------------------------檢查狀態(tài)函數(shù)------------------------------------//
//----------------------------------------------------------------------------------//
/***************************************************************
	Function:	//	T6963_CheckRDWR
	Description://	讀寫狀態(tài)檢查
	Calls:		//	T6963_ReadState
***************************************************************/
void T6963_CheckRDWR(void)
{
	uchar uSTATE;
	do
	{
		uSTATE = T6963_ReadState();
		uSTATE &= 0x03;
	}while(uSTATE != 0x03);
}

/***************************************************************
	Function:	//	T6963_CheckAutoRD
	Description://	自動讀狀態(tài)檢查
	Calls:		//	T6963_ReadState
***************************************************************/
void T6963_CheckAutoRD(void)
{
	uchar uSTATE;
	do
	{
		uSTATE = T6963_ReadState();
		uSTATE &= 0x04;
	}while(uSTATE != 0x04);
}

/***************************************************************
	Function:	//	T6963_CheckAutoWR
	Description://	自動寫狀態(tài)檢查
	Calls:		//	T6963_ReadState
***************************************************************/
void T6963_CheckAutoWR(void)
{
	uchar uSTATE;
	do
	{
		uSTATE = T6963_ReadState();
		uSTATE &= 0x08;
	}while(uSTATE != 0x08);
}

//----------------------------------------------------------------------------------//
//--------------------------------讀寫函數(shù)(命令,數(shù)據(jù))----------------------------//
//----------------------------------------------------------------------------------//
/***************************************************************
	Function:	//	T6963_OutData
	Description://	輸出數(shù)據(jù)
	Calls:		//	T6963_CheckRDWR	T6963_WriteData	
***************************************************************/
void T6963_OutData(uchar uData)
{
	T6963_CheckRDWR();
	T6963_WriteData(uData);
}

/***************************************************************
	Function:	//	T6963_InData
	Description://	讀入數(shù)據(jù)
	Calls:		//	T6963_CheckRDWR	T6963_ReadData
	Return:		//	DATA
***************************************************************/
uchar T6963_InData(void)
{
	uchar uData;
	T6963_CheckRDWR();
	uData = T6963_ReadData();
	return uData;
}

/***************************************************************
	Function:	//	T6963_OutCommand0byte
	Description://	寫無參數(shù)命令
	Calls:		//	T6963_CheckRDWR	T6963_WriteCode
***************************************************************/
void T6963_OutCommand0byte(uchar uCommand)
{
	T6963_CheckRDWR();
	T6963_WriteCode(uCommand);
}

/***************************************************************
	Function:	//	T6963_OutCommand1byte
	Description://	寫1個參數(shù)的命令
	Calls:		//	T6963_OutData	T6963_OutCommand0byte
***************************************************************/
void T6963_OutCommand1byte(uchar uData,uchar uCommand)
{
	T6963_OutData(uData);
	T6963_OutCommand0byte(uCommand);
}

/***************************************************************
	Function:	//	T6963_OutCommand2byte
	Description://	寫2個參數(shù)的命令
	Calls:		//	T6963_OutData	T6963_OutCommand0byte
***************************************************************/
void T6963_OutCommand2byte(uchar Data1,uchar Data2,uchar uCommand)
{
	T6963_OutData(Data1);
	T6963_OutData(Data2);
	T6963_OutCommand0byte(uCommand);
}

//----------------------------------------------------------------------------------//
//--------------------------------高層函數(shù)------------------------------------------//
//----------------------------------------------------------------------------------//

/***************************************************************
	Function:	//	LcdCls
	Description://	液晶屏初始化
***************************************************************/

void LcdInit(void)
{
	T6963_COMMAND_REG &= T6963_RESET_ENABLE;
	T6963_Delay(50);	//將RESET腳電平拉低保持5個時鐘周期以上(液晶屏使用6MHZ的晶振)
	T6963_COMMAND_REG |= T6963_RESET_DISABLE;	//LCM復(fù)位
	T6963_OutCommand0byte(T6963_DISPLAY_OFF);	//關(guān)閉顯示
	T6963_OutCommand2byte(0x00,0x00,T6963_SET_TXT_HOME_ADD);	//設(shè)置文本顯存頁起始地址至0x0000
	T6963_OutCommand2byte(30,0x00,T6963_SET_TXT_AREA);			//設(shè)置文本區(qū)域(字符列數(shù))
	T6963_OutCommand2byte(0x00,0x10,T6963_SET_GRAPH_HOME_ADD);	//設(shè)置圖形顯存頁起始地址至0x1000
	T6963_OutCommand2byte(30,0x00,T6963_SET_GRAPH_AREA);		//設(shè)置文本區(qū)域(點陣列數(shù)/8)
	T6963_OutCommand0byte(T6963_CUR_8LINE);		//設(shè)置光標形狀
	T6963_OutCommand0byte(T6963_OR_MODE);		//設(shè)置文本與圖形的疊加模式
//	T6963_OutCommand0byte(T6963_DISPLAY_ON+T6963_GRAPH_ON+T6963_TXT_ON+T6963_BLINK_ON);	//打開顯示
	T6963_OutCommand0byte(T6963_DISPLAY_ON+T6963_GRAPH_ON+T6963_TXT_ON);	//打開顯示
}
/***************************************************************
	Function:	//	LcdCls
	Description://	清屏(清全部緩存)
***************************************************************/
void LcdCls(void)
{
	uint i;
//	uint j = 0;
	T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
	for(i = 0x00;i < 0x8000;i++)
	{
		T6963_OutData(0x00);
//		if(i % 0x1000 == 0)	j++;
	}
	T6963_OutCommand0byte(T6963_AUTO_RESET);
}

/***************************************************************
	Function:	//	LcdClsTxt
	Description://	清指定的文本頁
	Input:		TPage:	要顯示的文本頁號 (0-4)
***************************************************************/
void LcdClsTxt(uchar TPage)
{
	uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE;
	uint i;
	T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
	T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
	for(i = 0;i < T6963_TXT_PAGESIZE; i++)
	{
		T6963_OutData(0x00);
	}
	T6963_OutCommand0byte(T6963_AUTO_RESET);
}

/***************************************************************
	Function:	//	LcdClsGraph
	Description://	清指定的文本頁
	Input:		GPage:	要顯示的圖形頁號 (0-6)
***************************************************************/
void LcdClsGraph(uchar GPage)
{
	uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE;
	uint i;
	T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
	T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
	for(i = 0;i < T6963_GRAPH_PAGESIZE; i++)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品嫩草影院av蜜臀| 亚洲图片激情小说| 国产毛片精品国产一区二区三区| 夜夜嗨av一区二区三区网页| 国产欧美一区二区精品性色超碰| 69堂国产成人免费视频| 在线免费一区三区| 成人黄色777网| 国产suv精品一区二区883| 日韩电影免费在线看| 亚洲国产精品久久人人爱蜜臀 | 精品国产伦一区二区三区观看方式 | 日韩亚洲欧美综合| 欧美性色黄大片| 91一区二区在线观看| 精品一区二区免费看| 日本成人在线视频网站| 亚洲黄网站在线观看| 最新不卡av在线| 国产精品久久久久久久久免费樱桃 | 91久久一区二区| jizz一区二区| 国产成人精品一区二| 黑人精品欧美一区二区蜜桃| 久久精品国产久精国产| 午夜电影网亚洲视频| 一区二区三区四区乱视频| 亚洲美女在线一区| 亚洲精品乱码久久久久久日本蜜臀| 成人免费在线观看入口| 国产精品美女www爽爽爽| 日本一区二区动态图| 亚洲国产精品99久久久久久久久| 中文字幕一区二区三| 夜夜揉揉日日人人青青一国产精品| 日日夜夜免费精品| 激情欧美日韩一区二区| 成人av在线资源网站| 欧美日韩精品一区二区| 久久无码av三级| 日韩理论电影院| 蜜桃一区二区三区四区| 丁香五精品蜜臀久久久久99网站 | 91久久久免费一区二区| 91精品国产综合久久久蜜臀图片 | 国产精品亚洲第一区在线暖暖韩国| 91年精品国产| 精品免费日韩av| 亚洲欧美日韩国产成人精品影院 | 国产呦精品一区二区三区网站| 99视频有精品| 欧美成人精品3d动漫h| 亚洲女同ⅹxx女同tv| 麻豆成人久久精品二区三区小说| av在线综合网| 欧美电影免费观看完整版| 日韩一区在线看| 久久精品久久精品| 色88888久久久久久影院野外| 日韩欧美一区二区不卡| 一区二区三区精品在线观看| 精品无码三级在线观看视频| 欧美性猛交xxxx乱大交退制版| 久久久不卡网国产精品一区| 亚洲成人免费在线观看| 成人精品免费看| 日韩一区二区精品| 一区av在线播放| 成人午夜在线免费| 日韩欧美激情四射| 亚洲一区二区精品3399| 福利91精品一区二区三区| 欧美一级片在线看| 亚洲高清免费观看高清完整版在线观看| 国产一区二区日韩精品| 欧美亚洲另类激情小说| 国产精品福利一区| 国产美女精品一区二区三区| 日韩视频免费直播| 日韩影院精彩在线| 色94色欧美sute亚洲线路二| 国产精品久久久久久久久免费相片 | 亚洲精品乱码久久久久| 国产v综合v亚洲欧| 欧美mv和日韩mv国产网站| 亚洲成人久久影院| 日本乱码高清不卡字幕| 中文字幕在线一区二区三区| 东方欧美亚洲色图在线| 国产欧美日韩中文久久| 国产一区二区三区免费播放| 欧美一区二区日韩| 日韩不卡在线观看日韩不卡视频| 欧美偷拍一区二区| 亚洲综合精品久久| 欧洲国内综合视频| 亚洲欧美日韩国产成人精品影院| www.亚洲色图.com| 国产精品美女www爽爽爽| 国产91精品一区二区麻豆网站| 久久久精品欧美丰满| 国内精品免费**视频| 日韩亚洲欧美综合| 久久精品国产在热久久| 久久综合五月天婷婷伊人| 韩国毛片一区二区三区| 久久蜜桃av一区二区天堂| 狠狠色狠狠色综合系列| 久久亚洲综合色一区二区三区 | 色综合久久久久久久久久久| 国产精品人人做人人爽人人添| 国产精品888| 欧美激情一区二区三区四区| 成人免费观看视频| 一区在线观看免费| 亚洲va天堂va国产va久| 欧美日韩成人激情| 免费观看在线综合色| 日韩欧美国产小视频| 经典一区二区三区| 国产色91在线| 欧美成人性战久久| 久久精品国产免费| 国产日韩欧美一区二区三区乱码| 丰满少妇久久久久久久| 成人免费在线播放视频| 欧美日韩成人一区| 精品亚洲国内自在自线福利| 久久久久成人黄色影片| 99精品视频免费在线观看| 亚洲一级二级三级在线免费观看| 在线不卡欧美精品一区二区三区| 热久久久久久久| 26uuu国产日韩综合| 亚洲午夜精品17c| 欧美一区二区成人6969| 国产在线精品免费| 亚洲码国产岛国毛片在线| 欧美精品丝袜中出| 国产麻豆视频一区| 亚洲视频香蕉人妖| 91精品国产色综合久久ai换脸 | 在线一区二区三区四区五区| 日精品一区二区三区| 久久久久久电影| 欧美在线观看视频在线| 久久97超碰色| 综合激情成人伊人| 91精品在线麻豆| 成人国产精品免费网站| 日日噜噜夜夜狠狠视频欧美人| 久久久精品免费观看| 欧美性极品少妇| 国产精品一级片| 亚洲一级片在线观看| 久久久91精品国产一区二区精品| 91视视频在线观看入口直接观看www | 国产嫩草影院久久久久| 欧美色视频一区| 国产很黄免费观看久久| 五月天激情小说综合| 日本一区二区三区免费乱视频 | 亚洲午夜激情av| 中文一区二区在线观看| 欧美精品777| 91亚洲精品久久久蜜桃| 精品一区二区影视| 午夜精品视频在线观看| 国产精品成人免费| 亚洲精品一区二区精华| 91福利国产精品| 成人免费va视频| 另类综合日韩欧美亚洲| 亚洲激情一二三区| 中文字幕欧美区| 日韩欧美久久一区| 欧美三级日韩在线| 91网页版在线| 懂色一区二区三区免费观看| 久久精品国产秦先生| 视频一区中文字幕| 亚洲激情一二三区| 亚洲欧洲性图库| 久久精品夜色噜噜亚洲aⅴ| 日韩一区二区三免费高清| 欧美午夜片在线看| 日本韩国欧美三级| caoporn国产一区二区| 国产黑丝在线一区二区三区| 久久成人免费网| 蜜臀av在线播放一区二区三区| 亚洲综合色噜噜狠狠| 亚洲六月丁香色婷婷综合久久| 国产三级精品在线| 久久日韩精品一区二区五区| 欧美一区二区三区人| 欧美美女网站色| 911精品产国品一二三产区| 欧日韩精品视频| 91久久奴性调教|