单片机原理及应用(第二版) 课件 第4章 中断、定时与串行通信_第1页
单片机原理及应用(第二版) 课件 第4章 中断、定时与串行通信_第2页
单片机原理及应用(第二版) 课件 第4章 中断、定时与串行通信_第3页
单片机原理及应用(第二版) 课件 第4章 中断、定时与串行通信_第4页
单片机原理及应用(第二版) 课件 第4章 中断、定时与串行通信_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章中断、定时与串行通信4.1中断系统4.2定时/计数器4.3串行通信及其接口习题4

4.1中断系统

4.1.1中断的概念中断是指CPU对系统中或系统外发生的某个事件的一种响应过程,即CPU正在执行程序时,系统发生某一事件需要迅速处理,CPU暂时停止现行程序的执行,而自动转去处理该事件;当事件处理完成后,CPU再返回到被暂停的程序断点处,继续执行原来的程序,这一过程称为中断,如图4.1所示。

图4.1中断过程

为实现中断功能,单片机的中断系统应解决以下几方面的问题。

1.中断源

所谓中断源,是指引起CPU中断的事件,即中断请求信号的来源。中断源向CPU提出的处理请求,称为中断请求或中断申请。中断请求信号的产生及该信号怎样被CPU有效地识别是中断源需要解决的问题,而且要求中断请求信号产生一次,只能被CPU接收处理一次,不能一次中断被CPU多次响应,这也就是中断请求信号的及时撤除问题。

2.中断响应、处理与返回

中断源向CPU提出中断请求,CPU暂时停止自身的事务,转去处理事件的过程,称为中断响应过程。对事件的整个处理过程,称为中断服务或中断处理。处理完毕,再回到原来被中止的地方,称为中断返回。CPU接收到中断请求信号后,怎样转向该中断源的中断服务程序及执行完中断处理程序后如何正确返回被中断的程序继续执行是问题的关键。中断响应与返回的过程中涉及CPU响应中断的条件、现场保护等问题。

3.中断级别

通常一个中断系统都有多个中断源,经常会出现两个以上中断源同时提出中断请求的情况,这样就需要设计者事先根据轻重缓急给每一个中断源确定一个中断级别(优先权),当多个中断源同时发出中断申请时,CPU能找到优先权级别最高的中断源,响应它的中断请求,在优先权级别最高的中断源处理完后,再响应级别较低的中断源。当CPU响应某一中断源的请求并进行中断处理时,若有优先权级别更高的中断源发出中断申请,则CPU要能中断正在进行的中断服务程序,保留这个程序的断点和现场,响应高级中断,在高级中断处理完以后,再继续执行被中断的中断程序,这种情况称为中断嵌套。CPU一般都可实现多级中断嵌套。

4.1.2MCS-51系列单片机的中断系统

1. MCS-51系列单片机中断系统的组成

MCS-51系列单片机的中断系统是8位单片机中功能较强的一种。51子系列单片机具有5个中断源,52子系列单片机具有6个中断源,具有两级中断优先级,可实现两级中断嵌套,4个用于中断控制的特殊功能寄存器IE、IP、TCON和SCON用来控制中断的类型、中断的开放/禁止和各种中断源的优先级别。MCS-51系列单片机中断系统结构框图如图4.2所示。

图4.2MCS-51系列单片机中断系统结构框图

1)定时/计数器控制寄存器TCON

TCON为定时/计数器T0、Tl的控制器寄存器,同时也锁存了T0、Tl的溢出中断请求信号标志和外部中断请求信号标志,其各位的定义如下:

2)串行口控制寄存器SCON

SCON为串行口控制寄存器,SCON的低两位锁存串行口接收中断和发送中断标志RI和TI,其格式如下:

 TI:串行口发送中断标志位。

 RI:串行口接收中断标志位。

3.中断控制

MCS-51单片机有两个特殊功能寄存器,用于中断系统的控制,分别为中断允许寄存器IE和中断优先级寄存器IP。

1)中断允许寄存器IE

