📄 nan.c
字号:
#include<stdio.h>
#include<absacc.h>
#include<reg51.h>
#define uchar unsigned char
#define CWADD1 XBYTE[0x8000] //写指令1
#define CRADD1 XBYTE[0x8200] //读指令
#define DWADD1 XBYTE[0x8100] //写数据1
#define DRADD1 XBYTE[0x8300] //读数据1
#define CWADD2 XBYTE[0x4000] //写指令2
#define CRADD2 XBYTE[0x4200] //读指令 2
#define DWADD2 XBYTE[0x4100] //写数据2
#define DRADD2 XBYTE[0x4300] //读数据2
code uchar eetab[][8]={
{0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00},
{0x10,0x30,0x50,0x10,0x10,0x10,0x7c,0x00},
{0x38,0x44,0x04,0x08,0x10,0x20,0x7c,0x00},
{0x78,0x84,0x04,0x38,0x04,0x84,0x78,0x00}
};
code uchar cctab[][32]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
},
{
0x02,0xF2,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xF2,0x02,0x00,
0x00,0x7F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,
},
{
0x80,0x90,0x8C,0x84,0x84,0xF4,0xA5,0x86,0x84,0x84,0x84,0x84,0x94,0x8C,0x84,0x00,
0x80,0x80,0x80,0x40,0x47,0x28,0x28,0x10,0x28,0x24,0x43,0xC0,0x40,0x00,0x00,0x00,
},
{
0x44,0x44,0xFC,0x44,0x44,0x00,0xFE,0x92,0x92,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,
0x10,0x10,0x0F,0x08,0x48,0x40,0x45,0x44,0x44,0x7F,0x44,0x44,0x44,0x45,0x40,0x00,
},
{
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
},
{
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,
},
{
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
},
{
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
},
{
0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xC8,0x48,0x48,0x7F,0x48,0xC8,0x48,0x08,0x00,
0x01,0x41,0x80,0x7F,0x00,0x40,0x40,0x20,0x13,0x0C,0x0C,0x12,0x21,0x60,0x20,0x00,
},
{
0x80,0x84,0x44,0xC4,0xA4,0x94,0x8C,0xFF,0x8C,0x94,0xA4,0x24,0x44,0xC4,0x40,0x00,
0x00,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x00,
},
{
0x40,0x20,0xF0,0x1C,0x47,0x4A,0x48,0x48,0x48,0xFF,0x48,0x48,0x4C,0x68,0x40,0x00,
0x00,0x00,0xFF,0x00,0x40,0x44,0x44,0x44,0x44,0x7F,0x44,0x44,0x46,0x64,0x40,0x00,
},
{
0x00,0x00,0xF8,0x08,0x48,0x48,0x48,0xFF,0xAA,0xAA,0xAA,0x8A,0xD8,0x08,0x00,0x00,
0x80,0x60,0x1F,0x80,0x40,0x3E,0x02,0x02,0x02,0x3E,0x40,0x40,0x40,0x78,0x20,0x00,
},
};
uchar command;
uchar LCDdata;
uchar page_;
uchar code_;
uchar column;
void writecommandE1()
{
while(CRADD1&0x80);
CWADD1=command;
}
void writedataE1()
{
while(CRADD1&0x80);
DWADD1=LCDdata;
}
void writecommandE2()
{
while(CRADD2&0x80);
CWADD2=command;
}
void writedataE2()
{
while(CRADD2&0x80);
DWADD2=LCDdata;
}
void init()
{
command=0xe2;
writecommandE1();
writecommandE2();
command=0xa4;
writecommandE1();
writecommandE2();
command=0xa9;
writecommandE1();
writecommandE2();
command=0xa1;
writecommandE1();
writecommandE2();
command=0xc0;
writecommandE1();
writecommandE2();
command=0xaf;
writecommandE1();
writecommandE2();
command=0x00;
writecommandE1();
writecommandE2();
}
void clear()
{
uchar i,j;
i=0;
do{
command=(i+0xb8);
writecommandE1();
writecommandE2();
command=0x00;
writecommandE1();
writecommandE2();
j=0x50;
do{
LCDdata=0x00;
writedataE1();
writedataE2();
}while(--j!=0);
}while(++i!=4);
}
void delay()
{
uchar i,j;
i=20;j=0;
do{
do{
}while(--j!=0);
}while(--i!=0);
}
void writechn16X16(uchar page_ ,uchar total,uchar code_)
{
uchar i,j,k,m,column ;
i=0;j=0;m=0;k=0;
command=page_|0xb8; //页设置
writecommandE1();
writecommandE2();
command=0x00; //列设置
writecommandE1();
while(j<total*2)
{
column=k;
while(k<column+16)
{
if(k<61)
{
LCDdata=cctab[code_][i+m];
writedataE1();
}
else
{ if(k==61)
{command=0x00;
writecommandE2();
}
LCDdata=cctab[code_][i+m];
writedataE2();
}
i++;
k++;
}
if(k==112)
{
page_=page_+2;
command=page_|0xb8;
writecommandE1();
writecommandE2();
k=0;
command=0x00;
writecommandE1();
}
code_=code_+1;
i=0;
j++;
if(j==total)
{ page_=+1;
code_=0;
command=page_|0xb8;
writecommandE1();
writecommandE2();
k=0;
m=16;
command=0x00;
writecommandE1();
}
}
}
/*void writechn8X16(uchar page_ ,uchar total,uchar code_)
{
uchar i,j,k,m,column ;
i=0;j=0;m=0;k=0;
command=page_|0xb8; //页设置
writecommandE1();
writecommandE2();
command=0x00; //列设置
writecommandE1();
while(j<total*2)
{
column=k;
while(k<column+8)
{
if(k<61)
{
LCDdata=cctab[code_][i+m];
writedataE1();
}
else
{ if(k==61)
{command=0x00;
writecommandE2();
}
LCDdata=cctab[code_][i+m];
writedataE2();
}
i++;
k++;
}
if(k==112)
{
page_=page_+2;
command=page_|0xb8;
writecommandE1();
writecommandE2();
k=0;
command=0x00;
writecommandE1();
}
code_=code_+1;
i=0;
j++;
if(j==total)
{ page_=+1;
code_=0;
command=page_|0xb8;
writecommandE1();
writecommandE2();
k=0;
m=8;
command=0x00;
writecommandE1();
}
}
} */
void main()
{ uchar n;
init();
clear();
//command=0xae; //关显示
// writecommandE1();
// writecommandE2();
writechn16X16(0x02,0x0d,0x00);
//writechn16X16(0x01,0x0d,0x00);
//for (n=1;n<5;n++)
// while(n)
//command=0xae; //关显示
// writecommandE1();
// writecommandE2();
//delay();
// command=0xaf; //开显示
// writecommandE1();
// writecommandE2();
// delay();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -