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

📄 tg126410.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: TG126410LCD显示驱动程序(SEG1565) (不带字库)
//-----------------------------------------------------------------
#include <pic.h>
#include "TG12610.h"
//SEG1565显示地址控制命令
#define PAGE    0xB0  //页地址
#define COL_H4  0x10  //列地址高四位
#define COL_L4  0x00  //列地址低四位
#define LINE    0x40  //行地址
//大写字母R的8*8点阵(纵向取模,字节倒序)
const INT8U R[8] = { 0x00,0xFE,0x12,0x32,0x52,0x8C,0x00,0x00 };
//案例文件夹下的一幅图像点阵(存于程序Flash空间中)------------------------------
const INT8U ICONs_Picture[1024] = { //纵向取模,字节倒序
0xFF,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0xC5,0x45,0x85,
0x45,0xC5,0x05,0xC5,0x45,0x85,0x05,0xC5,0x05,0x05,0x05,0x85,0x45,0x85,0x05,0xC5,
0x45,0x85,0x05,0x05,0xC5,0x05,0xC5,0x45,0x85,0x05,0xC5,0x45,0x45,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0xC5,0xC5,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0xC5,0xC5,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x01,
0x00,0x07,0x00,0x07,0x01,0x00,0x00,0x07,0x84,0x84,0x80,0x07,0x01,0x07,0x00,0x07,
0x85,0x82,0x00,0x00,0x07,0x00,0x07,0x04,0x03,0x00,0x07,0x05,0x05,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0xF8,0xFC,0x8C,0x8C,0x8C,0x8C,
0x8C,0x0C,0x0C,0x0C,0xFC,0xF8,0x00,0x00,0xF8,0xFC,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,
0x8C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0xC0,0xD0,0x40,0x46,0x5F,0x5F,0xDF,0xDE,0x18,0xF0,0xC0,0x8F,
0x3F,0x7F,0xFF,0xFC,0xF8,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0xDF,0xDF,0x50,0x50,0x50,0x51,0xD1,0xD1,0x11,0x31,
0x3F,0x1F,0x00,0x00,0x1F,0x3F,0x30,0x30,0x30,0x31,0x31,0x31,0x31,0x31,0x31,0x31,
0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x7F,0x63,0x51,0x78,0x7C,0x78,0x7F,0x7F,0x00,0x0F,0x03,0x01,
0x00,0x00,0x01,0x03,0x0F,0x0F,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x63,0x51,0x78,0x7C,0x78,0x7F,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0xC0,0xC0,0x00,0x40,0xC0,0x40,
0x40,0x80,0x00,0x40,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x40,
0xC0,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0xC0,0x40,0x40,
0x00,0x40,0xC0,0x40,0x40,0x80,0x00,0x40,0xC0,0x40,0x40,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x40,0x40,0xC0,0x40,0x40,0x00,0x80,0x40,0x40,0x40,0xC0,0x00,0x40,0x40,
0xC0,0x40,0x40,0x00,0x80,0x40,0x40,0x40,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0x40,0x40,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x03,0x3C,0x03,0x3F,0x00,0x20,0x3F,0x22,
0x02,0x01,0x00,0x20,0x3F,0x20,0x20,0x20,0x30,0x20,0x3E,0x09,0x0F,0x38,0x20,0x20,
0x3F,0x22,0x22,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,
0x00,0x20,0x3F,0x20,0x20,0x1F,0x00,0x20,0x3F,0x22,0x27,0x30,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x31,0x22,0x22,0x24,0x18,0x00,0x20,0x20,
0x3F,0x20,0x20,0x00,0x31,0x22,0x22,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x40,0xC0,0x40,0x00,0xC0,0x40,0xB0,0x48,0x48,0x48,0xB0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x78,0x48,0x48,0x48,0x88,0x00,0x10,0x08,0x48,0x48,0xB0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x04,0xFC,0x24,0x24,0x18,0x00,0x20,0xE0,0x40,0x20,0x20,0x00,0x00,
0xC0,0x20,0x20,0xC0,0x00,0x00,0x20,0xF8,0x24,0x24,0x04,0x00,0xC0,0xA0,0xA0,0xC0,
0x00,0x00,0x60,0xA0,0xA0,0x20,0x00,0x00,0x60,0xA0,0xA0,0x20,0x00,0x00,0x20,0xE4,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x81,0x86,0x83,0x80,0x80,0x83,0x84,0x84,0x84,0x83,0x80,0x80,0x84,
0x80,0x80,0x80,0x80,0x82,0x84,0x84,0x84,0x83,0x80,0x82,0x84,0x84,0x84,0x83,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x82,0x83,0x82,0x80,0x80,0x80,0x82,0x83,0x82,0x80,0x80,0x80,0x80,
0x81,0x82,0x82,0x81,0x80,0x80,0x82,0x83,0x82,0x82,0x80,0x80,0x81,0x82,0x82,0x82,
0x80,0x80,0x82,0x82,0x82,0x83,0x80,0x80,0x82,0x82,0x82,0x83,0x80,0x80,0x82,0x83,
0x82,0x80,0x80,0x80,0x82,0x80,0x80,0x82,0x80,0x80,0x82,0x80,0x80,0x80,0x80,0xFF
};
//-----------------------------------------------------------------
// 写指令
//-----------------------------------------------------------------
void Write_Command(INT8U cmd)
{
   CS1 = 0; A0 = 0; __delay_us(4);        //A0设为0,选择命令寄存器





   CS1 = 1;
}

