#include <reg52.h>
char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
char code tabledp[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};
unsigned char num[2];
char miao=0;
sbit key1=P3^5;
sbit key2=P3^6;
sbit key3=P3^7;
sbit beep=P1^4;
sbit w1=P1^0;
sbit w2=P1^1;
char menu=0;
char flag=0;
void delay(unsigned int z)
{
unsigned int i,j;
for(i=0;i<z;i++)
for(j=0;j<621;j++);
}
void TimerInit()
{
TMOD = 0x11;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;;
ET0 = 1;
TR0 = 1;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;;
ET1 = 1;
TR1 = 0;
EA = 1;
}
void display()
{
num[0]=miao%10;
num[1]=miao/10;
if(menu==1)
{
if(flag==0)
{
num[0]=10;
num[1]=10;
}
}
w1=1;
w2=0;
P2=table[num[0]];
delay(1);
w1=w2=1;
w1=0;
w2=1;
P2=table[num[1]];
delay(1);
w1=w2=1;
}
void key()
{
if(key1==0)
{
while(key1==0);
menu++;
if(menu==1){TR0=1;TR1=0;}
if(menu==2){TR0=0;menu=0;}
}
if(menu==1)
{
if(key2==0)
{
while(key2==0);
miao++;
if(miao>99)miao=99;
}
if(key3==0)
{
while(key3==0);
miao--;
if(miao<0)miao=0;
}
}
}
void main()
{
TimerInit();
P0=0X55;
while(1)
{
key();
display();
if(menu==0)
{
if(key2==0)
{
while(key2==0);
if(miao>0)
{
TR1=1;
}
}
if(key3==0)
{
while(key3==0);
TR1=0;
}
}
}
}
char jishu;
void Timer0(void) interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;;
jishu++;
if(jishu==10)
{
jishu=0;
flag++;
if(flag==2)flag=0;
}
}
char value;
void time1_int() interrupt 3
{
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;;
value++;
if(value ==20)
{
value =0;
if(miao>0)miao--;
if(miao==0)
{
TR1=0;miao=0;
}
if(miao<10)beep=0;
else beep=1;
}
}
|