IE控制CPU对中断源的开放或屏蔽,其格式如下:

 EA:CPU总中断开放标志位。

 ES:串行中断允许标志位。

 ET1:定时/计数器T1溢出中断允许标志位。

 EX1:外部中断1中断允许标志位。

 ET0:定时/计数器T0溢出中断允许标志位。

 EX0:外部中断0中断允许标志位。

2)中断优先级寄存器IP

MCS-51单片机具有两个中断优先级,每个中断源可编程为高优先级中断或低优先级中断,并可实现二级中断嵌套。特殊功能寄存器IP就是用来设定各中断源优先级别的,其格式如下:

 PS:串行口中断优先级控制位。

 PT1:定时/计数器T1中断优先级控制位。

 PX1:外部中断1中断优先级控制位。

 PT0:定时/计数器T0中断优先级控制位。

 PX0:外部中断0中断优先级控制位。

通过设置IP寄存器把各中断源的优先级分为高、低两级,它们遵循两条基本原则:

(1)低优先级中断可以被高优先级中断所中断,反之不能。

(2)一种中断一旦得到响应,与它同级的中断不能再中断。

当CPU同时收到几个同一优先级别的中断请求时,哪一个的请求得到服务取决于内部的硬件查询顺序,CPU将按自然优先级顺序确定响应哪个中断请求。其自然优先级由硬件形成,查询次序如表4.1所示。

4.1.3中断处理过程

中断处理过程可分为三个阶段:中断响应、中断处理和中断返回。

1.中断响应

1)中断响应条件

单片机响应中断的条件为中断源有请求(中断允许寄存器IE相应位置1),且CPU开中断(即EA=1)。这样,在每个机器周期的S5P2期间,对所有中断源按用户设置的优先级和内部规定的优先级进行顺序检测,并可在S6期间找到所有有效的中断请求。如有中断请求,且满足下列条件,则在下一个机器周期的S1期间响应中断,否则将丢弃中断采样的结果:

(1)无同级或高级中断正在处理;

(2)现行指令执行到最后一个机器周期且已结束;

(3)若现行指令为RETI或访问IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。

2)中断响应过程

CPU响应中断后,首先置位相应的优先级触发器,然后把断点地址压入堆栈保护,并将响应的中断矢量地址装入程序计数器,转入该中断服务程序进行处理。各中断源与之对应的矢量地址见表4.2。

3)中断响应时间

所谓中断响应时间,是指CPU检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。了解中断响应时间对设计实时测控应用系统有重要指导意义。

中断响应的最长时间(在无特殊情况下)由下列情况决定:若中断检测时正在执行RETI或访问IE或IP指令的第一个机器周期,则包括检测在内需要两个机器周期(以上三条指令均需两个机器周期);若紧接着要执行的指令恰好是执行时间最长的乘、除法指令,则其执行时间均为四个机器周期;再用两个机器周期执行一条长调用指令才转入中断服务程序。这样,总共需要8个机器周期。其他情况下的中断响应时间一般为3~8个机器周期。

2.中断处理

CPU响应中断结束后即转至中断服务程序的入口,并从中断服务程序的第一条指令开始执行,直到返回指令为止,这个过程称为中断处理或中断服务。中断处理包括两部分内容:一是保护现场和恢复;二是为中断源服务。

保护现场是指保护PSW、工作寄存器、专用寄存器等数据。如果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保护起来,即保护现场。在中断结束时,即执行RETI指令之前,再恢复这些寄存器的内容,即恢复现场。

中断服务是针对中断源的具体要求进行的处理。

3.中断返回

中断服务程序中,最后一条指令是中断返回指令RETI,该指令的功能是结束本次中断服务,返回到原程序。在执行RETI指令时,将压入堆栈的中断点地址弹出并送回程序计数器,使程序返回到原来被中断处继续执行,同时清除相应的优先级触发器。

4.1.4中断请求的撤除

中断源发出中断请求后,CPU首先置位相应的中断标志位,然后通过对中断标志位的检测决定是否响应中断,所以撤除中断请求就是要清除中断标志。CPU响应某中断请求后,在该中断返回之前,应将其对应的中断标志位复位,否则CPU在返回主程序后将再次响应该中断。MCS-51单片机各个中断源标志位的清除方法不相同。

