个人简介
刘洋成志,男,银川科技学院计算机与人工智能学院,2022级计算机与科学技术9班本科生,单片机原理及应用课程第6组。
指导老师:王兴泽
电子邮件:376418637@qq.com
前言
本篇文章是参考《单片机原理及应用(c语言版)第2版》杨居义·编著教材编写的笔记
由刘洋成志、马彦宏、王恕诚、赵梦麟、杜昊同学共同完成此篇文章,其中刘洋成志同学负责编写,马彦宏总结以及排版内容,赵梦麟同学负责收集网络资料,王恕诚同学负责整理书本资料及图片材料,杜昊同学负责将以上同学收集的材料进行分析总结,并提炼出精简信息。
模块五、单片机中断系统原理与项目实践
项目21:中断控制器与项目实践
1.学习目的
1)掌握定时器控制寄存器TCON设置;
2)掌握串行口控制寄存器SCON设置;
3)掌握中断允许寄存器IE设置;
4)掌握中断优先级寄存器IP设置;
5)了解中断优先级别;
6)了解80C51中断处理过程;
7)掌握80C51外部中断扩展;
8)掌握中断系统的应用。
2.学习重点与难点
1)定时器控制寄存器TCON设置;
2)串行口控制寄存器SCON设置;
3)中断允许寄存器E设置;
4)中断优先级寄存器IP设置;
5)80C51外部中断扩展;
6)中断系统的应用。
3.四种寄存器
(1)IE------中断允许控制寄存器
80C51单片机有5个中断源都是可屏蔽中断,其中断系统内部设有一个专用寄存器IE,用于控制CPU对各中断源的开发或者屏蔽。
1、EA(IE.7位):CPU中断总允许控制位。EA=1,CPU开放所有中断。各中断源的允许、禁止,分别由各中断源的中断系统允许位单独加以控制;EA=0,CPU禁止所有的中断,称为关中断。
2、ES(IE.4位):串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。
3、ET1(IE.3位):T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止定时器1中断。
4、EX1(IE.2位):外部中断1(INT1)中断允许位。EX1=1,允许外部中断1中断;EX=0,禁止外部中断1中断。
5、ET0(IE.1位):T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止定时器0中断。
6、EX0(IE.0位):外部中断0(INT0)中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。
80C51单片机系统复位后,IE中各中断允许位均被清零,即禁止所有中断。
(2)IP------中断优先级控制寄存器
1、PS(IP.4位):串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。
2、PT1(IP.3位):T1中断优先级控制位。PT1=1,T1为高优先级中断;PT1=0,T1为低优先级中断。
3、PX1(IP.2位):外部中断1(INT1)中断优先级控制位。PX1=1,外部中断1为高优先级中断;PX1=0,外部中断1为低优先级中断。
4、PT0(IP.1位):T0中断优先级控制位。PT0=1,T0为高优先级中断;PT0=0,T0为低优先级中断。
5、PX0(IP.0位):外部中断0(INT0)中断优先级控制位。PX0=1,外部中断0为高优先级中断;PX0=0,外部中断0为低优先级中断。
(3)TCON------定时器\计数器控制寄存器
IT1/ITO:外中断1/0触发方式控制位。当ITi=0时,外部中断1/0为电平触发方式。当ITi=1时,外部中断1/0为脉冲触发方式。
IE1/IE0:外部中断1/0标志。IEi=1,外部中断1/0向CPU申请中断。
(4)SCON------串行口控制寄存器
TI:串行发送中断标志CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。
RI:串行接收中断标志在串行口允许接收时,每接收完个串行帧,硬件将使RI置位。
4.80C51中断优先级
如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定先相应哪个中断请求。自然优先级由硬件形成,排列如下图表所示。
5.80C51外部中断扩展
·单片机仅有两个外部中断输入端(INTO;INT1)
·可用两种方法扩展:
1.定时器T0,T1。(工作在计数方式下)
定时器的计数模式可以用来对外部信号进行计数,通过计数值的变化间接实现外部中断的扩展功能。定时器可设置为计数模式,通过检测计数器的溢出或特定计数值触发中断。
实现方法:硬件连接:外部信号接入定时器T0或T1的计数引脚(TO:P3.4,T1:
P3.5)。定时器设置为计数模式,TO和T1会对外部脉冲进行计数。
软件逻辑:设置定时器工作在计数方式下(TMOD寄存器配置)。当计数器计满溢出时
触发定时器中断(TO或T1)。
2.中断和查询结合
6.中断系统的应用
中断系统的初始化实质上是针对4个与中断有关的特殊功能寄存器TCON、SCON、IE和IP进行控制和管理,具体步骤如下所示。
(1)开CPU中断总开关(EA)。
(2)设置中断允许寄存器IE中相应的位,确定各个中断源是否允许中断。
(3)对多级中断设置中断优先级寄存器1P中相应的位,确定各中断源的优先级别。
(4)设置定时器控制寄存器TCON中相应的位,确定外部中断是边沿触发还是电平触发的触发方式。
项目21任务实践
任务1 用外部中断控制P2口8只LED灯的亮灭
任务描述:
在P3.3号脚(/INT1)上接按键S,使用外中断控制P2日8个LED亮灭。当第一次按下按键S时,P2口
8位LED就亮,再次按下S按键,P2口8个LED就熄灭,如此循环,就可看见LED灯亮灭两种状态,电路图如下图所示。
分析:
设置寄存器TCON的IT1=1选择负跳变来触发外中断IE设置即EA=1(开总中断)、EX1=1(允许外中断1中断)。当按键S按下时,引脚为低电平,外中断产生中断请求,在执行外中断服务程序时,让P2口按位取反就可达到控制LED亮灭。
程序设计代码:
代码运用keil实现,代码如下。
任务二 外部中断控制LED灯左循环亮
任务描述:
在P3.2引脚(/INT0)上接按键S,使用外部中断控制P0口8只LED灯左循环亮。电路图如下图所示。
分析:
设置寄存器TCON的IT0=1选择负跳变来触发外中断,IE设置即EA=1(开总中断)、EX0=1(允许外中断0中断)。当按键S按下时,引脚为低电平,外中断产生中断请求,在执行外中断服务程序时,使LED灯左循环亮。
程序设计代码:
代码运用keil实现,代码如下。