在51简述单片机的中断响应过程响应中断时,程序入口地址是怎么获得的

一、填空题?1.MCS-51可提供3个内部中断源和2个外部中断源。?2.在CPU响应中断后,需由外部硬件清除相应的中断请求标志的中断是。?3.在CPU响应中断后,不能由内部... 一、填空题?1. MCS-51可提供 3 个内部中断源和 2 个外部中断源。?2. 在CPU响应中断后,需由外部硬件清除相应的中断请求标志的中断是 。?3. 在CPU响应中断后,不能由内部硬件自动清除相应的中断请求标志,必须在中断服务程序中用软件来清除中断请求标志的中断是 。?4. MCS-51单片机的中断系统有 个优先级,中断优先级别由 寄存器管理。5. CPU响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把 的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送 ,使程序的执行转向规定的中断入口地址。?6. MCS-51系列单片机中断系统中规定:同级中断不能相互中断。如果几个同级的中断源同时向CPU申请中断,CPU则按硬件排定如下优先次序: 、 、 、 、 。?7.MCS-51CPU响应中断后,中断申请标志由CPU内部自行清除的中断有: 。二、选择题 (在各题的A、B、C、D四个选项中,选择一个正确的答案)?1.下列有关MCS-51中断优先级控制的叙述中,错误的是( )。?A. 低优先级不能中断高优先级,但高优先级能中断低优先级?B. 同级中断不能嵌套?C. 同级中断请求按时间的先后顺序响应?D. 同时同级的多中断请求,将形成阻塞,系统无法响应 ?2. 单片机响应中断或子程序调用时,发生入栈操作。入栈的是( )值。?A. PSW B. PC C. SBUF D. DPTR 3. 下列条件中不是CPU响应中断的条件是( )。?A. 中断源发出中断申请 B. CPU开放中断?C. 申请中断的中断允许位为1 D. CPU正在执行相同级或更高级的中断 4. 在MCS-51中,需要外加电路实现中断撤除的是( )。?A. 定时中断 B. 脉冲方式的外部中断?C. 串行中断 D. 电平方式的外部中断?5. 中断查询,查询的是( )。?A. 中断请求信号 B. 中断标志位?C. 外中断方式控制位 D. 中断允许控制位?6. 在中断流程中有“关中断”的操作,对于外部中断0,要关中断应复位中断允许寄存器的( )。?A. EA位和ET0位 B. EA位和EX0位?C. EA位和ES位 D. EA位和EX1位

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

1. MCS-51可提供 3 个内部中断源和 2 个外部中断源。?

2. 在CPU响应中断后,需由外部硬件清除相应的中断请求标志的中断是 IEI 。?

3. 在CPU响应中断后,不能由内部硬件自动清除相应的中断请求标志,必须在中断服务程序中用软件来清除中断请求标志的中断是 scon串口中断 。?

4. MCS-51单片机的中断系统有 2 个优先级,中断优先级别由 IP 寄存器管理。5. CPU响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把 PC 的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送 PC ,使程序的执行转向规定的中断入口地址。?

6. MCS-51系列单片机中断系统中规定:同级中断不能相互中断。如果几个同级的中断源同时向CPU申请中断,CPU则按硬件排定如下优先次序:外部中断源O、定时器TO、外部中断1、定时器T1、串行口。?

7.MCS-51CPU响应中断后,中断申请标志由CPU内部自行清除的中断有: 。

二、选择题 (在各题的A、B、C、D四个选项中,选择一个正确的答案)?

1.下列有关MCS-51中断优先级控制的叙述中,错误的是( D)。?

A. 低优先级不能中断高优先级,但高优先级能中断低优先级?

B. 同级中断不能嵌套?

C. 同级中断请求按时间的先后顺序响应?

D. 同时同级的多中断请求,将形成阻塞,系统无法响应 ?

2. 单片机响应中断或子程序调用时,发生入栈操作。入栈的是( B )值。?

3. 下列条件中不是CPU响应中断的条件是( D )。?

A. 中断源发出中断申请 B. CPU开放中断?

C. 申请中断的中断允许位为1 D. CPU正在执行相同级或更高级的中断

4. 在MCS-51中,需要外加电路实现中断撤除的是( D )。?

A. 定时中断 B. 脉冲方式的外部中断?

C. 串行中断 D. 电平方式的外部中断 ?

5. 中断查询,查询的是( B )。?

A. 中断请求信号 B. 中断标志位?

C. 外中断方式控制位 D. 中断允许控制位 ?

6. 在中断流程中有“关中断”的操作,对于外部中断0,要关中断应复位中断允许寄存器的( B )。?

专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。

专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。

阅读已结束,下载本文需要

MCS51系列单片机的中断系统及定时器计数器

简介:本文档为《MCS51系列单片机的中断系统及定时器计数器doc》,可适用于工程科技领域,主题内容包含第三章   MCS系列单片机的中断系统及定时器计数器.中断的概念  众所周知CPU的工作速度愈来愈快CPU启动外部设备输入/输出一个字节数据只需要微符等。

