📄 gxm12864t1_t6963.c
字号:
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define nop() _nop_()
sbit GXM12864_T6963_WR=P3^5;
sbit GXM12864_T6963_RD=P3^4;
sbit GXM12864_T6963_CD=P3^3;
sbit GXM12864_T6963_FS=P3^6;
sbit light_back=P3^7;
void GXM12864_T6963_delay1ms(uint delay_xms);
void GXM12864_T6963_delay50us(uchar count50us);
uchar GXM12864_T6963_RWcheck();
void GXM12864_T6963_AutoRcheck();
void GXM12864_T6963_AutoWcheck();
void GXM12864_T6963_OutPortData(unsigned char dat);
void GXM12864_T6963_OutPortCom1(unsigned char command);
void GXM12864_T6963_OutPortCom2(unsigned char dat,unsigned char command);
void GXM12864_T6963_OutPortCom3(unsigned char data1,unsigned char data2,unsigned char command);
void GXM12864_T6963_ClearScreen();
void GXM12864_T6963_Map_initlcd(void);
void GXM12864_T6963_Txt_initlcd(void);
//*******************************************//
uchar code *PP;
uchar code GXM12864_T6963_tab[]={
/*-- 调入了一幅图像:D:\test\GXM12864_T6963.bmp --*/
/*-- 宽度x高度=128x64 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x08,0x10,0x40,0x22,0x03,0xFE,0x20,0x80,0x7F,0x04,0x48,0x21,0x00,0x00,0x00,
0x00,0x08,0x0B,0xBC,0x22,0x42,0x22,0x17,0xF8,0x41,0x05,0xFE,0x21,0x00,0x00,0x00,
0x07,0xC8,0x02,0x24,0x5F,0xE2,0x22,0x00,0x00,0x7F,0x04,0x48,0x21,0x00,0x00,0x00,
0x00,0x5F,0x82,0x24,0x42,0x02,0x22,0x42,0x40,0x41,0x1E,0xFC,0x27,0xE0,0x00,0x00,
0x04,0x91,0x3A,0x24,0xDF,0xC3,0xFE,0x22,0xF0,0x7F,0x04,0x84,0xF9,0x20,0x00,0x00,
0x02,0xA4,0x0A,0x25,0x52,0x42,0x22,0x04,0x90,0x00,0x0E,0xFC,0x21,0x20,0x00,0x00,
0x01,0x04,0x0A,0xA4,0x5F,0xC2,0x22,0x15,0x51,0xF7,0xD5,0x84,0x2F,0xF0,0x00,0x00,
0x01,0x04,0x0B,0x34,0x52,0x43,0xFE,0x2C,0xA1,0x14,0x54,0xFC,0x21,0x00,0x00,0x00,
0x02,0x8A,0x0A,0x28,0x4A,0x02,0x22,0x64,0x41,0xF7,0xC4,0x20,0x3A,0x80,0x00,0x00,
0x02,0x52,0x08,0x20,0x44,0x02,0x22,0x24,0xA1,0x14,0x45,0xFE,0xC4,0x40,0x00,0x00,
0x04,0x21,0x14,0x00,0x4B,0x04,0x22,0x25,0x11,0xF7,0xC4,0x48,0x08,0x20,0x00,0x00,
0x00,0x40,0xA3,0xFC,0x70,0xE8,0x26,0x26,0x09,0x14,0x47,0x86,0x10,0x10,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x01,0x12,0x08,0x40,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x81,0x7F,0x88,0x40,
0x01,0xCD,0xDD,0xC4,0x1C,0x38,0x38,0x23,0xE1,0x00,0x00,0x2F,0xF1,0x12,0x08,0x40,
0x02,0x44,0x8D,0x8C,0x22,0x44,0x48,0x62,0xA3,0x00,0x00,0x01,0x07,0xBF,0x09,0xF8,
0x04,0x04,0x8D,0x84,0x22,0x44,0x80,0xA0,0x81,0x00,0x00,0xE2,0x21,0x21,0x3E,0x48,
0x04,0x03,0x0D,0x84,0x02,0x28,0xB1,0x20,0x81,0x00,0x00,0x27,0xC3,0xBF,0x08,0x48,
0x04,0x03,0x0A,0x84,0x04,0x38,0xC9,0x20,0x81,0x00,0x00,0x20,0x95,0x61,0x0B,0xFC,
0x04,0xE3,0x0A,0x84,0x08,0x44,0x8A,0x20,0x81,0x0C,0x00,0x21,0x25,0x3F,0x08,0x40,
0x04,0x44,0x8A,0x84,0x10,0x44,0x89,0xE0,0x81,0x0C,0x00,0x2A,0x41,0x08,0x0E,0xA0,
0x02,0x44,0x8A,0x84,0x20,0x44,0x88,0x20,0x81,0x04,0x00,0x34,0xC1,0x7F,0xB1,0x10,
0x01,0x8E,0xDA,0xCE,0x3E,0x38,0x70,0x71,0xC3,0x88,0x00,0x21,0x21,0x12,0x02,0x08,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x11,0xE1,0x84,0x04,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0x0F,0xF8,0x00,0x00,0x00,0x00,0x02,0x20,0x02,0x00,0x00,0x22,0x20,0x00,
0x03,0xF0,0x08,0x88,0x00,0x00,0x00,0x00,0x02,0x20,0x22,0x00,0x00,0x11,0x20,0x00,
0x02,0x22,0x08,0x88,0xF8,0x71,0xC1,0xC7,0x1F,0xFC,0x22,0x00,0x00,0x11,0x40,0x00,
0x01,0x12,0x08,0x88,0xA8,0x92,0x22,0x48,0x82,0x20,0x22,0x00,0x00,0x07,0xF0,0x00,
0x01,0x24,0x0F,0xF8,0x21,0x02,0x24,0x00,0x80,0x80,0x3F,0xE0,0x00,0x70,0x80,0x00,
0x07,0xFF,0x88,0x88,0x21,0x62,0x25,0x83,0x02,0x40,0x20,0x00,0x00,0x17,0xF8,0x00,
0x00,0x30,0x08,0x88,0x21,0x92,0x66,0x40,0x82,0x48,0x3F,0x00,0x00,0x10,0x80,0x00,
0x00,0x68,0x0F,0xF8,0x21,0x11,0xA4,0x40,0x8A,0x04,0x21,0x06,0x00,0x11,0x40,0x00,
0x00,0xA4,0x08,0x88,0x21,0x10,0x24,0x40,0x8A,0x04,0x21,0x06,0x00,0x12,0x20,0x00,
0x01,0x22,0x08,0x88,0x21,0x12,0x44,0x48,0x92,0x10,0x21,0x02,0x00,0x14,0x10,0x00,
0x06,0x21,0x90,0x88,0x70,0xE3,0x83,0x87,0x02,0x10,0x41,0x04,0x00,0x28,0x00,0x00,
0x00,0x20,0x20,0x98,0x00,0x00,0x00,0x00,0x01,0xF0,0x81,0x00,0x00,0x47,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x84,0x01,0x00,0x02,0x00,0x20,0x08,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0xA4,0x00,0x80,0x02,0x82,0x20,0x13,0xF0,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0xC8,0x3F,0xFC,0x02,0x41,0x20,0x20,0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,
0x07,0xEF,0x81,0x01,0xFF,0xE1,0x20,0x48,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x01,0x99,0x01,0x00,0x02,0x07,0xFE,0x17,0xF9,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x06,0xC9,0x01,0xF0,0xFA,0x00,0x42,0x30,0x41,0x3C,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x89,0x01,0x10,0x22,0x00,0x42,0x50,0x41,0x24,0x80,0x00,0x00,0x00,0x00,0x00,
0x07,0xEA,0x02,0x10,0x22,0x00,0xA2,0x10,0x41,0x24,0x80,0x00,0x00,0x00,0x00,0x00,
0x01,0x24,0x02,0x10,0x21,0x00,0x92,0x10,0x41,0x3C,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0xC6,0x04,0x10,0x3D,0x21,0x02,0x10,0x41,0x20,0x80,0x00,0x00,0x00,0x00,0x00,
0x01,0x29,0x08,0xA1,0xE0,0xA2,0x14,0x10,0x41,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x06,0x10,0x90,0x40,0x80,0x64,0x08,0x10,0xC1,0x01,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void GXM12864_T6963_delay1ms(uint delay_xms)
{
uint i,j,m;
for(i=0;i<delay_xms;i++)
{
for(j=0;j<280;j++)
{
for(m=0;m<125;m++)
{
nop();
nop();
nop();
nop();
nop();
nop();
}
}
}
}
//***********delay50us************************//
void GXM12864_T6963_delay50us(uchar count50us)
{
uchar data k ;
_nop_();
for(k=0;k<2*count50us;k++)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
//***********************************************//
uchar GXM12864_T6963_RWcheck()
{
unsigned char sta;
do{ P1=0x0ff;
GXM12864_T6963_CD=1;
GXM12864_T6963_RD=0;
sta=P1&0x03;
GXM12864_T6963_RD=1;
}
while(sta!=0x03);
}
void GXM12864_T6963_AutoRcheck()
{
unsigned char sta;
do{ P1=0x0ff;
GXM12864_T6963_CD=1;
GXM12864_T6963_RD=0;
sta=P1&0x04;
GXM12864_T6963_RD=1;;
}
while(sta!=0x04);
}
void GXM12864_T6963_AutoWcheck()
{
unsigned char sta;
do
{ P1=0x0ff;
GXM12864_T6963_CD=1;
GXM12864_T6963_RD=0;
sta=P1&0x08;
GXM12864_T6963_RD=1;
}
while(sta!=0x08);
}
//*******************************************************//
void GXM12864_T6963_OutPortData(unsigned char dat1)
{
//GXM12864_T6963_RWcheck();
GXM12864_T6963_CD=0;
GXM12864_T6963_WR=0;
P1=dat1;
GXM12864_T6963_WR=1;
GXM12864_T6963_CD=1;
}
void GXM12864_T6963_OutPortCom1(unsigned char command1)
{
GXM12864_T6963_RWcheck();
GXM12864_T6963_CD=1;
GXM12864_T6963_WR=0;
P1=command1;
GXM12864_T6963_WR=1;
GXM12864_T6963_CD=1;
}
void GXM12864_T6963_OutPortCom2(unsigned char dat2,unsigned char command2)
{
GXM12864_T6963_OutPortData(dat2);
GXM12864_T6963_OutPortCom1(command2);
}
void GXM12864_T6963_OutPortCom3(unsigned char data1,unsigned char data2,unsigned char command)
{
GXM12864_T6963_OutPortData(data1);
GXM12864_T6963_OutPortData(data2);
GXM12864_T6963_OutPortCom1(command);
}
void GXM12864_T6963_ClearScreen()
{
unsigned int i;
GXM12864_T6963_OutPortCom3(0x00,0x00,0x24);//;显示地址设置
GXM12864_T6963_OutPortCom1(0xb0); //;自动写操作;数据一次读写设置1 1 0 0 0 N2 N1 N0 N2N1N0=000写操作地址自动加一
for(i=0;i<8192;i++)
{
//GXM12864_T6963_OutPortData(0X0ff);
GXM12864_T6963_OutPortData(0X00);
}
GXM12864_T6963_OutPortCom1(0xb2);
}
void GXM12864_T6963_Map_initlcd(void)
{
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x00,0x08,0x42);//;图形显示区首地址设置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(16,0x00,0x43); // ;图形显示区宽度=水平8点象数为1个字节 12864 128例占16个字节
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0x0a0); //;光标形状设置1 0 1 0 0 N2 N1 N0
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0x80); //;显示方式设置1 0 0 0 CG N2 N1 N0 CG=0 启用内部的CGROM N2N1N0=000文本与图形以逻辑“或”合成方式
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0x98); //;显示状态设置 1 0 1 0 N3 N2 N1 N0 启用图形显示方式
}
void GXM12864_T6963_Txt_initlcd(void)
{
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x01,0x00,0x21); //;光标显示地址设置置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x00,0x00,0x40); // ;文本显示地址设置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(16,0x00,0x41); //;文本显示区宽度=显示屏的例数1行所占的字节数16*8=128
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0x97); //;显示状态设置 1 0 1 0 N3 N2 N1 N0 启用图形显示方式 文本,光标
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0x0a0); //;光标形状设置1 0 1 0 0 N2 N1 N0
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0x80); //;显示方式设置1 0 0 0 CG N2 N1 N0 CG=0 启用内部的CGROM N2N1N0=000文本与图形以逻辑“或”合成方式
}
void main(void)
{ uint i,j;
GXM12864_T6963_delay1ms(1);
GXM12864_T6963_WR=1;
GXM12864_T6963_RD=1;
GXM12864_T6963_CD=1;
GXM12864_T6963_FS=0;
light_back=0;
//GXM12864_T6963_Map_initlcd();
GXM12864_T6963_ClearScreen();
//GXM12864_T6963_Txt_initlcd();
while(1)
{
//****************display text**********************************//
GXM12864_T6963_Txt_initlcd();
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x00,0x00,0x24); // ;文本显示地址设置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0xb0); //;自动写操作;数据一次读写设置1 1 0 0 0 N2 N1 N0 N2N1N0=000写操作地址自动加一
for(i=0;i<16;i++)
{
for(j=0;j<16;j++)
{
GXM12864_T6963_OutPortData(j+i*16);
}
}
GXM12864_T6963_OutPortCom1(0xb2);
GXM12864_T6963_delay1ms(5);
//*****************display map snap1**********************************//
GXM12864_T6963_Map_initlcd();
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x00,0x08,0x24); // ;文本显示地址设置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0xb0); //;自动写操作;数据一次读写设置1 1 0 0 0 N2 N1 N0 N2N1N0=000写操作地址自动加一
for(i=0;i<32;i++)
{
for(j=0;j<16;j++)
{
GXM12864_T6963_OutPortData(0x55);
}
for(j=0;j<16;j++)
{
GXM12864_T6963_OutPortData(0x0aa);
}
}
GXM12864_T6963_OutPortCom1(0xb2);
GXM12864_T6963_delay1ms(5);
//*****************display map snap2***********************//
GXM12864_T6963_Map_initlcd();
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x00,0x08,0x24); // ;文本显示地址设置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0xb0); //;自动写操作;数据一次读写设置1 1 0 0 0 N2 N1 N0 N2N1N0=000写操作地址自动加一
for(i=0;i<32;i++)
{
for(j=0;j<16;j++)
{
GXM12864_T6963_OutPortData(0x0aa);
}
for(j=0;j<16;j++)
{
GXM12864_T6963_OutPortData(0x055);
}
}
GXM12864_T6963_OutPortCom1(0xb2);
_nop_();
GXM12864_T6963_delay1ms(5);
//**************dispaly picture*******************//
GXM12864_T6963_Map_initlcd();
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom3(0x00,0x08,0x24); // ;文本显示地址设置
GXM12864_T6963_RWcheck();
GXM12864_T6963_OutPortCom1(0xb0); //;自动写操作;数据一次读写设置1 1 0 0 0 N2 N1 N0 N2N1N0=000写操作地址自动加一
PP=GXM12864_T6963_tab;
for(i=0;i<1024;i++)
{
GXM12864_T6963_OutPortData(*PP);
PP++;
}
GXM12864_T6963_OutPortCom1(0xb2);
_nop_();
GXM12864_T6963_delay1ms(5);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -