中断系统接口Word文档下载推荐.docx
《中断系统接口Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《中断系统接口Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
![中断系统接口Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/12/d5af93c6-3854-47ba-8818-867af45877eb/d5af93c6-3854-47ba-8818-867af45877eb1.gif)
其执行过程如图4.1:
(a)无条件传送方式(b)查询传送方式(c)中断传送方式
图4.1输入/输出方式示意图
2.中断的概念
·
中断
CPU正在执行程序的过程中,由于CPU之外的某种原因,有必要暂停该程序的执行,转而去执行相应的处理程序,待处理程序结束之后,再返回原程序断点处继续运行的
过程。
中断系统
实现中断过程的软、硬件系统。
中断源
提出中断申请的来源。
中断源一般有外设、定时时钟、故障源等。
主程序与中断服务程序
CPU执行的当前程序称为主程序。
CPU转去对突发事件的处理程序,称为中断服务程序。
·
中断优先级
当多个中断源同时申请中断时,为了使CPU能够按照用户的规定先处
理最紧急的,然后再处理其他事件,中断系统设置有中断优先权排队电路,通过用户的设置,排在前面的中断源称为高级中断,排在后面的称为低级中断。
中断嵌套
当CPU响应某一中断源请求而进入中断处理时,若更高级别的中断源发
出申请,则CPU暂停现行的中断服务程序,去响应优先级更高的中断,待更高级别的中断处理完毕后,再返回低级中断服务程序,继续原先的处理,这个过程称为中断嵌套。
低级中断不能中断优先级高的中断,同级中断不能中断优先级相同的中断。
二、89S51中断系统结构
1.中断源
89S51的5个中断源分别为:
2个外部中断(由INT0、INT1引脚输入中断请求信号)、2个片内定时器/计数器溢出中断(T0、T1)、1个片内串行口中断(TX—发送、RX—接收)。
2.中断请求标志寄存器
中断系统设置有中断请求标志寄存器,它由定时器控制寄存器(TCON)和串行口控制寄存器(SCON)的若干位构成,如图所示:
(a)TCON中断标志(b)SCON中断标志
当某一中断源发出有效的请求信号时,相应的标志位置1,否则为0。
3.中断允许控制寄存器IE
为了有效地控制中断过程,中断系统设置有中断允许控制寄存器IE,它控制着中断的允许与禁止。
IE结构如图所示。
4.中断优先级控制寄存器IP
89S51有2级中断优先级,每一个中断源都可以软件设置为高级中断或低级中断,由中断优先级控制寄存器IP控制。
IP寄存器结构如图所示。
5.中断硬件查询电路
若CPU同时接收到两个不同优先级的中断时,则先处理高级中断。
若CPU同时接收的是多个同级中断时,则通过内部硬件查询逻辑电路,按查询顺序确定应先响应哪一个中断请求。
在同级中断中,查询顺序(由高到低)是:
外部中断0、定时器T0中断、外部中断1、定时器T1中断、串行口中断。
注意,这种同级中断的查询顺序只在同时申请中断时确定先后次序,但不能引起中断嵌套。
三、中断的处理过程
89S51中断的处理过程如图:
1.中断查询
CPU在每个机器周期结束时查询中断源是否有中断申请,若没有,则继续当前任务;
若有,则自动设置相应中断请求标志位。
各中断源的申请信号如下表。
有效的申请信号
设置的标志位
外部中断0
IT0位=0时,
引脚为低电平申请中断;
IT0位=1时,
引脚有1到0的负跳变信号申请中断
IE0=1
定时器T0中断
当T0计满溢出时申请中断
TF0=1
外部中断1
IT1位=0时,
IT1位=1时,
IE1=1
定时器T1中断
当T1计满溢出时申请中断
TF1=1
串行口中断
当发送完一帧数据时申请中断
TI=1
当接收完一帧数据时申请中断
RI=1
2.中断的响应条件
只有同时满足以下条件时,才会响应中断。
·
中断请求标志为1。
CPU中断开放,即EA=1且相应中断允许位=1。
无同级或更高优先级中断正在被服务。
若现行指令为中断返回RETI或访问IE、IP寄存器指令,必须执行完该指令和紧接着的下一条指令后才能响应中断。
3.响应中断
设置相应的优先级状态触发器。
保护现行程序断电地址。
进入指定的中断服务程序入口地址。
89S51规定各中断源有相应的服务程序入口地址,见下表。
中断服务程序入口地址
0003H
000BH
0013H
001BH
0023H
4.执行中断服务程序
在中断服务程序中不仅要完成相应的服务任务,而且要考虑现场保护与现场恢复,以便保护主程序中不应破坏的数据。
5.中断返回
在中断服务程序的结尾必须有一条中断返回指令RETI。
作用:
清除响应时设置的优先级状态触发器
恢复主程序断点地址,即把堆栈的内容送给PC
6.中断请求的撤除
CPU响应某中断请求后,在返回之前必须撤除中断请求。
89S51的中断系统在响应中断后,能够自动清除两个定时器的中断请求标志TF1、TF0;
对边沿触发下的两个外部中断请求标志IE1、IE0,必须撤除引脚上的请求信号,才能根本上对请求标志清0。
四、任务演示
见动画十二——单片机与打印机数据传送。
总结
中断系统在单片机中极为重要,通过本节的学习,我们全面了解了8051中断系统的结构、处理过程及其应用。
思考题
知识扩展:
外部中断源的扩展链接到PPT的相关内容
4.2定时器/计数器
掌握定时器/计数器结构及四种工作方式;
学会使用定时器/计数器的计数功能,并编写相应控制程序;
学会使用定时器/计数器的定时功能,并编写相应控制程序;
1.89S51定时器/计数器T0、T1。
单片机的一个重要作用是工业控制,在此领域中,时常用到定时控制、延时或计件操作,这些都要涉及到单片机内部集成的定时器/计数器。
掌握
定时器/计数器T0、T1的结构
掌握寄存器TMOD和寄存器TCON,并会根据系统连接来写出寄存器地址
定时器/计数器T0、T1的四种工作方式的工作原理
熟记计算公式,会写初始化程序
结合任务掌握定时器/计数器T0、T1的定时和计数功能及其应用
89S51单片机内部集成有两个16位定时器/计数器T0、T1。
一、定时器/计数器T0、T1的结构
1.定时器的总体结构
定时器/计数器T0、T1的结构如图所示。
各部分的组成及功能?
2.定时器方式寄存器TMOD
特殊功能寄存器TMOD用于控制定时器/计数器的启动方式、计数脉冲源的选择、工作方式的选择。
此寄存器只能字节寻址,复位时,TMOD=00H。
其各位含义如图所示。
3.定时器控制寄存器TCON
此寄存器复位时,TCON=00H。
二、定时器/计数器T0、T1的工作方式
定时器/计数器的工作过程如下图所示。
定时器/计数器有四种工作方式。
1.方式0
方式0的原理图如图所示。
工作原理:
在方式0下,T0和T1工作在13位的定时/计数器方式,由TH0的高8位和TL0的低5位组成。
TL0的低5位进位时,TH0加1,TH0最高位进位(即溢出)时,设置TF0=1,申请中断。
若CPU响应中断,系统自动对TF0复位。
C/
=0,为定时功能;
=1,为计数功能。
定时器T0的启动控制由门控位GATE、启动位TR0、引脚INT0的逻辑组合确定。
定时时间t与计数器的位数、设置的计数处置、时钟频率有关,计算公式如下:
t=(计数最大值-x初值)×
机器周期=(
-x初值)×
12/fosc
其中x初值:
时间常数;
fosc:
时钟频率
若fosc=12MHz,则方式0的最大定时时间
T=(
-0)×
12/fosc=8.192ms
例1:
若设置定时器T1工作在方式0、定时功能,定时时间t=5ms,启动由TR1控制。
写出初始化程序。
分析:
方式0:
设置M1、M0=00;
定时功能:
设置C/
=0;
TR1启动:
设置GATE=0;
利用计算公式可设置TH1=63H,TL1=18H。
初始化程序:
START:
MOVTMOD,#00H;
设置T1方式0,定时功能
MOVTH1,#63H;
送时间常数
MOVTL1,#18H
SETBTR1;
启动T1工作
2.方式1
方式1的原理图如图所示。
T0、T1定时器/计数器的方式1相同,为16位计数器结构。
方式1与方式0基本工作过程相同。
定时时间计算公式:
若fosc=12MHZ,则方式1的最大定时时间
12/fosc=65.536ms
例2若设置定时器T0工作在方式1、计数功能,计数数目为10000次,启动由INT0引脚控制。
方式1:
设置M1、M0=01;
计数功能:
=1;
控制启动:
设置GATE=1;
利用计算公式可设置TH0=0D8H,TL0=0F0H。
MOVTMOD,#0DH;
设置T0方式1,计数功能
MOVTH0,#0D8H;
送计数初值
MOVTL0,#0F0H
SETBTR0;
置TR0=1,T0启动由INT0引脚控制
3.方式2
方式2的原理图如图所示。
T0、T1定时器/计数器的方式2相同,为可重载时间常数的8位计数器结构。
在方式2下,TL0作为8位计数器,TH0作为重载时间常数寄存器,当TL0计满溢出后,设置TF0=1申请中断,同时将TH0中的数据自动装载到TL0中重新工作。
若fosc=12MHZ,则方式2的最大定时时间
12/fosc=0.256ms
4.方式3
T0方式3原理图如图所示。
定时器/计数器T0、T1方式3的工作情况差别很大,T1设置为方式3时,停止工作;
T0设置为方式3时,分成两个独立的8位定时器/计数器TL0和TH0。
TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器T0的各控制位和引脚信号全归它使用。
其功能和操作与方式0或方式1完全相同。
TH0只能作为定时器使用,它的启动仅由原来T1的启动位TR1控制,当TH0溢出时,置位TF1标志申请中断,中断服务程序入口为001BH。
当T0工作在方式3时,T1可以工作在方式0,1,2三种方式,原理图如图。
三、任务演示
见动画十三——生产线零件打包机控制。
掌握了89S51定时器/计数器T0、T1的结构、工作方式及其在实际工作中的应用,就会更好地应用于实际。
定时器/计数器T2链接到PPT上的相关内容。
4.3串行口
了解串行通信的基本概念;
掌握串行口的基本结构及工作方式。
1.89S51串行口的结构。
2.89S51串行口的四种工作方式的工作过程。
微机的串行接口应用非常广泛,本节着重介绍89S51单片机内部的串行口结构及其应用。
了解串行通信的基本概念
同步通信与异步通信
8051串行口的结构介绍
掌握串行口SCON和PCON各位的含义,并能够根据具体情况写出寄存器的地址
掌握8051串行口四种工作方式的工作过程
结合实例理解方式0的应用
结合任务演示理解串行口的工作过程
一、串行通信的基本概念
1.并行通信与串行通信
计算机与外界的信息交换称为通信。
基本的通信方法有并行通信和串行通信两种。
并行通信
是指单位信息(通常为一个字节)的各位数据同时传送。
它是依靠并行I/O口实现的。
串行通信
是指单位信息的各位一位一位地按顺序依次传送,它是靠串行接口实现数据传送的。
串行通信是以帧为单位传送。
2.同步通信与异步通信
串行通信有两种基本通信方式,即同步通信与异步通信。
同步通信
是指发送和接收同步进行,从而实现数据的不间断传送。
同步通信的数据帧格式如图所示。
发送设备与接收设备之间不仅连有数据线,还连接有同步时钟信号线,由主控设备发出同步时钟信号,以达到发送与接收同步进行。
同步字符是由用户约定的字符,放在一帧数据的开始和数据之间的间隔,起到提示发送开始和等待的作用。
异步通信
是指发送与接收没有用同步时钟同步,传送过程中数据之间有隔。
异步通信的数据帧格式如图所示。
一帧数据一般由一位起始位、若干数据位、一位停止位构成,传送中数据帧之间的空闲时间插入停止位。
发送设备与接收设备之间没有同步时钟信号线,只有数据信号线,当接收设备检测到数据信号线有起始位到来,才开始接收数据。
3.串行通信的传送方式
单工发送设备和接受设备之间之间连接的信号线传送方向是单向的。
半双工两设备之间连接的信号线传送方向是双向的,但两方向的数据传送不能同时进行。
全双工两设备之间连接的信号线传送方向是双向的,并且两方向的数据传送能同时进行。
4.波特率的概念
每秒传送数据的位数称为波特率(BaudRate),单位为波特,即位/秒(b/s)。
波特率的倒数称为位传送时间,用Td表示,单位为秒(s)。
例如,传送速率每秒10帧数据,每一帧数据11位,则传送波特率为:
10帧/秒×
11位/帧=110b/s位
传送时间Td=9.1ms。
二、89S51串行口的结构
1.串行口的总体结构
89S51串行口是一个可程控、全双工的串行口,结构框图如图所示。
串行口缓冲器SBUF(99H),在物理上它对应着两个独立的寄存器,发送缓冲器和接受缓冲器。
发送时,即CPU写SBUF;
接收时,即CPU读取SBUF。
2.串行口控制寄存器SCON
包含串行口工作方式选择位、接收与发送控制位、串口状态标志位。
其数据格式如下:
各位功能如下:
SM0、SM1:
串行口工作方式选择位。
可设置4种工作方式。
SM2:
允许方式2、3多机通信控制位,其功能见下表。
REN:
串行接收允许位。
由软件设置1允许接收,设为0禁止接收。
TB8、RB8:
在9位异步通信方式下,由于缓冲器只有8位,故用TB8作为发送的第9位,RB8作为接收的第9位。
TI、RI:
发送中断标志与接收中断标志。
当发送完一帧数据后硬件自动置位TI;
当接收完一帧数据后,若数据满足保留条件,硬件自动置位RI。
若CPU响应中断,系统不会自动复位TI、RI,必须由软件清0。
复位后,SCON=00H。
3.电源控制寄存器PCON
用来控制串行口的波特率倍增,以及在CHMOS系列单片机中实现电源控制,其格式如下:
复位后,PCON寄存器的所有使用位为0。
SMOD:
波特率倍增位。
当SMOD=1时,使串行口波特率加倍。
三、串行口方式0
1.方式0的工作过程
数据帧格式如图所示,没有起始位与停止位,只有8位数据位,传送时低位在前,高位在后。
发送过程
CPU将数据送入发送缓冲器SBUF后,自动启动串行口发送。
8位数据以固定的波特率(fosc/12),低位在前,从RXD引脚串行输出,TXD引脚发送移位时钟信号(频率为fosc/12),每个移位时钟的有效期间,对应一个输出的数据位。
8位数据发送完毕,置位TI=1,申请中断,通知CPU再发送下一个数据。
接收过程
软件设置REN=1时,启动接收过程。
串行口以fosc/12固定的波特率,从RXD引脚串行输入数据(低位在前),TXD引脚输出移位时钟信号。
当8位数据接收完毕,将数据送入接收缓冲器SBUF,并置位RI=1,申请中断,通知CPU取走数据。
2.利用方式0扩展并行I/O口
扩展并行输出口的硬件连接图如下图所示。
74LS164的工作过程是,在移位时钟(由CK引脚进入)作用下,数据由A、B引脚串行输入,在Q7~Q0得到并行输出的数据(Q7为高位)。
引脚为异步清0端。
输出指令:
MOVSCON,#00H;
设置串口方式0
MOVSBUF,R0;
输出数据
扩展并行输入口的硬件连接图如下图所示。
74LS165的工作过程是,在移位时钟(由CK引脚进入)作用下,数据由D7~D0引脚并行输入,在QH端得到串行输出的数据。
输入指令:
MOVSCON,#00H;
MOVR0,SBUF;
输入数据
四、串行口方式1、2、3
1.方式1的工作过程。
数据帧格式如下图所示。
CPU将数据送入发送缓冲器SBUF后,自动启动串行口发送。
以指定的波特率,串行发送一位起始位、8位数据位(低位在前)、一位停止位。
一帧数据发送完毕,置位TI=1,申请中断,通知CPU再发送下一个数据。
在未发送下一帧数据时,TXD引脚始终为高电平。
软件设置REN=1时,启动接收过程,串行口检测RXD引脚,当检测到有1到0的负跳变(起始位到来)时,开始接收数据。
串行口以指定的波特率,从RXD引脚串行输入8位数据(低位在前)、一位停止位。
当数据接收完毕,必须同时满足条件RI=0和SM2=0或接收到有效的停止位,才将8位数据送入接收缓冲器SBUF保存,并置位RI=1,申请中断,通知CPU取走数据;
若条件有一个不满足,则接收的数据丢失,不能恢复,也不置位RI标志。
2.方式2、3的工作过程
方式2、3为9位异步通信方式,方式2的波特率为时钟频率的32或64分频,方式3的波特率和方式1相同,由波特率倍增位SMOD确定分频。
其数据帧格式如图所示。
发送过程与方式1类似,只是数据帧格式不同,即启动发送后,串行发送一位起始位、8位数据位、TB8提供的第9位、一位停止位。
一帧数据发送完毕,置位TI=1。
接收过程与方式1类似。
在方式2、3的应用中,可以利用传送的第9位,作为各种意义的标志,如作为奇偶校验位,或作为地址与数据信息标志等。
SM2位的功能,提供了一种人为控制接收是否有效的可能性,在多机通信方面,起到重要的作用。
五、任务演示
见动画十六——单片机双机通讯。
串行通信是工业控制网络的基础,是构成复杂控制系统的关键,通过本节89S51串行口的学习,为以后深入学习串行口的扩展及通信接口做基础。
利用方式2、3进行多机通信链接到PPT的相关内容。