⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd12864.c

📁 基于EasyARM1138的光标修动修改程序
💻 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 + -