//-----------------------------------------------------------------
// 写数据
//-----------------------------------------------------------------
void Write_Data(INT8U dat)
{ 
   CS1 = 0; A0 = 1; __delay_us(4);        //A0设为1,选择数据寄存器




   CS1 = 1;
}

//-----------------------------------------------------------------
// LCD初始化
//-----------------------------------------------------------------
void LCD_Initialize()
{
    RES = 0; __delay_ms(10); RES = 1;
    Write_Command(0xA2);__delay_ms(10); //设置偏压比为1/7
    Write_Command(0xA1);__delay_ms(10); //设置段驱动方为逆向
    Write_Command(0xC8);__delay_ms(10); //设置COM扫描方为逆向
    Write_Command(0x27);__delay_ms(10); //设置电阻率
    Write_Command(0x81);__delay_ms(10); //设置电量寄存器
    Write_Command(0x1B);__delay_ms(10); //设置电量
    Write_Command(0x2C);__delay_ms(10); //依次打开倍压电路
    Write_Command(0x2E);__delay_ms(10); //内部电压调整
    Write_Command(0x2F);__delay_ms(10); //开启偏置电路电路功能
    Write_Command(0xA4);__delay_ms(10); //正常显示所有点
    Write_Command(0xAF);__delay_ms(10); //开显示

}

//-----------------------------------------------------------------
// 全屏显示或全屏不显示(形成全黑色屏幕/或底色屏幕)
//-----------------------------------------------------------------
void Full_Disp_ON_OFF(INT8U k)
{




}

//-----------------------------------------------------------------
// 显示边框
//-----------------------------------------------------------------
void Disp_Frame()
{
   INT8U i,j;
   //第0页输出-----------------------------------------------------
   Write_Command(LINE);        //设置显示起始行
   Write_Command(PAGE);        //选择第0页
   Write_Command(COL_H4);      //设置起始列为第0列
   Write_Command(COL_L4);
   Write_Data(0xFF);           //垂直输出1列,8个点
   for(j = 0; j < 126; j++)    //输出126列
   {  



   }   
   Write_Data(0xFF);           //该页第127列输出8个点
   //第1~6页输出--------------------------------------------------
   for(i = 1; i < 7; i++)      //输出1~6页
   {  



   }
   //第7页输出-----------------------------------------------------
   Write_Command(PAGE + 7);    //输出第7页
   Write_Command(COL_H4);      //设置列地址高四位
   Write_Command(COL_L4);      //设置列地址低四位
   Write_Data(0xFF);           //第0列输出8个点
   for(j = 0; j < 126; j++)    //输出126列
   { 



   }
   Write_Data(0xFF);           //最后一页最后一列输出8个点
}

//-----------------------------------------------------------------
// 正显与反显棋板
//-----------------------------------------------------------------
void Disp_Checker(INT8U k)
{
   INT8U i,j;
   Write_Command(LINE);        //设置显示起始行
   for(i = 0; i < 8; i++)      //全屏共8页
   {  




   }    
}

//-----------------------------------------------------------------
// R字符平铺画面
//-----------------------------------------------------------------
void Disp_R()
{
   INT8U i,j,k;
   Write_Command(LINE);        //设置显示起始行地址
   for(i = 0; i < 8; i++)      //全屏共输出8页
   {  



   }    
}

//-----------------------------------------------------------------
// 显示文件夹下的一幅图片(下面的代码与上一函数相同,仅使用了不同点阵数组)
//-----------------------------------------------------------------
void Disp_Picture()
{
   INT8U i,j;
   Write_Command(LINE);        //设置显示起始行地址
   for(i = 0; i < 8; i++)      //全屏共输出8页
   {  




   }    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -