52单片机定时中断方式2,产生方波问题?

2025-03-03 18:06:14
推荐回答(2个)
回答1:

其实是有变化的你看不出来而已,因为TL0是定时器的低位,你改它的数值对于定时时间的影响不大。

回答2:

#include

sbit PWM=P1^1;
int t=0;

void Init_Timer1(void)
{
TMOD |= 0x10;
TH1=0xD8;//@12M 10ms 16bit 自动重载; Init value
TL1=0xF0;
EA=1; /* interupt enable */
ET1=1; /* enable timer1 interrupt */
TR1=1;
}

main()
{
Init_Timer1();
while(1);
}

void Timer1_isr(void) interrupt 3 using 1
{
TH1=0xD8;//@12M 10ms 16bit 自动重载; Init value
TL1=0xF0;
t++;
if(t==50) //50个10MS是0.5秒,两次是一个周期
{
t=0;
PWM=~PWM;
}

}