在80C51单片机中,已知时钟频率为12MHz,请用中断方式编程使P1.5端口每一秒钟取反一次.

要求又TMOD的分析及初值的分析计算过程.
2025-03-25 15:52:51
推荐回答(1个)
回答1:

sbit led=P1^5;
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=(65536-50000)/256; //50ms
TL0=(65536-50000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
void Timer0_isr(void) interrupt 1
{
TH0=(65536-50000)/256; //重新赋值 50ms
TL0=(65536-50000)%256;
timenum++;
if(timenum==20)
{
timenum=0;
led=~led;
}
}