仿真電路圖:http://www.zg4o1577.cn/bbs/dpj-103626-1.html
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define dat P0
code uchar d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint second=99;
uint sshi,sge;
static char court=0;
void delay(uint number) /*單個LED延時函數*/
{uchar i,j;
for(i=0;i<number;i++)
for(j=0;j<200;j++);
}
void int0() interrupt 1 using 2 /*中斷1為內部中斷,0為外部中斷*/ /*中斷服務程序*/
{
TH0=0x5c;
TL0=0xb0;
court++;
}
void main()
{
TMOD=0X01;
TH0=0x5c;
TL0=0xb0;
ET0=1;
// EX0=1;
// EX1=1;
// IT0=1;
// IT1=1; /*開計數器中斷*/
EA=1;
TR0=1; /*開定時器*/
while(1) /*中斷不能放循環中*/
{
sshi=second/10;
sge=second%10;
dat=d[sge]; /*第一個數碼管*/
P2=0x80;
delay(2);
P2=0x00;
dat=d[sshi];
P2=0x40;
delay(2);
P2=0x00;
if(court==20)
{court=0;
second--;
if(second==0)
{second=100;second--;
}
}
}
}
|