?? drv_lcm12232.c
字號:
/*********************************************************************************************************
** Small RTOS(51)
** The Real-Time Kernel(For Keil c51)
**
** (c) Copyright 2002-2002, chenmingji
** All Rights Reserved
**
** V1.12.1
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: lcd12232.c
**創 建 人: 陳明計
**最后修改日期: 2003年4月27日
**描 述: 液晶12232的驅動程序
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 修改人:
** 版 本: V1.0
** 日 期:
** 描 述:
**------------------------------------------------------------------------------------------------------
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
//sbit RS=P2^4;
//sbit R_W=P2^3;
//sbit E1=P2^1;
//sbit E2=P2^2;
//寫命令
void LCD12232_SEND_COMMAND_0(uint8 Data)
{
P2&=0XE7; //RS=0;R_W=0;
P2|=0X02; //E1=1;
P1=Data;
P2&=0XFD; //E1=0;
}
//寫數據
void LCD12232_SEND_DATA_0(uint8 Data)
{
P2&=0XE7; //RS=0;R_W=0;
P2|=0X10; //RS=1;
P2|=0X02; //E1=1;
P1=Data;
P2&=0XFD; //E1=0;
}
//寫命令
void LCD12232_SEND_COMMAND_1(uint8 Data)
{
P2&=0XE7; //RS=0;R_W=0;
P2|=0X04; //E2=1;
P1=Data;
P2&=0XFB; //E2=0;
}
//寫數據
void LCD12232_SEND_DATA_1(uint8 Data)
{
P2&=0XE7; //RS=0;R_W=0;
P2|=0X10; //RS=1
P2|=0X04; //E2=1;
P1=Data;
P2&=0XFB; //E2=0;
}
//返回狀態
uint8 LCD12232_GET_FLAG_0(void)
{
uint8 temp;
P2&=0XEF; //RS=0;R_W=1;
P2|=0X02; //E1=1;
temp=P1;
P2&=0XFD; //E1=0;
return(temp);
}
//返回狀態
uint8 LCD12232_GET_FLAG_1(void)
{
uint8 temp;
P2&=0XEF; //RS=0;R_W=1;
P2|=0X04; //E2=1;
temp=P1;
P2&=0XFB; //E2=0;
return(temp);
}
/*********************************************************************************************************
** 函數名稱: Lcd12232Delay
** 功能描述: 等待lcd操作完畢
**
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Lcd12232Delay0(void)
{
uint8 i;
i = 5;
do
{
if ((LCD12232_GET_FLAG_0() & 0x80) == 0)
{
break;
}
} while (--i != 0);
}
void Lcd12232Delay1(void)
{
uint8 i;
i = 5;
do
{
if ((LCD12232_GET_FLAG_1() & 0x80) == 0)
{
break;
}
} while (--i != 0);
}
/*********************************************************************************************************
** 函數名稱: Lcd12232SendComm()
** 功能描述: 向lcd模塊發送命令
**
** 輸 入: Command: 給lcd模塊發送的命令
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232Delay()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define Lcd12232SendComm0(Command) \
{ \
Lcd12232Delay0(); \
LCD12232_SEND_COMMAND_0(Command); \
} \
#define Lcd12232SendComm1(Command) \
{ \
Lcd12232Delay1(); \
LCD12232_SEND_COMMAND_1(Command); \
} \
/*********************************************************************************************************
** 函數名稱: Lcd12232SendData()
** 功能描述: 向lcd模塊發送1字節數據
**
** 輸 入: Data: 給lcd模塊發送的命令
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232Delay()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define Lcd12232SendData0(Data) \
{ \
Lcd12232Delay0(); \
LCD12232_SEND_DATA_0(Data); \
} \
#define Lcd12232SendData1(Data) \
{ \
Lcd12232Delay1(); \
LCD12232_SEND_DATA_1(Data); \
} \
/*********************************************************************************************************
** 函數名稱: SET_X0(),SET_X1()
** 功能描述: 設置x坐標
**
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者:
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define SET_X0(x) \
{ \
Lcd12232SendComm0(x); \
} \
#define SET_X1(x) \
{ \
Lcd12232SendComm1(x); \
} \
/*********************************************************************************************************
** 函數名稱: SET_Y0(),SET_Y1()
** 功能描述: 設置y坐標
**
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者:
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define SET_Y0(y) \
{ \
Lcd12232SendComm0(y|0XC0); \
} \
#define SET_Y1(y) \
{ \
Lcd12232SendComm1(y|0XC0); \
} \
/*********************************************************************************************************
** 函數名稱: SET_P0(),SET_P1()
** 功能描述: 設置頁面
**
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者:
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define SET_P0(p) \
{ \
Lcd12232SendComm0(p|0XB8); \
} \
#define SET_P1(p) \
{ \
Lcd12232SendComm1(p|0XB8); \
} \
/*********************************************************************************************************
** 函數名稱: Lcd12232DispChar()
** 功能描述: 在lcd指定位置顯示一個字符
**
** 輸 入: x,y : 顯示的開始坐(作上角為(1,1))
** Data: 將要顯示的字符
** len : 數組長度
** 輸 出: 無
** 全局變量: 無
** 調用模塊: Lcd12232SendComm(),Lcd12232SendData()
**
** 作 者: 陳明計
** 日 期: 2003年4月27日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Lcd12232DispChar(uint8 x, uint8 y, char *Data, char len)
{
uint8 temp;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -