?? lcdfile.c
字號(hào):
}
}
i1 = o_y * 0x20;
i1 = i1 + o_x;
dat1_temp = i1 & 0xff;
dat1_temp = dat1_temp ;
dat2_temp = (i1>>8) & 0xff;
dat2_temp = dat2_temp;
code_temp = &hex_code[0];
for(i2 = 0; i2 < 16 ; i2++)
{
wr_data(dat1_temp); /* 漢字點(diǎn)陣在LCD中的位置 */
wr_data(dat2_temp);
wr_com(0x24);
wr_data(*code_temp); /* 寫入漢字點(diǎn)陣 */
wr_com(0xc0);
wr_data(*(code_temp + 0x10));
wr_com(0xc0);
code_temp++;
i1 = i1 + 0x20;
dat1_temp = i1 & 0xff;
dat2_temp = (i1>>8) & 0xff; /* 修改漢字點(diǎn)陣在LCD中的位置 */
}
}
/***************************************************************************
* 函數(shù): void wr_dot(unsigned int o_y,unsigned int o_x,unsigned short flag)
* 目的: 描點(diǎn),根據(jù)flag的狀態(tài),在LCD顯示器的指定在o_y和o_x處描點(diǎn),如果flag=1,
描點(diǎn);如果flag=0,清除點(diǎn)
* 輸入: o_y Y軸,范圍0~127
o_x Y軸,范圍0~239
flag 是否描點(diǎn),flag=1,描點(diǎn);flag=0,清點(diǎn)
* 輸出: 無(wú)返回
***************************************************************************/
void wr_dot(unsigned int o_y,unsigned int o_x,unsigned short flag)
{
int i,dat1_temp,dat2_temp,temp,temp1;
// i = o_y & 0x7f;
i = o_y * 0x20;
dat1_temp = i & 0xff;
dat2_temp = (i >> 8) & 0xff;
temp = o_x / 8;
dat1_temp = dat1_temp + temp;
temp1 = o_x - (temp * 8);
temp1 = 7 - temp1; /* 設(shè)定描點(diǎn)的位置 */
wr_data(dat1_temp);
wr_data(dat2_temp);
wr_com(0x24);
if(flag == 1)
{
wr_com(0xf8 | temp1);
}
else
{
wr_com(0xf0 | temp1);
}
}
/***************************************************************************
* 函數(shù): extern void GUILCD_writeCharStr(unsigned int Row, unsigned int Column, unsigned char *cString ,bool fanxian)
* 目的: 寫漢字字符串,將函數(shù)傳遞的字符串放在LCD屏的ROW行和COLUMN列的位置顯示
自動(dòng)寫屏,直到字符串尾,判斷為0停止。根據(jù)變量fanxi是否為0,
決定當(dāng)前字符串是否反顯。顯示位置從LCD屏的ROW行和COLUMN列的位置開(kāi)始,
為行顯示,既ROW不變,COLUMN加1變化。
* 輸入: string 代碼字符串
ROW 漢字行,范圍(0到7),代表字符串起始Y位置
COLUMN 漢字列,范圍(0到14),代表字符串起始X位置
fanxian 反顯 0:無(wú) 非0:反顯
* 輸出: 無(wú)
***************************************************************************/
extern void GUILCD_writeCharStr(unsigned int Row, unsigned int Column, unsigned char *cString ,unsigned short fanxian)
{
unsigned int ii1,ii4;
ii4 = 0;
ii1 = *cString;
while(ii1 != 0) /* 判斷字符串是否結(jié)束 */
{
wr_hex(ii1,Row*0x10,Column*2,fanxian); /* 寫漢字 */
Column++; /* 列位置+1 */
ii4++;
ii1 = *(cString + ii4); /* 讀字符串內(nèi)的值 */
}
}
/***************************************************************************
* 函數(shù): extern void GUILCD_writeLetterStr(unsigned int Row, unsigned int Column, unsigned char *cString,unsigned short fanxian )
* 目的: 寫ASC碼字符串,16*16點(diǎn)陣格式,將字符串string中的ASC碼在LCD屏的
ROW和COLUMN坐標(biāo)處顯示,連續(xù)顯示,直到字符串string串尾為0,ROW保持
不變,COLUMN加1。
* 輸入: string ASC代碼字符串
ROW y坐標(biāo),范圍(0到7),代表字符串起始Y位置
COLUMN x坐標(biāo),范圍(0到14),代表字符串起始X位置
fanxian 反顯 0:無(wú) 非0:反顯
* 輸出: 無(wú)
***************************************************************************/
extern void GUILCD_writeLetterStr(unsigned int Row, unsigned int Column, unsigned char *cString,unsigned short fanxian )
{
unsigned int iii1,iii2;
iii2 = 0;
iii1 = *cString;
while(iii1 != 0) /* 判斷字符串是否結(jié)束 */
{
iii2++;
wr_letter(iii1,Row*0x10,Column*2,fanxian);
Column++;
iii1 = *(cString + iii2);
}
}
/***************************************************************************
* 函數(shù): extern void GUILCD_writeCurse(unsigned int Row, unsigned int Column)
* 目的: 顯示光標(biāo),光標(biāo)地址為Row(y軸),Column(x軸)
* 輸入: Row y坐標(biāo)(范圍:0到7,代表8行漢字)
Column x坐標(biāo)(范圍:0到14,代表15列漢字)
* 輸出: 無(wú)
* 參數(shù): 無(wú)全局變量
***************************************************************************/
extern void GUILCD_writeCurse(unsigned int Row, unsigned int Column)
{
unsigned int i1,dat1_temp,dat2_temp;
Row = Row * 0x10;
Column = Column * 2;
i1 = Row * 0x20;
i1 = i1 + Column + 0x1e0;
dat1_temp = i1 & 0xff;
dat2_temp = (i1>>8) & 0xff;
wr_data(dat1_temp);
wr_data(dat2_temp);
wr_com(0x24);
wr_data(0xff);
wr_com(0xc0);
wr_data(0xff);
wr_com(0xc0);
}
/***************************************************************************
* 函數(shù): extern void GUILCD_clearCurse(unsigned int Row, unsigned int Column)
* 目的: 清光標(biāo),光標(biāo)地址為ROW(y軸),COLUMN(x軸)
* 輸入: ROW y坐標(biāo)(范圍:0到7,代表8行漢字)
COLUMN x坐標(biāo)(范圍:0到14,代表15列漢字)
* 輸出: 無(wú)
* 參數(shù): 無(wú)全局變量
***************************************************************************/
extern void GUILCD_clearCurse(unsigned int Row, unsigned int Column)
{
unsigned int i1,dat1_temp,dat2_temp;
Row = Row * 0x10;
Column = Column * 2;
i1 = Row * 0x20;
i1 = i1 + Column + 0x1e0;
dat1_temp = i1 & 0xff;
dat2_temp = (i1>>8) & 0xff;
wr_data(dat1_temp);
wr_data(dat2_temp);
wr_com(0x24);
wr_data(0x00);
wr_com(0xc0);
wr_data(0x00);
wr_com(0xc0);
}
/***************************************************************************
* 函數(shù): extern void GUILCD_drawChart(unsigned int Row, unsigned int Column, int *Data, unsigned short flag)
* 目的: 描點(diǎn),從原點(diǎn)ROW和COLUMN處起始畫一條線,線上每個(gè)點(diǎn)的位置根據(jù)*DATA定,F(xiàn)LAG來(lái)判斷是否顯示這條線。
* 輸入: Column y坐標(biāo)原點(diǎn)(范圍:0到127,代表128行點(diǎn))
Row x坐標(biāo)(范圍:0到239,代表240列點(diǎn))
*Data 數(shù)據(jù),函數(shù)表達(dá)式為y=f(x),y為y軸,x為x軸
flag 顯示 1:顯示 0:不顯示
* 輸出: 無(wú)
* 參數(shù): 無(wú)全局變量
***************************************************************************/
extern void GUILCD_drawxChart(unsigned int Row, unsigned int Column, int *Data, unsigned short flag)
{
int i,x,y;
for(i = 0; i < 240 - Column; i++)
{
x = Column + i;
//y = Row - *(Data + i);
y=Row;
wr_dot(y,x,flag);
}
}
/***************************************************************************
* 函數(shù): extern void GUILCD_drawyChart(unsigned int Row, unsigned int Column, int *Data, unsigned short flag)
*
***************************************************************************/
extern void GUILCD_drawyChart(unsigned int Row, unsigned int Column, int *Data, unsigned short flag)
{
int i,x,y;
for(i = 0; i < 128 ; i++)
{
y = Row + i;
//y = Row - *(Data + i);
x = Column;
wr_dot(y,x,flag);
}
}
/***************************************************************************
* 函數(shù): extern void GUILCD_onLed(void)
* 目的: 開(kāi)背光燈
* 輸入: 無(wú)
* 輸出: 無(wú)
* 參數(shù): 無(wú)全局變量
***************************************************************************/
extern void GUILCD_onLed(void)
{
asm(" ssbx XF");
}
/***************************************************************************
* 函數(shù): extern void GUILCD_offLed(void)
* 目的: 關(guān)背光燈
* 輸入: 無(wú)
* 輸出: 無(wú)
* 參數(shù): 無(wú)全局變量
***************************************************************************/
extern void GUILCD_offLed(void)
{
asm(" rsbx XF");
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -