/************** 数码管时钟的设计 *******************
/* MCU: AT89s52
/* MCU-crystal: 6M
/* Version: 0.1
/* Last Updata: 2009-4-28
/* Author:
/* Description: 如题
/****************************************************/
#include <reg52.h>
unsigned char flag=0;//0标记为计数状态,1为定时状态
unsigned char sign=0;//0标记为定时时间未到,1标记为定时时间到
main()
{
TMOD=0x06;//定时器0,方式2,计数模式
TL0=0;//赋0初值
IT0=1;//外部脉冲负跳变有效
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(flag==0&&TL0==100)
{
EA=0;//关总中断
TMOD=0x01;//方式1
TH0=0xfc;//定时1ms
TL0=0x17;
EA=1;//开
flag=1;
}
if(sign==1)
{
EA=0;
sign=0;
TMOD=0x06;
TL0=0;
flag=0;
EA=1;
}
}
}
void timer0()interrupt 1
{
if(flag==1)sign=1;
}
温馨提示:答案为网友推荐,仅供参考