📄 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 + -