void timer0() interrupt 1 //定时器0中断 { }
void timer1() interrupt 3 //定时器1中断函数 {
TH0=(65536-50000)/256; TL0=(65536-50000)%6; t0++;
if(flag!=1) //flag不等于1时进行流水灯 {
if(t0==10) }
{ }
t0=1;
temp=_crol_(temp,1); P1=temp;
else //否则进行灯闪烁
{
if(t0%4==0) //小灯每200毫秒变化一次
P1=~P1;
if(t0==60) { }
TR0=0; //3秒后关闭定时器0,关闭灯,并置flag=1 P1=0xff; flag1=1;
}
TH1=(65536-50000)/256; TL1=(65536-50000)%6; t1++; if(t1==2)
{
t1=0; shu--; bai=shu/100; shi=shu0/10; ge=shu;
if(shu==398) //当到398时把原来T0中的数清除,重新加裁初值让
小灯闪烁
}
void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge) //显示子函数
{
dula=1;
P0=table[aa];
{
TR0=0;
TH0=(65536-50000)/256; TL0=(65536-50000)%6; TR0=1; flag=1; t0=0; P1=0xff; TR1=0;
}
}
dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);
dula=1;
dula=1;
P0=table[cc]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);
P0=table[bb]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);
dula=1;
P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xf7;
}
wela=0; delay(1);
dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1);
dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xdf; wela=0; delay(1);
#include
0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, 0x76,0x79,0x38,0x3f,0}; uchar flag,t0,ge,shi,bai; uint shu;
void init();
void display(uchar aa,uchar bb,uchar cc); void delay(uint z) { }
void main() {
init(); while(1) {
display(bai,shi,ge); if(s2==0) {
delay(10); if(s2==0) {
TR0=0; while(!s2)
display(bai,shi,ge);
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
TR0=1;