📄 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,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,0X00,0X00,0X00,
0X00,0X00,0X04,0X08,0X30,0X08,0X40,0X7F,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X03,0XE4,0X04,0XCF,0X88,0X40,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X27,0XC2,0X88,0X97,0XFE,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X02,0X28,0X40,0X88,0X90,0X40,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X02,0X32,0X80,0X88,0XB7,0XFC,0X7F,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X01,0X42,0X0E,0X88,0X94,0X44,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X82,0X02,0X98,0X94,0X44,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X01,0X42,0X02,0XAC,0X97,0XFC,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X01,0X25,0X02,0XCA,0X92,0X44,0X7F,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X02,0X05,0X02,0X89,0X11,0X80,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X08,0X82,0X08,0X10,0XC0,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X08,0X85,0X00,0X11,0X30,0X82,0X50,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X30,0X68,0XFF,0X96,0X0E,0X82,0X20,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,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,0X00,0X07,0XFF,0X08,0X40,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X10,0X20,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X84,0X13,0XFE,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7D,0XF9,0XF7,0X71,0X08,0X24,0X40,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X88,0X43,0X67,0XF0,0X3C,0X90,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X80,0X43,0X60,0X44,0X09,0X08,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X90,0X43,0X61,0X82,0X13,0XFC,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0XF0,0X42,0XA7,0XFF,0X20,0X90,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X90,0X42,0XA0,0X21,0X3C,0X90,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X80,0X42,0XA1,0X24,0X00,0X90,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X88,0X42,0XA2,0X22,0X0D,0X12,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7D,0XF9,0XF6,0XB4,0XA1,0X32,0X12,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X40,0X04,0X0C,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,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,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};
//###########################################################################
//*** 字符操作用户接口函数驱动函数
//###########################################################################
// 延时N个微秒
void __delayNuS (int32 iTime)
{
iTime = SysCtlClockGet() * iTime / 2000000; // 根据系统时钟速率确定延时
while (--iTime != 0);
}
// 向LCM写入一个字节
void LCD_ByteWrite(int8 Bytename)
{
int8 i, dat;
for( i=0; i<8; i++ ) // 循环写一个字节的数据
{
GPIOPinWrite(LCD_KEY_PORT3, LCD_KEY_CLK, 0x00);
__delayNuS(5); // 延时5us
dat = Bytename & 0x80;
if( dat )
{
GPIOPinWrite(LCD_KEY_PORT4, LCD_KEY_DIO, 0xff); //G-B
}
else
{
GPIOPinWrite(LCD_KEY_PORT4, LCD_KEY_DIO, 0x00); //G-B
}
Bytename <<= 1;
GPIOPinWrite(LCD_KEY_PORT3, LCD_KEY_CLK, 0xff);
__delayNuS(5);
}
}
// 向LCM写命令
void LCD_ComdWrite(int8 comd)
{
GPIOPinWrite(LCD_KEY_PORT1, LCD_KEY_CS, 0xff);
GPIOPinWrite(LCD_KEY_PORT1, LCD_KEY_ON, 0xff);
LCD_ByteWrite(0xf8);
LCD_ByteWrite(comd & 0xf0);
comd <<= 4;
LCD_ByteWrite(comd & 0xf0);
}
// 向LCM写数据
void LCD_DataWrite(int8 data)
{
GPIOPinWrite(LCD_KEY_PORT1, LCD_KEY_CS, 0xff);
//GPIOPinWrite(LCD_KEY_PORT1, LCD_KEY_ON, 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);
}
/*void CursorDis(void) //设置光标
{
LCD_ComdWrite(0x30);
LCD_ComdWrite(0x07);
//LCD_ComdWrite(0x06);
LCD_ComdWrite(0x0E);
}
void CursorMove(void)
{
LCD_ComdWrite(0x30);
LCD_ComdWrite(0x0E);
LCD_ComdWrite(0x14);
}*/
// LCD初始化
void LCDInit(void)
{
SysCtlPeriEnable(LCD_KEY_PERIPH4); // 使能GPIO B口LCD控制接口
SysCtlPeriEnable(LCD_KEY_PERIPH1); //F
SysCtlPeriEnable(LCD_KEY_PERIPH2); //G
SysCtlPeriEnable(LCD_KEY_PERIPH3); //A
GPIOPinTypeOut(LCD_KEY_PORT1 , LCD_KEY_CS); // 设置CS,CLK,DIO为输出
GPIOPinTypeOut(LCD_KEY_PORT3 , LCD_KEY_CLK);
GPIOPinTypeOut(LCD_KEY_PORT4 , LCD_KEY_DIO); //G-B
GPIOPinTypeOut(LCD_KEY_PORT1 , LCD_KEY_ON);
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 + -