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

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

?? sc_t6963.c

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

當前版本:	V1.1
作者:	SeaCow
完成日期:	2007.6.24

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

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

[相關定義]
1.需要在事件在單片機引腳定義文件中添加以下引腳定義:
	//LCD控制信號寄存器
	#define T6963_COMMAND_REG	P4	//DB0-7口
	//LCD數據端口寄存器
	#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相關
**************************************************************************/
#include "inc\ConstDef.h"	//硬件相關常數定義
#include "inc\SC_T6963.h"

//----------------------------------------------------------------------------------//
//--------------------------------基本輸入輸出函數----------------------------------//
//----------------------------------------------------------------------------------//
/***************************************************************
	Function:	//	T6963_WriteCode
	Description://	向T6963控制器寫入一個命令字節
	Input:	//	CODE:需要寫入的命令字節
***************************************************************/
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控制器寫入一個數據字節
	Input:	//	DATA:需要寫入的數據字節
***************************************************************/
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控制器讀取狀態字節
	Return:	//	STATE:狀態字節
***************************************************************/
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控制器讀取一個數據字節
	Return:		//	DATA:數據字節
***************************************************************/
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;
}

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

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

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

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

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

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

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

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

//----------------------------------------------------------------------------------//
//--------------------------------高層函數------------------------------------------//
//----------------------------------------------------------------------------------//

