#include<reg52.h>//单片机制造出来的电子计时表//
#define uint unsigned int
#define uchar unsigned char
uchar num,num0,num1,num2,num3,num4;
uint xq;
void delayms(zms);
sbit key1=P2^5;
sbit key2=P2^6;
sbit key3=P2^3;
sbit key4=P2^4;
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit led4=P1^4;
sbit led5=P1^5;
sbit led6=P1^6;
sbit led7=P1^7;
uchar code table1[]={
0x05,0x7d,0x46,0x54,
0x3c,0x94,0x84,0x5d,
0x04,0x14 }; //无小数点
uchar code table2[]={
0x01,0x79,0x42,0x50,
0x38,0x90,0x80,0x59,
0x00,0x10};//有小数点
void main()
{
xq=1;
num=0;
num0=0;
num1=0;
num2=0;
num3=0;
num4=0;
led0=0 ;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
key4=0;
P0=table1[num1];
key4=1;
P0=0xff;
key3=0;
P0=table1[num2];
key3=1;
P0=0xff;
key2=0;
P0=table2[num3];
key2=1;
P0=0xff;
key1=0;
P0=table1[num4];
key1=1;
P0=0xff;
if(num==20)
{
num=0;
num0++;
}
if(num0==60)
{
num0=0;
num1++;
}
if(num1==10)
{
num1=0;
num2++;
}
if(num2==6)
{
num2=0;
num3++;
}
if(num3==10)
{
num3=0;
num4++;
}
if(num4*10+num3==24)
{
num3=0;
num4=0;
xq++;
}
if(xq==1)
{
led1=0;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
}
if(xq==2)
{
led1=1;
led2=0;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;
}
if(xq==3)
{
led1=1;
led2=1;
led3=0;
led4=1;
led5=1;
led6=1;
led7=1;
}
if(xq==4)
{
led1=1;
led2=1;
led3=1;
led4=0;
led5=1;
led6=1;
led7=1;
}
if(xq==5)
{
led1=1;
led2=1;
led3=1;
led4=1;
led5=0;
led6=1;
led7=1;
}
if(xq==6)
{
led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=0;
led7=1;
}
if(xq==7)
{
led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=0;
}
if(xq==8)
{
xq=1;
}
}
|