?? t6963.h
字號:
/*************************************************************
FUNCTION: LCD driver 8080
AUTHOR:
DESCRIPTION: T6963
E-mail:
CREAT DATE: 2005-1-8
MODIFICATION DATE: 2005-1-10
2005-1-17
***************************************************************/
#include <AT89X52.H>
#include <intrins.h>
unsigned char display_mode=0x90;//關文本,圖形,光標
unsigned char mode_set=0x80;// or模式
#define TEXT_HOME_ADDRESS_LOW 0x00
#define TEXT_HOME_ADDRESS_HIGH 0x00
#define TEXT_AREA 0x10
#define GRAPHIC_HOME_ADDRESS_LOW 0x00
#define GRAPHIC_HOME_ADDRESS_HIGH 0x08
#define GRAPHIC_AREA 0x10
#define OFFSET_REGISTER 0x03
#define CGRAM_ADDRESS 0x18
#define DB P1
#define CD P3_4
#define WR_E P3_1
#define RD_E P3_0
#define CE P3_3
#define FS P3_5
#define CURSOR_ON() display_mode|=0x01;Command(display_mode) //開光標顯示
#define CURSOR_OFF() display_mode&=0xfe;Command(display_mode) //關光標顯示
#define CURSOR_BLINK_ON() display_mode&=0xfe;Command(display_mode) //開光標閃爍
#define CURSOR_BLINK_OFF() display_mode&=0xfd;Command(display_mode) //關光標閃爍
#define GRAPHIC_ON() display_mode|=0x08;Command(display_mode) //開圖形顯示
#define GRAPHIC_OFF() display_mode&=0xf7;Command(display_mode) //開圖形顯示
#define TEXT_ON() display_mode|=0x04;Command(display_mode) //開文本顯示
#define TEXT_OFF() display_mode&=0xfb;Command(display_mode) //關文本顯示
#define OR_MODE() Command(mode_set) //或模式
#define AND_MODE() Command(mode_set|0x03) //與模式
#define XOR_MODE() Command(mode_set|0x01) //異或模式
#define AUTO_WRITE_ON() Command(0xb0) //on auto write
#define AUTO_WRITE_OFF() Command(0xb2)
#define INTERNAL_CGROM() mode_set=mode_set&0xf7;Command(mode_set);//內部CGROM模式
#define EXTERNAL_CGRAM() mode_set=mode_set|0x08;Command(mode_set);//外部CGRAM模式
/***********************************
** 函數名稱: Delay
** 功能描述: 延時時間=(n*9+17)*12/F
** 輸 入: n
** 輸 出 : 無
** 全局變量:無
** 調用模塊: 無
**
** 作 者:
** 日 期: 2006-1-24
******************************************/
void Delay(unsigned int n)
{
while(n--);
return;
}
/***********************************
** 函數名稱: Busy
** 功能描述: 從液晶顯示控制器中讀忙標志,并作為返回值返回
** busy flag
** 輸 入: 無
** 輸 出 : 忙標志
** 全局變量:無
** 調用模塊: 無
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
unsigned char Busy(void)
{
unsigned char datum;
CE=0;CD=1;RD_E=1;WR_E=1;
DB=0xff;
RD_E=0;
_nop_();
datum=DB;
RD_E=1;
CE=1;
return(datum);
}
/***********************************
** 函數名稱: St01
** 功能描述: 循環檢查命令運行和讀/寫能力,命令和讀寫允許退出循環
** Check command execution and data read/write capability
** 輸 入: 無
** 輸 出 : 無
** 全局變量:無
** 調用模塊: Busy
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
void St01(void)
{
while ((Busy()&3)!=3) {}
return;
}
/***********************************
** 函數名稱: St2
** 功能描述: 循環檢查自動讀能力,自動讀允許退出循環
** Check auto mode data read capability
** 輸 入: 無
** 輸 出 : 無
** 全局變量:無
** 調用模塊: Busy
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
/*
void St2(void)
{
while ((Busy()&4)!=4) {}
return;
}
*/
/****************************************
** 函數名稱: St3
** 功能描述: 循環檢查自動寫能力,自動寫允許退出循環
** Check auto mode data write capability
** 輸 入: 無
** 輸 出 : 無
** 全局變量:無
** 調用模塊: Busy
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
void St3(void)
{
while ((Busy()&8)!=8) {}
return;
}
/****************************************
** 函數名稱: Command
** 功能描述: 向控制器傳送命令
** 輸 入: instruction : 命令代碼
** 輸 出 : 無
** 全局變量:無
** 調用模塊: st01
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
void Command(unsigned char instruction)
{
St01();
CE=0;
DB=instruction;
WR_E=0;
_nop_();
WR_E=1;
CE=1;
return;
}
/****************************************
** 函數名稱: Write
** 功能描述: 向控制器傳送數據
** 輸 入: datum : 輸入數據
** 輸 出 : 無
** 全局變量:無
** 調用模塊: St01
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
void Write(unsigned char datum)
{
St01();
CE=0;
CD=0;
DB=datum;
WR_E=0;
_nop_();
WR_E=1;
CE=1;
return;
}
/****************************************
** 函數名稱: Read
** 功能描述: 從控制器讀數據
** 輸 入: 無
** 輸 出 : 讀出的數據
** 全局變量:無
** 調用模塊: St01
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
/*
#pragma disable
unsigned char Read(void)
{
unsigned char datum;
St01();
CD=0;
DB=0xff;
RD_E=0;
datum=DB;
RD_E=1;
CD=1;
return(datum);
}
*/
/****************************************
** 函數名稱: Autowrite
** 功能描述: 向控制器自動寫數據
** 輸 入: datum: 數據
** 輸 出 : 無
** 全局變量:無
** 調用模塊: St3
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
void Autowrite(unsigned char datum)
{
St3();
CE=0;
CD=0;
DB=datum;
WR_E=0;
Delay(1);
WR_E=1;
CE=1;
return;
}
/****************************************
** 函數名稱: Autoread
** 功能描述: 從控制器自動讀數據
** 輸 入: 無
** 輸 出 : 讀出的數據
** 全局變量:無
** 調用模塊: St2
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
/*
#pragma disable
unsigned char Autoread(void)
{
unsigned char datum;
St2();
CD=0;
DB=0xff;
RD_E=0;
datum=DB;
RD_E=1;
CD=1;
return(datum);
}
/*
/****************************************
** 函數名稱: Write_Data
** 功能描述: 向控制器顯示RAM寫數據
** 輸 入 : datum : 要寫入的數據
** 輸 出 : 無
** 全局變量:無
** 調用模塊: Write,Command
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
void Write_Data(unsigned char datum)
{
Write(datum);
Command(0x0c0);
return;
}
/****************************************
** 函數名稱: Set_Text_Address
** 功能描述: 設置文本區位置
** 輸 入 : home_address_low : 文本區首地址的低8位
** home_address_high: 文本區首地址的高8位
** area: 文本區一行字節數
** 輸 出 : 無
** 全局變量:無
** 調用模塊: Write,Command
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
void Set_Text_Address(unsigned char home_address_low,unsigned char home_address_high,unsigned char area)
{
Write(home_address_low);
Write(home_address_high);
Command(0x40); //Text home address
Write(area);
Write(0x00);
Command(0x41); //Text area
return;
}
/****************************************
** 函數名稱: Set_Graphic_Address
** 功能描述: 設置圖形區位置
** 輸 入 : home_address_low : 圖形區首地址的低8位
** home_address_high: 圖形區首地址的高8位
** area: 圖形區一行字節數
** 輸 出 : 無
** 全局變量:無
** 調用模塊: Write,Command
**
** 作 者:
** 日 期: 2006-1-10
******************************************/
#pragma disable
void Set_Graphic_Address(unsigned char home_address_low,unsigned char home_address_high,unsigned char area)
{
Write(home_address_low);
Write(home_address_high);
Command(0x42); //Graphic home address
Write(area);
Write(0x00);
Command(0x43); //Graphic area
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -