#include <REGX51.H>
#define uint unsigned int
#define uchar unsigned char
uint shuju[10]={0,0,0,0,0,0,0,0},maxshuju=0;
uint miaobiao=0;
uint cj=0, cj_1=0, i=0, da=0;
uint s[16]={ 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
};
bit a=1, b=0, key_key=0, miaobiao_kai=0;
sbit k0 = P3^3;
sbit k1 = P3^4;
sbit k2 = P3^5;
sbit k3 = P3^6;
sbit k4 = P3^7;
sbit smg0 = P1^0;
sbit smg1 = P1^1;
sbit smg2 = P1^2;
sbit smg3 = P1^3;
sbit BEEP = P1^5;
sbit LED = P1^6;
void delay(uchar i)
{
uchar j,k;
for(j=i; j>0; j--)
for(k=125 ;k>0; k--);
}
void t0_init(void)
{
TMOD = 0x01;
TL0 = 0x0F0;
TH0 = 0x0D8;
ET0 = 1;
EA = 1;
TR0 = 1;
}
uchar display(uchar i)
{
if(i == 0) return 0xC0;
else if(i == 1)return 0xF9;
else if(i == 2)return 0xA4;
else if(i == 3)return 0xB0;
else if( i == 4)return 0x99;
else if(i == 5)return 0x92;
else if(i == 6)return 0x82;
else if(i == 7)return 0xF8;
else if(i == 8)return 0x80;
else if(i == 9)return 0x90;
}
void time0(void) interrupt 1
{
TL0 = 0x0F0;
TH0 = 0x0D8;
if(P1 != 0xff)
key_key = 1;
if(miaobiao_kai)
miaobiao++;
if(miaobiao == 10)
{
miaobiao = 0;
shuju[cj]++;
}
}
void main(void)
{
t0_init();
while(1)
{
if(shuju[cj] > maxshuju)
{ BEEP = 0;
LED = 0;
}
else
{ BEEP = 1;
LED = 1;
}
if(a &&!b)
{
smg0 = 0;
smg1 = 1;
smg2 = 1;
smg3 = 1;
P0 = display(shuju[cj] / 1000) & 0x7f;;
delay(1);
P0 = 0xff;
delay(1);
smg0 = 1;
smg1 = 0;
smg2 = 1;
smg3 = 1;
P0 = display(shuju[cj] % 1000 / 100);
delay(1);
P0 = 0xff;
delay(1);
smg0 = 1;
smg1 = 1;
smg2 = 0;
smg3 = 1;
P0 = display(shuju[cj] % 1000 % 100 / 10 ) & 0x7f;;
delay(1);
P0 = 0xff;
delay(1);
smg0 = 1;
smg1 = 1;
smg2 = 1;
smg3 = 0;
P0 = display(shuju[cj] % 10);
delay(1);
P0 = 0xff;
delay(1);
}
if(b &&! a)
{
smg0 = 0;
smg1 = 1;
smg2 = 1;
smg3 = 1;
P0 = display(maxshuju / 1000) & 0x7f;;
delay(1);
P0 = 0xff;
delay(1);
smg0 = 1;
smg1 = 0;
smg2 = 1;
smg3 = 1;
P0 = display(maxshuju % 1000 / 100);
delay(1);
P0 = 0xff;
delay(1);
smg0 = 1;
smg1 = 1 ;
smg2 = 0;
smg3 = 1;
P0 = display(maxshuju % 1000 % 100 / 10) & 0x7f;;
delay(1);
P0 = 0xff;
delay(1);;
smg0 = 1;
smg1 = 1;
smg2 = 1;
smg3 = 0;
P0 = display(maxshuju % 10);
delay(1);
P0 = 0xff;
delay(1);
}
if(key_key)
{
if(k0 == 0)
{
while(k0 == 0);
miaobiao_kai =! miaobiao_kai;
miaobiao = 0;
a = 1;
b = 0;
cj = cj_1;
}
if(k1 == 0 && miaobiao_kai)
{
while(k1 == 0);
shuju[cj + 1] = shuju[cj] + 1000;
cj++ ;
if(cj > 9)
cj = 0;
cj_1 = cj;
}
if(k1 == 0 && (!miaobiao_kai))
{
while(k1 == 0);
cj--;
if(cj > cj_1)
cj = cj_1;
}
if(k2 == 0)
{
while(k2 == 0);
miaobiao_kai = 0;
a = miaobiao_kai;
b = 1;
maxshuju++;
}
if(k3 == 0)
{
while(k3 == 0);
miaobiao_kai = 0;
miaobiao_kai = 0;
a = 1;
b = 0;
for(cj=0, cj_1=0; cj<10; cj++)
{
shuju[cj] = 0;
}
if(k4 == 0)
{
while(k4 == 0);
maxshuju = 0;
}
}
}
key_key = 0;
}
}
评论0