技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
Wang1jin 带您从零学单片机
配套学习板:WJ-V4.0
AVR+51开发板
第四章:51单片机
中断部分
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
课程简介
Ø51单片机中断
Ø中断简介
Ø中断相关寄存器功能讲解
Ø中断优先级讲解
Ø中断应用操作流程
Ø中断程序实例设计1
Ø课后作业
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断简介
中断是指当单片
机在正常执行程序
的时候,系统中有
再为紧急需要处理
的情况或特殊请
求,CPU暂时中止
现在程序运行,转
去对随机发生更为
重要的事件进行处
理,处理完毕后
CPU再返回原来的
程序继续执行。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断简介
51单片机普通的芯片,一般有5
个中断源,有2个中断优先级,每个中断
源的优先级可以编程控制。中断允许受到
CPU开中断和中断源开中断的两级控制。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断源简介
5个中断源是:
外部中断0,
由INT0/P3.2输入;
外部中断1,
由INT1/P3.3输入;
定时器/计数器0
溢出中断请求;
定时器/计数器1
溢出中断请求;
串行口发送/接收
中断请求;
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断设置
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
中断控制器主要是实现中断的开
关管理和中断优先级管理,这二个管理主
要是对特殊功能寄存器IE和IP的编程实现
的。
中断允许寄存器IE
▼ EX0、EX1 外部中断0/1中断允许位
当EX0、EX1为1时,外部中断0/1允许,开中断。
当EX0、EX1为0时,外部中断0/1不允许,关中断。
▼ ET0、ET1 定时器/计数器0/1溢出中断允许位
当ET0、ET1为1时,定时器/计数器中断允许,开中断。
当ET0、ET1为0时,定时器/计数器中断不允许,关中断。
▼ ET2 定时器/计数器2溢出中断允许位
当ET2为1时,定时器/计数器2开中断。当ET2为0时,定时器/计数器2关中断
▼ ES 串行口中断允许位
当ES为1时串口中断开,当ES为0时串口中断关。
▼ EA CPU开关/中断控制位
当EA为1时,CPU中断开。当EA为0时,CPU中断关。单片机复位后EA默认为0。需要在软件中把EA
设置为1,才能开总中断。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断相关功能寄存器
定时器/计数器控制寄存器TCON
TR0、TR1应用在定时器计数器中
▼ IT0、IT1外部中断0、1触发方式选择位:
IT0、IT1 = 1。则是下降沿触发方式,INT0/INT1引脚上高到低的负跳变可以引起中断;
IT0、IT1 = 0。则是电平触发方式,INT0/INT1引脚上低电平可以引起中断。
▼ IE0、IE1 外部中断0、1请求标志位:
当外部中断0或1,依据触发方式满足条件产生中断请求时,由硬件置位(IE0/IE1 = 1)。
当CPU响应中断时由硬件清除标志(IE0/IE1 = 0)。
▼ TF0、TF1 定时器/计数器0、1(T/C0,T/C1)溢出请求中断标志位
当定时器/计数器0或1溢出的时候,由硬件置位(TF0/TF1 = 1)。
当CPU响应中断时由硬件清除相应标志位(TF0/TF1 = 0)。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
串行口控制寄存器SCON
▼ RI 串行口接收中断请求标志位
当串行口接收完一帧数据后请求中断时,由硬件置位(RI = 1)。
RI在产生中断后,必须由软件清零。
▼ TI 串行口发送中断请求标志位
当串行口发送完一帧数据后请求中断时,由硬件置位(TI = 1)。
TI在产生中断后,必须由软件清零。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断优先级寄存器IP
在单片机中如果有多个中断源同时请求中断,则CPU会按中断源的优先级
别,由高到低的去响应。在51单片机中有二个中断优先级,每个中断源都可以编程
为高优选级或低优先级。这样可以实现中断嵌套。嵌套的原则是:一个正在执行的
中断服务程序可以被较高级的中断请求中断,而不能被同级或较低级的中断请求所
中断。两级中断是通过设置IP寄存器实现的。
▼ PX0、PX1 外部中断0/1中断优先级控制位
PX0、PX1为1,则是高优先级。为0则是低优先级。
▼ PT0、PT1 定时器/计数器0/1中断优先级控制位
PT0、PT1为1,则是高优先级。为0则是低优先级。
▼ PS 串口中断优先级控制位
PS为1,则是高优先级。为0则是低优先级。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断优先级及应用
在单片机被复位后,IP被清零,5个中断源都会处于同一优先级,这时若
有几个中断源同时请求,则是按照CPU内部的硬件优先级顺序来响应中断,硬件
优先级中断顺序如上。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断响应
单片机在每个机器周期会采样各中断源的中断请求,并由硬件自动形成转
向与该中断源对应的服务程序入口地址。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断函数的写法
在C51中中断函数的完整语法如下:
返回值 函数名({参数}) [模式] [重入] interrupt n [ using n ]
Interrupt 后面接一个0-31的整数,不允许用表达式。
例:
void INT_TEST() interrupt 0 using 0 //外部中断0/1 编号(0/2)
{
…………
}
中断不允许用于外部函数,小型程序中的中断程序使用默认的寄存器0,
不带using属性的可能会取得更高的效率。
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
中断应用流程
EA = 1.打开总中断
PX0 = 1.中断优先级
EX0 = 1.打开中断0
IT0 = 0.设置中断方式
(电平1/脉冲0)
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
实例练习
实例练习1:
利用外部中断触发,点亮开发板上的LED.
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
课后作业:
课后作业1:
触发中断0,在触发5次后.点亮LED0,再触发5次
LED0处于闪烁状态.再触发5次LED0熄灭.
课后作业2:
设置外部中断1为最高优先级,设置外部中断1
为电平触发.外部中断0为脉冲触发,触发外部中断
1时,点亮所有数码管显示8888.并让蜂鸣器发声.触
发外部中断0时蜂鸣器关闭.数码管上显示0000.
技术支持:http://www.wang1jin.com/bbs主 讲:wang1jin
欢迎光临我们的论坛:
www.wang1jin.com/bbs
Wang1jin 带您从零学单片机