图4.3给出了一种常用的撤销外部中断请求电路。

图4.3撤销外部中断请求电路

图4.4扩展四个外部中断源电路

4.2定时/计数器

4.2.1定时/计数器的结构及工作原理1.定时/计数器的结构MCS-51单片机内部的定时/计数器逻辑结构如图4.5所示,它由6个特殊功能寄存器组成。其中,TMOD为定时/计数器方式控制寄存器,用来设置两个16位定时/计数器T0和T1的工作方式;TCON为定时/计数器控制寄存器,主要用来控制定时/计数器T0和T1的启动和停止。两个16位的定时/计数器T0 (TH0和TL0)和T1(TH1和TL1)用于设置定时或计数。

图4.5定时/计数器逻辑结构框图

2.定时/计数器的工作原理

MCS-51单片机内部的两个16位可编程的定时/计数器T0和T1均有定时和计数功能。T0和T1的工作方式及功能选择、定时时间、启动方式等均可以通过编程对相应特殊功能

寄存器TMOD和TCON进行设置来实现,计数值也可由软件命令设置于16位的定时/计数器(TH0、TL0或TH1、TL1)中。

4.2.2定时/计数器的工作方式寄存器及控制寄存器

1.定时/计数器方式寄存器TMOD(89H)

定时/计数器T0、T1都有四种工作方式,可通过程序对TMOD进行设置来选择,其各位定义如下:

 GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的控制。

 :定时或计数功能选择位。

 M1、M0:定时/计数器工作方式选择位。MCS-51单片机的定时/计数器有四种工作方式,如表4.3所示。

2.定时/计数器控制寄存器TCON

TCON用于控制定时/计数器的启、停、溢出标志和外部中断信号触发方式,其各位定义如下:

 TR1:定时/计数器T1的启停控制位。

 TR0:定时/计数器T0的启停控制位。

3.定时/计数器的工作方式

1)方式0

方式0为13位定时/计数器。13位计数寄存器由TH0(TH1)的高8位和TL0(TL1)的低5位构成,TL0(TL1)中的高3位不用。T0(或T1)方式0的结构框图如图4.6所示。

图4.6T0(或T1)方式0的结构框图

2)方式1

方式1是16位定时/计数器,其结构与方式0类似,唯一的区别在于计数器的位数不同。方式1的加1计数器由TH0(TH1)的8位和TL0(TL1)的8位构成。

在方式1时,计数器的计数值由下式确定:

N = 216-x = 65536-x

计数范围为1~65536。

定时器的定时时间由下式确定:

T = N × Tcy = (65536-x)Tcy

如果fosc=12MHz,则Tcy=1μs,定时范围为1~65536μs。

3)方式2

方式2是能自动重装计数初值的8位计数器。方式2中把16位的计数器拆成两个8位计数器,低8位作计数器用,高8位用以保存计数初值。当低8位计数产生溢出时,将溢出中断标志位置1,同时又将保存在高8位中的计数初值重新装入低8位计数器中,继续计数,循环不止。T0(或T1)方式2的结构框图如图4.7所示。

图4.7T0(或T1)方式2的结构框图

在工作方式2时,计数器的计数值由下式确定:

N = 28-x = 256-x

计数范围为1~256。

定时器的定时值由下式确定:

T = N × Tcy = (256-x)Tcy

如果fosc=12MHz,则Tcy=1μs,定时范围为1~256μs。

4)方式3

定时/计数器T0和T1在前三种工作方式下,其功能完全相同。但工作方式3对T0和T1是大不相同的。当T1设置为工作方式3时,它将保持初始值不变,并停止计数,其状态相当于将启停控制位TR1设为0,因此T1不能工作在方式3下。

若将T0设为方式3,TL0和TH0被分成两个互相独立的8位计数器,其逻辑结构如图4.8所示。

图4.8T0方式3的结构框图

4.2.3定时/计数器应用举例

1.定时/计数器初始化

定时/计数器初始化的内容包含以下几点:

(1)确定定时/计数器的工作模式及工作方式,即给TMOD置相应的控制字。

(2)计算计数初值,送入计数器TH0、TL0或TH1、TL1中。