第三章   MCS系列单片机的中断系统及定时器计数器.中断的概念  众所周知CPU的工作速度愈来愈快CPU启动外部设备输入/输出一个字节数据只需要微秒级甚至更短的时间而低速的外设工作速度一般在毫秒级若CPU和外部设备是串行工作的则CPU就浪费了很多时间去等待外设其效率大大降低。若没有中断技术CPU难于为多个设备服务对故障的处理能力也极差。为了解决这些问题在计算机中引入了中断技术目前所有的计算机都有中断处理的能力。..中断的基本概念及相关术语 中断是CPU在执行现行程序的过程中发生随机事件和特殊请求时使CPU中止现行程序的执行而转去执行随机事件或特殊请求的处理程序待处理完毕后再返回被中止的程序继续执行的过程。实现中断的硬件逻辑和实现中断功能的指令统称为中断系统。引起中断的事件称为中断源实现中断功能的处理程序称为中断服务程序。中断的响应过程如图.所示(a)为单级中断(b)为两级中断嵌套。  对于中断系统来说引起中断的事件称为中断源由中断源向CPU所发出的请求中断的信号称为中断请求信号CPU中止现行程序执行的位置称为中断断点中断断点处的程序位置称为中断现场由中断服务程序返回到原来程序的过程称为中断返回CPU接受中断请求而中止现行程序转去为中断源服务称为中断响应。  在中断系统中对中断断点的保护是CPU在响应中断时自动完成的中断服务完成时执行中断返回指令而得到恢复对于中断断点处其他数据的保护与恢复是通过在中断服务程序中采用堆栈操作指令PUSH及POP来实现的这种操作通常称为保护现场与恢复现场。..中断的作用 中断系统在计算机系统中有很重要的作用利用中断可以实现以下功能: ()分时操作。利用中断系统可以实现CPU和多台外设并行工作能对多道程序分时操作以及实现多机系统中各机间的联系提高计算机系统的工作效率。 ()实时处理。利用中断系统可以对生产过程的随机信息及时采集和处理实现实时控制提高计算机控制系统的灵活性。 ()故障处理。利用中断系统可以监视现行程序的程序性错误(如运算溢出、地址错等)和系统故障(如电源掉电、I/O总线奇偶错误等)实现故障诊断和故障的自行处理提高计算机系统的故障处理能力。..中断源 通常计算机的中断源有下列几种: ()一般输入/输出设备。当外设准备就绪时可以向CPU发出中断请求从而实现外设与CPU的通信。如键盘、打印机等。 ()实时时钟或计数信号。如定时时间或计数次数一到则向CPU发出中断请求要求CPU予以处理 ()故障源。当采样或运算结果出现超出范围或系统停电时可以通过报警、掉电等信号向CPU发出中断请求要求CPU加以处理。 ()为调试程序而设置的中断源。为了便于控制程序的调试及时检查中间结果可以在程序中设置一些断点或单步执行等。..中断系统的基本功能 为了满足系统中各种中断请求的要求中断系统应该具备如下的基本功能: ()识别中断源。在中断系统中必须能够正确识别各个中断源以便区分各个中断请求从而为不同的中断请求服务。 ()能实现中断响应及中断返回。当CPU收到中断请求申请后能根据具体情况决定是否响应中断如果没有更高级别的中断请求则在执行完当前指令后响应这一请求。响应过程应包括:保护断点、保护现场、执行相应的中断服务程序、恢复现场、恢复断点等。当中断服务程序执行完毕后返回被中断的程序继续执行。 ()能实现中断优先权排队。如果在系统中有多个中断源可能会出现两个或多个中断源同时向CPU提出中断请求的情况这样就必须要求设计者事先根据轻重缓急给每个中断源确定一个中断级别即优先权。当多个中断源同时发出中断请求时CPU能找到优先权级别最高的中断源并优先响应它的中断请求在优先权级别最高的中断处理完了以后再响应级别较低的中断源。 ()能实现中断嵌套。当CPU响应某一中断的请求在进行中断处理时若有优先权级别更高的中断源发出中断请求CPU要能中断正在进行的中断服务程序保留这个程序的断点和现场而响应高优先权的中断在高优先权处理完以后再继续执行被中断的中断服务程序即形成中断嵌套如图.(b)所示。而当发出新的中断请求的中断源的优先权与正在处理的中断源同级或更低时则CPU就可以不响应这个中断请求直至正在处理的中断服务程序执行完以后才去处理新的中断申请。.MCS系列单片机的中断系统 MCS-系列单片机中不同型号芯片的中断源数量是不同的最基本的单片机有个中断源分别是INTO、INT、TO、Tl。中断源分为两个中断优先权级别可以实现两级中断服务程序嵌套。每一个中断源可以编程为高优先权级别或低优先权级别中断允许或禁止向CPU请求中断。MCS列单片机基本的中断系统结构图如图.所示。               图.MCS一系列单片机的中断系统内部结构图  由图.可知所有的中断源都要产生相应的中断请求标志这些标志分别放在特殊功能寄存器TCON和SCON的相关位。每一个中断源的请求信号需经过中断允许IE和中断优先权选择IP的控制才能够得到单片机的响应。..中断源与中断请求  由图.可以看出MCS-系列单片机有个中断源它们是:外部中断INTO(P)、INTI(P.)定时器肼数器T、Tl溢出中断串行口的发送(TXD)和接收(RXD)中断源(只占个中断源)。外部中断的中断请求标志位和T、Tl的溢出中断请求标志位锁存在定时器/计数器控制寄存器TCON中而串行口对应的中断请求标志位锁存在串行口控制寄存器SCON中。   .定时器/计数器控制寄存器TCON  TCON为定时器/计数器控制寄存器其字节映像地址为H可位寻址它除了控制定时器/计数器T、Tl的溢出中断外还控制着两个外部中断源的触发方式和锁存两个外部中断源的中断请求标志。其格式如下:TFlTRlTFTROIElITlIEOIT  TCON寄存器各位的含义如下:  IT:外部中断INTO的中断触发方式选择位。  当IT位清为时外部中断INTO为电平触发方式。在这种触发方式中CPU在每一个机器周期的$P采样INTO(P.)引脚的输入电平当采样到低电平时置INT的中请求标志位为采样到高电平清IE位为。在采用电平触发方式时外部中断源(输入到INTO即P.引脚)上的必须保持低电平有效直到该中断被CPU响应同时在该中断服务程序执行结束之前外部中断源的有效信号必须被清除否则将产生另一次中断。为了保证CPU能正确采样电平状态要求外部中断源INTO有效的低电平信号至少要维持一个机器周期以上。当IT位置为时外部中新INT为边沿触发方式。在这种触发方式中CPU在每个机器周期的$P采样INTO(P.)引脚上的输入电平。如果在相继的两个机器周期一个周期采样到INTO为高电平而接着的下一个周期采样到低电平则置INTO的中断请求标志位IE为即当IE位为l时表示外部中断INTO正在向CPU请求中断直到该中断被CPU响应时才由硬件自动将IE位清为。因为CPU在每一个机器周期采样一次外部中断源输入引脚的电平状态因此采用边沿触发方式时外部中断源输入的高电平信号和低电平信号时间必须保持在一个机器周期以上才能保证CPU检测到此信号由高到低的负跳变。  IE:外部中断:INT的中断请求标志位。当IE位为时表示外部中断源INT没有向CPU请求中断当IE位为l时表示外部中断INTO正在向CPU请求中断且当CPU响应该中断时由硬件自动对IE进行清。  T:外部中断INTO的中断触发方式选择位。功能与ITo相同。  IEl:外部中断INTO的中断请求标志位。功能与IE相l司。  TR:定时器/计数器T的启动标志位。当TR位为时不允许T计数工作当TRO位为l时允许T定时或计数工作。  TF:定时器/计数器T的溢出中断请求标志位。在定时器/计数器T被允许计数后从初值开始加l计数当产生计数溢出时由硬件自动将TF位置为通过TF位向CPU申请中断一直保持到CPU响应该中断后才由硬件自动将TF位清为。当TF位为时表示T未计数或计数未产生溢出。当T工作在不允许中断时TF标志可供程序查询。  TRl:定时器/计数器Tl的启动标志位。功能与TR相l司。  TFl:定时器/计数器Tl的溢出中断请求标志位。功能与TF相I司。.串行口控制寄存器SC,ON’SCON为串口控制寄存器其字节映像地址为H也可以进行位寻址。串口的接收和发送数据中断请求标志位(R、TI)被锁存在串口控制寄存器SCON中其格式如下:SMSMlSMRENTBRBTIRI  SCON寄存器各位的含义如下:  R:串口接收中断请求标志位。当串行以一定方式接收数据时每接收完一帧数据由硬件自动将Rl位置为。而Rl位的清必须由用户用指令来完成。  T:串l发送中断请求标志位。当串口以一定方式发送数据时每发送完一帧数据由硬件自动将Tl位置为l。而Tl位的清也必须由用户用指令来完成。  注意:在中断系统中将串行口的接收中断Rl和发送中断Tl经逻辑或运算后作为内部的一个中断源。当CPU响应串口的中断请求时CPU并不清楚是由接收中断产生的中断请求还是由发送中断产生的中断请求所以用户在编写串口的中断服务程序时在程序中必须识别是RI还是Tl产生的中断请求从而执行相应的中断服务程序。  SCON其他位的功能和作用与串行通信有关将在第章中介绍。  在上述的特殊功能寄存器中的所有中断请求标志位都可以由软件加以控制即用软件置位或清。当某位置位时就相当于该位对应的中断源向CPU发出中断请求如果清。就撤销中断请求。..中断允许控制  在计算机中断系统中有两种不同类型的中断:一类为非屏蔽中断另一类为可屏蔽中断。对于非屏蔽中断用户不能用软件方法加以禁止一旦有中断请求CPU就必须予以响应。而对于可屏蔽中断用户则可以通过软件方法来控制它们是否允许CPU去响应。允许CPU响应某一个中断请求称为中断开放(或中断允许)不允许CPU响应某一个中断请求称为中断屏蔽(或中断禁止)。  MCS一系列单片机的个中断源都是可屏蔽中断。由图.可知CPU对中断源的中断开放或中断屏蔽的控制是通过中断允许控制寄存器IE来实现的。IE的字节映像地址为AH既可以按字节寻址也可以按位寻址。当单片机复位时IE被清为。  通过对IE的各位的置或清操作实现开放或屏蔽某个中断也可以通过对EA位的清O来屏蔽所有的中断源。IE的格式如下.EAESETEXETOEX  IE寄存器各位的含义为:  EA:总中断允许控制位。当EA位为时屏蔽所有的中断当EA位为l时开放所有的中断。  ES:串口中断允许控制位。当ES位为时屏蔽串口中断当ES位为l且EA位也为时开放串口中断。  ETl:定时器/计数器Tl的中断允许控制位。当ETl位为时屏蔽Tl的溢出中断当ETl位为l且EA位也为时开放Tl的溢出中断。  EXl:INT的中断允许控制位。当EXl位为时屏蔽INTl当EXl位为l且EA位也为时开放丽。  ET:定时器/计数器T的中断允许控制位。功能与ETl相同。  EX:INT的中断允许控制位。功能与EXl相同。比如要开放INTl和Tl的溢出中断屏蔽其他中断则对应的中断允许控制字为:l即CH。只要将这个结果送人IE中中断系统就按所设置的结果来管理这些中断源。形成这个控制结果的方法可以对IE按字节操作也可以按位操作。                 按字节操作形式   按位操作形式                             SETBEXl                  MOVIE#CH     SETBETl                             SETBEA  思考题.:如果要开放外部中断和串口的中断而屏蔽其他中断的控制字是什么如何来实现这个控制结果呢..中断优先权管理  在中断系统中要使某一个中断被优先响应的话就要依靠中断优先权控制。MCS系列单片机对所有中断设置了两个优先权每一个中断请求源都可以编程设置为高优先权中断或低优先权中断从而实现二级中断嵌套。为了实现对中断优先权的管理在MCS一内部提供了一个中断优先级寄存器IP其字节地址为H既可以按字节形式访问又可以按位的形式访问。其格式如下:PSPTlPXlPTPXO  IP寄存器各位的含义如下:  PX、PT、PXl、PTl和PS分别为INTO、TO、INT、Tl和串口中断优先级控制位。当相应的位为时所对应的中断源定义为低优先级相反则定义为高优先级。  比如要将T定义为高优先级使CPU优先响应其中断其他中断均定义为低优先级对应的优先级控制字为O即H。只要将这个控制字送人IP中CPU就优先响应TO产生的溢出中断并将其他中断按低优先级中断处理。具体操作形式如下:      按字节操作形式 按位操作形式       MOVIP,#H   SETBPT  在同一个优先级中各中断源的优先级别由一个内部的硬件查询序列来决定所以在同级的中断中按硬件查询序列也确定了一个自然优先级其从高到低的优先级排列如下:                  INTOTOINTTl串口(RI、TI) 按中断优先权设置后响应中断的基本原则是:  .若多个中断请求同时有效CPU优先响应优先权最高的中断请求。  .同级的中断或更低级的中断不能中断CPU正在响应的中断过程。  .低优先权的中断响应过程可以被高优先权的中断请求所中断CPU会暂时中止当前低优先权的中断过程而优先响应高优先权中断。等到高优先权中断响应结束后再继续响应原低优先权的中断过程形成中断的嵌套。为了实现上述功能和基本原则在MCS.系列单片机中断系统的内部设置了两个不可寻址的优先级触发器一个是指出CPU是否正在响应高优先权中断的高优先级触发器另一个是指出CPU是否正在响应低优先权中断的低优先级触发器。当高优先级触发器状态为l时屏蔽所有的中断请求当低优先级触发器状态为时屏蔽所有同级的中断请求而允许高优先权中断的中断请求。  MCS一系列单片机复位后特殊功能寄存器IE、IP的内容均为由用户的初始化程序对IE、IP进行初始化开放或屏蔽某些中断并设置它们的优先权。..中断响应  单片机一旦工作并由用户对各中断源进行使能和优先权初始化编程后MCS系列单片机的CPU在每个机器周期顺序检查每一个中断源。那么在什么情况下CPU可以及时响应某一个中断请求呢若CPU响应某一个中断请求它又是如何工作的呢  .中断响应条件   单片机的CPU在每个机器周期的最后一个状态周期采样并按优先权设置的结果处理所有被开放中断源的中断请求。一个中断源的请求要得到响应必须满足一定的条件。   ()CPU正在处理相同的或更高优先权的中断请求。这种情况下只有当前中断响应结束后才可能响应另一个中断请求。   ()现行的机器周期不是当前所执行指令的最后一个机器周期。此时只有在当前指令执行结束周期的下一个机器周期才可能响应中断请求。   ()正在执行的指令是中断返回指令(RETI)或者是对IE、IP的写操作指令。在这种情况下只有在这些指令执行结束并至少再执行一条其他指令后才可能响应中断请求。如果上述条件中有一个存在CPU将自动丢弃对中断查询的结果若一个条件也不存在则将在紧接着的下一个机器周期执行中断查询的结果响应相应的中断请求。  .中断响应过程  如果某一个中断被开放且中断请求符合响应条件CPU会及时响应该中断请求并按下列过程进行处理:  ()置相应的优先级触发器状态为指明了CPU正在响应的中断优先权的级别并通过它屏蔽所有同级或更低级的中断请求允许更高级的中断请求。  ()执行一条硬件子程序调用清相应的中断请求标志位为(R、Tl和电平触发的外部中断除外)。  ()保护断点。即将被中断程序的断点位置(Pc的值)压人堆栈保存起来。  ()将被响应的中断源的中断服务程序入口地址送程序计数器PC。各中断源的中断服务程序入口地址的分配情况如表l.所示。  ()执行相应的中断服务程序。当CPU执行完中断服务程序中的中断返回指令后清相应的优先级触发器为然后恢复断点即将保存在堆栈中的程序计数器PC的值再弹给PC使CPU再继续执行原来被中断的程序。  .中断响应的时间   在MCS.系列单片机中的外部中断请求信号在每一个机器周期的第个状态周期的第个时钟脉冲被采样并锁存到相应的中断请求标志中这个状态等到下一个机器周期才被查询。如果中断被开放并符合响应条件CPU接着执行一个硬件子程序调用指令以转到相应的中断服务程序入口该调用指令需要个机器周期所以从外部产生中断请求到CPU开始执行中断服务程序的第l条指令之间最少需要个完整的机器周期。如果中断请求被阻止则需要更长的时间。如果已经在处理同级或更高级中断额外的等待取决于中断服务程序的处理过程。如果正处理的指令没有执行到最后的机器周期即使是需要时间最长的乘法或除法指令所需的额外等待时间不会超过个机器周期如果是CPU正在执行中断返回指令RETl或对IE、IP的写操作指令加上另外一条指令的执行时间额外的等待时间不会多于个机器周期。所以在单一中断系统中外部中断响应时间总是在~个机器周期。 ..外部中断应用举例.  如图.所示Pl口输出控制只发光二极管实现位二进制计数器对INT上出现的脉冲数进行计数。  在图.中由与非门构成去抖动电路S开关每动作一次就输出一个脉冲去单片机的INT引脚上让INT工作于边沿触发方式每按一次开关S就产生一次中断在中断服务程序中计一次数并把计数结果从Pl口输出显示在发光二极管上。程序清单如下:   ORGHSTART: AJMPMAIN    ORGH    AJMPEXINTMAIN: SETB  在上例中由于主程序和中断服务程序都很简单所以在中断服务程序中没有安排现场保护和恢复如果在中断服务程序中使用的寄存器和存储单元与主程序有冲突时必须进行现场保护和恢复。  思考题:MCS一单片机只有两个外部中断如果需要单片机处理两个以上的外部中断该怎样进行呢.MGS系列单片机的定时器/计数器  各种型号的单片机不管其功能强弱都提供有定时器/计数器因为定时器/计数器面向控制领域的单片机系统是一项极为重要的功能。定时器/计数器可以实现以下功能:  ()定时操作:产生定时中断实现定时采样输入信号定时扫描键盘、显示器等操作。  ()测量外部脉冲信号:对脉冲信号计数统计或测量脉冲信号的周期等。  ()定时输出:定时触发输入引脚的电平使输出脉冲的宽度、占空比、周期达到预定值其精度不受程序状态的影响。  ()监视系统正常工作:一旦系统工作异常时自动产生复位重新启动系统正常工作。  MCS系列单片机的子系列有两个l位定时器/计数器T、Tl而子系列有个位定时器/计数器T、Tl、T。本书只学习T、Tl的应用。  ..定时器/计数器仰、Tl的结构  单片机内部有两个l位定时器/计数器:定时器/计数器T和定时器/计数器Tl。它们都具有定时和计数功能可用于定时或延时控制、对外部事件检测、计数等其内部结构框图如图.所示。  .定时器/计数器T、Tl的资源  由图.知定时器/计数器T、Tl主要由存放计数初值和经过值的两对位寄存器(TH、TL和THl、TLl)方式寄存器TMOD和控制寄存器TCON组成。其中TH、TL专门用于存放定时器/计数器T的计数初值和经过值THl、TLl用于存放定时器/计数器Tl的计数初值和经过值TMOD用于设置T、Tl的工作方式TCON中的TR、TRl用于控制T、Tl的运行P.、P.引脚用于输入在计数器方式下的外部计数脉冲信号。  定时器/计数器T、Tl用做定时器时对机器周期进行计数每经过一个机器周期计数器加直到计数器计满溢出。由于一个机器周期由l个时钟周期组成所以计数频率为时钟频率的/。所以定时器的定时时间不仅与计数器的初值即计数长度有关而且还与系统的时钟频率大小有关。                     图.定时器/计数器结构框图  定时器/计数器T、Tl用做计数时计数器对来自输入引脚To(P.)和Tl(P)的外部信号计数。计数器对外部脉冲信号的占空比没有特别的要求但必须保证输入的高电平和低电平信号至少应维持一个完整的机器周期。 .定时器/计数器T、Tl的方式寄存器TMOD  特殊功能寄存器TMOD为T、Tl的工作方式寄存器其格式如下:TMOD的低位为T的方式字段高位为Tl的方式字段它们的含义是完全相同的。  MM:T/Tl的工作方式选择位其对应关系如表.所示。  表.T/T工作方式选择位的意义M  M工作方式功能说明0  0方式1位定时器/计数器工作方式0  1方式1位定时器/计数器工作方式1  0方式2自动再装入的位定时器/计数器工作方式1  1方式3T:分为两个位定时器肘数器Tl:停止计数   C/T:定时器或计数器方式选择位。当C/T位为时选择定时器方式。在定时器方式中以时钟信号的l分频信号作为计数信号也就是每一个机器周期定时器加。当系统的时钟信号频率确定后定时器从初值开始加到定时器溢出所需要的时间是固定的所以称为定时器方式。  当C/T位置为时选择计数器方式。在计数器方式中对外部引脚(T为P.Tl为P.)上的输入脉冲信号进行计数。  GATE:T/Tl的门控位。当GATE位为时定时器肼数器T、Tl的运行仅受TR、TRl的控制不受外部引脚电平的状态的影响。当GATE位置为l时定时器/计数器T、Tl的运行不仅受TR、TRl的控制而且还受到外部引脚电平状态的控制(INT控制TINT控制Tl)。即只有当INT(INTl)引脚为高电平且TRO(TRl)位为l时才启动TO(T)计数当INTO(INTl)引脚为低电平或TR(TRl)位为时均使T(T)停止计数。  TMOD的字节映像地址为H只能按字节形式操作不能进行位寻址。复位时TMOD所有位均清为。  比如要使T以方式实现定时Tl以方式进行计数且均与外部引脚电平无关的方式控制字为即H若与外部引脚电平状态有关时的方式控制字为llB。即DAH。.定时器/计数器T、Tl的控制寄存器TCON  特殊功能寄存器TCON的高位存放定时器/计数器T、Tl的运行控制位和计数溢出标志位低位存放外部中断的触发方式控制位和锁存外部中断的请求标志位。其格式如下:TFlTRTFTRIEITIEIT  各位的功能和作用已在..节中介绍了在此不再重复。  ..定时器/计数器T、Tl的工作方式  定时器/计数器TO有种工作方式而定时器/计数器Tl只有种工作方式。不同的工作方式其内部的结构有所不同功能上也有差别。  .方式  方式为位定时器/计数器工作方式方式的内部结构如图.所示。  方式由TL/TLl的低位和TH/THl的位组成。当TL/TLl的低位产生溢出进位时向TH/THl进位TH/THl计数溢出时置溢出中断请求标志位TF/TFl为向CPU请求中断。  由图.可知在方式的T/Tl计数脉冲控制电路中有一个方式电子开关和允许计数控制电子开关。当C/T位为时方式电子开关与上面接通以时钟频率的l分频信号作为T/Tl的计数信号当C/T位为l时方式电子开关与下面接通此时以TO(P.)/Tl(P.)引脚上的输入脉冲作为T/Tl的计数脉冲。当GATE位为时由TR/TRl控制定时器工作当GATE位为l时定时器不仅受TR/TRl的控制而且还受INTINT引脚上的电平控制。  T/Tl以方式工作时定时/计数初值的计算方法如下:  当T/Tl以方式定时时假设时钟频率以fosc表示定时初值以a表示定时时间以t表示那么三者关系为:                 t=(a)         fosc  若给定定时时间的要求定时初值a的大小为:           tfosc        a=                比如fosc=MHzT的定时时间t=ms则定时初值a为:                   a====B                 因此TL的初值为lHTH的初值为H对T的初始化的子程序为:     INTT:MOVTH#H         MOVTL.#H         SETBEA         SETBET         SETBTRO  当T/Tl以方式计数时假设系统所需计取脉冲的个数以x表示计数初值以a表示则二者的关系为:                       a=x   .方式   方式l为位定时器/计数器工作方式方式的内部结构如图.所示。方式l由TL/TLl的位和TH/THl的位组成。当TL/TLl的位产生溢出进位时向TH/THl进位TH/THl计数溢出时置溢出中断请求标志位TF/TFl为向CPU请求中断。                       图.方式l的内部结构图  由图.可知方式的T/Tl计数脉冲控制电路与它们方式的情况相似仅仅是计数器的位数不同而已。  T/Tl以方式工作时定时/计数初值的计算方法如下:  当T/Tl以方式定时时假设时钟频率以/。表示定时初值以。表示定时时间以t表示那么三者关系为:                           t=(a)               fosc   若给定定时时间的要求定时初值a的大小为:          tfosc       a=              比如fosc=MHzTl的定时时间t=ms则定时初值a为:                           a====BEH                   因此TLl的初值为EOHTHl的初值为BH对Tl的初始化的子程序为:  INTTl:MOVTHl#BH      MOVTLl#EOH     SETBEA     SETBETl     SETBTRl  当T/Tl以方式计数时假设系统所需计取脉冲的个数以戈表示计数初值以x表示则二者的关系为:           a=x   .方式  方式为自动恢复计数初值的位定时器/计数器工作方式。T/Tl工作于方式或方式时若需要重复计数就需要用户用指令重新填充初值而方式在计数器溢出时会自动地装入新的计数初值开始新一轮的计数。由于方式或方式是通过指令装入计数初值的而执行指令需要时问因此在方式的定时时间比较准确。方式的内部结构如图.所示。  图.方式的内部结构图  在方式时TL/TLl作为位计数器TH/THl为自动恢复初值的位计数器。当TL/TLl计数发生溢出时一方面置溢出中断请求标志TF/TFl为向CPU请求中断同时又将T/THl的内容送入TL/TLl使T/Tl从初值开始重新加l计数。因此T/Tl工作于方式时定时精度高但定时时间范围小。  由图可知方式的TOT计数控制与方式和方式完全相同不同之处在于当CPU响应T/Tl的溢出中断后会自动将TH/THl的内容填充到TL/TLl。  T/Tl以方式工作时定时/计数初值的计算方法如下:  当T/Tl以方式定时时假设时钟频率以fosc表示定时初值以a表示,那么三者关系为:                    t=(a)           fosc  若给定定时时间的要求定时初值a的大小为:          tfosc       a=               比如fosc=MHzTl的定时时间t=μs则定时初值a为:                 a===                 因此TL的初值为TH的初值为对T的初始化的子程序为:           INTT:MOVTH#               MOVTL#               SETBEA               SETBET               SETBTR  当T/Tl以方式计数时假设系统所需计取脉冲的个数以菇表示计数初值以。表示则二者的关系为:                 a=x  .方式  方式为两个位定时器肘数器工作方式它只适用于定时器/计数器T若将Tl设置为方式则Tl将停止计数。方式内部逻辑结构如图.所示。   由图.可知方式是将T拆分为两个位定时器/计数器。其中位计数器TL使用原来T的控制位(C/T、GATE、TR、INT)形成一个位的定时器/计数器它既可以定时(对时钟频率的l分频信号进行计数)也可以实现计数而位计数器TH占用原来Tl的控制位(TRl、TFl)它只能对内部计数脉冲进行计数其运行仅受TRl位的控制而与外部引脚INTl的电平状态无关。   定时器/计数器T工作于方式时定时器/计数器Tl仍可设置为方式、方式、方式。但由于TRl、TFl已被定时器TH占用此时定时器/计数器仅由控制位C/T设置其定时或计数方式当计数器计满发生溢出时只能将输出送往串行口。在这种情况下Tl一般用做串行口波特率发生器或不需要中断的场合。  方式的两个位定时器/计数器的定时或计数初值的计算方法与方式完全相同不再重复。..定时器/计数器应用举例  MCS系列单片机的定时器/计数器均是可编程的在利用定时器/计数器进行定时或计数之前必须要通过软件对它们进行初始化。初始化包括的内容如下:  根据实际需要确定工作方式对方式寄存器TMOD初始化。即根据实际的需要选择工作方式形成相应的方式控制字在程序中将方式控制字填充给TMOD。  根据实际定时/计数的需要确定初值进行定时/计数初值的填充。  根据需要开放相应的中断即对中断允许控制寄存器IE进行初始化。  启动定时器/计数器工作即根据需要对TCON进行初始化。  例.利用T产生lms的定时使Pl.引脚输入一个周期为ms占空比为:的方波信号(假定时钟频率f。=MHz)。  解:分析要形成周期为ms的方波信号只要利用T产生定时每隔ms将Pl.引脚状态取反即可。  ()确定工作方式:T要实现lms的定时方式和方式均可在此选择方式而在此例中没有对Tl提出任何要求所以TMOD的高位任意。因此方式控制字为:B=H。  ()确定定时初值:                   图.例.的控制程序流程图  例.采用定时器控制Pl.引脚输出一个周期为分钟占空比为:的方波信号(时钟频率为MHz)。  解:要形成周期为分钟的方波信号只要每隔l分钟将Pl.引脚的状态取反即可。而T/Tl无论是采用方式、方式或方式都不可能直接实现分钟的定时时间。对于这种长时间的定时一般可以采用两种方法:一种方法是采用定时器定时加软件计数方法来实现长定时这种方法省硬件资源。另一种方法是将两个定时器/计数器合用实现长定时方法这种方法占用两个定时器/计数器其中一个作为定时器另一个作为计数器所以硬件资源占用多而且要进行外部连线。  下面采用定时器定时加软件计数的方法来实现长定时功能。  假设用Tl定时ms软件计数次实现l分钟定时。为此用H单元作ms计数单元计满次为lsH单元为秒计数单元计满次为l分钟。  ()方式控制字:要实现ms的定时只有Tl工作于方式所以方式控制字为:B=H。  ()定时初值tINCLUDEPICTURE"http:xbgxsdxycnjisuanjijpkcjxnrchapterjpg"*MERGEFORMATINET      图.例.的控制程序流程图      ()程序流程图如图.所示程序清单如下:            ORG     H             LJMP    MAIN             ORG     BH             LJMP    INTTl          MAIN:MOV    SP#H  设置堆栈区             MOV    TMOD#H 送方式控制字             MOV    THl#CH  送定时初值             MOV    TLl#H             SETB    EA      开放Tl中断              SETB    ETl             ETB    TRl     启动Tl开始定时             MOV    H#  秒单元赋初值             MOV    H#  分单元赋初值             SJMP    $     等待          INTTl:MOV    THl#CH  重装初值             MOV    TLl.#BOH             DJNZ    HN  ls未到转NO             MOV    H#             DJNZ   HN  分钟未到转NO             MOV    H#             CPL     Pl.N:RETI  END  在上述两个例子中中断服务程序都要进行计数器初值重装等操作。这样在定时器溢出发出中断请求到重装完初值并在此基础上重新开始计数定时总有一定的时间间隔造成定时时间多增加了若干微秒的时间。如果采用工作方式可避免重装初值所造成的误差使定时器定时比较精确但方式的计数长度只有位定时时间较短。  前面两个例子是定时器方式的应用比较起来方式没有可取之处如果要求定时时间长时直接就使用方式l而不会去考虑使用方式。通过两个例子基本掌握了定时中断该如何应用实际上定时器肼数器的中断请求标志也可以供查询使用请看例.。   例.将T对外部脉冲进行计数每计满次后从Pl.输出宽度为ms的高电平如此循环下去(时钟频率为MHz)。   解:上述问题是T交替工作于计数器方式和定时器方式先计数计满次后改为定时器方式ms后又回到计数器方式。设计数器为方式定时器为方式则:  ()T的方式控制字:计数时为B=H定时时为OB=H。  ()T的定时初值:计数初值为cH定时初值为FEOCH。  程序流程图如图.所示。  稗序清单如下:         RG H      CNT:CLR  TR         MOV TMOD#H T为计数方式         MOV TH#CH 送计数初值         MOV TL#CH         SETB TR    启动T计数         CLR  Pl  Pl.为低电平      WAITl:JBC TFTIM 次未满则等待          SJMP  WAITl     TIM: CLR  TR   停止T工作     SETB Pl.       Pl.为高电平        MOV  TMOD#H T为定时方式        MOV  TH#FEH 送定时初值        MOV  TL#CH        SETB  TR    启动T定时     WAIT:JBC  TFCNT ms未到则等待         SJMP  WAIT     END  例.利用T确定外部丽引脚上出现的正脉冲的宽度并将测到的机器周期的个数存入H开始的单元中。  解:根据要求将T设定为定时器工作方式l门控位GATE置初值取。当外部INT引脚变为高电平时启动T定时(外触发)当外部丽引脚变为低电平时停止T定时。这样T停止定时时的当前值就是外部丽引脚为高电平期间所经过的机器周期的个数(假设外部的脉冲宽度不超过个周期)。   ()方式控制字为B即H。   ()T的定时初值为H。程序流程图如图.所示。             图.例.的控制程序流程图   图.例.的控制程序流程图程序清单如下:    ORG HMAIN:MOV TMOD#H  送方式控制字   MOV  TL#   送定时初值   MOV  TH#WAITl:JNB  P.WAITl  等待P.变为高电平   SETB  TR      启动T开始定时WAIT:JB  P.WAIT  等待P.变为低电平   CLR   TR   MOV  R#H    数据指针赋值   MO  VRTL   保存机器周期数据的低位   INC   R   MOV  RTH   保存机器周期数据的高位   SJMP   $END  思考题:如果要求既测量外部脉冲信号的高电平宽度又要求测量外部脉冲信号的低电平宽度该如何处理呢本章小结  中断是一个过程是CPU暂停现行操作去为提出服务要求的外设服务当服务完成后回到原有操作继续执行的过程中断是计算机的一项重要技术。本章要求:了解中断源、中断的功能、中断系统的组成与功能、中断优先权管理、中断响应条件、中断响应过程、中断嵌套等基本概念掌握MCS单片机的个中断源掌握外部中断的触发方式INT与INT的触发方式有边沿方式与电平方式两种掌握定时器/计数器的计数脉冲来源计数脉冲来自内部振荡频率的分频后的脉冲则称为定时器方式计数脉冲来自外部引脚则称为计数器方式掌握中断请求标志的清除方式边沿方式下的丽与丽、T、Tl的中断请求标志是自动被清除的而串行口的中断是用户通过软件清除的电平触发的丽与丽还需要硬件的支持才能被清除掌握TO与Tl的工作方式以及各种方式的应用掌握TCON、SCON、IE、IP、TMOD等特殊功能寄存器的功能与应用掌握MCS单片机对各中断源的响应条件与过程。

我要回帖

更多关于 简述单片机的中断响应过程 的文章

 

随机推荐