?? lcd12864.c
字號:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name: LCD12864.c
** Last modified Date: 2008/07/29
** Last Version: V1.10
** Description: LCD TG12864E-02B(st7920驅動芯片)在LM3S1138上串行通信的驅動程序
**
**--------------------------------------------------------------------------------------------------------
** Created By: 周小明
** Created date: 2008/07/10
** Version: V1.00
** Descriptions:
**
**--------------------------------------------------------------------------------------------------------
** Modified by: 周小明
** Modified date: 2008/07/29
** Version: V1.10
** Description:
**
*********************************************************************************************************/
#include "LCD_KEY.h"
//******************************************************************************
// ZLG的LOGO數據表
uint8 PowerOnPicture[1024] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x13,0xA0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x24,0x50,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x24,0x50,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x00,0x00,0x27,0x90,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x00,0x00,0x25,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x24,0x90,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x14,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xF9,0xFC,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xF9,0xF9,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xF3,0xF9,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0xFF,0xFF,0xFF,0xE7,0xF3,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0xFF,0xFF,0xE7,0xE7,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xCF,0xE7,0xFF,0x03,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0x9F,0xCF,0xF0,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x9F,0x9F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x3F,0x9F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7E,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFE,0x7E,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFC,0xFE,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xF9,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xF9,0xF9,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xF3,0xF9,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0xE7,0xF3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0xE7,0xE3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0xCF,0xE7,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0x9F,0xCF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0x9F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7F,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7E,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFE,0x7F,0xFF,0xFF,0xFC,0x3F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0xFC,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0xF9,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0xF9,0xFF,0xFF,0xFF,0xF1,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0xF2,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFC,0x00,0x0F,0xF0,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1F,0xF8,0x00,0x0F,0xF8,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1F,0xF0,0x00,0x07,0xFC,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0xF0,0x00,0x07,0xFC,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xE0,0x00,0x03,0xFE,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xC0,0x00,0x03,0xFF,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xC0,0x00,0x01,0xFF,0xC0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0xFF,0x80,0x00,0x00,0xFF,0xF0,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0xFF,0x00,0x00,0x00,0x7F,0xFE,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0xFF,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFF,0xFF,0xFF,0xFF,0xE3,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xF0,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//###########################################################################
//*** 字符操作用戶接口函數驅動函數
//###########################################################################
// 向LCM寫入一個字節
void LCD_ByteWrite(int8 Bytename)
{
int8 i, dat;
for( i=0; i<8; i++ ) // 循環寫一個字節的數據
{
GPIOPinWrite(LCD_KEY_PORT, LCD_KEY_CLK, 0x00);
__delayNuS(5); // 延時5us
dat = Bytename & 0x80;
if( dat )
{
GPIOPinWrite(LCD_KEY_PORT, LCD_KEY_DIO, 0xff);
}
else
{
GPIOPinWrite(LCD_KEY_PORT, LCD_KEY_DIO, 0x00);
}
Bytename <<= 1;
GPIOPinWrite(LCD_KEY_PORT, LCD_KEY_CLK, 0xff);
__delayNuS(5);
}
}
// 向LCM寫命令
void LCD_ComdWrite(int8 comd)
{
GPIOPinWrite(LCD_KEY_PORT, LCD_KEY_CS, 0xff);
LCD_ByteWrite(0xf8);
LCD_ByteWrite(comd & 0xf0);
comd <<= 4;
LCD_ByteWrite(comd & 0xf0);
}
// 向LCM寫數據
void LCD_DataWrite(int8 data)
{
GPIOPinWrite(LCD_KEY_PORT, LCD_KEY_CS, 0xff);
LCD_ByteWrite(0xfa);
LCD_ByteWrite(data & 0xf0);
data <<= 4;
LCD_ByteWrite(data & 0xf0);
}
//###########################################################################
//*** 圖形操作用戶接口函數驅動函數
//###########################################################################
// 開啟圖片顯示功能
void LCD_PictureOn(void)
{
LCD_ComdWrite(0x34); // Expand instruction
LCD_ComdWrite(0x36);
LCD_ComdWrite(0x30); // Base instruction
}
// 關閉圖片顯示功能
void LCD_PictureOff(void)
{
LCD_ComdWrite(0x34); // Expand instruction
LCD_ComdWrite(0x30);
LCD_ComdWrite(0x30); // Base instruction
}
void LCD_GdramAddress(uint8 VerticalAddr,uint8 HorizontalAddr)
{
VerticalAddr &= 0x1F;
HorizontalAddr &= 0x0F;
LCD_ComdWrite(0x34); // Expand instruction G=Off
LCD_ComdWrite(VerticalAddr|0x80);
LCD_ComdWrite(HorizontalAddr|0x80);
LCD_ComdWrite(0x30); // Base instruction
}
// 上電初始化圖形顯示緩沖區數據, 顯示LOGO圖形128*64點陣
void LCD_PowerOnPictureInit_disp(void)
{
unsigned char i,j;
unsigned char *p;
p = PowerOnPicture;
for(i=0;i<32;i++) // 寫入圖形數據時采用逐行掃描的方式
{
LCD_GdramAddress(i,0);
for(j=0;j<16;j++)
{
LCD_DataWrite(*p);
p++;
}
}
for(i=0;i<32;i++)
{
LCD_GdramAddress(i,8);
for(j=0;j<16;j++)
{
LCD_DataWrite(*p);
p++;
}
}
}
// 清屏
void clear_all(void)
{
LCD_ComdWrite(0x01);
__delayNuS(5);
}
// LCD初始化
void LCDInit(void)
{
SysCtlPeriEnable(LCD_KEY_PERIPH); // 使能GPIO B口LCD控制接口
GPIOPinTypeOut(LCD_KEY_PORT , LCD_KEY_CS); // 設置CS,CLK,DIO為輸出
GPIOPinTypeOut(LCD_KEY_PORT , LCD_KEY_CLK);
GPIOPinTypeOut(LCD_KEY_PORT , LCD_KEY_DIO);
LCD_ComdWrite(0x30); // 功能設定,基本指令
LCD_ComdWrite(0x30); // 基本指令,8-bit 模式,基本指令
LCD_ComdWrite(0x0c); // 顯示開,游標關,反白關
LCD_ComdWrite(0x01); // 清除顯示
LCD_ComdWrite(0x06); // 進入設定點,游標7 右移,畫面不移動
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -