📄 lcdhead.h
字号:
#define uchar unsigned char
#define uint unsigned int
sbit P15=P1^5;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P16=P1^6;
sbit P17=P1^7;
sbit P34=P3^4;
sbit P33=P3^3;
sbit P36=P3^6;
sbit P37=P3^7;
sbit P12=P1^2;
uchar code NUM[11][16]={{0xC0,0xF0,0x18,0x08,0x08,0x38,0xF0,0xC0,0x07,0x1F,0x18,0x30,0x30,0x1C,0x0F,0x03},
{0x00,0x10,0x10,0xF8,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00},
{0x00,0x70,0x78,0x08,0x08,0x98,0xF0,0x00,0x00,0x38,0x3C,0x36,0x33,0x31,0x30,0x00},
{0x00,0x30,0x18,0x88,0x88,0xF8,0x70,0x00,0x00,0x0C,0x10,0x10,0x10,0x18,0x0F,0x00},
{0x00,0x00,0x80,0xE0,0x30,0xF8,0xF8,0x00,0x00,0x0E,0x0F,0x0C,0x0C,0x7F,0x7F,0x0C},
{0x00,0xF8,0xF8,0x88,0x88,0x88,0x88,0x00,0x00,0x19,0x39,0x60,0x40,0x60,0x3F,0x1F},
{0x00,0xF0,0x98,0xCC,0xCC,0x98,0x30,0x00,0x00,0x0F,0x1F,0x30,0x30,0x3F,0x1F,0x00},
{0x00,0x08,0x08,0x08,0x88,0xF8,0x38,0x00,0x00,0x00,0x20,0x3C,0x0F,0x01,0x00,0x00},
{0x00,0x70,0x98,0x88,0x88,0xF8,0x70,0x00,0x04,0x1F,0x11,0x31,0x31,0x1B,0x1E,0x00},
{0x60,0xF8,0x18,0x0C,0x08,0xF8,0xF0,0x00,0x00,0x19,0x33,0x33,0x33,0x1F,0x0F,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
uchar code huan[32]={0x00,0xA0,0x20,0x10,0xF0,0x00,0x40,0x38,0xA7,0x10,0x50,0x30,0x10,0x00,0x00,0x00,
0x10,0x08,0x05,0x02,0x05,0x20,0x10,0x0C,0x03,0x04,0x08,0x10,0x30,0x20,0x20,0x00};
uchar code ying[32]={0x40,0x40,0x44,0xC8,0x00,0xF8,0x08,0x84,0x06,0xF0,0x08,0x88,0xF8,0x00,0x00,0x00,
0x08,0x08,0x09,0x0E,0x08,0x09,0x09,0x08,0x10,0x17,0x10,0x30,0x30,0x10,0x10,0x00};
uchar code shi[32]={0x80,0x40,0x20,0xF8,0x06,0x00,0xC0,0x50,0x50,0xFE,0xA8,0xA8,0x60,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x00,0x20,0x12,0x0B,0x05,0x0B,0x10,0x10,0x20,0x20,0x20,0x00};
uchar code yong[32]={0x00,0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0x92,0x92,0x02,0xFE,0x00,0x00,0x00,0x00,
0x20,0x10,0x08,0x07,0x00,0x01,0x01,0x1F,0x00,0x00,0x10,0x3F,0x00,0x00,0x00,0x00};
uchar code shu[32]={0x20,0xE0,0x30,0xDE,0x90,0x50,0xA0,0x98,0x26,0x28,0x10,0x90,0x20,0x20,0x00,0x00,
0x04,0x05,0x05,0x3F,0x02,0x3F,0x0A,0x3F,0x00,0x0F,0x20,0x3F,0x00,0x00,0x00,0x00};
uchar code ru[32]={0x00,0x00,0x00,0x00,0x08,0xC8,0x30,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x18,0x10,0x10,0x00};
uchar code pin[32]={0x40,0x40,0xB8,0x20,0xFF,0x28,0xA8,0x00,0xE4,0x24,0xDC,0x12,0xF2,0x02,0x00,0x00,
0x20,0x20,0x11,0x08,0x05,0x02,0x21,0x20,0x13,0x08,0x07,0x08,0x13,0x20,0x00,0x00};
uchar code lv[32]={0x00,0x00,0x88,0x50,0x04,0x94,0xDC,0xB3,0x4A,0x82,0x32,0x48,0x00,0x00,0x00,0x00,
0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00};
uchar code H[32]={0x00,0xF8,0x08,0x00,0x00,0xF8,0x08,0x00,0x00,0x1F,0x01,0x01,0x01,0x1F,0x10,0x00};
uchar code z[32]={0x00,0x00,0x40,0x40,0x40,0xC0,0x40,0x00,0x00,0x10,0x18,0x14,0x13,0x10,0x18,0x00};
void delay(uint v)
{
while(v!=0)v--;
}
void reset()//将其reset脚置低电平
{
P15=0;
delay(20);
P15=1;
delay(20);
}
void wcode(uchar c,uchar cs1,uchar cs2)//写指令
{
P13=cs1;//cs1=1表示选中左半屏
P14=cs2;//cs2=1表示选中右半屏
P37=0;
P36=0;
P0=c;
P12=1;
delay(1);
P12=0;
delay(1);
}
void wdata(uchar c,uchar cs1,uchar cs2)//写数据
{
P34=cs1;
P33=cs2;
P37=1;
P36=0;
P0=c;
P12=1;
delay(1);
P12=0;
delay(1);
}
void set_startline(uchar i)//设置起始行显示地址
{
i=0xc0+i;
wcode(i,1,1);
}
void set_adr(uchar x,uchar y)//设置具体位置
{
x=x+0xb8;
wcode(x,1,1);
if(y<64){
y=y+0x40;
wcode(y,1,0);
}
else
{
y=y-64+0x40;
wcode(y,0,1);
}
}
void dison_off(uchar o)//设置显示开/关程序
{
o=o+0x3e;
wcode(o,1,1);
}
uchar inva(uchar b)//字节转置
{
uchar v1=0;
uchar v2=0;
char i;
uchar j1=0x80;
uchar j2=0x01;
for(i=7;i>=1;i=i-2)
{
v1=((b<<i)&j1)|v1;
v2=((b>>i)&j2)|v2;
j1=j1>>1;
j2=j2<<1;
}
return (v1|v2);
}
void displaynum(uchar num,uchar x,uchar y)//显示数字
{
unsigned char i=0;
unsigned char l=0;
dison_off(1);
set_adr(x,y);
if(y<64)l=1;
for(i=0;i<8;i++)
{
wdata(NUM[num][i],l,1-l);
}
set_adr(x+1,y);
for(i=0;i<8;i++)
{
wdata(NUM[num][i+8],l,1-l);
}
}
void display2(uchar* chr,uchar x,uchar y,uchar n)//显示任意字符
{
unsigned char i=0;
//unsigned char l=0;
dison_off(1);
set_adr(x,64);
set_adr(x,y);
//if(y<64)l=1;
for(i=0;i<n;i++)
{
if(i+x<64)
wdata(*(chr+i),1,0);
else
wdata(*(chr+i),0,1);
}
set_adr(x+1,y);
for(i=0;i<n;i++)
{
if(i+x<64)
wdata(*(chr+i+n),1,0);
else
wdata(*(chr+i+n),0,1);
}
}
void clearscan()//清屏
{
unsigned char i=0;
unsigned char j=0;
for(i=0;i<8;i++)
{
set_adr(i,0);
for(j=0;j<64;j++)
{
wdata(0x00,1,1);
}
}
}
void huanying()
{
uchar i=0;
uchar *temp;
set_adr(0,0);
temp=&huan;
for(i=0;i<48;i++)
{
display2(temp,3,48-i,16);
delay(10000);
}
temp=&ying;
for(i=0;i<32;i++)
{
display2(temp,3,48-i,16);
delay(10000);
}
temp=&shi;
for(i=0;i<16;i++)
{
display2(temp,3,48-i,16);
delay(10000);
}
temp=&yong;
for(i=0;i<8;i++)
{
delay(10000);
display2(temp,3,48-i,16);
}
delay(10000000);
clearscan();
}
void please()
{
uchar *temp;
set_adr(0,0);
temp=&shu;
display2(temp,0,0,16);
temp=&ru;
display2(temp,0,16,16);
temp=&pin;
display2(temp,0,32,16);
temp=&lv;
display2(temp,0,48,16);
temp=&H;
display2(temp,5,40,8);
temp=&z;
display2(temp,5,48,8);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -