?? sc_t6963.c
字號(hào):
{
T6963_OutData(0x00);
}
T6963_OutCommand0byte(T6963_AUTO_RESET);
}
/***************************************************************
Function: // LcdTxtLayer
Description:// 切換顯示指定文本頁
Input: TPage: 要顯示的文本頁號(hào) (0-4)
***************************************************************/
void LcdTxtLayer(uchar TPage)
{
uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE;
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8),T6963_SET_TXT_HOME_ADD);
}
/***************************************************************
Function: // GraphLayer
Description:// 切換顯示指圖形頁
Input: GPage: 要顯示的文本頁號(hào) (0-6)
***************************************************************/
void LcdGraphLayer(uchar GPage)
{
uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE;
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8),T6963_SET_GRAPH_HOME_ADD);
}
/***************************************************************
Function: // LcdPutChar
Description:// 在屏幕指定位置顯示一個(gè)字符,應(yīng)用于文本模式下
8*8大小的字符
T6963自帶的字庫不好用,字符代碼沒有和ASCII碼對(duì)應(yīng),顯示字符需要查表.
Input: TPage: 要顯示的文本頁號(hào) (0-4)
CharX: 字符顯示的橫坐標(biāo) 0---29
CharY: 字符顯示的縱坐標(biāo) 0---15
uChar: 字符對(duì)應(yīng)的代碼,需要查表
***************************************************************/
void LcdPutChar(uchar TPage, uchar CharX,uchar CharY,uchar uChar)
{
uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + CharX + CharY*30;
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
T6963_OutCommand1byte(uChar,T6963_DATA_WRITE_NO_ADP);
}
/***************************************************************
Function: // LcdStr
Description:// 應(yīng)用于文本模式下,在屏幕指定位置顯示字符串
格式為 2006-09-13
Input: TPage: 要顯示的文本頁號(hào) (0-4)
StrX: 字符串在屏幕上顯示的橫坐標(biāo) 0---29
StrY: 字符串在屏幕上顯示的縱坐標(biāo) 0---15
uString: 字符串存儲(chǔ)的首地址
***************************************************************/
void LcdStr(uchar TPage,uchar StrX,uchar StrY,uchar *uString)
{
uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + StrX + StrY*30;
uchar i;
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
for(i = 0; i < strlen(uString); i++)
{
T6963_OutData(*(uString+i) - 0x20);
}
T6963_OutCommand0byte(T6963_AUTO_RESET);
}
/***************************************************************
Function: // LcdClearStr
Description:// 應(yīng)用于文本模式下,清除屏幕指定位置字符串
Input: TPage: 要顯示的文本頁號(hào) (0-4)
StrX: 清除的字符串在屏幕上顯示的橫坐標(biāo) 0---29
StrY: 清除的字符串在屏幕上顯示的縱坐標(biāo) 0---15
Length: 清除的字符串的長(zhǎng)度
***************************************************************/
void LcdClearStr(uchar TPage,uchar StrX,uchar StrY,uchar Length)
{
uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + StrX + StrY*30;
uchar i;
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
for(i = 0;i < Length;i++)
T6963_OutData(0x00);
T6963_OutCommand0byte(T6963_AUTO_RESET);
}
/***************************************************************
Function: // LcdBmp
Description:// 在屏幕指定位置顯示一個(gè)圖形(漢字,字符),
應(yīng)用于圖形模式下
Input: GPage: 要顯示的圖形頁號(hào) (0-6)
BmpX: 圖形顯示的橫坐標(biāo) 0×8---29×8
BmpY: 圖形顯示的縱坐標(biāo) 0---127
BmpWidth: 圖形的寬度 1×8---30×8
BmpHeigh: 圖形的高度 1---128
BmpAdd: 圖形存儲(chǔ)數(shù)組的首地址
***************************************************************/
void LcdBmp(uchar GPage, uchar BmpX, uchar BmpY, uchar* BmpAdd)
{
uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE + BmpX/8 + BmpY*30;
uchar i = 0, j = 0;
uchar BmpWidth = BmpAdd[0], BmpHeigh = BmpAdd[1];
BmpAdd+=2;
for(i = 0;i < BmpHeigh;i++)
{
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
for(j = 0;j < (BmpWidth/8);j++)
{
T6963_OutCommand1byte(*(BmpAdd),T6963_DATA_WRITE_INCRE_ADP);
BmpAdd++;
}
Add += 30;
//T6963_Delay(50);
}
}
/***************************************************************
Function: // LcdClearRect
Description:// 清除屏幕上指定的一個(gè)四邊形,應(yīng)用于圖形模式下
Input: GPage: 要顯示的圖形頁號(hào) (0-6)
X: 清屏起始橫坐標(biāo) 0×8--29×8
Y: 清屏起始縱坐標(biāo) 0--127
Rect_Width: 清屏寬度 1×8--30*8
Rect_Heigh: 清屏高度 1--128
***************************************************************/
void LcdClearRect(uchar GPage,uchar X,uchar Y,uchar Rect_Width,uchar Rect_Heigh)
{
uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE + X/8 + Y*30;
uchar i = 0, j = 0;
for(i = 0;i < Rect_Heigh;i++)
{
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
for(j = 0;j < Rect_Width/8;j++)
{
T6963_OutCommand1byte(0x00,T6963_DATA_WRITE_INCRE_ADP);
}
Add += 30;
}
}
/***************************************************************
Function: // LcdRevRect
Description:// 反顯指定區(qū)域
***************************************************************/
void LcdRevRect(uchar GPage,uchar X,uchar Y,uchar Width,uchar Heigh)
{
uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE + X/8 + Y*30;
uchar i = 0, j = 0, uData = 0;
for(i = 0;i < Heigh;i++)
{
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
for(j = 0;j < Width/8;j++)
{
T6963_OutCommand0byte(T6963_DATA_READ_NO_ADP);
uData = T6963_InData();
uData = ~uData;
T6963_OutCommand1byte(uData,T6963_DATA_WRITE_INCRE_ADP);
}
Add += 30;
}
}
/***************************************************************
Function: // LcdPixel
Description:// 畫點(diǎn)函數(shù),應(yīng)用于圖形模式下
Called by: // LcdLine
Input: GPage: 要顯示的圖形頁號(hào) (0-6)
X: 點(diǎn)的橫坐標(biāo)
Y: 點(diǎn)的縱坐標(biāo)
Disp: 1畫該點(diǎn),0清除該點(diǎn)
***************************************************************/
void LcdPixel(uchar GPage, uchar X,uchar Y,bit Disp)
{
uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE + X/8 + Y*30;
uchar Temp;
Temp = 0xF7 - (X%8);
if(Disp) Temp |= 0x08;
T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
T6963_OutCommand0byte(Temp);
}
/***************************************************************
Function: // LcdLine
Description:// 畫直線函數(shù),應(yīng)用于圖形模式下
Calls: // LcdPixel
Input: GPage: 要顯示的圖形頁號(hào) (0-6)
X1,Y1: 第一個(gè)點(diǎn)的坐標(biāo)
X2,Y2: 第二個(gè)點(diǎn)的坐標(biāo)
坐標(biāo)范圍:(0,0)---(239,127)
Disp: 1畫該直線,0清除該直線
***************************************************************/
void LcdLine(uchar GPage,uchar X1,uchar Y1,uchar X2,char Y2,bit Disp)
{
uchar i = 0;
uchar j = 0;
float k = 0; //斜率
if(X1 == X2) //k = 無窮
{
j = Y1;
do
{
LcdPixel(GPage,X1,j,Disp);
if(Y1 < Y2)
j++;
else
j--;
}while(j != Y2);
LcdPixel(GPage,X2,Y2,Disp);
}
else if(Y1 == Y2) //k = 0
{
i = X1;
do
{
LcdPixel(GPage,i,Y1,Disp);
if(X1 < X2)
i++;
else
i--;
}while(i != X2);
LcdPixel(GPage,X2,Y2,Disp);
}
else if(abs(X1-X2) < abs(Y1-Y2)) //|k| > 1
{
k = (double)(Y2-Y1) / (double)(X2-X1);
i = X1;
do
{
j = (i-X1)*k +Y1;
LcdPixel(GPage,i,j,Disp);
if(X1 < X2)
i++;
else
i--;
}while(i != X2);
LcdPixel(GPage,X2,Y2,Disp);
}
else if(abs(X1-X2) >= abs(Y1-Y2)) //|k| <= 1
{
k = (double)(X2-X1) / (double)(Y2-Y1);
j = Y1;
do
{
i = (j-Y1)*k + X1;
LcdPixel(GPage,i,j,Disp);
if(Y1 < Y2)
j++;
else
j--;
}while(j != Y2);
LcdPixel(GPage,X2,Y2,Disp);
}
}
/***************************************************************
Function: // LcdScrRoll
Description:// 滾屏函數(shù),應(yīng)用于圖形模式下
Input: GPage: 要顯示的圖形頁號(hào) (0-6)
n:滾動(dòng)的行數(shù)
***************************************************************/
void LcdScrRoll(uchar GPage,uchar n)
{
uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE +30*n;
T6963_OutCommand2byte((uchar)(Add),(uchar)(Add >> 8),T6963_SET_GRAPH_HOME_ADD);
}
//-------------------------------------------------------------
void T6963_Delay(uchar n)
{
uchar i;
uchar j;
for(i = 0;i < n;i++)
{
for(j = 0;j < 6;j++)
_nop_();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -