#include<reg52.h>
#define uchar unsigned char
unsigned long num;
uchar j,k;
uchar a0,b0;
sbit dula=P2^6;
sbit wela=P2^7;
sbit S2=P3^0;
sbit S3=P3^1;
sbit beep = P2^3;//蜂鳴器接口
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void delay(uchar i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void display(uchar a,uchar b)
{
dula=0;
P0=table[a];
dula=1;
dula=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[b];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
}
void keyscan()
{
if(S2==0)
{
while(S2==0);
num++;
}
if(S3==0)
{
while(S3==0);
num--;
}
}
void main()
{
while(1)
{
keyscan();
if(num<10)
{
a0=00;b0=num;//c0=16;d0=16;e0=16;f0=16;g0=16;h0=16;
}
else
{
if(num<100)
{a0=num/10;b0=num%10;//c0=16;d0=16;e0=16;f0=16;g0=16;h0=16;
}
}
display(a0,b0);//顯示秒的值
if(num==99)//檢查是否到20秒
{
TR1 = 0;//時間到關閉定時器1
beep = 0; //使能蜂鳴器
delay(1000);//使能時間4秒
beep = 1;//關閉蜂鳴器
num=0;
} }}
|