源程序
include"IIC.C"
sbit rs=P1^2;
sbit rw=P1^1;
sbit e=P1^0;
sbit key=P2^2;
//sbit set=P3^
//sbit jia=P3^
//sbit jian=P3^
sbit jdq=P3^6;
#define LCD1602_BUS P0
uint z=0,w=0,l=0;
uint dianya,dianliu,gonglv;
uchar code shuju[]="0123456789";
void delay(uint e)
{
uint i;
for(i=e;i>0;i--);
}
void Delay()
{
uchar i;
for(i=0;i<90;i++);
}
void Check_Busy()
{
uchar statue;
while(1){
rs=0;rw=1;
e=1;
statue=LCD1602_BUS;
statue&=0x80;
if(statue==0){
e=0;
break;
}
}
}
void w_com(uchar com)
{
Check_Busy();
rs=0;
rw=0;Delay();
LCD1602_BUS=com;
e=1; Delay();
e=0; Delay();
}
void w_date(uchar date)
{
Check_Busy();
rs=1;
rw=0;Delay();
LCD1602_BUS=date;
e=1;Delay();
e=0;Delay();
}
void chushihua()
{
rs=0;
delay(1000);
rw=0;
delay(1000);
e=0;
delay(1000);
w_com(0x38);
delay(1000);
w_com(0x38);
delay(1000);
w_com(0x38);
delay(1000);
w_com(0x0c);
delay(1000);
w_com(0x06);
delay(1000);
w_com(0x01);
delay(1000);
w_com(0x02);
}
void jishushezhi()
{
TMOD=0x25;
TH0=0xff;
TL0=0xff;
IT0=0;
TR0=1;
ET0=1;
EA=1;
}
void jishu() interrupt 1
{
TH0=0xff;
TL0=0xff;
l++;
if(l==1)
{
l=0;
z++;
}
}
void shujuxianshi()
{
uint a,b,c,d,e,f,g,h;
uchar code shuju[]="0123456789";
w_com(0x01);
delay(1000);
w_com(0x80+0x4c);
w_date(shuju[z%10]);
a=z/10;
w_com(0x80+0x4b);
w_date(shuju[a%10]);
b=a/10;
w_com(0x80+0x4a);
w_date(shuju[b%10]);
c=b/10;
w_com(0x80+0x48);
w_date(shuju[c%10]);
d=c/10;
w_com(0x80+0x47);
w_date(shuju[d%10]);
e=d/10;
w_com(0x80+0x46);
w_date(shuju[e%10]);
f=d/10;
w_com(0x80+0x45);
w_date(shuju[f%10]);
g=f/10;
w_com(0x80+0x44);
w_date(shuju[g%10]);
h=g/10;
w_com(0x80+0x43);
w_date(shuju[h%10]);
w_com(0x80+0x4d);
w_date('K');
w_com(0x80+0x4e);
w_date('W');
w_com(0x80+0x4f);
w_date('h');
w_com(0x80+0x49);
w_date('.');
}
void main()
{
uint x,y,i;
uint a,b,c,d,e,f,g,h;
init();
delay(100);
chushihua();
x=read_add(1023);
delay(300);
for(i=0;i<=x;i++)
{
y=read_add(i);
delay(300);
z=z+y;
}
shujuxianshi();
delay(500);
jishushezhi();
jdq=0;
delay(100);
while(1)
{
if(z<=255)
{
write_add(0,z),
delay(300);
write_add(1023,0),
delay(300);
}
if(z>255)
{
w=z/255;
for(i=w;i>0;i--)
{
write_add(i,255);
delay(300);
}
write_add(1023,w);
delay(300);
write_add(0,z%255);
delay(300);
}
if(key==0)
{
delay(200);
if(key==0)
{
init();
delay(100);
for(i=0;i<1024;i++)
{
write_add(i,0);
delay(10);
}
z=0;
write_add(1023,0);
w_com(0x80+0x4c);
w_date('0');
w_com(0x80+0x4b);
w_date('0');
w_com(0x80+0x4a);
w_date('0');
w_com(0x80+0x48);
w_date('0');
w_com(0x80+0x47);
w_date('0');
w_com(0x80+0x46);
w_date('0');
w_com(0x80+0x45);
w_date('0');
w_com(0x80+0x44);
w_date('0');
w_com(0x80+0x43);
w_date('0');
}
}
{
w_com(0x80+0x4c);
w_date(shuju[z%10]);
a=z/10;
w_com(0x80+0x4b);
w_date(shuju[a%10]);
b=a/10;
w_com(0x80+0x4a);
w_date(shuju[b%10]);
c=b/10;
w_com(0x80+0x48);
w_date(shuju[c%10]);
d=c/10;
w_com(0x80+0x47);
w_date(shuju[d%10]);
e=d/10;
w_com(0x80+0x46);
w_date(shuju[e%10]);
f=d/10;
w_com(0x80+0x45);
w_date(shuju[f%10]);
g=f/10;
w_com(0x80+0x44);
w_date(shuju[g%10]);
h=g/10;
w_com(0x80+0x43);
w_date(shuju[h%10]);
}
if(z%3==0&&z!=0)
{
dianya=220;
dianliu=1;
}
else if(z%2==0&&z!=0)
{
dianya=218;
dianliu=2;
}
else if(z==0)
{
dianya=0;
dianliu=0;
}
gonglv=dianya*dianliu;
w_com(0x80);
w_date('U');
w_com(0x81);
w_date(shuju[dianya/100]);
w_com(0x82);
w_date(shuju[dianya/10%10]);
w_com(0x83);
w_date(shuju[dianya%100]);
w_com(0x84);
w_date('V');
w_com(0x85);
w_date('I');
w_com(0x86);
w_date(shuju[dianliu/10]);
w_com(0x87);
w_date(shuju[dianliu%10]);
w_com(0x88);
w_date('A');
w_com(0x89);
w_date('W');
w_com(0x8a);
w_date(shuju[gonglv/1000]);
w_com(0x8b);
w_date(shuju[gonglv/100%10]);
w_com(0x8c);
w_date(shuju[gonglv/10%10]);
w_com(0x8d);
w_date(shuju[gonglv%10]);
w_com(0x8e);
w_date('W');
}
}
|