#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//æ¾ç¤º0~Fçå¼
u8 sec=60,cnt=0;
void delay(u16 i)
{
while(i--);
}
void DigDisplay()
{
u8 i;
for(i=0;i<2;i++)
{
switch(i) //ä½éï¼éæ©ç¹äº®çæ°ç 管ï¼
{
case(0):
LSA=0;LSB=0;LSC=0; //æ¾ç¤ºç¬¬0ä½
P0=smgduan[sec/10];break;
case(1):
LSA=1;LSB=0;LSC=0; //æ¾ç¤ºç¬¬1ä½
P0=smgduan[sec%10];break;
}
delay(100); //é´éä¸æ®µæ¶é´æ«æ
}
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=20)
{
cnt=0;
if(sec>0)sec--;
}
}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
DigDisplay(); //æ°ç 管æ¾ç¤ºå½æ°
}
}
追é®è¿ä¸ªç¼ç¨çæ¥å
¥æ¯åªä¸ªç«¯å£