中断定时计数器与串行通信.ppt
《中断定时计数器与串行通信.ppt》由会员分享,可在线阅读,更多相关《中断定时计数器与串行通信.ppt(56页珍藏版)》请在三一办公上搜索。
1、第四章 中断、定时/计数器与串行通信,第一节 中断系统第二节 定时器/计数器及应用第三节 串行口通信系统第四节 I/O口的扩展技术,第一节 中断系统,一、中断功能的概述所谓中断是指中央处理器CPU在处理某件事情的时候,外部又发生了某一事件(如一个电平的变化,一个脉冲沿的发生,定时器计数溢出等)请求CPU迅速处理,于是,CPU暂时中断当前的工作,转入处理所发生的事情;中断服务处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断,如图4-1所示。实现这种功能的部件称为中断系统,产生中断的请求称为中断源。如果在进行中断处理的过程中,又有新的中断到来,则我们称这种情况为中断嵌套。,下
2、一页,返回,第一节 中断系统,二、MCS-51单片机的中断系统MCS-51单片机的中断系统是8位单片机中功能较强的一种,可以提供5个中断请求源(表4-1),具有两个中断优先级。可实现两级中断服务程序嵌套。MCS-51的中断系统结构示意图如图4-2所示。外中断是由外部原因引起的,共有两个中断源,即外部中断0和外部中断1.它们的中断请求信号分别由引脚(P3.2)和(P3.3)引入。外部中断请求有两种信号方式,即电平方式和脉冲方式。,上一页,下一页,返回,第一节 中断系统,定时中断是为满足定时或计数的需要而设置的。在单片机芯片内部有两个定时器/计数器,以对其中的计数结构进行计数的方法,来实现定时或计
3、数功能。当计数结构发生计数溢出时,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,依次无需在芯片上设置引入端。串行中断是为串行数据传送的需要而设置的。每当串行口接收或发送完一组串行数据时就产生一个中断请求。因此串行中断请求也是在单片机芯片内部自动发生的,同样不需在芯片上设置引入端。,上一页,下一页,返回,第一节 中断系统,每一个中断源对应一个中断请求标志位,它们设置在特殊寄存器TCON和SCON中。当这些中断源请求中断时,分别由TCON和SCON中相应位来锁存。中断的允许和禁止是由片内的中
4、断允许控制寄存器IE来控制的。,上一页,下一页,返回,第一节 中断系统,TF1:定时器/计数器1(T1)溢出中断请求标志位。TF0:定时器/计数器0(T0)溢出中断请求标志位。IT1:外部中断1触发方式选择位。IE1:外部中断1中断请求标志位。IT0:外部中断0触发方式选择位。IE0:外部中断0中断请求标志。RI:串行口接收中断请求标志位。TI:串行口发送中断请求标志位。,上一页,下一页,返回,第一节 中断系统,EA:中断总允许位。EA=0,CPU禁止所有中断,屏蔽所有的中断请求;EA=1,CPU开放中断。但每个中断源的中断请求允许还是禁止分别由各自的允许位确定。ET2:定时器2中断允许位。E
5、T2=0,禁止定时器2中断;ET2=1,允许定时器2中断。ES:串行口中断允许位。ES=0,禁止串行口中断;ES=1,允许串行口中断。,上一页,下一页,返回,第一节 中断系统,ET1:定时器1中断允许位。ET1=0,禁止定时器1中断;ET1=1,允许定时器1中断;EX1:外部中断1中断允许位。EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。ET0:定时器0中断允许位。ET0=0,禁止定时器0中断;ET0=1,允许定时器0中断。EX0:外部中断0中断允许位。EX0=0,禁止外部中断0中断;EX0=01,允许外部中断0中断。,上一页,下一页,返回,第一节 中断系统,MCS-51有两
6、个中断允许优先级,对于每一个中断请求源可编程为高优先级中断或低优先级中断,可实现二级中断嵌套,一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。若CPU正在执行高优先级的中断,则不能被任何中断源所中断,一直执行到结束,直到返回指令RETI,返回主程序后再执行一条指令后才能响应新的中断请求。以上所述可以归纳为下面两条基本规则:1)低优先级可被高优先级中断,反之不能;2)任何一种中断,一旦得到响应,不会再被它的同级中断所中断。,上一页,下一页,返回,第一节 中断系统,PT2:定时器2中断优先级设定位。PT2=1,定时器2定义为高优先级中断源;PT2=0
7、,定时器2定义为低优先级中断源。PS:串行口中断优先级设定位。PS=1,串行口定义为高优先级中断源;PS=0,串行口定义为低优先级中断源;PT1:定时/计数器1中断优先级设定位。PT1=1,定时/计数器1定义为高优先级中断源;PT1=0,定时/计数器1定义为低优先级中断源;,上一页,下一页,返回,第一节 中断系统,PX1:外部中断1中断优先级设定位。PX1=1,外部中断1定义为高优先级中断源;PX1=0,外部中断1定义为低优先级中断源。PT0:定时/计数器0中断优先级设定位。PT0=1,定时/计数器0定义为高优先级中断源;PT0=0,定时/计数器0定义为低优先级中断源。PX0:外部中断0中断优
8、先级设定位。PX0=1,外部中断0定义为高优先级中断源;PX0=0,外部中断0定义为低优先级中断源;,上一页,下一页,返回,第一节 中断系统,计算机中断处理过程可分为三个阶段:中断响应、中断处理和中断返回。各计算机系统的中断硬件系统各有不同,中断的响应和方式也有所不同。对于MCS-51单片机,中断处理过程如下:1.中断响应的条件中断源向CPU发出中断请求,CPU响应中断应满足下列条件:(1)有中断源发出中断请求;(2)中断总允许位EA=1,即CPU开放中断;(3)申请中断的中断源的中断允许位为1,即没有被屏蔽。,上一页,下一页,返回,第一节 中断系统,2.中断响应如果中断响应条件满足,则CPU
9、响应中断,在响应中断的三个周期内CPU必须做以下几件事:(1)关闭中断:CPU首先使被响应中断的相应“优先级激活”触发器置位,以阻断同级和低级的中断。(2)断点保护:把中断点的地址(断点地址),也就是当前程序计数器PC中内容压入堆栈,以便中断返回时继续原程序。(3)清楚相应的中断请求标志位IE0、IE1、TF0、TF1。(4)将对应的中断源的矢量地址装入计数器PC,使程序转至中断服务程序的入口地址。,上一页,下一页,返回,第一节 中断系统,3.中断处理在中断服务程序中,CPU完成指定的任务。从中断服务程序的第一条指令到返回指令为止,这个过程称中断处理或中断服务。4.中断返回中断服务程序的最后一
10、条指令必须是中断返回指令RETI。CPU执行这条指令时,把响应中断时置位的优先级触发器复位,再从堆栈中弹出断点地址送入程序PC,以便从断点处重新执行被中断的主程序。,上一页,返回,第二节 定时器/计数器及应用,一、定时器功能概述在工业检测、控制中,许多场合都要用到计数或定时功能。例如,对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发生器。MCS-51单片机内有两个可编程的定时器/计数器,以满足这方面的需要。它们具有两种工作模式及四种工作方式,其控制字均在相应的特殊功能寄存器中,通过对它的特殊功能寄存器的编程,用户可方便地选择适当的工作模式和工作方式。作为基本组成内容,MCS-51单片
11、机共有两个可编程的定时器/计数器,分别称定时器/计数器0和定时器/计数器1.它们都是十六位加法计数结构,分别由TH0和TL0及TH1和TL1两个8位计数器组成。,下一页,返回,第二节 定时器/计数器及应用,二、定时器/计数器的控制寄存器MCS-51单片机内部的定时器/计数器的结构如图4-3所示,定时器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)构成。特殊功能能寄存器TMOD用于控制定时寄存器的工作方式,TCON用于控制定时器T0和T1的启动和停止计数,TCOM还用于管理定时器T0和T1的溢出标志等。程序开始时需对TL0
12、、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数器。TMOD和TCON这两个特殊功能寄存器的格式如下。,上一页,下一页,返回,第二节 定时器/计数器及应用,定时器/计数器的工作方式控制字TMOD,字节地址为89H;1.GATE门控位GATE=0 以运行控制位TR0(TR1)启动定时器;GATE=1 以外部中断请求信号(INT0和INT1)启动定时器。,上一页,下一页,返回,第二节 定时器/计数器及应用,2.C/T定时方式或计数方式选择位C/T=0 定时工作方式;C/T=1 记数工作方式。3.M1M0工作方式选择M1M0=00 方式0;M1M0=01 方式1;M
13、1M0=10 方式2;M1M0=11 方式3;定时器控制寄存器TCON,字节地址为88H,位地址为88H8FH:,上一页,下一页,返回,第二节 定时器/计数器及应用,4.TF0(TF1)计数溢出标志当计数器计数溢出时,该位置1.使用查询方式时,此位作状态位供查询,但应注意查询有效后应以软件方法及时将该位清0;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件自动清0.5.TR0(TR1)定时器运行控制位TF0(TF1)=0 停止定时器/计数器工作;TF0(TF1)=0 启动定时器/计数器工作;,上一页,下一页,返回,第二节 定时器/计数器及应用,三、工作方式通常,MCS-51单片机有
14、四种工作方式,如下:1.工作方式0定时器/计数器0(1)的工作方式是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。当 时,多路开关接通振荡脉冲的12分频输出,13位计数器依次进行计数,这就是定时工作方式;当 时,多路开关接通计数引脚(T0),外部计数脉冲由引脚T0输入,当计数脉冲发生负跳变时,计数器加1,这就是我们常称的计数工作方式。,上一页,下一页,返回,第二节 定时器/计数器及应用,在工作方式0下,计数器的计数范围是:18192(213)当为定时工作方式时,定时时间的计算公式为:(213-计数初值)晶振周期12或(213-计数初值)机器周期,其
15、时间单位与晶振周期或机器周期相同。,上一页,下一页,返回,第二节 定时器/计数器及应用,2.工作方式1当M1M0=01时,定时器/计数器处于工作方式1,方式0和方式1的区别仅在于计数器的位数不同,方式0为13位,而方式1则为16位,由TH0作为高8位,TL0为低8位,有关控制状态字(GATE、TF0、TR0)和方式0相同。在工作方式1下,计数器的计数值范围是:165536(216),上一页,下一页,返回,第二节 定时器/计数器及应用,当为定时工作方式1时,定时时间的计算公式为:(216-计数初值)晶振周期12或(216-计数初值)机器周期,其时间单位与晶振周期或机器周期相同。3.工作方式2当M
16、1M0=10时,定时器/计数器处于工作方式2.工作方式0和工作方式1的最大特点就是计数溢出后,计数器全为0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。,上一页,下一页,返回,第二节 定时器/计数器及应用,工作方式2就是针对这个问题而设置的,它具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式下,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再像工作方式0和工作方式1那样需要“人工干预”,由软件重新赋值,而是由
17、预置寄存器TH以硬件方法自动给计数器TL0重新加载。,上一页,下一页,返回,第二节 定时器/计数器及应用,程序初始化时,给TL0和TH0同时赋以初值,当TL0计数溢出时,置位TF0的同时把预置寄存器TH0中的初值加载给TL0,TL0重新计数。如此反复,这样省去了程序不断需给计数器赋值的麻烦,而且计数准确度也提高了。但这种工作方式也有不利的一面,就是这样一来的计数结构只有8位,计数值有限,最大只能到255.所以这种工作方式很适合于那些重复计数的应用场合。,上一页,下一页,返回,第二节 定时器/计数器及应用,4.工作方式3当M1M0=11时,定时器/计数器处于工作方式3.在工作方式3模式下,定时器
18、/计数器0和定时器/计数器1的工作方式不同,下面我们分别讨论。在工作方式3模式下,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0.其中TL0既可以作为计数器使用,也可以作为定时器使用,定时器/计数器0的各控制位和引脚符号全归它使用,其功能和操作与工作方式0或工作方式1完全相同。,上一页,下一页,返回,第二节 定时器/计数器及应用,TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时器/计数器0的控制位已被TL0占用,因此只能借用定时器/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。由于TL0既能作为定时器也
19、能作为计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在工作方式3模式下,定时器/计数器0可以构成两个定时器或者一个定时器和一个计数器。,上一页,下一页,返回,第二节 定时器/计数器及应用,如果定时器/计数器0工作于工作方式3,那么定时器/计数器1的工作方式就不可避免的受到一定的限制,因为自己的一些控制位已被定时器/计数器借用,只能工作在工作方式0、工作方式1和工作方式2下。在这种情况下,定时器/计数器1通常作为串行口的波特率发生器使用,以确定串行通信的速率,因为已没有TF1被定时器/计数器0借用了,只能把计数溢出直接送给串行口。当做波特率发生器使用时,只需设置好工作方式,即可自动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 定时 计数器 串行 通信
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5909773.html