?? drv_lcm12232.c
字號:
temp= x + len;
if(y<4) /* 在第一行顯示 */
{
SET_P1(y);
SET_P0(y);
if (x < 61) /* 有效的列號 */
{
SET_Y0(0);
SET_Y1(0);
for( ; x < temp ; x++)
{
if(x<61)
{
SET_X0(x);
Lcd12232SendData0(*Data++); /* 顯示一個字符 */
}
else
{
SET_X1(x-61);
Lcd12232SendData1(*Data++); /* 顯示一個字符 */
}
}
}
else if (x > 60) /* 有效的列號 */
{
SET_Y1(0);
for( ; x < temp ; x++)
{
SET_X1(x-61); /* 設置顯示地址 */
Lcd12232SendData1(*Data++); /* 顯示一個字符 */
}
}
}
}
/*********************************************************************************************************
** 函數名稱: Lcd12232DispBar()
** 功能描述: 在lcd指定位置顯示進度條
**
** 輸 入: Data: 進度條的長度
**
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232SendComm(),Lcd12232SendData()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Lcd12232DispBar( uint8 Data)
{
uint8 x;
uint16 temp;
temp= Data*118;
temp>>=8;
temp+=2;
SET_P1(3);
SET_P0(3);
SET_Y0(0);
SET_Y1(0);
SET_X0(1);
Lcd12232SendData0(0X7E);
for(x=2 ; x < 61 ; x++)
{
if(x<temp)
{
SET_X0(x);
Lcd12232SendData0(0XFF); /* 顯示一個字符 */
}
else if(x==temp)
{
SET_X0(x);
Lcd12232SendData0(0X7E); /* 顯示一個字符 */
}
else
{
SET_X0(x);
Lcd12232SendData0(0X81);
}
}
for(x=61 ; x < 120 ; x++)
{
if(x<temp)
{
SET_X1(x-61);
Lcd12232SendData1(0XFF); /* 顯示一個字符 */
}
else if(x==temp)
{
SET_X1(x-61);
Lcd12232SendData1(0X7E); /* 顯示一個字符 */
}
else
{
SET_X1(x-61);
Lcd12232SendData1(0X81);
}
}
SET_X1(59);
Lcd12232SendData1(0X7E);
}
/*********************************************************************************************************
** 函數名稱: Lcd12232DispChnChar()
** 功能描述: 在lcd指定位置顯示一個中文字符
**
** 輸 入: x,y : 顯示的開始坐(作上角為(1,1))
** Data: 將要顯示的字符
** len : 數組長度
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232DispChar()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Lcd12232DispChnChar(uint8 x, uint8 y, uint8 *Data)
{
uint8 * p;
uint8 * pData;
*p=y;
pData=Data+16;
Lcd12232DispChar(x, y, Data , 16);
y=*p;
y++;
Lcd12232DispChar(x, y, pData, 16);
}
/*********************************************************************************************************
** 函數名稱: Lcd12232Clr()
** 功能描述: 清除lcd的指定區域
**
** 輸 入: X0,Y0:指定區域起點
dx, dy:偏置值
**
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232DispStr()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Lcd12232Clr(uint8 X,uint8 Y,uint8 dx,uint8 dy)
{
uint8 i,j;
uint8 di,dj;
i=X;
j=Y;
di=i+dx;
dj=j+dy;
for(;(j<dj)&&(j<4);j++)
{
SET_P0(j);
for(;(i<di)&&(i<61);i++)
{
SET_X0(i);
Lcd12232SendData0(0);
}
SET_P1(j);
if(i<di)
{
for(;(i<di)&&(i<122);i++)
{
SET_X1(i-61);
Lcd12232SendData1(0);
}
}
i=X;
}
}
/*********************************************************************************************************
** 函數名稱: Lcd12232Init()
** 功能描述: lcd初始化
**
** 輸 入: 無
**
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232SendComm(),Lcd12232Clr()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Lcd12232Init(void)
{
P2=0X00;
P1=0X00;
Lcd12232SendComm0(0XAE); // 設置LCM讀改寫模式
Lcd12232SendComm0(0XA4); // 打開LCM動態顯示
Lcd12232SendComm0(0XA9); // 復位
Lcd12232SendComm0(0XA0); // 開始顯示
Lcd12232SendComm0(0XEE); // 設置LCM讀改寫模式
Lcd12232SendComm0(0X00); // 打開LCM動態顯示
Lcd12232SendComm0(0XC0); // 復位
Lcd12232SendComm0(0XE2); // 復位
Lcd12232SendComm0(0XAF); // 開始顯示
Lcd12232SendComm1(0XAE); // 設置LCM讀改寫模式
Lcd12232SendComm1(0XA4); // 打開LCM動態顯示
Lcd12232SendComm1(0XA9); // 復位
Lcd12232SendComm1(0XA0); // 開始顯示
Lcd12232SendComm1(0XEE); // 設置LCM讀改寫模式
Lcd12232SendComm1(0X00); // 打開LCM動態顯示
Lcd12232SendComm1(0XC0); // 復位
Lcd12232SendComm1(0XE2); // 復位
Lcd12232SendComm1(0XAF); // 開始顯示
SET_Y1(0);
SET_Y0(0);
Lcd12232Clr(0,0,122,4); // 清屏
}
/*********************************************************************************************************
** 函數名稱: Lcd12232LoadChar()
** 功能描述: 從lcd指定地址處寫多個字節數據
**
** 輸 入: X : 指定的地址
Y : 指定的行
** Data : 將要寫入的數據開始地址
** NChar: 寫入的直接數
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232DispChar();
**
** 作 者:
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern unsigned char code ASCII_CODE[][6];
void Lcd12232LoadChar(uint8 X,uint8 Y, uint8 *Data, uint8 NChar)
{
uint8 *p;
uint8 *q;
uint8 i;
uint8 x,y;
x=X;
y=Y;
q=Data;
for(i=0;(i<NChar)&&((i*6+x+6)<122);i++)
{
p=ASCII_CODE+(*q)-0x20;
Lcd12232DispChar((x+i*6), y, p,6);
q++;
}
}
/**********************end****************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -