?? lcddrive.h
字號:
/****************************************************************************************
* 文件名:LCDDRIVE.H
* 功能:LCD驅(qū)動程序,包括底層驅(qū)動,刷新顯示子程序。
* 說明:
****************************************************************************************/
#ifndef __LCDDRIVE_H
#define __LCDDRIVE_H
/* 定義顏色數(shù)據(jù)類型(可以是數(shù)據(jù)結(jié)構(gòu)) */
#define TCOLOR uint8
#define GUI_LCM_XMAX 98 /* 定義液晶x軸的點(diǎn)數(shù) */
#define GUI_LCM_YMAX 67 /* 定義液晶y軸的點(diǎn)數(shù) */
/****************************************************************************************
*
* ** 3510I特殊操作函數(shù)
* ** IO操作采用匯編進(jìn)行加速處理 每個操作課節(jié)省1個周期
*
****************************************************************************************/
/* IO接口信息定義: */
/*PORTA的地址: 0x1B*/
/*PORTB的地址: 0x18*/
/*PORTC的地址: 0x15*/
/*PORTD的地址: 0x12*/
#define LCD_PORT 0x1B
#define LCD_PORTS PORTA
#define LCD_PIN PINA
#define LCD_DDR DDRA
#define LCD_RST 1 //PD2
#define LCD_CS 2 //PD3
#define LCD_SDATA 3 //PB7
#define LCD_SCLK 4 //PA8
//LCD_PORT|=(1<<(LCD_RST))
#define SetLcdRst() __asm__ __volatile__(" SBI 0x12,1" "\n\t" )
#define ClrLcdRst() __asm__ __volatile__(" CBI 0x12,1" "\n\t" )
#define SetLcdCs() __asm__ __volatile__(" SBI 0x12,2" "\n\t" )
#define ClrLcdCs() __asm__ __volatile__(" CBI 0x12,2" "\n\t" )
#define SetLcdSdata() __asm__ __volatile__(" SBI 0x18,7" "\n\t" )
#define ClrLcdSdata() __asm__ __volatile__(" CBI 0x18,7" "\n\t" )
#define SetLcdSclk() __asm__ __volatile__(" SBI 0x1b,7" "\n\t" )
#define ClrLcdSclk() __asm__ __volatile__(" CBI 0x1b,7" "\n\t" )
#define SetSdataOut() // LCD_DDR|=(1<<(LCD_SDATA))
#define LCD_DataOver() SetLcdCs()
extern void DelayXms (uint16 xs);
extern void LcdReset(void);
extern void LcdSendCommand(uint8 cmd);
extern void LcdSendData(uint8 Data);
extern void LcdInit(void);
extern void LcdClr(uint16 color);
extern void LCD_ColorSet(uint8_t Color);
void LcdWriteBlock(uint8 x1, uint8 y1, uint8 x2, uint8 y2, const prog_uchar *p);
//extern volatile uint16 LcdBakColor;
//extern volatile uint16 LcdPenColor;
/****************************************************************************************
*
* ** GUI 特殊操作函數(shù)
*
****************************************************************************************/
/****************************************************************************
* 名稱:GUI_Initialize()
* 功能:初始化GUI,包括初始化顯示緩沖區(qū),初始化LCM并清屏。
* 入口參數(shù):無
* 出口參數(shù):無
* 說明:用戶根據(jù)LCM的實(shí)際情況編寫此函數(shù)。
****************************************************************************/
#define GUI_Initialize() LcdInit()
/****************************************************************************
* 名稱:GUI_FillSCR()
* 功能:全屏填充。直接使用數(shù)據(jù)填充顯示緩沖區(qū)。
* 入口參數(shù):dat 填充的數(shù)據(jù)
* 出口參數(shù):無
* 說明:用戶根據(jù)LCM的實(shí)際情況編寫此函數(shù)。
****************************************************************************/
#define GUI_FillSCR( dat) LcdClr(dat)
/****************************************************************************
* 名稱:GUI_ClearSCR()
* 功能:清屏。
* 入口參數(shù):無
* 出口參數(shù):無
* 說明:用戶根據(jù)LCM的實(shí)際情況編寫此函數(shù)。
****************************************************************************/
#define GUI_ClearSCR() LcdClr(0x00)
/****************************************************************************
* 名稱:GUI_Point()
* 功能:在指定位置上畫點(diǎn)。
* 入口參數(shù): x 指定點(diǎn)所在列的位置
* y 指定點(diǎn)所在行的位置
* color 顯示顏色(對于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)
* 出口參數(shù):返回值為1時(shí)表示操作成功,為0時(shí)表示操作失敗。(操作失敗原因是指定地址超出有
* 效范圍)
* 說明:用戶根據(jù)LCM的實(shí)際情況編寫此函數(shù)。
****************************************************************************/
void GUI_Point(uint8 x, uint8 y, TCOLOR color);
/****************************************************************************
* 名稱:GUI_ReadPoint()
* 功能:讀取指定點(diǎn)的顏色。
* 入口參數(shù):x 指定點(diǎn)所在列的位置
* y 指定點(diǎn)所在行的位置
* ret 保存顏色值的指針
* 出口參數(shù):返回0時(shí)表示指定地址超出有效范圍。
* 說明:對于單色,設(shè)置ret的d0位為1或0,4級灰度則為d0、d1有效,8位RGB則d0--d7有效,
* RGB結(jié)構(gòu)則R、G、B變量有效。
****************************************************************************/
//extern int GUI_ReadPoint(uint32 x, uint32 y, TCOLOR *ret);
/****************************************************************************
* 名稱:GUI_HLine()
* 功能:畫水平線。
* 入口參數(shù): x0 水平線起點(diǎn)所在列的位置
* y0 水平線起點(diǎn)所在行的位置
* x1 水平線終點(diǎn)所在列的位置
* color 顯示顏色(對于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)
* 出口參數(shù):無
* 說明:對于單色、4級灰度的液晶,可通過修改此函數(shù)作圖提高速度,如單色LCM,可以一次更
* 新8個點(diǎn),而不需要一個點(diǎn)一個點(diǎn)的寫到LCM中。
****************************************************************************/
void GUI_HLine(uint8 x0,uint8 y0,uint8 x1,uint8 color);
void GUI_HLine1(uint8 x0,uint8 y0,uint8 x1,uint16 color); /*4096*/
/****************************************************************************
* 名稱:GUI_RLine()
* 功能:畫垂直線。
* 入口參數(shù): x0 垂直線起點(diǎn)所在列的位置
* y0 垂直線起點(diǎn)所在行的位置
* y1 垂直線終點(diǎn)所在行的位置
* color 顯示顏色
* 出口參數(shù):無
* 說明:對于單色、4級灰度的液晶,可通過修改此函數(shù)作圖提高速度,如單色LCM,可以一次更
* 新8個點(diǎn),而不需要一個點(diǎn)一個點(diǎn)的寫到LCM中。
****************************************************************************/
void GUI_RLine(uint8 x0, uint8 y0, uint8 y1, uint8 color);
void GUI_RLine1(uint8 x0, uint8 y0, uint8 y1, uint16 color); /*4096*/
/****************************************************************************
* 名稱:GUI_CmpColor()
* 功能:判斷顏色值是否一致。
* 入口參數(shù):color1 顏色值1
* color2 顏色值2
* 出口參數(shù):返回1表示相同,返回0表示不相同。
* 說明:由于顏色類型TCOLOR可以是結(jié)構(gòu)類型,所以需要用戶編寫比較函數(shù)。
****************************************************************************/
//extern int GUI_CmpColor(TCOLOR color1, TCOLOR color2);
#define GUI_CmpColor(color1, color2) (color1==color2)
/****************************************************************************
* 名稱:GUI_CopyColor()
* 功能:顏色值復(fù)制。
* 入口參數(shù):color1 目標(biāo)顏色變量
* color2 源顏色變量
* 出口參數(shù):無
* 說明:由于顏色類型TCOLOR可以是結(jié)構(gòu)類型,所以需要用戶編寫復(fù)制函數(shù)。
****************************************************************************/
//extern void GUI_CopyColor(TCOLOR *color1, TCOLOR color2);
#define GUI_CopyColor(color1, color2) *color1 = color2
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -