单片机的中断问题。。。

单片机的中断问题。。。这题,,那个中断函数和主函数直接是什么关系?为什么写在主函数后边但是主函数又没引用?
还有就是,,那个题中不是说要产生一个低电平触发的外部中断请求吗,电平触发方式应该是EXO=0呀,为什么那个主函数里的EXO=1??
还有就是那个while(1),无限循环是咋回事TT
求讲解过程TT

看得出来
你对CPU的中断机制没有弄清楚
中断函数是由中断事件直接调用的
所以主函数中没有【引用】
.
中断函数和主函数没有任何直接关系
唯一的间接关系就是:
在主函数中开放了中断请求(EXO=1)
如果没有这行
中断就不可能发生
中断函数就永远不被运行
按钮就没有任何反应
.
【要产生一个低电平触发的外部中断请求】
这句话你要看完整啊,不要只看一段就乱说了
主语是什么?别乱瞎说好不
这个低电平是由按钮k1产生的
不是由代码产生的
你的语文阅读能力不咋地
.
【那个主函数里的EXO=1】
不是用来触发中断的
而是用来开放中断请求的(前面已经说过了)
代码的右边明明都写了注释呀
说明你没看,或者就是看不懂
.
【while(1),无限循环是咋回事】
你有没有看循环体?
PI=0;
就是所有LED都接地
就是点亮所有LED呀
只要不按k1按钮
所有LED都亮着
.
如果你没有CPU的中断概念
我上面说的,你肯定看不懂了,你得从0学起
我不可能在这里给你补课的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-29
“那个中断函数和主函数直接是什么关系?为什么写在主函数后边但是主函数又没引用?”
中断函数无需被显式调用。当有相应的中断产生时,程序会自动中止当前的运行、记录位置,然后跳转到相应的中断入口处。而在中断入口会进行二次跳转,到程序中对应的中断处理函数内并执行。中断处理函数运行完毕返回后,跳回到刚才中止运行的位置继续运行。
“电平触发方式应该是EXO=0呀,为什么那个主函数里的EXO=1??”
EX0=1;代表使能外部中断0。后面的IT0=1;才是设置触发方式。这里的程序设置为了下降沿触发,的确与题目的要求不符。
“while(1),无限循环是咋回事”
while(1)意味着永远满足循环条件,因此会永远执行后面大括号里的函数体。这里一般放的都是主循环体。如果没有主循环体,单片机运行一次主程序之后就会继续向后运行跑到空白区,从而产生各种未知的执行结果并不断复位。本回答被提问者采纳
第2个回答  2019-05-01
把所有需要产生中断的引用一个逻辑芯片连接在一起,比如用一个多与非门,把要产生中断的脚都接在输入端,输出端就接在INT0或INT1上,当输入引脚任一一个脚变为低电平就触发低电平中断或边延中断,这样一来不就完成了P0口和中断的关联了。
第3个回答  2020-06-25
楼上的没理解你的硬件,你描述的也有问题,那种红外遥控用的接收头,接收到的是数字编码,在有数据输入的时候你测到4.5v是因为数据中有1有0.平均值是4.5v。楼上的确是个高手,不过你不把电路说清楚也没用啊。
第4个回答  2019-12-28
相似回答