#include "71x_lib.h"
void clear();
void delay(u16 z)
{
u16 x,y;
for(x=z; x>0; x--) /* delay */
for( y=112;y>0;y--);
}
void write_zl(u8 zl1,u8 zl2) //写指令
{ GPIO_ByteWrite(GPIO2,GPIO_MSB,zl1); //10000001 选择屏幕
// GPIO_BitWrite(GPIO2,9,0); //指令
// GPIO_BitWrite(GPIO2,10,0); //r/w低表示写入
delay(10);
GPIO_BitWrite(GPIO2,11,1);
delay(10);
GPIO_ByteWrite(GPIO2,GPIO_LSB,zl2);
delay(10);
GPIO_BitWrite(GPIO2,11,0);
delay(10);
}
void write_data(u8 data1,u8 data2) //写数据
{ //GPIO_BitWrite(GPIO2,9,1); //数据模式
//GPIO_BitWrite(GPIO2,10,0); //r/w低表示写入
//delay(10);
GPIO_ByteWrite(GPIO2,GPIO_MSB,data1);//10000011 选择屏幕 e1 d1 b1
delay(10);
GPIO_BitWrite(GPIO2,11,1);
delay(10);
GPIO_ByteWrite(GPIO2,GPIO_LSB,data2);
delay(10);
GPIO_BitWrite(GPIO2,11,0);
delay(10);
}
u8 num0[]={0xFF,0x1F,0xEF,0xF7,0xF7,0xEF,0x1F,0xFF,0xFF,0xF0,0xEF,0xDF,0xDF,0xEF,0xF0,0xFF}; //0
u8 num1[]={0xFF,0xFF,0xEF,0xEF,0x07,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xC0,0xDF,0xDF,0xFF,0xFF}; //1
u8 num2[]={0xFF,0x8F,0xF7,0xF7,0xF7,0x77,0x8F,0xFF,0xFF,0xCF,0xD7,0xDB,0xDD,0xDE,0xCF,0xFF}; //2
u8 num3[]={0xFF,0xCF,0xF7,0x77,0x77,0xB7,0xCF,0xFF,0xFF,0xE7,0xDF,0xDF,0xDF,0xEE,0xF1,0xFF}; //3
u8 num4[]={0xFF,0xFF,0xFF,0x3F,0xDF,0xEF,0x07,0xFF,0xFF,0xF8,0xFB,0xDB,0xDB,0xC0,0xDB,0xFF}; //4
u8 num5[]={0xFF,0x07,0xF7,0x77,0x77,0xF7,0xF7,0xFF,0xFF,0xE6,0xDE,0xDF,0xDF,0xEE,0xF1,0xFF}; //5
u8 num6[]={0xFF,0x1F,0xEF,0x77,0x77,0xE7,0xFF,0xFF,0xFF,0xF0,0xEE,0xDF,0xDF,0xEE,0xF1,0xFF}; //6
u8 num7[]={0xFF,0xC7,0xF7,0xF7,0x37,0xC7,0xF7,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF}; //7
u8 num8[]={0xFF,0x8F,0x77,0xF7,0xF7,0x77,0x8F,0xFF,0xFF,0xE3,0xDD,0xDE,0xDE,0xDD,0xE3,0xFF}; //8
u8 num9[]={0xFF,0x1F,0xEF,0xF7,0xF7,0xEF,0x1F,0xFF,0xFF,0xFF,0xCE,0xDD,0xDD,0xEE,0xF0,0xFF}; //9
int main(void)
{ int num;
GPIO_Config(GPIO2, 0xFFFF, GPIO_OUT_PP);
GPIO_WordWrite(GPIO2,0);
GPIO_BitWrite(GPIO2,15,~GPIO_BitRead(GPIO2,15));
delay(10);
//write_zl(0x81,0x7c); //关屏
write_zl(0x81,0xfc); //开屏
//delay(10);
clear();
/*write_zl(0x81,0x03);//0行
write_zl(0x81,0x1d);//0页 1d 9d 5d dd 3d bd 7d fd
write_zl(0x81,0x02);//y
for(num=15;num>=8;num--)
write_data(0xe3,num4[num]);//数据
write_zl(0x81,0x13);//8行
write_zl(0x81,0x9d);//1页
write_zl(0x81,0x02);//y
for(num=7;num>=0;num--)
write_data(0xe3,num4[num]);//数据 */
/* write_zl(0x81,0x0b);//16行
write_zl(0x81,0x5d);//2页
write_zl(0x81,0x02);//y
for(num=15;num>=8;num--)
write_data(0xd3,num8[num]);//数据
write_zl(0x81,0x1b);//24行
write_zl(0x81,0xdd);//3页
write_zl(0x81,0x02);//y
for(num=7;num>=0;num--)
write_data(0xd3,num8[num]);//数据 */
write_zl(0xb1,0x07);//行
write_zl(0xb1,0x3d);//页
write_zl(0xb1,0x02);//y
for(num=15;num>=8;num--)
{
write_data(0xb3,num5[num]);//数据
delay(10);
}
write_zl(0xb1,0x17);//行
write_zl(0xb1,0xbd);//页
write_zl(0xb1,0x02);//y
for(num=7;num>=0;num--)
{
write_data(0xb3,num5[num]);//数据
delay(10);
}
GPIO_WordWrite(GPIO2,0);
write_zl(0x81,0xfc); //开屏
// delay(50000);
/* write_zl(0x81,0x0b);//16行
write_zl(0x81,0x5d);//2页
write_zl(0x81,0x02);//y
for(num=15;num>=8;num--)
write_data(0xd3,num7[num]);//数据
write_zl(0x81,0x1b);//24行
write_zl(0x81,0xdd);//3页
write_zl(0x81,0x02);//y
for(num=7;num>=0;num--)
write_data(0xd3,num7[num]);//数据
GPIO_WordWrite(GPIO2,0);
write_zl(0x81,0xfc); //开屏
delay(50000);
write_zl(0x81,0x0b);//16行
write_zl(0x81,0x5d);//2页
write_zl(0x81,0x02);//y
for(num=15;num>=8;num--)
write_data(0xd3,num6[num]);//数据
write_zl(0x81,0x1b);//24行
write_zl(0x81,0xdd);//3页
write_zl(0x81,0x02);//y
for(num=7;num>=0;num--)
write_data(0xd3,num6[num]);//数据
GPIO_WordWrite(GPIO2,0);
write_zl(0x81,0xfc); //开屏
delay(50000);
write_zl(0x81,0x07);//行
write_zl(0x81,0x3d);//页
write_zl(0x81,0x02);//y
for(num=15;num>=8;num--)
write_data(0xd3,num5[num]);//数据
write_zl(0x81,0x17);//行
write_zl(0x81,0xbd);//页
write_zl(0x81,0x02);//y
for(num=7;num>=0;num--)
write_data(0xd3,num5[num]);//数据
GPIO_WordWrite(GPIO2,0);
write_zl(0x81,0xfc); //开屏 */
}
void clear()
{
u8 x,y;
for(x=0;x<8;x++)
{
if(x==0)
{
write_zl(0x81,0x03); //0行起
write_zl(0x81,0x1D); //0页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==1)
{
write_zl(0x81,0x13); //8行
write_zl(0x81,0x9d); //1页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==2)
{
write_zl(0x81,0x0b); //16行
write_zl(0x81,0x5d); //2页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==3)
{
write_zl(0x81,0x1b); //24行
write_zl(0x81,0xdd); //3页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==4)
{
write_zl(0x81,0x07); //32行
write_zl(0x81,0x3d); //4页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==5)
{
write_zl(0x81,0x17); //40行
write_zl(0x81,0xbd); //5页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==6)
{
write_zl(0x81,0x0f); //48行
write_zl(0x81,0x7d); //6页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
else if(x==7)
{
write_zl(0x81,0x0b); //56行
write_zl(0x81,0x1f); //7页
write_zl(0x81,0x02); //y
for(y=0;y<64;y++)
{
write_data(0x83,0xff);
}
}
}
}