(3)根据使用要求确定是否需要开放中断,若使用溢出中断功能,则需要对中断允许寄存器IE以及中断优先级寄存器IP进行设置。

(4)给定时/计数器控制寄存器TCON送入命令字,启动定时/计数器工作。

2.定时/计数器计数初值计算

1)定时器的初值计算

当选择定时功能时,计数器是对机器周期进行计数。设T为定时时间,x为计数器的初值,n为计数器位数,单片机系统时钟频率为fosc,则计数初值可通过如下公式计算:

2)计数功能的初值计算

选择计数功能时,计数脉冲由外部引脚引入,是对外部脉冲进行计数,计数初值可由下式确定:

x = 2n-N

式中,N为计数值,其他参数的定义同定时器初值计算公式。

3.应用举例

例4.2用定时/计数器T1进行外部事件计数,每计数1000个脉冲后,定时/计数器T1转为定时工作方式,定时10ms后又转为计数方式,如此循环不止。假定fosc为6MHz,用方式1编程。

解将T1在定时和计数两种方式下轮换工作,首先让T1工作在方式1。

T1为定时器时初值计算如下:

T1为计数器时初值计算如下:

4.3串行通信及其接口

CPU与外部的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种。并行通信是指构成信息的二进制字符的各位数据同时传送的通信方法。并行通信的主要特点是传输速度快,在短距离通信中占优势,对长距离数据传输来说,因为信号线太多导致线路复杂,成本高。串行通信是指构成信息的二进制字符的各位数据一位一位顺序地传送的通信方式。串行通信线路简单,成本低但传输速度慢,适用于远距离传输。

4.3.1串行通信方式

1.异步通信

在异步通信中,被传送的信息通常是一个字符代码或一个字节数据,它们都以规定的相同传送格式(字符帧格式)一帧一帧地发送或接收。发送端和接收端各有一套彼此独立、互不同步的通信机构,可以由各自的时钟来控制数据的发送和接收。

一个字符在异步传送中又称为一帧数据,字符帧也称数据帧,由起始位、数据位、奇偶校验位和停止位四部分组成,异步通信的字符帧格式如图4.9所示。图4.9异步通信的字符帧格式

在串行异步传送中,通信双方必须事先约定:

字符格式。双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。例如用ASCII码通信,有效数据为7位,加一个奇偶校验位、一个起始位和一个停止位共10位。当然停止位也可以大于1位。

波特率。波特率就是数据的传送速率,即每秒钟传送的二进制位数,单位为位/秒。它与字符的传送速率(字符/秒)之间有以下关系:

波特率 = 一个字符的二进制编码位数 × 字符/秒

发送端与接收端的波特率必须一致。

2.同步通信

同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符,即数据块,它们都是由同步字符、数据字符和校验字符三部分组成的。一旦检测到同步字符,下面就是按顺序传送的数据块。同步通信的格式如图4.10所示。

图4.10同步通信的格式

3)串行通信的制式

串行通信中,信息数据在通信线路两端的通信设备之间传递,按照数据传递方向和两端通信设备所处的工作状态,可将串行通信分为单工、半双工和全双工三种工作制式,如图4.11所示。

图4.11串行通信数据传送的制式

4.3.2MCS-51单片机的串行通信接口及其工作方式

1.串行口的结构与功能

MCS-51单片机串行口内部结构示意图如图4.12所示。 MCS-51单片机串行口主要由两个物理上独立的串行数据缓冲寄存器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。两个特殊功能寄存器SCON和PCON用来控制串行口的工作方式和波特率。发送缓冲寄存器SBUF只能写,不能读;接收缓冲寄存器SBUF只能读,不能写。两个缓冲寄存器共用一个地址99H,可以用读/写指令区分。图4.12MCS-51单片机串行口内部结构示意图

2.与串行口相关的控制寄存器

MCS-51单片机中,与串行口工作相关的特殊功能寄存器有四个,分别为串行口控制寄存器SCON、电源控制寄存器PCON、中断允许寄存器IE和中断优先级寄存器IP。其中PCON、IE、IP在前面章节已经介绍过,在此只介绍SCON。