/***************************************************************
	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復位
	T6963_OutCommand0byte(T6963_DISPLAY_OFF);	//關閉顯示
	T6963_OutCommand2byte(0x00,0x00,T6963_SET_TXT_HOME_ADD);	//設置文本顯存頁起始地址至0x0000
	T6963_OutCommand2byte(30,0x00,T6963_SET_TXT_AREA);			//設置文本區域(字符列數)
	T6963_OutCommand2byte(0x00,0x10,T6963_SET_GRAPH_HOME_ADD);	//設置圖形顯存頁起始地址至0x1000
	T6963_OutCommand2byte(30,0x00,T6963_SET_GRAPH_AREA);		//設置文本區域(點陣列數/8)
	T6963_OutCommand0byte(T6963_CUR_8LINE);		//設置光標形狀
	T6963_OutCommand0byte(T6963_OR_MODE);		//設置文本與圖形的疊加模式
//	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++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久99精品久久| 欧美午夜精品理论片a级按摩| 日韩欧美精品在线视频| 日韩精品乱码av一区二区| 欧美撒尿777hd撒尿| 午夜一区二区三区视频| 91麻豆精品国产综合久久久久久| 日韩avvvv在线播放| 日韩精品一区二区三区视频播放| 精品在线免费视频| 久久久久综合网| 99视频超级精品| 亚洲精品菠萝久久久久久久| 精品污污网站免费看| 日韩国产欧美在线观看| 日韩精品一区二区三区swag| 韩国成人精品a∨在线观看| 中文字幕不卡的av| 色哟哟在线观看一区二区三区| 亚洲韩国精品一区| 精品少妇一区二区三区在线视频| 成人免费av资源| 亚洲一区电影777| 精品少妇一区二区三区| 99久久精品国产网站| 亚洲高清免费视频| 欧美激情在线看| 欧美日韩精品一区二区三区蜜桃| 捆绑变态av一区二区三区| 国产精品麻豆网站| 欧美一区二区视频在线观看2020| 国产suv精品一区二区6| 亚洲成av人片观看| 国产三级精品视频| 欧美日韩成人综合天天影院| 国产麻豆精品视频| 亚洲午夜电影在线观看| 久久色在线观看| 欧美日韩成人综合| 9人人澡人人爽人人精品| 欧美a级一区二区| 国产精品电影一区二区| 欧美电影免费提供在线观看| 9久草视频在线视频精品| 免费成人在线网站| 亚洲国产成人av好男人在线观看| 久久影院午夜片一区| 欧美图区在线视频| www.日本不卡| 国产在线一区观看| 五月激情六月综合| 亚洲精品水蜜桃| 久久久久久久久久美女| 欧美老年两性高潮| 99久久99久久精品国产片果冻| 日韩高清在线观看| 夜夜精品浪潮av一区二区三区| 欧美国产日本韩| 久久综合色播五月| 日韩一区二区三区av| 欧洲人成人精品| 97成人超碰视| 播五月开心婷婷综合| 久久er99精品| 日韩电影在线观看网站| 亚洲自拍偷拍麻豆| 亚洲欧洲在线观看av| 久久这里只有精品6| 日韩欧美成人午夜| 日韩一区二区三区三四区视频在线观看| 色婷婷av一区二区三区软件 | 亚洲成人福利片| 亚洲男同性恋视频| 夜夜揉揉日日人人青青一国产精品| 亚洲欧洲日韩在线| 中文字幕中文在线不卡住| 国产农村妇女毛片精品久久麻豆| 精品久久人人做人人爽| 精品福利在线导航| 日韩免费观看2025年上映的电影| 这里只有精品免费| 日韩女优视频免费观看| 日韩欧美中文一区| 日韩精品专区在线影院观看| 欧美va亚洲va国产综合| 精品久久久久av影院| 欧美成人bangbros| 国产亚洲人成网站| 中文av一区二区| 日韩美女视频19| 性欧美大战久久久久久久久| 午夜不卡在线视频| 韩国女主播一区| 成人动漫一区二区三区| 99久久精品免费精品国产| 欧美性一二三区| 日韩一区二区三区视频在线 | 欧美视频在线播放| 8v天堂国产在线一区二区| 日韩一区二区影院| 国产日韩一级二级三级| 国产精品超碰97尤物18| 一区二区三区四区不卡视频| 亚洲超碰精品一区二区| 久久国产精品72免费观看| 国产乱人伦精品一区二区在线观看 | 亚洲18色成人| 麻豆成人免费电影| 成人不卡免费av| 欧美日韩精品二区第二页| 91精品在线观看入口| 欧美xxxxx裸体时装秀| 精品国产91久久久久久久妲己| 亚洲国产成人一区二区三区| 亚洲欧美综合网| 亚洲欧美日韩国产手机在线| 一区二区三区不卡在线观看| 亚洲视频你懂的| 午夜精品免费在线观看| 蜜桃一区二区三区在线观看| 国产精品69毛片高清亚洲| eeuss鲁片一区二区三区在线看 | 亚洲国产中文字幕| 久久综合综合久久综合| 国产精品自拍av| 97se亚洲国产综合自在线| 色猫猫国产区一区二在线视频| 99综合电影在线视频| 欧美精选在线播放| 亚洲精品一区二区三区精华液| 久久九九久久九九| 亚洲视频免费在线| 日本亚洲最大的色成网站www| 成人免费视频网站在线观看| 日本伦理一区二区| 日韩欧美自拍偷拍| 日韩一区在线免费观看| 日韩国产欧美在线播放| 久久99国产精品久久| 欧美三级三级三级爽爽爽| 久久免费看少妇高潮| 一区二区在线观看视频| 久久国产精品区| 成人国产精品免费观看动漫| 日韩欧美在线123| 亚洲理论在线观看| 国产成人av一区二区| 欧美视频一区二区三区在线观看| 日韩一区有码在线| 麻豆中文一区二区| 欧美高清视频一二三区 | 欧美成人三级在线| 天堂一区二区在线免费观看| 播五月开心婷婷综合| 国产亚洲一区二区三区| 婷婷久久综合九色综合伊人色| 日本精品一区二区三区高清 | 日本在线不卡视频一二三区| 本田岬高潮一区二区三区| 久久久久久免费| 美女一区二区三区| 日韩一区二区在线观看| 亚洲国产精品久久久久婷婷884| 成人性生交大片免费看视频在线| 欧美成人精品1314www| 亚洲制服欧美中文字幕中文字幕| 91麻豆精品在线观看| 日本一区二区在线不卡| 久久99国产精品麻豆| 在线成人免费观看| 日韩av一二三| 欧美军同video69gay| 一区二区三区欧美激情| jlzzjlzz国产精品久久| 精品国产91乱码一区二区三区| 激情深爱一区二区| 欧美成人伊人久久综合网| 日本中文字幕不卡| 4hu四虎永久在线影院成人| 日韩av网站在线观看| 69p69国产精品| 视频一区中文字幕| 欧美精选一区二区| 午夜视频在线观看一区二区三区| 91美女在线看| 亚洲天堂精品在线观看| 成人精品电影在线观看| 久久久亚洲精华液精华液精华液| 久久99精品网久久| 2021中文字幕一区亚洲| 青青青爽久久午夜综合久久午夜| 91精品国产综合久久福利| 水蜜桃久久夜色精品一区的特点| 欧美色手机在线观看| 麻豆精品在线观看| 久久精品欧美一区二区三区不卡| 国产又粗又猛又爽又黄91精品| 久久亚洲精精品中文字幕早川悠里| 国产呦萝稀缺另类资源| 中文字幕二三区不卡|