单片机怎么从主函数跳到中断函数中
答案:4 悬赏:0 手机版
解决时间 2021-11-29 13:00
- 提问者网友:做自己de王妃
- 2021-11-28 14:28
单片机怎么从主函数跳到中断函数中
最佳答案
- 五星知识达人网友:猎心人
- 2021-11-28 15:33
对于单片机的硬件,你熟悉吗?时钟和CPU是独立的,时钟中断程序时这样的:在CPU执行指令时,计数器(计时器)同时在计时,当计时器溢出时,就向CPU申请中断,如果允许响应中断,CPU就转到中断服务程序执行相关的程序。
单片机的时钟中断相应要满足两个条件:第一,允许中断源申请中断。第二,允许cpu响应中断。二者缺一不可。 EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1;//启动定时器0
TR1=1;
你这些语句,就允许了中断响应,所以,当你的程序跑起来时,时钟时间到了,CPU就转入中断服务程序了,执行完了再返回主程序。你可以在编译器中用DEBUG查看执行过程的。如果你用汇编语言写,就更清楚了,可以看清每一步的操作的。
硬件部分是这样:在每个机器周期的S5P2,单片机会来采样,判断是否有中断申请。所以一旦时钟计数溢出,就会转入中断服务程序。
这个打个比方吧,你在上课,相当于主程序,这时时间到了,打铃下课了,你就不读书了,跑出去玩了。这其实是一样的道理。你在上课,这和打铃不相关,并不是你让打铃的,学校的时钟在不停地走,到了时间自动打铃,这不受你上课的影响的。但是如果你把耳朵堵上了(不允许响应中断),就是把铃打碎了你也不知道下课了,所以你就一直读书。不知你明白没?
单片机的时钟中断相应要满足两个条件:第一,允许中断源申请中断。第二,允许cpu响应中断。二者缺一不可。 EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1;//启动定时器0
TR1=1;
你这些语句,就允许了中断响应,所以,当你的程序跑起来时,时钟时间到了,CPU就转入中断服务程序了,执行完了再返回主程序。你可以在编译器中用DEBUG查看执行过程的。如果你用汇编语言写,就更清楚了,可以看清每一步的操作的。
硬件部分是这样:在每个机器周期的S5P2,单片机会来采样,判断是否有中断申请。所以一旦时钟计数溢出,就会转入中断服务程序。
这个打个比方吧,你在上课,相当于主程序,这时时间到了,打铃下课了,你就不读书了,跑出去玩了。这其实是一样的道理。你在上课,这和打铃不相关,并不是你让打铃的,学校的时钟在不停地走,到了时间自动打铃,这不受你上课的影响的。但是如果你把耳朵堵上了(不允许响应中断),就是把铃打碎了你也不知道下课了,所以你就一直读书。不知你明白没?
全部回答
- 1楼网友:怀裏藏嬌
- 2021-11-28 18:36
单片机ROM内 存在 中断入口,响应中断时会自动跳到中断入口处
看一下汇编就可以了
看一下汇编就可以了
- 2楼网友:独钓一江月
- 2021-11-28 17:11
这就是中断函数的作用啊,void time0() interrupt 1和void time1() interrupt 3就是定义的中断函数程序,在main()中初始化THx的初始值,当THx的值到达峰值时,自动跳入中断函数中,同时,tt;num1进行自加,当num1 ==25时,对P1取反。应该是定时作用
- 3楼网友:街头电车
- 2021-11-28 16:28
看看书吧,关于中断系统部分的、定时器、外部引脚等等。
在这里写不了好多文字。
在这里写不了好多文字。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