?? loadbit.c
字號:
/****************************************************************************************
* 文件名:LOADBIT.C
* 功能:顯示單色圖形及漢字顯示。先將圖形轉(zhuǎn)換為對應(yīng)的點陣數(shù)組,然后即可調(diào)用此文件的函數(shù)輸出驅(qū)動。
* 作者:黃紹斌
* 日期:2004.02.26
* 備注:使用GUI_SetBackColor()函數(shù)設(shè)置顯示顏色及背景色。
****************************************************************************************/
#include "config.h"
#if (GUI_LoadPic_EN==1)|(GUI_MenuIco_EN==1)|(GUI_PutHZ_EN==1)
/****************************************************************************
* 名稱:GUI_LoadLine()
* 功能:輸出單色圖形的一行數(shù)據(jù)。
* 入口參數(shù): x 指定顯示位置,x坐標
* y 指定顯示位置,y坐標
* dat 要輸出顯示的數(shù)據(jù)。
* no 要顯示此行的點個數(shù)
* 出口參數(shù):返回值為1時表示操作成功,為0時表示操作失敗。
* 說明:操作失敗原因是指定地址超出有效范圍。
****************************************************************************/
uint8 GUI_LoadLine(uint8 x, uint8 y, uint8 *dat, uint8 no)
{ uint8 bit_dat;
uint8 i;
TCOLOR bakc;
/* 參數(shù)過濾 */
if(x>=GUI_LCM_XMAX) return(0);
if(y>=GUI_LCM_YMAX) return(0);
for(i=0; i<no; i++)
{ /* 判斷是否要讀取點陣數(shù)據(jù) */
if( (i%8)==0 )
{
#if AVR_GCC
bit_dat = prg_read_byte(data++);
#else
bit_dat = *dat++;
#endif
}
/* 設(shè)置相應(yīng)的點為color或為back_color */
#if GCC_AVR
if( (bit_dat&pgm_read_byte(DCB2HEX_TAB+i&0x07))==0 )
#else
if( (bit_dat&DCB2HEX_TAB[i&0x07])==0 )
#endif
{
GUI_CopyColor(&bakc, back_color);
}
else GUI_CopyColor(&bakc, disp_color);
GUI_Point(x, y, bakc);
if( (++x)>=GUI_LCM_XMAX ) return(0);
}
return(1);
}
#endif
#if (GUI_LoadPic_EN==1)|(GUI_MenuIco_EN==1)
/****************************************************************************
* 名稱:GUI_LoadPic()
* 功能:輸出單色圖形數(shù)據(jù)。
* 入口參數(shù): x 指定顯示位置,x坐標
* y 指定顯示位置,y坐標
* dat 要輸出顯示的數(shù)據(jù)
* hno 要顯示此行的點個數(shù)
* lno 要顯示此列的點個數(shù)
* 出口參數(shù):無
* 說明:操作失敗原因是指定地址超出有效范圍。
****************************************************************************/
void GUI_LoadPic(uint8 x, uint8 y, uint8 *dat, uint8 hno, uint8 lno)
{ uint8 i;
for(i=0; i<lno; i++)
{ GUI_LoadLine(x, y, dat, hno); // 輸出一行數(shù)據(jù)
y++; // 顯示下一行
dat += (hno>>3); // 計算下一行的數(shù)據(jù)
if( (hno&0x07)!=0 ) dat++;
}
}
/****************************************************************************
* 名稱:GUI_LoadPic1()
* 功能:輸出單色圖形數(shù)據(jù),反相顯示。
* 入口參數(shù): x 指定顯示位置,x坐標
* y 指定顯示位置,y坐標
* dat 要輸出顯示的數(shù)據(jù)。
* hno 要顯示此行的點個數(shù)
* lno 要顯示此列的點個數(shù)
* 出口參數(shù):無
* 說明:操作失敗原因是指定地址超出有效范圍。
****************************************************************************/
void GUI_LoadPic1(uint8 x, uint8 y, uint8 *dat, uint8 hno, uint8 lno)
{ uint8 i;
GUI_ExchangeColor(); // 顯示色與背景色交換
for(i=0; i<lno; i++)
{ GUI_LoadLine(x, y, dat, hno); // 輸出一行數(shù)據(jù)
y++; // 顯示下一行
dat += (hno>>3); // 計算下一行的數(shù)據(jù)
if( (hno&0x07)!=0 ) dat++;
}
GUI_ExchangeColor();
}
#endif
#if GUI_PutHZ_EN==1
/****************************************************************************
* 名稱:GUI_PutHZ()
* 功能:顯示漢字。
* 入口參數(shù): x 指定顯示位置,x坐標
* y 指定顯示位置,y坐標
* dat 要輸出顯示的漢字點陣數(shù)據(jù)。
* hno 要顯示此行的點個數(shù)
* lno 要顯示此列的點個數(shù)
* 出口參數(shù):無
* 說明:操作失敗原因是指定地址超出有效范圍。
****************************************************************************/
void GUI_PutHZ(uint8 x, uint8 y, uint8 *dat, uint8 hno, uint8 lno)
{ uint8 i;
for(i=0; i<lno; i++)
{ GUI_LoadLine(x, y, dat, hno); // 輸出一行數(shù)據(jù)
y++; // 顯示下一行
dat += (hno>>3); // 計算下一行的數(shù)據(jù)
if( (hno&0x07)!=0 ) dat++;
}
}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -