① 单片机中断程序
结构很规矩,这个程序。
首先单片机上电复位,运行死循环前面的程序(,你这里就是init_timer(); // 应该叫初始化定时器,才合适,让定时器按照你需要的定时长度工作,或叫产生中断 )
接下来单片机主程序就是一直在死循环了。我们的主要任务一般在这里处理。
中断,就是在处理一些特殊任务,比如按键,或定时处理的程序,或外部一个不知道什么时间发生的任务,或通信任务等等。你在主循环的时候,无论在什么时候,中断请求来了(可以理解为需要处理比较紧急任务,优先处理的任务),就会暂停主循环,进入对应中断服务程序。运行完,在回主循环的暂停地方,继续执行死循环的任务。
定时器中断,就是每过一定时间,运行一下中断服务程序。常用来计时和产生脉冲信号。
初始化定时器,就是给定时器的寄存器,设置工作模式,时钟源,溢出的计数值。设置好了,定时器就能根据每个时钟源的频率,进行计数,直至溢出,然后产生一个中断请求。如果不饿能自动加载计数初值的定时器,在中断处理函数(服务函数)必须手动加载初值。
② 51单片机中断执行过程坐等!!!
51单片机中断执行过程, 如外部中断。
当 CPU 检测到 有 中断触发 信号后,
首先 执行完成 当前执行的指令,将下一条指令 的 地址 压入堆栈,
CPU 进入中断 入口 地址,开始 执行 中断服务程序,
(当然在中断服务程序中不能破坏正常运行 程序的各种 寄存器的 状态 和 数据,)
中断服务 程序执行 完成, 最后 执行 一条 RETI 的中断返回指令,
堆栈 弹出 原先保存的 地址,完成中断服务程序,返回中断前的 下一条指令地址
继续执行 正常程序。
③ 单片机中断的意思
中断就是指处理机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
中断就是单片机处理任务闹凳A时,发生了触发中断的条件停下来执行另一个任务B,触发中断陪弯态的条件就属于中断源,任务B就是中断任务(中断服务函数)。当中断任务执行完成后中断返回,在回到任务A中断的地方继续处理任务A。
CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。
(3)单片机中断的处理程序扩展阅读:
中断的相关作用:
1、满足实时处理要求。在实时系统中,各种监测和控制装置随机地向处理机发出中断请求,处理机随时响应并进行处理。
2、提供故障现场处理手芦源段。处理机中设有各种故障检测和错误诊断的部件,一旦发现故障或错误,立即发出中断请求,进行故障现场记录和隔离,为进一步处理提供必要的依据。
3、提高计算机系统效率。计算机系统中处理机的工作速度远高于外围设备的工作速度。通过中断可以协调它们之间的工作。当外围设备需要与处理机交换信息时,由外围设备向处理机发出中断请求,处理机及时响应并作相应处理。
④ 求单片机实验的外部中断实验的程序
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar cnt,times;
void delay()
{
uchar i;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
for(i=0;i<times;i++)
{
while(TF0==0);
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TF0=0;
}
TR0=0;
}
void ext0() interrupt 0
{
uchar i,j;
P1=0xfe;
times=8;
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
P1=_crol_(P1,1);
delay();
}
}
}
void ext1() interrupt 2
{
uchar i,j;
P1=0x7f;
times=12;
for(i=0;i<3;i++)
{
for(j=0;j<8;j++)
{
P1=_cror_(P1,1);
delay();
}
}
}
main()
{
EX0=1;
EX1=1;
IT0=0;
IT1=1;
PX0=0;
PX1=1;
while(1);
}
⑤ 单片机中断处理流程
当某中断产生而且被CPU响应,主程序被中断,接下来将执行如下操作:
1.
当前正被执行的指令全部执行完毕;
2.
PC值被压入栈;
3.
现场保护;
4.
阻止同级别其他中断;
5.
将中断向量地址装载到程序计数器PC;
6.
执行相应的中断服务程序。
中断服务程序ISR完成和该中断相应的一些操作。ISR以RETI(中断返回)指令结束,将PC值
从栈中取回,并恢复原来的中断设置,之后从主程序的断点处继续执行。
⑥ 简述8051单片机中断响应过程
单片机一旦响应中断请求, 就由硬件完成以下功能:
(1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1;
(2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源;
(3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);
(4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。
(5)中断返回,程序返回断点处继续执行。
(6)单片机中断的处理程序扩展阅读:
单片机应用分类:
单片机(Microcontrollers)作为计算机发展的一个重要分支领域,根据发展情况,从不同角度,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。
通用型:
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
总线型:
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。
另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
控制型:
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
参考资料:网络——单片机
⑦ 8051单片机中断源中,哪些中断请求信号在中断响应时可以自动清除哪些不能自动清除的应如何处理
8051单片机中断源通常分为三类,分别是:外部中断、定时中断和串行口中断。其中,外部中断和定时器中断可以自动清除,串行口中断不能自动清除。
1、对于外部中断,CPU响应中断后,中断请求是自动撤除的,无需采取其他措施;
2、对于定时器,CPU响应中断后,中断请求也是自动撤除的,无需采取其他措施;
3、对于串行口中断,CPU响应中断后,需要依靠软件来清除相应标志。
计算机在执行程序的过程中,由于CPU以外的某种原因,有必要尽快中止当前程序的执行,而去执行相应的处理程序,待处理结束后,再回来继续执行被中止了的原程序。
这种程序在执行的过程中由于外界的原因而被中间打断的情况野李称为“中断“。
(7)单片机中断的处理程序扩展阅读
1)优先权:
几个中断请求可能同时出现,但中断系统只能按一定的次序来响应和处理。可最先被响应的中断具有最高优先权,按优先级别顺序进行处理。优先权高低是由中断部件的中断排队线路确洞握定的。
2)中断级:
当机器设置很多中断源时,为了简化设计,对中断源分组管理。具颂颤迟有相同中断优先权的中断源构成一个中断级。同一级中断使用同一个中断控制程序起点。
3)中断屏蔽:
对应于各中断级设置相应的屏蔽位。只有屏蔽位为1时,该中断级才能参加中断优先权排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断优先权。
有些机器针对某些中断源也设置屏蔽位,只有屏蔽位为1时,相应的中断源才起作用。
⑧ 关于单片机试题:简述中断处理过程。
第一步:保护现场,将当前位置的PC地址压栈。
第二步:跳转到中断服务程序,执行中断服务程序。
第三步:恢复现场,将栈顶的值回送给PC
第四步:跳转到被中断的位置开始执行下一个指令。
⑨ 51单片机之中断系统,外部中断
中断分为前棚4个步骤:中断请求→中断相应→中断处理→中断返回(先做更重要的事)
1、数据的输入/输出传送方式
外部中断要段梁看对应引脚外部的电平状态。
例如:外部中断0(INT0)对应的引脚是P32,
当出现 低电平 ,即P32引脚连接的地方是 低电平 ,进入相应的中断函数;
当出现 下降沿 ,即P32引脚连接的地方 由高电平变为低电平 ,进入相应的中断函数
内部中断源要看单片机内部的定时器/计数器
中断允许寄存器IE
定时器/计数器0/1控制寄存器TCON
对同时发生多个中断申请时:
不同优先级的中断同时申请:先高后低
相同优先级的中断同时申请:按序执行
正处理低优先级中断又接到高级别中断:高打断低
正处理高优先级中断又接到低级别中断:高不理低
初始化的意思如图所示
实现思路
查看上方 P3第二功能各引脚功能定义 ,P3.3是外部中断1 (INT1)的外部输入引脚
编写一个程序握悔运,使得 S2按键按下 时,某个IO口(下面程序选择了P3.7这个IO口) 产生跳变沿 (由1变0)。P3.3与P3.7用跳线连接,使P3.3口与P3.7口同时产生跳变沿。
⑩ 单片机中断处理流程
当某中断产生而且被CPU响应,主程序被中断,接下来将执行如下操作:
1. 当前正被执行的指令全部执行完毕;
2. PC值被压入栈;
3. 现场保护;
4. 阻止同级别其他中断;
5. 将中断向量地址装载到程序计数器PC;
6. 执行相应的中断服务程序。
中断服务程序ISR完成和该中断相应的一些操作。ISR以RETI(中断返回)指令结束,将PC值
从栈中取回,并恢复原来的中断设置,之后从主程序的断点处继续执行。