#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint m; //Ñ-»·′Îêy
uchar n; //¾ßìåêy×Ö
sbit a=P2^2;
sbit b=P2^3;
sbit c=P2^4;
sbit k1=P3^2;
uchar code NumData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9μÄÂëÖμ
//uchar code NumData[]={0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f}; //0-9μÄÂëÖμ
void delay(unsigned int x) //Ñóê±
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=114;j>0;j--)
;
}
void show(uchar dat) //μúò»¸öêyÂë1ü
{
a=1;b=0;c=0;
P0=dat;
delay(3);
}
void show1(uchar dat) //μú¶t¸öêyÂë1ü
{
a=0;b=1;c=0;
P0=dat;
delay(3);
}
void show3(uchar dat) //μú3¸öêyÂë1ü
{
a=1;b=1;c=0;
P0=dat;
delay(3);
}
void show4(uchar dat) //μú4¸öêyÂë1ü
{
a=0;b=0;c=0;
P0=dat;
delay(3);
}
void inti() //¶¨ê±Æ÷ía2¿ÖD¶Ï0
{
TMOD=0x01; //·½ê½1
TH0=0x23; //¶¨ê±Æ÷3õÖμ
TL0=0x99;
EA=1; //¿a×üÖD¶Ï
IT0=1; //ía2¿ÖD¶Ï0ϽμÑØ′¥·¢·½ê½
EX0=1; //¿aía2¿ÖD¶Ï0
ET0=1; //¿a¶¨ê±Æ÷T0ÖD¶Ï
TR0=1; //1ض¨ê±Æ÷T0
}
void outcut() interrupt 0 //ía2¿ÖD¶Ï0ÖD¶Ï¿ØÖÆ
{
delay(10);
if(k1==0)
TR0=~TR0; //¿ØÖƶ¨ê±Æ÷¿a1Ø
}
void outcut1() interrupt 1 //¶¨ê±Æ÷T0ÖD¶Ï¿ØÖÆ
{
TH0=0x23; //ÖØ¸33õÖμ
TL0=0x99;
n++;
if(n%2==0) //ÿ1y100ms
{
m++;
n=0;
if(m==9999)
m=0;
}
}
void show2()
{
show3(NumData[m/1000%10]); //°ùλ
show1(NumData[m/100%10]); //ê®Î»
show(NumData[m/10%10]); //¸öλ |0x01
show4(NumData[m/1%10]); //oáÃë
}
void main()
{
inti();
while(1)
show2();
}