陈连坤版单片机原理及应用——第五章课件.pptx
文本预览下载声明
5. MCS-51单片机的中断系统
中断
计算机外部、内部或程序本身出现的事件
中断响应由硬件和软件共同完成
中断处理过程
现行主程序
硬件响应中断
硬件:强行中止现行程序的运行,
保存返回地址,进入中断服务程序
软件:中断服务程序
硬件:恢复返回地址,
继续现行程序的运行
5. MCS-51单片机的中断系统
中断系统
中断源:引起中断的事件
中断请求:硬/软件中断源向CPU发出请求
中断管理:中断允许、优先级——软件
断点:中断时被打断程序的暂停点——硬件
中断响应:暂停现行程序而响应中断请求——硬件
中断处理:执行中断服务程序——软件
中断返回:返回断点——硬件
5. MCS-51单片机的中断系统
中断机制是实现多道程序设计的必要条件
不同CPU的硬件结构和指令系统不完全相同,中断系统也是不完全相同
中断向量表
固定入口
优先权排队
优先权,或优先级,多个中断源发出中断请求时,确定哪个中断更紧迫,以便首先响应
通过硬件电路或软件查询实现
5. MCS-51单片机的中断系统
中断嵌套
CPU响应某一中断
优先权高的中断源发出中断请求
CPU中断正在执行的中断服务程序,并保留这个程序的断点,响应高级中断
高级中断处理结束后,再继续进行被中断的中断服务程序
5.1.1 MCS-51单片机中断系统的工作原理
中断源
名称
硬件查询
优先级
中断请求
标志位
硬件自动清除
中断号/
向量地址
X0
1
IE0
电平,否
下降沿,是
0/03H
T0
2
TF0
是
1/0BH
X1
3
IE1
电平,否
下降沿,是
2/13H
T1
4
TF1
是
3/1BH
SP
5
RI和TI
否
4/23H
T2
6
TF2和EXF2
否
5/2BH
固定中断入口地址:中断号*8+3
中断请求的清除:
硬件自动清除
软件手动清除
中断优先权
(polling priorty)
中断优先级相同且同时产生中断时起作用
5.1.1 MCS-51单片机中断系统的工作原理
5.1.1 MCS-51单片机的中断系统
中断响应时间——单个中断源时
MCS-51单片机,3~8个机器周期
其他的51内核单片机的中断响应时间的计算方法类似,计算的结果可能是不一样的,因为指令的执行时间可能不一样
5.1.1 MCS-51单片机的中断系统
实现对MCS-51单片机中断系统的控制
中断允许(Iterrupt Enable,IE)寄存器
中断优先级(Iterrupt Priority,IP)寄存器
定时器/计数器控制(Timer/counter CONtrol,TCON)寄存器
IE
位地址 = 字节地址 + 位的序号
0A8H~0AFH
IP
TCON
5.1.1 MCS-51单片机的中断系统
[例4-3-new] 由按钮控制UART输出“Hello World”,每按一次发送一次,按钮接至单片机的端口P1.2,用查询实现。
#include stdio.h
#include reg52.h
extern void Uart_Init(void); //定义完成UART初始化的函数
sbit trans = P1^2;
void main (void)
{
Uart_Init (); //调用完成UART初始化的函数
while (1)
{
if ((!trans)TI)
{
printf (Hello World!\n);
while (!trans);
}
}
}
5.1.1 MCS-51单片机的中断系统
[例5-1-new] 由按钮控制UART输出“Hello World”,每按一次发送一次,按钮接至单片机的端口P3.2,用中断实现。
#include stdio.h
#include reg52.h
extern void Uart_Init(void); //定义完成UART初始化的函数
void main (void)
{
Uart_Init (); //调用完成UART初始化的函数
IT0 = 1;
EX0 = 1;
EA = 1;
while (1);
}
void ex0_isr (void) interrupt 0
{
if (TI)
printf (Hello World!\n);
}
5.1.1 MCS-51单片机的中断系统
define button TRANS,POUT () //发送按钮
signal void POUT (void) //信号函数
{
PORT3 = ~4;
twatch (500000); //延时500000个机器周期
PORT3 |= 4;
return;
}
5.2 C8051F单片机
显示全部