51单片机之中断系统,外部中断
中断分为4个步骤:中断请求→中断相应→中断处理→中断返回(先做更重要的事)******数据的输入/输出传送方式***外部中断要看对应引脚外部的电平状态。
单片机的外部中断int0对应的引脚为p2。设置寄存器,打开终端并选择中断的触发方式。EA为整体中断允许位,首先要将EA置1,打开中断。EX0为外部中断INT0,置1开启。
)***选择电平触发还是边沿触发方式,TCON***控制寄存器***设置。应从系统使用外部中断的目的上去考虑,而不是如许多资料上说的根据中断源信号的特性来取舍。比如,有的书上说(《Keil***C51使用技巧及实战》),就有类似的观点。
有两种触发方式,一是低电平触发,二是下降沿触发,由于低电平触发易引起中断重入问题,所以常用下降沿触发。
51单片机中断/定时器/计数器
1、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。
2、(4)函数名()interrupt***3***{}***//对应定时器/计数器1中断;(5)函数名()interrupt***4***{}***//对应串口中断;51单片机是对所有兼容Intel***8031指令系统的单片机的统称。
3、定时器/计数器中断0/1,串行口中断!举个例子你可能会容易懂点,定时中断:比如你定时1ms,主程序在运行,每当1ms时间到后,就跑到定时中断子程序***里面执行,执行完后再回到主程序。。
4、定时器累加。用一个计数值来记录定时器的中断次数。
5、由中断号决定,一般计数器0是interrupt***0,定时器0是interrupt***1,接下来是计数器1,再是定时器1,再是串口,有些单片机还会有ADC,串口2,PCI等中断,具体看单片机的资料。
6、//***以上完成定时器0在16位模式下的初值加载,也就是0xEE00***TR0***=***1;***//***开启定时器0的运行。此语句之后Timer0计数器才开始累加***ET0***=***1;***//***开启定时器0的中断。
51单片机为什么在执行中断服务程序时要先加入一条转移指令
1、一条LJMP指令的长度为3,这也就是第一个中断向量为0003H的原因了。因为中断向量间的空间也很有限,只能完成一些最简单的任务,稍微长一点的程序就需要放在更大的空间里,从中断向量处跳转到该处执行真正的中断服务程序。
2、相互之间只有8***个单元,而绝大多数情况其对应的中断服务程序的机器码远不止8个字节,所以在中断入口地址区间常放置一条跳转指令。如果你的中断服务程序的机器码字节数少于8个字节,可直接放在该段区域。
3、加一加一,到溢出的时候,CPU就会停止主程序,自动转到000BH处,执行LJMP***INTERRUPT指令。这就是传说中的“中断”。51单片机,共有5个中断入口,所以在0000H处,都要用一条转移指令,跳过这些中断入口。
51单片机中有哪些中断源?
的中断系统有5个中断源,中断系统的结构及级别如下:与中断系统相关的特殊寄存器:中断寄存器就是用于存贮中断状态的,包含是否启用中断或者是否发生中断。
中断源有5个,分别为外部中断0请求、外部中断1请求、T0溢出中断请求TF0,T1溢出中断请求TF1和串行口中断请求RI或TI。51单片机有两个中断优先级:高优先级和低优先级。
标准51有5个中断向量(不算复位),分别是外部中断0,定时器0,外部中断1,定时器1,串行口;总共有6个中断标志,串行口的发送和接受共享一个中断向量。
(5)函数名()interrupt***4***{}***//对应串口中断;51单片机是对所有兼容Intel***8031指令系统的单片机的统称。
本文转载自互联网,如有侵权,联系删除