📄 16x2.c
字号:
#include <reg51.h>
#include <absacc.h>
#define uint unsigned int
#define uchar unsigned char
sbit RS = P3^0;
sbit RW = P3^2;
sbit E = P3^1;
uchar stats[1]={0x00};
uchar title[32]={0x20,0x20,0x20,0x4c,0x54,0x54,0x2d,0x4d,
0x4f,0x44,0x55,0x4c,0x45,0x20,0x20,0x20,
0x31,0x36,0x78,0x32,0x54,0x45,0x53,0x54,
0x20,0x50,0x52,0x4f,0x47,0x52,0x41,0x4d};
uchar cgon[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
uchar cgoff[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void delay(uint nnn)
{
uint mmm;
while(nnn-->0)
for(mmm=0;mmm<888;mmm++){ }
}
void w_code(uchar c)
{
RS=0;RW=1;
CCC:
P1=0xff;E=1;
stats[0]=P1;
E=0;
stats[0]=stats[0]&0x80;
if((stats[0]-0x00)>0)
{ goto CCC;}
else {}
RW=0;
P1=c;
E=1;E=0;
}
void w_data(uchar d)
{
RS=0;RW=1;
DDD:
P1=0xff;E=1;
stats[0]=P1;
E=0;
stats[0]=stats[0]&0x80;
if((stats[0]-0x00)>0)
{ goto DDD;}
else {}
RS=1;
RW=0;
P1=d;
E=1;E=0;
}
void w_cgrom(uchar cgadr,uchar *str)
{
uchar cgi,cgj;
for(cgj=0;cgj<16;cgj++)
{
for(cgi=0;cgi<8;cgi++)
{
w_code(cgadr+cgi+8*cgj);
w_data(str[cgi]);
}
}
}
void initial()
{
w_code(0x38);delay(1);
w_code(0x0c);delay(1);
w_code(0x06);delay(1);
w_code(0x01);delay(1);
}
void display1(uchar adr,uchar *str)
{
uchar i;
w_code(adr);
for(i=0;i<16;i++)
{ w_data(str[i]);}
w_code(adr+0x40);
for(i=16;i<32;i++)
{ w_data(str[i]);}
}
void display2(uchar adr,uchar su,uchar length)
{
uchar i;
w_code(adr);
for(i=0;i<length;i++)
{ w_data(su);}
}
void main()
{
uchar i,k1,k2,k3;
initial();
while(1)
{
/* display title */
display1(0x80,title);
delay(400);
/* display all on */
w_cgrom(0x40,cgon);
w_code(0x80);
for(i=0;i<16;i++)
{ w_data(i);}
w_code(0xc0);
for(i=0;i<16;i++)
{ w_data(i);}
delay(100);
/* display all off */
w_cgrom(0x40,cgoff);
w_code(0x80);
for(i=0;i<16;i++)
{ w_data(i);}
w_code(0xc0);
for(i=0;i<16;i++)
{ w_data(i);}
delay(100);
/* display all characters */
k1=0x20;k3=0x80;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
k1=0x30;k3=0xc0;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
delay(200);
k1=0x40;k3=0x80;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
k1=0x50;k3=0xc0;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
delay(200);
k1=0x60;k3=0x80;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
k1=0x70;k3=0xc0;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
delay(200);
k1=0xa0;k3=0x80;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
k1=0xb0;k3=0xc0;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
delay(200);
k1=0xc0;k3=0x80;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
k1=0xd0;k3=0xc0;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
delay(200);
k1=0xe0;k3=0x80;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
k1=0xf0;k3=0xc0;
for(k2=0;k2<0x10;k2++)
{
display2(k3+k2,k1+k2,0x01);
}
delay(200);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -