决定单片机中断函数时间设定值的事什么--新手

2019-07-16 07:07发布

本帖最后由 zhihuizhou 于 2011-12-2 13:45 编辑

main()
{
中断初始化……
TH=(656535-N)/256
TL=(656535-N)%256
……
}
void timer() interrupt 1
{
……
TH=(656535-N)/256
TL=(656535-N)%256
……
}
主函数与中断函数中时间值其什么作用?
为什么中断函数中TH、TL等要在主函数中重复一遍,规定这样吗?
中断 中断
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
lirongqing
1楼-- · 2019-07-16 07:40
TH,TL是中断时间计数器的高八位和低八位,在计数时,往上加,加满后就产生中断.
那进入中断后,计数器里面的数已经不是原来的数了,所以要重新赋值.
cplusplusc
2楼-- · 2019-07-16 11:39
谢谢。
追问一个:如果进入中断,计数器里面的数不是原来的数了结果会是怎样。
lirongqing
3楼-- · 2019-07-16 17:27
回复 cplusplusc 的帖子

不谢.
你可以点击我的回贴下面的"回复",这样我可以看到有你回复的提醒.不然我很难留意到你问题的.
给定时器赋值,就是想准确控制它间隔多长时间进一次中断,
你不给它赋值,它自己计满后,会变成零,然后重新开始计时.
cplusplusc
4楼-- · 2019-07-16 21:55
 精彩回答 2  元偷偷看……
cplusplusc
5楼-- · 2019-07-17 02:29
回复 cplusplusc 的帖子

非常感谢你的指教
chishuye
6楼-- · 2019-07-17 03:53
lirongqing 发表于 2011-4-26 22:44
TH,TL是中断时间计数器的高八位和低八位,在计数时,往上加,加满后就产生中断.
那进入中断后,计数器里面的数 ...

void main()
{
aa=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;   
}


我想问说主程序的装值
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
到溢满的时间就是第一次aa=1的时间???


然后第二次计时就在定时
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;   
}
这里循环定时?

一周热门 更多>