在用51编程时,可不可以在中断函数里关掉当前中断并且打开或关上定时器。比如:

如题所述

1、在中断服务程序里,关闭中断允许标志当然可以(只是这个中断暂时被关闭了,如果在其他程序中没有开启中断,则这个中断服务程序不会再被执行),同样也可以启停定时器。

看了你的追问,我觉得你的要求完全可以实现,只是在编程的时候,要细致一些,把逻辑理清楚就可以了。

我以前做过一个出租车计价器,里程数据也是从外部中断进来,但在空车(也就是没有乘客的时候),我就把这个中断给关了,虽然里程数据通过传感器还在不断到达中断口,系统不会做任何反应。

2、声音定位从理论上说是很简单的,两线一点的定位方式。利用一个减速步进电机(带咪头),然后先旋转,利用一个锁相环,比如LM567,当接收到信号后,输出一个脉冲。此时步进电机停住,测出旋转角度(也就是说明,声音在那条直线上),然后走过一段路程,再测一次,又获得一根直线,则两根直线的交点就是声音源,跟早年无线电定位,现在微信定位一个道理。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
1、在中断服务程序里,关闭中断允许标志当然可以(只是这个中断暂时被关闭了,如果在其他程序中没有开启中断,则这个中断服务程序不会再被执行),同样也可以启停定时器。
看了你的追问,我觉得你的要求完全可以实现,只是在编程的时候,要细致一些,把逻辑理清楚就可以了。
我以前做过一个出租车计价器,里程数据也是从外部中断进来,但在空车(也就是没有乘客的时候),我就把这个中断给关了,虽然里程数据通过传感器还在不断到达中断口,系统不会做任何反应。
2、声音定位从理论上说是很简单的,两线一点的定位方式。利用一个减速步进电机(带咪头),然后先旋转,利用一个锁相环,比如LM567,当接收到信号后,输出一个脉冲。此时步进电机停住,测出旋转角度(也就是说明,声音在那条直线上),然后走过一段路程,再测一次,又获得一根直线,则两根直线的交点就是声音源,跟早年无线电定位,现在微信定位一个道理。本回答被提问者采纳
第2个回答  2013-04-21
怎么可能在当前中断里关闭当前中断呢?打开或关上定时器是可以的。中断是应该先退出的,再对定时器进行操作。追问

那如果我只需要检测一次中断,中断后读取定时器的值,然后为了防止新的中断产生,对定时器的值有影响所以得马上把当前中断关掉。那我应该怎样编程,

追答

你需要非常精确的定时器的值吗?简单的中断程序占用不了多少时间啊。语句执行很快的。

追问

恩,做的题目是350mm×500mm的坐标纸上的声音定位,声源是500HZ的信号,检测到后引脚会被拉低,但还会跳起。

追答

sorry,到这里我也不会了,51懂得不多。

追问

好的,同样谢谢你。

相似回答