要求是倒計時30秒顯示這是自己的源程序
#include<reg51.h>
#define uchar unsigned char
sbit S1=P2^0;
sbit S2=P2^1;
sbit K1=P3^2;
uchar code dispcode[]= {0x3f,0x06,0x5b,
0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f90
} ;
void delay(void)
{
uchar i,j,k;
for(i=5; i>0; i--)
{
for(j=200; j>0; j--)
{
for(k=250; k>0; k--)
{
;
}
}
}
}
void delay10ms(void)
{
unsigned char i,k;
for(i=40; i<0; i--)
for(k=250; k>0; k--);
}
void daojishi(void)
{
uchar i;
while(1)
{
for(i=0; i<10; i++)
{
P1=dispcode[ i];
delay();
delay();
}
}
}
void main()
{
TMOD=0x06;
TH0=0x00;
TL0=0x00;
TR0=1 ;
P1=0X7f;
while(1)
{
if(K1==0)
{
delay10ms();
if(K1==0);
}
if(S1==0xf9)//30,20
{
S1=0x6d;
daojishi();
S1=0x6d;
}
if(S1==0x6d)//20,10
{
S1=0x6d;
daojishi();
S1=0x30;
}
if(S1==0x30)//10
{
S1=0x30;
daojishi();
S1=0x7e;
}
daojishi();
}
}
|