#include <reg52.h>
#include <intrins.h> #define uchar unsigned char
#define uint unsigned int uint count=0;
uint sudu=0;
uchar time;
uint num;
sbit beep = P3^7;
sbit key1 = P3^5;
sbit key2 = P3^6;
uchar dat[4]={0,1,2,3}; uchar table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delayms(unsigned int x)
{
unsigned char j;
while(x--)
{
for(j=0;j<123;j++){;}
}
}
void display ()
{
uchar i,dis=0x7f;
for(i=0;i<4;i++)
{
P1=~table[dat[i]];
P0=dis;
dis=(dis>>1)|0x80;
delayms(1);
}
}
void process(uint i)
{
dat[0]=num/10;
dat[1]=num%10;
dat[2]=i/10;
dat[3]=i%10; }
void keyClear() {
if(key1==0)
{
delayms(10);
if(key1==0)
{
count=0;
}
while(!key1)
{
process(count);
display();
};
}
}
void keySet() {
if(key2==0)
{
delayms(10);
if(key2==0)
{
num++;
}
while(!key2)
{
process(count);
display();
};
}
}
void BJ()
{
if(count>=num)
beep=0;
else
beep=1;
}
void main()
{
ET0=1;
IT0=1;
EX0=1;
EA=1;
beep=1;
num=10;
while(1)
{
keyClear();
keySet();
BJ();
process(count);
display();
}
}
void ex0(void) interrupt 0 using 0
{
count++;
}
|