?? lcd.c
字號:
#include "DSP28_Device.h"
#include "LCD.h"
#ifndef bool
#define bool unsigned short
#define FALSE 0
#define TRUE 1
#endif
/***************************************************************************
* 函數: void wr_data(unsigned int data)
* 目的: 寫LCD數據參數,判斷0和1位
* 輸入: dat1 參數單元
* 輸出: 無
* 參數: status局部變量,用來存儲LCD的狀態量
***************************************************************************/
void wr_data(unsigned int dat1)
{
unsigned int status;
do
{
status = *c_addr & 0x03; /* 屏蔽status的2~15位為0 */
}while(status != 0x03);
*d_addr = dat1;
}
/***************************************************************************
* 函數: void wr_data1(unsigned int dat1)
* 目的: 寫LCD數據參數,判斷3位
* 輸入: dat1 參數單元
* 輸出: 無
* 參數: status局部變量,用來存儲LCD的狀態量
***************************************************************************/
void wr_data1(unsigned int dat1)
{
unsigned int status;
do
{
status = *c_addr & 0x08; /* 屏蔽status的0~2和3~15位為0 */
}while(status != 0x08);
*d_addr = dat1;
}
/***************************************************************************
* 函數: void wr_com(WORD com)
* 目的: 寫LCD指令參數
* 輸入: com 指令單元
* 輸出: 無
* 參數: status局部變量,用來存儲LCD的狀態量
***************************************************************************/
void wr_com(unsigned int com)
{
unsigned int status;
do
{
status = *c_addr & 0x03;
}while(status != 0x03);
*c_addr = com;
}
/***************************************************************************
* 函數: extern void GUILCD_init(void)
* 目的: 初始化LCD顯示,設置顯示方式為圖形方式,開顯示
* 輸入: 無
* 輸出: 無
****************************************************************************/
extern void GUILCD_init(void)
{
wr_data(0x00); /*設置文本顯示區域首地址*/
wr_data(0x40);
wr_com(0x40);
wr_data(0x20); /*設置文本顯示區域寬度*/
wr_data(0x00);
wr_com(0x41);
wr_data(0x00); /*設置圖形顯示區域首地址*/
wr_data(0x00);
wr_com(0x42);
wr_data(0x20); /*設置圖形顯示區域寬度*/
wr_data(0x00);
wr_com(0x43);
wr_com(0xa0); /*光標形狀設置*/
wr_com(0x80); /*顯示方式設置,邏輯或合成*/
wr_com(0x9c); //wr_com(0x9b); /*顯示開關設置,開文本和圖形顯示*/
}
/***************************************************************************
* 函數: extern void GUILCD_clear(void)
* 目的: 清LCD屏,用自動方式,將LCD屏清為白屏
* 輸入: 無
* 輸出: 無
參數: page0局部變量
***************************************************************************/
extern void GUILCD_clear(void)
{
int page0;
wr_data(0x00); /*設置顯示RAM首地址*/
wr_data(0x00);
wr_com(0x24);
wr_com(0xb0); /*設置自動寫方式*/
for(page0 = 0x2000; page0 >= 0; page0--)
{
wr_data1(0x00); /* 清0 */
}
wr_com(0xb2); /* 自動寫結束 */
wr_data(0x00); /*設置顯示RAM首地址*/
wr_data(0x40);
wr_com(0x24);
wr_com(0xb0); /*設置自動寫方式*/
for(page0 = 0x2000; page0 >= 0; page0--)
{
wr_data1(0x00); /* 清0 */
}
wr_com(0xb2); /* 自動寫結束 */
}
/***************************************************************************
* 函數: extern void GUILCD_writeASCIICode(unsigned int Code,unsigned int Row_Y, unsigned int Column_X, unsigned short FanXian )
* 目的: 寫ASC碼字符串,8*8點陣格式,將字符串string中的ASC碼在LCD屏的
ROW和COLUMN坐標處顯示
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -