用中断方式设计秒发生器,即由p1.0每秒产生一个正脉冲,由p1.1每分钟产生一个正脉冲。急!!!!!谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:59:23

unsigned char rSecondCount; //秒计时数
unsigned char rMinuteCount; //分计时数

sbit Pulse_Sec=P1^0;
sbit Pulse_Min=P1^1;

main()
{
rSecondCount=0;
rMinuteCount=0;
TH1=0x3C;
TL1=0xAF; //定时器50ms产生一次中断 (FFFF-3CAF)us
MOD = 0x10; //定时器1工作于模式1,(用工作于模式2也可以,而且更 简便)
TR1=1; //使能定时器1
ET0=1; //开中断
EA=1; //开全局中断
while(1)
{;}
}

/* 定时器50ms产生一次中断 */
void Timer(void) interrupt 3
{
/* 重新载入T1参数 */
TH1=0x3C;
TL1=0xAF;

/* 一秒累加 */
rSecondCount++;//秒计时+1

/* 产生1se 脉冲 */
if (rSecondCount==20) //1sec到,50ms*20
{
rMinuteCount++;//分计时+1
rSecondCount = 0;
Pulse_Sec = 1;//1sec 到,电平至高脉冲
}
else
{
Pulse_Sec = 0;
}

/* 产生1min 脉冲 */
if (rMinuteCount==60) //1min到
{
rMinuteCount= 0;
Pulse_Min = 1;//1minute 到,电平至高脉冲
}
else
{
Pulse_Min = 0;
}