SCON用于串行口的工作方式选择、接收和发送控制以及串行口的状态标志,是一个可位寻址的8位特殊功能寄存器。其各位的定义如下:

 SM0、SM1:由软件置位或清0,用于选择串行口四种工作方式,如表4.4所示。

3.串行口工作方式

1)方式0

方式0下,串行口用作同步移位寄存器,其波特率固定为单片机振荡频率的1/12,串行传送数据8位为一帧,由RXD(P3.0)引脚发送或接收,低位在前,高位在后。TXD(P3.1)引脚输出同步移位脉冲信号,可以作为外部扩展的移位寄存器的移位时钟,因而串行口方式0常用于扩展外部并行I/O口。

2)方式1

在方式1下,串行口为10位通用异步通信接口。一帧信息包括1位起始位(0)、8位数据位(低位在前)和l位停止位(1)。TXD是发送端,RXD是接收端。其传送波特率可变。

3)方式2与方式3

方式2、方式3都是11位异步通信接口,发送或接收的一帧信息由11位组成,其中1位起始位、9位数据位(低位在前)和1位停止位。方式2与方式3仅波特率不同,方式2的波特率为fosc/32(SMOD=1时)或fosc/64(SMOD=0时),而方式3的波特率由定时/计数器T1及SMOD决定。

4.波特率设置

串行口的四种工作方式对应着三种波特率模式。

对于方式0,波特率是固定的,为fosc12。

对于方式2,波特率由振荡频率fosc和SMOD(PCON.7)所决定,其对应公式为

当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。

对于方式1和方式3,波特率由定时/计数器T1的溢出率和SMOD决定,即由下式确定:

其中,溢出率取决于计数速率和定时器的初值。当利用TI作波特率发生器时,通常选用方式2,即8位自动重装初值模式,其中TL1作计数器,TH1存放自动重装的定时初值。因此,对T1初始化时,写入方式控制字TMOD=00100000B。

这样每过“256-x”个机器周期,定时器T1就会产生一次溢出,溢出周期为

溢出率为溢出周期的倒数,因此,波特率的公式还可写成:

实际应用时,总是先确定波特率,再计算定时器T1的定时初值。根据上述波特率的公式,得出计算定时器方式2的初值x的公式为

4.3.3串行通信应用举例

1.利用串行口扩展并行I/O接口

当串行口工作于方式0时,是移位寄存器方式,此时可以利用串行口外接移位寄存器将串行口扩展为并行口。

例4.3利用串行口方式0扩展I/O接口,接8个共阴极数码管,使片内RAM的30H~37H单元的内容依次显示在8个数码管上。

解串行口工作在方式0,在TXD和RXD引脚连接串入并出的移位寄存器74LS164即可实现题目要求,利用串行口扩展并行I/O口电路图如图4.13所示。图4.13利用串行口扩展并行I/O口电路图

2.用串行口作异步通信

串行口工作方式1、2、3都是异步通信,它们之间的区别在于字符帧格式和通信波特率不同。双机异步通信的连接线路图如图4.14所示。图4.14双机异步通信的连接线路图

例4.4甲乙两机按工作方式1进行串行通信,甲乙双方的fosc=11.059MHz,波特率取2400,甲机将片内RAM的30H到3FH的内容向乙机发送,先发送数据块长度,再发送数据。甲机数据全部发送完向乙机发送一个累加校验和。乙机接收数据进行累加和校验,若与甲机发送的一致,则发送数据AAH,表示接收正确;若不一致,则发送数据BBH,甲机接收到BBH后,重发数据。编写程序。

解当fosc=11.0592MHz,波特率取2400,取SMOD为0,定时/计数器T1工作于方式2时,计数初值为0F4H。设R6作为数据长度计算器,R5为累加和寄存器。乙机接收的数据存放于片内RAM的30H开始的单元。

3.多机通信

MCS-51的方式2和方式3有一个专门的应用领域,即多处理机通信,它可以方便地应用于主从式系统。这种系统采用一台主机和多台从机,主机和各从机可实现全双工通信,其中主机发送的信息可被各从机接收,而各从机发送的信息只能由主机接收,从机与从机之间不能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论