?? lcda_driver.h
字號:
/************************************************************************************
* Copyright (c), 2004-2007,西安銘朗電子科技有限責任公司
* All rights reserved.
*
* Http: www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: LCDA.h
* Project : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
*
* Author: 李林利
* Version: 1.20
* Date: 2007.6.1
* Email: GavinLi@126.com
*
* Description: 本文件是以T6963為控制器的LCD顯示驅動程序頭文件,現支持的液晶為128x64,160x128,
* 240x64,240x128;
*
* Others: LCD(240x128為例)顯示屏坐標圖:
* |O(0,0)
* --|----------------------------------------------------------> y 列坐標
* | |240
* | |
* | 銘朗科技 |
* | |
* | ML-F020ICB |
* | |
* | |
* | LCD240x128 顯示屏 |
* | |
* | |
* | |
* | |
* 128 |-------------------------------------------------|(128,240)
* |
* \|/
* | x 行坐標
*
* Function List:
* 1. void LCDA_WriteData(unsigned char val)
* 2. unsigned char LCDA_ReadData(void)
* 3. unsigned char LCDA_ReadStatus(void)
* 4. void LCDA_WriteCmd1(unsigned char cmd)
* 5. void LCDA_WriteCmd2(unsigned char val, unsigned char cmd)
* 6. void LCDA_WriteCmd3(unsigned char val1, unsigned char val2, unsigned char cmd)
* 7. void LCDA_ClearScreen(void)
* 8. void LCDA_ClearTextScreen(void)
* 9. void LCDA_Init(unsigned char lcd_type)
* 10. unsigned char LCDA_SetTextMaps(unsigned char id)
* 11. unsigned char LCDA_SetGraphMaps(unsigned char id)
* 12. void LCDA_DrawPixel(unsigned char x, y, bit mode)
* 13. void LCDA_DrawLine(unsigned char x1, y1, x2, y2, bit mode)
* 14. void LCDA_DrawRectangle(unsigned char x1, y1, x2, y2, bit mode)
* 15. void LCDA_DrawFillRectangle(unsigned char x1, y1, x2, y2, bit mode)
* 16. void LCDA_DrawCircle(unsigned char x, y, r, bit mode)
* 17. void LCDA_DrawByte(unsigned char x, y, unsigned char val)
* 18. void LCDA_ShowHZxy(unsigned char x, y, unsigned char line, col, unsigned char *p)
* 19. void LCDA_ShowChar(unsigned char x, y, unsigned char *p, unsigned char len)
*
* History:
* 1. Author: 李林利
* Version: 1.10
* Date: 2007.3.12
* Modification: none
*
* 2. Author: 李林利
* Version: 1.00
* Date: 2004.11.24
* Modification: 建立文件
*
*************************************************************************************/
/*************************************************************************************
* LCD顯示驅動程序函數使用說明
*
* 1. 第1步,必須調用函數LCDA_Init(),按函數說明進行設置,本函數只允許調用1次;
* 2. 第2步,如果客戶需要其它設置或修改設置可應用LCDA_WriteCmd1(),LCDA_WriteCmd2(),
* LCDA_WriteCmd3()和其它函數進行設置,具體命令參照T6963數據手冊;
* 3. 第3步,調用LCDB_SetGraphMaps()和LCDB_SetTextMaps(),設定圖形/字符顯示區;
* 4. 第4步,可調用其它畫圖或顯示漢字的函數;參照坐標定義圖可幫助客戶理解函數參數;
* 4. 其它細節詳見具體函數說明;
*
*************************************************************************************/
/************************************************************************************
// 常量及全局變量定義
*************************************************************************************/
//LCD12864常量定義
#define LCD12864 2
#define LCD12864_X 64
#define LCD12864_Y 128
#define LCD12864_LINE_CHAR 16
#define LCD12864_COLUMN_CHAR 8
//LCD160128常量定義
#define LCD160128 3
#define LCD160128_X 128
#define LCD160128_Y 160
#define LCD160128_LINE_CHAR 20
#define LCD160128_COLUMN_CHAR 16
//LCD24064常量定義
#define LCD24064 4
#define LCD24064_X 64
#define LCD24064_Y 240
#define LCD24064_LINE_CHAR 30
#define LCD24064_COLUMN_CHAR 8
//LCD240128常量定義
#define LCD240128 5
#define LCD240128_X 128
#define LCD240128_Y 240
#define LCD240128_LINE_CHAR 30
#define LCD240128_COLUMN_CHAR 16
//字體定義, 不可修改
#define FS5x8 5 // 5x8 字體
#define FS6x8 6 // 6x8 字體
#define FS7x8 7 // 7x8 字體
#define FS8x8 8 // 8x8 字體
// T6963 常用用命令定義
#define CMD_XY_POINT 0x21
#define CMD_CGRAM_ADDR 0x22
#define CMD_ADDR_POINT 0x24
#define CMD_TEXT_ADDR 0x40
#define CMD_TEXT_WIDTH 0x41
#define CMD_PIC_ADDR 0x42
#define CMD_PIC_WIDTH 0x43
#define CMD_ROM_OR_MODE 0x80
#define CMD_ROM_XOR_MODE 0x81
#define CMD_ROM_AND_MODE 0x82
#define CMD_ROM_TEXT_MODE 0x83
#define CMD_RAM_OR_MODE 0x88
#define CMD_RAM_XOR_MODE 0x89
#define CMD_RAM_AND_MODE 0x8A
#define CMD_RAM_TEXT_MODE 0x8B
#define CMD_DISP_OFF_MOD 0x90
#define CMD_RAM_XOR_MODE 0x89
#define CMD_RAM_AND_MODE 0x8A
#define CMD_RAM_TEXT_MODE 0x8B
#define CMD_CGRAM_AUTO_WRITE 0xB0 // 自動寫設置
#define CMD_CGRAM_AUTO_READ 0xB1 // 自動讀設置
#define CMD_CGRAM_AUTO_END 0xB2 // 自動讀/寫結束
#define CMD_DATA_WRITE_UP 0xC0 // 數據寫,地址加1
#define CMD_DATA_READ_UP 0xC1 // 數據讀,地址加1
#define CMD_DATA_WRITE_DOWN 0xC2 // 數據寫,地址減1
#define CMD_DATA_READ_DOWN 0xC3 // 數據讀,地址減1
#define CMD_DATA_WRITE_UN 0xC4 // 數據寫,地址不變
#define CMD_DATA_READ_UN 0xC5 // 數據讀,地址不變
#define CMD_BIT_CLR 0xF0 // 將顯示緩沖區某單元的某一位清零
#define CMD_BIT_SET 0xF8 // 將顯示緩沖區某單元的某一位置1
/*************************************************************************************/
//
// T6963為控制器的LCD顯示驅動程序函數外部引用聲明
//
/*************************************************************************************/
/***********************************************************************************
* Function: LCDA_WriteData;
*
* Description: 向LCD數據口寫數據;
*
* Input: val,要寫的數據;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void LCDA_WriteData(unsigned char val);
/***********************************************************************************
* Function: LCDA_ReadData;
*
* Description: 從LCD數據口讀數據;
*
* Input: none;
*
* Output: none;
*
* Return: 讀到的數據;
*
* Note: none;
************************************************************************************/
unsigned char LCDA_ReadData(void);
/***********************************************************************************
* Function: LCDA_ReadStatus;
*
* Description: 讀取LCD狀態;
*
* Input: none;
*
* Output: none;
*
* Return: 返回LCD狀態數據;
*
* Note: none;
************************************************************************************/
unsigned char LCDA_ReadStatus(void);
/***********************************************************************************
* Function: LCDA_WriteCmd1;
*
* Description: 向LCD寫有1個參數命令;
*
* Input: cmd,LCD操作命令;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void LCDA_WriteCmd1(unsigned char cmd);
/***********************************************************************************
* Function: LCDA_WriteCmd2;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -