单片机定时器赋初值使用变量初值出错问题

2024-11-22 07:52:28
推荐回答(1个)
回答(1):

不是你写的那样机器周期:Tcy定时器产生一次中断的时间为:t计算的个数;N=t/Tcy晶振12的好计算11.0592的要换算THx=256-NTLx=256-N;Tcy=12*(1/11059200)=1.0851us;以1秒计时为例当计数250个数时需要耗时1.0851*250=271.275us然后在计算需要溢出的次数对吧;1000000/271.275=3686;(以上是11.0592晶振12的为4000自己算一下根据我给你的公式和步骤)打个比方1秒吧TMOD=0x02;TH0=6;TLO=6;EA=1;ET0=1;TR0=1;while(1){if(num==3686){num=0;led=~led;}}voidTO_time()interrupt1{num++;}