更新优化,
#include "stch15.h"
#include<intrins.h>
#define uchar unsigned char
sbit cs=P2^5;
sbit sid=P2^6;
sbit sck=P2^7;
sbit k1=P0^0;
sbit k2=P0^1;
sbit k3=P0^2;
sbit k4=P0^3;
sbit bee=P5^5;
sbit led=P4^5;
uchar hous, miao,week,fen,ge,nno,shi,dat,dat1,ge1,ge2,
shi1,shi2,nian,yue,ri,nq,ng,ns,nb,yg,rg,ys,rs;
uchar shu []={"0123456789"};
uchar hanzi1[]={"ê±¼ä==½eÇ® !"};
uchar t;
uchar code img[]={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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0x00,0x00,0x0C,0x00,0x00,0x40,0x70,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x00,0xE0,0x00,0x00,0x1E,0x00,0x00,0x60,0x70,0x00,0x00,0x0F,0xE0,0x00,
0x00,0x00,0x01,0xC0,0x00,0x60,0x3C,0x00,0x00,0xE0,0x60,0x00,0x1F,0xFF,0xE0,0x00,
0x00,0x00,0x03,0x80,0x00,0x70,0x70,0x40,0x00,0xE0,0x7E,0x00,0x1F,0xE0,0xC0,0x00,
0x00,0x00,0x03,0x00,0x00,0x73,0xC3,0xF0,0x01,0xC3,0xFC,0x00,0x38,0xE1,0xC0,0x00,
0x00,0x03,0xC6,0x3C,0x00,0x33,0x9F,0xF0,0x03,0x8F,0xC0,0x00,0x30,0xC1,0xC0,0x00,
0x00,0x3F,0xEF,0xFE,0x00,0x03,0x1C,0xE0,0x07,0x01,0xCC,0x00,0x31,0xF1,0x80,0x00,
0x00,0x79,0xDF,0xBC,0x00,0x06,0x18,0xC0,0x0E,0x01,0xFE,0x00,0x77,0xF9,0x80,0x00,
0x00,0x01,0xB0,0x30,0x01,0xC6,0x19,0xC0,0x1E,0x7F,0xDE,0x00,0x6F,0x83,0x80,0x00,
0x00,0x23,0xAC,0x60,0x0F,0xE6,0xF1,0x80,0x3E,0x7B,0x38,0x00,0x61,0x83,0x00,0x00,
0x00,0x37,0x0E,0x00,0x0F,0xC7,0xB7,0x80,0xEC,0x63,0x30,0x00,0xE3,0x03,0x00,0x00,
0x00,0x3E,0x0E,0x00,0x01,0x8F,0x37,0x01,0xCC,0x6F,0xF0,0x00,0xC7,0xF7,0x00,0x00,
0x00,0x1E,0x0C,0x00,0x03,0x1E,0x66,0x03,0x0C,0x7F,0x00,0x01,0xFF,0xE6,0x00,0x00,
0x00,0x1E,0x1C,0x00,0x03,0x1C,0x60,0x02,0x19,0xAC,0x00,0x01,0x96,0x06,0x00,0x00,
0x00,0x3E,0x3E,0x00,0x03,0x18,0x60,0x00,0x19,0xFC,0x00,0x03,0x86,0x0E,0x00,0x00,
0x00,0x7E,0x36,0x00,0x03,0x00,0xC0,0x00,0x38,0x78,0x00,0x03,0x06,0x0C,0x00,0x00,
0x00,0xE6,0x67,0x00,0x03,0x00,0xC0,0x00,0x30,0x78,0x00,0x06,0x0C,0x0C,0x00,0x00,
0x01,0xC6,0xC3,0x80,0x7F,0xF0,0xC0,0x00,0x30,0xFE,0x00,0x0E,0x0C,0x1C,0x00,0x00,
0x03,0x81,0x83,0xC0,0x78,0xFF,0x80,0x00,0x61,0xCF,0x80,0x1C,0x08,0x18,0x00,0x00,
0x06,0x07,0x03,0xE0,0x00,0x1F,0xFF,0xE0,0x67,0x07,0xE0,0x38,0x18,0xF8,0x00,0x00,
0x08,0x0E,0x01,0xF8,0x00,0x07,0xFF,0x80,0xCE,0x03,0xF8,0x60,0x00,0x70,0x00,0x00,
0x00,0x18,0x01,0xF8,0x00,0x01,0xFC,0x00,0xC0,0x01,0xFC,0xC0,0x00,0x70,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,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,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x06,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x06,0x00,0x00,0x00,0x0C,0xE0,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0E,0x00,0x00,0x00,0x3F,0xE0,0x00,0xFF,0xF0,0x00,0x38,0x00,0xE0,0x00,
0x00,0x00,0x0C,0x00,0x00,0x0F,0xFF,0x80,0x00,0xF8,0xF0,0x00,0x38,0x00,0xE0,0x00,
0x00,0x00,0x0C,0xF0,0x00,0x0F,0xC7,0x00,0x00,0x60,0xE0,0x00,0x38,0x00,0xE0,0x00,
0x00,0x00,0x1F,0xF0,0x00,0x01,0x8E,0x00,0x00,0x60,0xC0,0x00,0x70,0x01,0xC0,0x00,
0x00,0x07,0xFF,0x80,0x00,0x01,0x8C,0x00,0x00,0xE1,0x80,0x00,0x70,0x01,0xC0,0x00,
0x00,0x07,0xF8,0x00,0x00,0x01,0x98,0x00,0x00,0xDF,0xC0,0x00,0x70,0x01,0xC0,0x00,
0x00,0x00,0x78,0x00,0x00,0x01,0xBF,0xE0,0x00,0xFF,0x00,0x00,0x60,0x01,0x80,0x00,
0x00,0x00,0xFC,0x00,0x00,0x7F,0xFF,0xE0,0x00,0xC0,0x00,0x00,0xE0,0x03,0x80,0x00,
0x00,0x01,0xFE,0x00,0x00,0x7F,0xF8,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x00,
0x00,0x03,0xB7,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x3C,0x00,0xC0,0x03,0x00,0x00,
0x00,0x07,0x67,0x00,0x00,0x60,0x00,0x00,0x03,0x9F,0xFE,0x00,0x80,0x02,0x00,0x00,
0x00,0x0E,0x63,0x80,0x00,0xE0,0x00,0x01,0xFF,0xCF,0x1E,0x01,0x80,0x06,0x00,0x00,
0x00,0x1C,0xE1,0xE0,0x00,0xC0,0x00,0x00,0xE3,0x9C,0x38,0x01,0x80,0x06,0x00,0x00,
0x00,0x38,0xC1,0xF8,0x01,0xC0,0x00,0x00,0xC3,0x18,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0xE0,0xFC,0xFE,0x03,0x80,0x00,0x01,0xC7,0x18,0x60,0x00,0x00,0x00,0x00,0x00,
0x01,0xDF,0xF8,0xFE,0x03,0x00,0x00,0x01,0x8E,0x1B,0xE0,0x07,0x00,0x1C,0x00,0x00,
0x07,0x07,0x80,0x00,0x07,0x00,0x00,0x01,0xFF,0x3F,0xE0,0x07,0x00,0x1C,0x00,0x00,
0x0C,0x03,0x80,0x00,0x0E,0x00,0x00,0x01,0xF0,0x38,0x00,0x0F,0x00,0x3C,0x00,0x00,
0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x01,0x00,0x20,0x00,0x06,0x00,0x18,0x00,0x00,
0x00,0x03,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x02,0x00,0x01,0xC0,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,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,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void yan(int w)
{
int a,b;
for(b=w;b>0;b--)
for(a=50;a>0;a--);
}
void xie(uchar cdat)//ò»×Ö½úêy¾Y°′λD′
{
uchar a;
for(a=0;a<8;a++)
{
sck=1;
if(cdat&0x80)//è¡×î¸ßò»Î»¡£
{sid=1;}
else
{sid=0;}
cdat=cdat<<1;//′θßλòÆμ½×î¸ßλ¡£
sck=0;
}
}
void xiecom(uchar com)//D′Ãüáî
{
cs=1;
xie(0xf8);
xie(0xf0&com);
xie(0xf0&com<<4);
cs=0;
}
void xiedat(uchar dat)//D′êy¾Y
{
cs=1;
xie(0xfa);
xie(0xf0&dat);
xie(0xf0&dat<<4);
cs=0;
}
void pos(uchar x,uchar y) //Æá×ø±êλÖÃé趨
{
uchar poos;
if (x==0)
{x=0x80;}
else if (x==1)
{x=0x90;}
else if (x==2)
{x=0x88;}
else if (x==3)
{x=0x98;}
poos=x+y;
xiecom(poos);
}
void tuxing( char *img) //í¼Dη½ê½12864ÏÔê¾×ÖÄ£221 oáÏòè¡Ä¤
{
unsigned char i,j;
unsigned int k = 0;
xiecom(0x36); //í¼Dη½ê½
for(i=0;i<32;i++)
{
xiecom(0x80+i);
yan(2);
xiecom(0x80);
for(j=0;j<16;j++)
{
xiedat(img[k++]);
yan(2);
}
}
for(i=0;i<32;i++)
{
xiecom(0x80+i);
yan(2);
xiecom(0x88);
for(j=0;j<16;j++)
{
xiedat(img[k++]);
yan(2);
}
}
}
void intc()//128643õê¼»ˉ¡£
{
xiecom(0x30);//1|Äüé趨8λêy¾Y
yan(50);
xiecom(0x0c);//ÕûìåÏÔ꾿a£¬óαê1Ø£¬·′°×1Ø¡£
yan(50);
xiecom(0x01);//ÇåÆá¡£μØÖ·1é0.
yan(50);
xiecom(0x06);//1a±ê′ó×óμ½óò¼ó1òƶˉ¡£
yan(50);
}
void xiezi(uchar zizu[])
{
t=0;
while(zizu[t]!='\0')
{xiedat(zizu[t]);
t++;
yan(20);
}
}
void xianshi()
{
ng=nian%10+2;
ns=nian/10%10-1;
nb=nian/1000;
nq=nian/100;
yg=yue%10;
ys=yue/10;
rg=ri%10;
rs=ri/10;
ge=miao%10;//è¡óàÔËËã
shi=miao/10;//è¡ÕûÔËËã¡£
ge1=fen%10;
shi1=fen/10;//·Ö á½Î»ÏÔê¾
ge2=hous%10;//D¡ê±¡£
shi2=hous/10;
pos(0,0);
yan(30);
xiedat(shu[nq]);
yan(10);
xiedat(shu[nb]);
yan(10);
xiedat(shu[ns]);
yan(10);
xiedat(shu[ng]);
yan(10);
pos(0,2);
yan(10);
xiezi("Äê");
yan(10);
pos(0,3);
yan(10);
xiedat(shu[ys]);
yan(10);
xiedat(shu[yg]);
yan(10);
pos(0,4);
yan(10);
xiezi("ÔÂ");
yan(10);
pos(0,5);
yan(30);
xiedat(shu[rs]);
yan(30);
xiedat(shu[rg]);
yan(30);
pos(0,6);
yan(10);
xiezi("oÅ");
yan(10);
pos(1,0);
yan(10);
xiezi("DÇÆú");
yan(10);
pos(2,0);
yan(10);
xiedat(shu[shi2]);
yan(10);
xiedat(shu[ge2]);
yan(10);
pos(2,1);
yan(10);
xiezi("μã");
yan(10);
pos(2,3);
yan(10);
xiedat(shu[shi1]);
yan(10);
xiedat(shu[ge1]);
yan(10);
pos(2,4);
yan(10);
xiezi("·Ö");
yan(10);
pos(2,6);
yan(10);
xiedat(shu[shi]);
yan(10);
xiedat(shu[ge]);
yan(10);
pos(2,7);
yan(10);
xiezi("Ãë");
yan(10);
}
void hanx()
{
pos(3,1);
yan(30);
xiezi(hanzi1);
yan(100);
}
void xinq()
{
switch(week)
{
case 1:pos(1,2);
yan(10);
xiezi("ò»");break;
case 2:pos(1,2);
yan(10);
xiezi("¶t");break;
case 3: pos(1,2);
yan(10);
xiezi("èy");break;
case 4:pos(1,2);
yan(10);
xiezi("ËÄ");break;
case 5:pos(1,2);
yan(10);
xiezi("Îå");break;
case 6:pos(1,2);
yan(10);
xiezi("áù");break;
case 7:pos(1,2);
yan(10);
xiezi("èÕ");break;
}
}
void anjian()
{
k1=1;
k2=1;
k3=1;
k4=1;
if(k1==0)//ÅD¶ÏK°′Ï¡£
{
yan(800);
if(k1==0)
{
yan(800);
//pos(2,3);
//yan(10);
//xiecom(0x0d);
if(k1==1)//KËé¿a¡£
{
fen++;
}
}
}
if(k2==0)
{
yan(800);
if(k2==0)
{
yan(800);
if(k2==1)
{hous++;}
}
}
if(k3==0)//ÅD¶ÏK°′Ï¡£
{
yan(800);
if(k3==0)
{
yan(800);
if(k3==1)//KËé¿a¡£
{fen--;}
}
}
if(k4==0)
{
yan(800);
if(k4==0)
{
yan(800);
if(k4==1)
{hous--;}
}
}
}
void main()
{
TMOD = 0x08; //¶¨ê±Æ÷Ä£ê½1
TH0=0x70;
TL0=0x07;
TR0=1;
ET0=1;
EA=1;
P0M0=0x00;
P0M1=0x00;
P2M1=0X00;
P2M0=1;
P4M0=1;
P4M1=0;
intc();
yan(50);
tuxing(img);
yan(5000);
yan(5000);
yan(25000);
yan(25000);
yan(25000);
yan(25000);
yan(25000);
intc();
yan(50);
nian=2019,yue=4,ri=4, miao=0,fen=1,hous=19,week=4;
while(1)
{
anjian();
xinq();
yan(20);
xianshi();
yan(10);
hanx();
}
}
void TEME0() interrupt 1
{
uchar a;
TF0=0; //òç3öλÇåáã
TH0=0X70;
TL0=0X07;//ÖØ×°3õÖμ
a++; //òç3ö¼Æêy
bee=1;
//if(a==25);
//{led=!led;}
if(a==50)
{
led=!led;
miao++;
a=0;
}
if(miao==60)
{
miao=0;
fen++;
}
if(fen==60)
{
fen=0;
bee=!bee;
hous++;
}
if(hous==24)
{
hous=0;
ri++;
week++;
}
if(week==8)
{week=1;}
if(yue==1|yue==3|yue==5|yue==7|yue==8|yue==10|yue==12)
{
if(ri==32)
{ri=1;
yue++;}
}
else
{
if(ri==31)
{
ri=1;
yue++;
}
}
if(yue==13)
{
yue=1;
nian++;
}
} |