51单片机的中断原理[1]
- 格式:pptx
- 大小:953.89 KB
- 文档页数:9
![51单片机的中断原理[1]](https://imgs-1438308264.cos.ap-hongkong.myqcloud.com/91e73c09b7360b4c2e3f642c.webp)
![51单片机的中断原理[1]](https://imgs-1438308264.cos.ap-hongkong.myqcloud.com/91e73c09b7360b4c2e3f642c.webp)
51单片机扩展中断的四种方法
MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时
,就必须进行扩展,下面介绍两种简单的扩展方法:
一、采用硬件请求和软件查询的方法:
这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这
样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通
过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于
软件查询的次序。其硬件连接和软件编程如下:
Void zhongduan (void) interrupt 0 using 3 //中断函数
{
EX0=0;//关中断
If(P0_0=1) { *****}//中断查询
If(P0_1=1) { *****}//中断查询
If(P0_2=1) { *****}//中断查询
EX0=1;开中断
}
二、用普通二极管构成中断选择
扩展的8个外部中断源均通过二极管向I N T(x=0或I)请求中断。当某个外部中断源请求中断服务时输出低电平电平,单片机满足响应外部中断(I N T)请求条件,响应中断,程序立即转向I NT 对应的中断入口地址处开始执PI.0~P1.7口外中断源的状态,以识别提出请求的外扩中断源,并转向中断服务程序为其服务,其查询顺序即顺序。在图中,是选用PI.0~PI.7作为外扩中断源请求的状态信息输入端口。
有点类似第一种方法。
三、用定时器/计数器作外部中断
单片机的定时器/计数器是一个加一计数器,每当计数输入端有一个“1—0”的负
跳变时,计数器加一,当加一计数器溢出时,就向CPU发出中断,利用这个特性
来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把
外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用
51单片机中断系统详解(定时器、计数器)
51单片机中断级别
中断源 默认中断级别 序号(C语言用)
INT0---外部中断0/P3.2 最高 0 intrrupt 0
T0---定时器/计数器0中断/P3.4 第2 1
INT1---外部中断1/P3.3 第3 2
T1----定时器/计数器1中断/P3.5 第4 3
TX/RX---串行口中断 第5 4
T2---定时器/计数器2中断 最低 5
中断允许寄存器IE
位序号 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
符号位 EA/0 ------- ET2/1 ES ET1 EX1 ET0 EX0
EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2中断允许位。 EA总中断开关,置1为开;
ET2=1,打开T2中断。 EX0为外部中断0(INT0)开关,……
ET2=0,关闭T2中断。 ET0为定时器/计数器0(T0)开关,……
ES---串行口中断允许位。 EX1为外部中断1(INT1)开关,……
ES=1,打开串行口中断。 ET1为定时器/计数器1(T1)开关,……
ES=0,关闭串行口中断。 ES为串行口(TX/RX)中断开关,……
ET1---定时器/计数器1中断允许位。 ET2为定时器/计数器2(T2)开关,……
ET1=1,打开T1中断。
ET1=0,关闭T1中断。
EX1---外部中断1中断允许位。
EX1=1,打开外部中断1中断。 EX1=0,关闭外部中断1中断。
第七章 中断与定时系统
先看一下硬件系统:AT89S52(datasheet)
AT89S52有六个中断源,其中2个外部中断源,3个片内定时器/计数器TF0/TF1/TF2,1个串行口中断请求TI/RI
特殊功能寄存器:
1. TCON 定时器控制寄存器
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0/IT1 是外部中断请求触发选择位,就是将我可以选择外中断的触发方式,0是低电平触发,1是负跳变触发。
IE0/IE1 是外部中断申请位,自动设置。
TF0/TF1 定时/计数器溢出标志位,自动置位
TR0/TR1 定时器0/1运行控制位
2. 中断允许寄存器 IE
EA — ET2 ES ET1 EX1 ET0 EX0
EX0/EX1 外部中断0/1的中断允许控制位
ET0/ET1/ET2 是Timer 0/1/2的中断允许控制位
ES 串行口中断允许控制位
EA 总的中断允许控制位
3. 定时器方式寄存器TMOD 89H Gate C/T M1 M0 Gate C/T M1 M0
前面是T1,后面是T0
C51扩展 interrupt m
interrupt m C51中断函数必须通过它进行修饰。在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按51系统中断的处理方式自动把它安排在程序存储器中的相应位置。
1 / 5
51单片机中断总结
51单片机中断总结-马强
Yybmec51单片机中断系统5个中断源:2个外部中断请求INT0和INT1、2个片内定时器/计数器T0和T1的溢出中断请求串行口中断请求TI或RI(合为一个中断源)51单片机中断级别中断源INIT0---外部中断0T0---定时器/计数器0中断INIT1---外部中断1T1----定时器/计数器1中断TI/RI---串行口中断T2---定时器/计数器2中断默认中断级别最高第2第3第4第5最低序号(C语言用)012345中断允许寄存器IE位序号符号位DB7EADB6-------DB5ET2DB4ESDB3ET1DB2EX1DB1ET0DB0EX0EA---全局中允许位。EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。EA=0,关闭全部中断。-------,无效位。ET2---定时器/计数器2中断允许位。ET2=1,打开T2中断。ET2=0,关闭T2中断。ES---串行口中断允许位。ES=1,打开串行口中断。ES=0,关闭串行口中断。ET1---定时器/计数器1中断允许位。ET1=1,打开T1中断。ET1=0,关闭T1中断。EX1---外部中断1中断允许位。EX1=1,打开外部中断1中断。EX1=0,关闭外部中断1中断。ET0---定时器/计数器0中断允许位。ET0=1,打开T0中断。ET0=0,关闭T0中断。EX0---外部中断0中断允许位。EX0=1,打开外部中断0中断。EX0=0,关闭外部中断0中断。中断优先级寄存器IP位序号DB7DB6DB5DB41DB3DB2DB1DBYybmec位地址---------PSPT1PX1PT0PX0-------,无效位。PS---串行口中断优先级控制位。PS=1,串行口中断定义为高优先级中断。PS=0,串行口中断定义为低优先级中断。PT1---定时器/计数器1中断优先级控制位。PT1=1,定时器/计数器1中断定义为高优先级中断。PT1=0,定时器/计数器1中断定义为低优先级中断。PX1--- 2 / 5