|
目前還沒有學(xué)習(xí)定時(shí)中斷,所以只能是粗略的60s倒計(jì)時(shí)數(shù)碼管顯示,下面是我自己編的程序,沒有預(yù)期現(xiàn)象,還請(qǐng)各位大佬幫忙瞅瞅,感謝!
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
void display(uint ge,uint shi);
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=120;b>0;b--);
}
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint c,n,i,ge,shi;
sbit k1=P1^0;
void main()
{
while(1)
{
c=0;
n=60;
if(k1==0) {c=1;}
if(k1==0) delay(10);
if(c==1)
{
for(i=60;i>0;i--)
{
n- -;
display(ge,shi);//調(diào)用顯示子函數(shù)
delay(1000);//延時(shí)一秒
}
if(n==0) n=0;
}
}
}
}
void display(uint ge,uint shi)//顯示子函數(shù)
{
ge=n%10;
shi=n/10;
P2=0xfe;
P1=table1[ge];
delay(5);
P2=0xfd;
P1=table1[shi];
delay(5);
}
|
|