C51的中断系统及定时计数器-宋.ppt

上传人:wuy****n92 文档编号:70099848 上传时间:2023-01-16 格式:PPT 页数:62 大小:398.50KB
返回 下载 相关 举报
C51的中断系统及定时计数器-宋.ppt_第1页
第1页 / 共62页
C51的中断系统及定时计数器-宋.ppt_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《C51的中断系统及定时计数器-宋.ppt》由会员分享,可在线阅读,更多相关《C51的中断系统及定时计数器-宋.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第6章 80C51的中断系统及定时/计数器 6.1 中中断概断概述述6.2 中断处理过程中断处理过程6.3 80C51的中断系统及其控制的中断系统及其控制6.4 80C51的中断源的扩展的中断源的扩展6.5 80C51的定时的定时/计数器及其应用计数器及其应用6.1 6.1 中断概述中断概述1.1.中断的概念中断的概念CPUCPU在正常执行程序过程中,由于一些突发事在正常执行程序过程中,由于一些突发事件或故障的产生,导致件或故障的产生,导致CPUCPU暂时中止当前操作,暂时中止当前操作,而转去执行处理突发事件或故障的相应程序,而转去执行处理突发事件或故障的相应程序,并且在该程序执行完成之后,返

2、回原程序继续并且在该程序执行完成之后,返回原程序继续执行,这样的过程叫做中断执行,这样的过程叫做中断 。原来正常执行的程序称为原来正常执行的程序称为主程主程序序;用来处理突发事件或故障的程用来处理突发事件或故障的程序称为序称为中断处理子程序中断处理子程序或或中断中断服务子程序服务子程序;导致中断产生的原因称为导致中断产生的原因称为中断中断源源;主程序被中断源打断,转去执主程序被中断源打断,转去执行中断服务子程序的位置称为行中断服务子程序的位置称为断点断点。2.2.中断的作用中断的作用用于实现突发事件和故障处理用于实现突发事件和故障处理用于实现同步操作用于实现同步操作可用于实现实时处理可用于实现

3、实时处理用于操作系统对硬件的管理用于操作系统对硬件的管理3.3.中断源的分类中断源的分类从中断执行过程的角度来看,可以分成两类:从中断执行过程的角度来看,可以分成两类:(1 1)处理器预先考虑的中断)处理器预先考虑的中断(2 2)处理器没有预先考虑而需要扩展的中断)处理器没有预先考虑而需要扩展的中断6.2 6.2 中断处理过程中断处理过程 1.1.简单中断(只有一个中断源)简单中断(只有一个中断源)(1)中断源识别和中断入口地址查找)中断源识别和中断入口地址查找(2)保护断点)保护断点 程序计数器或指令指针入栈,由硬件自动完成。程序计数器或指令指针入栈,由硬件自动完成。(3)执行中断服务子程序

4、)执行中断服务子程序保护现场,程序主体,恢复现场保护现场,程序主体,恢复现场(4)中断返回)中断返回 2.2.复杂中断的执行复杂中断的执行 系统中多个中断同时发生和发生时正在执行中断系统中多个中断同时发生和发生时正在执行中断服务子程序,服务子程序,则出现了复杂中断管理的问题。则出现了复杂中断管理的问题。(1)中断优先级)中断优先级 给不同的中断源设置不同优先权等级,多个中断给不同的中断源设置不同优先权等级,多个中断源同时申请中断,处理器优先响应优先级高的中断。源同时申请中断,处理器优先响应优先级高的中断。这就是处理器的中断排队原则。这就是处理器的中断排队原则。(2)中断嵌套)中断嵌套 高级中断

5、是否可以打断低级中断;高级中断是否可以打断低级中断;低级中断是否可以打断高级中断;低级中断是否可以打断高级中断;同级中断是否可以打断同级中断;同级中断是否可以打断同级中断;6.3 80C516.3 80C51的中断系统及其控制的中断系统及其控制1.80C511.80C51的中断系统结构及中断源的中断系统结构及中断源 有有5个中断源个中断源 定时定时/计数器计数器0(T0)和定时和定时/计数器计数器1(T1)中断中断 串行通信接口中断串行通信接口中断(TX,RX)外部中断外部中断0和外部中断和外部中断1 2.2.中断源和中断申请标志位中断源和中断申请标志位 复位后所有中断申请标志位清零,表示没有

6、中复位后所有中断申请标志位清零,表示没有中断申请。断申请。每个标志位可以按位寻址。每个标志位可以按位寻址。(1)TCONTCON的地址是的地址是88H位地位地址址8FH8EH8DH8CH8BH8AH89H88H位名位名称称TF1TF0IE1IT1IE0IT0TF1TF1:定时:定时/计数器计数器1(T1)1(T1)中断申请标志位,当计数中断申请标志位,当计数器计数溢出时,该位置为器计数溢出时,该位置为1 1。在中断被响应后,该在中断被响应后,该位由硬件自动清除。位由硬件自动清除。在查询方式下由软件清除。在查询方式下由软件清除。TF0 TF0:定时:定时/计数器计数器0(T0)0(T0)中断申请

7、标志位。具体操中断申请标志位。具体操作同作同TF1TF1。IE1IE1:外部中断:外部中断1 1中断标志。在外部中断设为下降沿中断标志。在外部中断设为下降沿触发时,引脚的下降沿设置该位为触发时,引脚的下降沿设置该位为1 1,中断被响应中断被响应后,该位自动清零;后,该位自动清零;在外部中断设为低电平触发时,在外部中断设为低电平触发时,该位的值与引脚的电平相反。该位的值与引脚的电平相反。IE0IE0:外部中断外部中断0 0中断标志位。具体操作同中断标志位。具体操作同IE1IE1。IT1IT1:外部中断:外部中断1 1触发方式选择位。触发方式选择位。IT1=1IT1=1,引脚为,引脚为下降沿触发下

8、降沿触发;IT1=0IT1=0,引脚为低电平触发,引脚为低电平触发。IT0 IT0:外部中断:外部中断0 0触发方式选择位。具体操作同触发方式选择位。具体操作同IT1IT1。当定时当定时/计数器计数溢出时,在最近机器周期的计数器计数溢出时,在最近机器周期的S5P2期间向中断标志位进位,从而设置中断标志位期间向中断标志位进位,从而设置中断标志位TF0或者或者TF1为为1。中断标志位置中断标志位置1后,会一直保持到中断被响应,然后,会一直保持到中断被响应,然后单片机内部硬件自动对它清零;查询方式下,即没后单片机内部硬件自动对它清零;查询方式下,即没有使用中断,只能用软件清零有使用中断,只能用软件清

9、零。外部中断:外部中断:分别是分别是从(从(P3.2P3.2)和)和 (P3.3)(P3.3)引脚输入引脚输入。当。当ITX=0时,时,外部中断外部中断X为低电平触发,为低电平触发,ITX=1时为下降沿触发。时为下降沿触发。(X=0,1)下降沿触发时:在每个机器周期的下降沿触发时:在每个机器周期的S5P2期间扫描期间扫描外部中断输入引脚的电平状态。在外部中断输入引脚的电平状态。在连续两次扫描到连续两次扫描到高电平和低电平时,设置中断标志位高电平和低电平时,设置中断标志位IExIEx为为1 1,表示表示外部有中断申请,外部有中断申请,该中断申请信号会一直保持到该该中断申请信号会一直保持到该外部中

10、断被处理器响应后,外部中断被处理器响应后,由硬件自动清除。由硬件自动清除。低电平触发时,引脚变为低电平时,低电平触发时,引脚变为低电平时,IEx为为1,表示,表示有外部中断申请,并一直保持为有外部中断申请,并一直保持为1,直到外部中断直到外部中断引脚变为高电平,中断标志引脚变为高电平,中断标志IEx位才清位才清0。电平触发时,外部中断申请的电平电平触发时,外部中断申请的电平必须保持外部中必须保持外部中断输入引脚为低电平,直到中断被响应,而且必须断输入引脚为低电平,直到中断被响应,而且必须在中断被响应后变成高电平,以撤销中断申请。在中断被响应后变成高电平,以撤销中断申请。若若低电平时间太短,则可

11、能导致中断不会被响应;若低电平时间太短,则可能导致中断不会被响应;若太长,在中断子程序执行完成后仍为低电平,太长,在中断子程序执行完成后仍为低电平,IEx会保持为会保持为1不变,会被认为是新的中断申请,导致不变,会被认为是新的中断申请,导致一次中断申请多次响应。一次中断申请多次响应。TI:串口发送完成中断标志。:串口发送完成中断标志。TI=1,表示一帧数据,表示一帧数据发送完毕。发送完毕。RI:串口接收数据中断标志。:串口接收数据中断标志。RI=1,表示串口接收,表示串口接收到一帧新的数据。到一帧新的数据。(2 2)SCONSCON中的标志位及串口中断中的标志位及串口中断 SCON的地址是的地

12、址是98H 位地址位地址9FH9EH9DH9CH9BH9AH99H98H位名称位名称TIRI串口发送中断:串口发送中断:把数据写入把数据写入SBUFSBUF后,硬件自动逐位从后,硬件自动逐位从TXTX引脚发出引脚发出数据,最后一个数据发送完成后,在最近机器周数据,最后一个数据发送完成后,在最近机器周期的期的S5P2S5P2期间,置位期间,置位TITI中断标志位,表示数据发中断标志位,表示数据发送完毕。送完毕。该标志位一直有效,且不会硬件自动清该标志位一直有效,且不会硬件自动清除,只能软件清除。除,只能软件清除。串口接收中断:当当RXRX上有数据输入时,串行通信接口电路自动上有数据输入时,串行通

13、信接口电路自动接收数据,在接收到完整的一帧数据后,在最接收数据,在接收到完整的一帧数据后,在最近机器周期的近机器周期的S5P2S5P2期间,置位期间,置位RIRI中断标志位,中断标志位,表示接收到新的串口数据。表示接收到新的串口数据。该标志位一直有效,该标志位一直有效,且不会硬件自动清除,只能软件清除。且不会硬件自动清除,只能软件清除。3中断控制中断使能寄存器IE的地址是A8H 位地址位地址AFHAEHADHACHABHAAHA9HA8H位名称位名称EAESET1EX1ET0EX0 EA:全局中断使能控制位。全局中断使能控制位。只有只有EA=1,所有中断才,所有中断才可能被响应;可能被响应;E

14、A=0,所有中断都不能被响应。,所有中断都不能被响应。ES:串口中断使能控制位串口中断使能控制位。ES=1,允许响应串口发,允许响应串口发送中断和接收中断;送中断和接收中断;ES=0,禁止响应串口发送中断和,禁止响应串口发送中断和接收中断。接收中断。ET1:定时定时/计数器计数器1中断使能控制位中断使能控制位。ET1=1,允许,允许响应定时响应定时/计数器计数器1中断,中断,ET1=0禁止响应定时禁止响应定时/计数器计数器1中断。中断。EX1:外部中断外部中断1使能控制位。使能控制位。EX1=1,允许响应外,允许响应外部中断部中断1,EX1=0禁止禁止 响应外部中断响应外部中断1。ET0:定时

15、定时/计数器计数器0中断使能控制位中断使能控制位。具体操作同。具体操作同ET1。EX0:外部中断外部中断0使能控制位使能控制位。具体操作同。具体操作同EX1。4 4中断优先权管理和中断嵌套原则中断优先权管理和中断嵌套原则 单片机有两个优先权等级,其中断优单片机有两个优先权等级,其中断优先处理的原则是:先处理的原则是:高级中断和低级中断同时申请中断时,优先响高级中断和低级中断同时申请中断时,优先响应高级中断;应高级中断;同级有多个中断同时发生时,按以下自然优先同级有多个中断同时发生时,按以下自然优先级顺序处理。级顺序处理。中断源中断源自然自然优优先先级级外部中断外部中断0 0 高高低低定定时时/

16、计计数器数器0 0中断中断(T0T0)外部中断外部中断1 1 定定时时/计计数器数器1 1中断中断(T1T1)串口中断串口中断中断嵌套的原则是:中断嵌套的原则是:高级中断可以打断低级中断,低级中断不能打断高级中断可以打断低级中断,低级中断不能打断高级中断,同级中断不能打断同级中断。高级中断,同级中断不能打断同级中断。中断优先级寄存器中断优先级寄存器IPIP的地址是的地址是B8HB8H位地址位地址BFHBFHBEHBEHBDHBDHBCHBCHBBHBBHBAHBAHB9HB9HB8HB8H位名称位名称PSPSPT1PT1PX1PX1PT0PT0PX0PX0 PS:串口中断优先权设置位。串口中断

17、优先权设置位。PS=1,串口中断设为高级中断;,串口中断设为高级中断;PS=0,串口中断设为低级中断。,串口中断设为低级中断。(下同)下同)PT1:定时定时/计数器计数器1中断优先权设置位。中断优先权设置位。PX1:外部中断外部中断1优先权设置位。优先权设置位。PT0:定时定时/计数器计数器0中断优先权设置位。中断优先权设置位。PX0:外部中断外部中断0优先权设置位。优先权设置位。5 5中断服务程序的执行中断服务程序的执行 当前面所有的中断响应的条件都满足时,处当前面所有的中断响应的条件都满足时,处理器会在结束当前指令后的下一个机器周期,由理器会在结束当前指令后的下一个机器周期,由硬件执行一条

18、硬件执行一条LCALLLCALL指令。自动转到满足中断条件指令。自动转到满足中断条件的的中断源入口中断源入口地址去执行中断服务程序。在地址去执行中断服务程序。在80C5180C51单片机中,中断程序的入口地址是固定的。单片机中,中断程序的入口地址是固定的。入口地址入口地址中断源中断源0000H0000H非中断源,程序复位后开始执行的地址非中断源,程序复位后开始执行的地址0003H0003H外部中断外部中断0 0000BH000BH定时定时/计数器计数器0 00013H0013H外部中断外部中断1 1001BH001BH定时定时/计数器计数器1 10023H0023H串行通信口串行通信口6.6.

19、中断服务子程序的编写中断服务子程序的编写 ORG 0030H;地址由用户自己设定;地址由用户自己设定INT_EX0_HADLE:;此例中外部中断;此例中外部中断0子程序从地址子程序从地址0030H开始开始CLR EA;保护现场之前,关中断;保护现场之前,关中断PUSHPSW;保护状态寄存器;保护状态寄存器PSWPUSHACC;保护累加器;保护累加器PUSH;保护中断服务子程序中其他使用到的寄存器;保护中断服务子程序中其他使用到的寄存器SETEA;保护现场完成后,开中断。;保护现场完成后,开中断。;此处也可不写,表示不允许中断嵌套,;此处也可不写,表示不允许中断嵌套,;中断服务子程序的主体,由用

20、户编写;中断服务子程序的主体,由用户编写CLREA;恢复现场之前,关中断。;恢复现场之前,关中断。;若前面没有开中断,则此句可不写;若前面没有开中断,则此句可不写POP;恢复现场;恢复现场POP ACCPOP PSWSETEA;中断完成后,开中断。;中断完成后,开中断。RETI;中断返回,中断服务子程序结束。;中断返回,中断服务子程序结束。7.7.中断撤销中断撤销外部中断:外部中断:下降沿触发的外部标志是在下降沿触发的外部标志是在中断响应后硬件自动清除的;中断响应后硬件自动清除的;低电平触发的外部中断标志低电平触发的外部中断标志只能通过使外部信号变为只能通过使外部信号变为1 1来来撤销申请。撤

21、销申请。定时定时/计数器:计数器:在中断响应后硬件自动清除在中断响应后硬件自动清除的;在查询方式时需由软件的;在查询方式时需由软件清清0 0。串口中断:串口中断:均由软件清除。均由软件清除。8.8.中断响应时间中断响应时间处理器收到中断请求后,下一个机器周期是否转去执行中断服处理器收到中断请求后,下一个机器周期是否转去执行中断服务子程序,还受到以下影响:务子程序,还受到以下影响:若当前机器周期不是处理器正在执行的指令的最后若当前机器周期不是处理器正在执行的指令的最后一个机器周期,则需要等到指令执行完成。一个机器周期,则需要等到指令执行完成。若正在执行若正在执行RETI指令或者是其他读写与中断有

22、关的指令或者是其他读写与中断有关的寄存器寄存器IE、IP的指令,则需要在执行完该指令后,再的指令,则需要在执行完该指令后,再执行一条指令,然后再转入中断服务子程序执行一条指令,然后再转入中断服务子程序。中断返回后至少执行一条指令后才能响应新的中断中断返回后至少执行一条指令后才能响应新的中断。中断申请到执行第一条中断服务程序的最短时间是中断申请到执行第一条中断服务程序的最短时间是3个机器周期(优先权扫描个机器周期(优先权扫描1机器周期,机器周期,LCALL指令指令2个机器周期)。个机器周期)。若遇到不是执行指令的最后一个机器若遇到不是执行指令的最后一个机器周期和正在执行周期和正在执行RETRET

23、、RETIRETI或任何访问或任何访问IEIE或或IPIP寄存器指寄存器指令时,则需要最长的等待时间不超过令时,则需要最长的等待时间不超过8 8个机器周期(个机器周期(3 3个最短周期,和个最短周期,和5 5个最长等待周期。)个最长等待周期。)9.9.中断系统的应用中断系统的应用 初始化的内容包括初始化的内容包括打开全局中断、中断中断控制打开全局中断、中断中断控制位、中断源的优先权。位、中断源的优先权。例:使用外部中断例:使用外部中断0,下降沿触发,定时器,下降沿触发,定时器1中断,串中断,串口接收中断,其他中断关闭不用,串口中断具有最高口接收中断,其他中断关闭不用,串口中断具有最高优先级。优

24、先级。MOVIE,#00011001B MOVIP,#00010000B SETBIT0 SETBEA6.4 80C516.4 80C51的中断源的扩展的中断源的扩展 一种通过外部中断入口和并口结合扩展中断一种通过外部中断入口和并口结合扩展中断的方法。的方法。ORG 0000HAJMP MAIN_START ORG000BH AJMP INT_EX0_HANDLE ORG0030H INT_EX0_HANDLE:CLR EAPUSH PSW ;保护状态寄存器;保护状态寄存器PSWPUSH ACC ;保护累加器;保护累加器PUSH JNBP1.0,INT_EEX0;查询扩展外部中断;查询扩展外部

25、中断0JNBP1.1,INT_EEX1;查询扩展外部中断;查询扩展外部中断1JNBP1.2,INT_EEX2;查询扩展外部中断;查询扩展外部中断2JNBP1.3,INT_EEX3;查询扩展外部中断;查询扩展外部中断3END_INT_EX0_HANDLE:POP ;恢复现场恢复现场POP ACC;POP PSW;SET EA;中断完成后中断完成后,开中断。开中断。RETI INT_EEX0:;扩张外部中断扩张外部中断0处理处理AJMP END_INT_EX0_HANDLE:INT_EEX1:;扩张外部中断扩张外部中断1处理处理AJMP END_INT_EX0_HANDLE:INT_EEX2:;扩

26、张外部中断扩张外部中断2处理处理AJMP END_INT_EX0_HANDLE:INT_EEX3:;扩张外部中断扩张外部中断3处理处理AJMP END_INT_EX0_HANDLE:ORG 0100HMAIN_START:SETB EX0;打开外部中断打开外部中断0SETB EA;开全局中断开全局中断6.5 80C516.5 80C51的定时的定时/计数器及其应用计数器及其应用计数器常用的实现方法:计数器常用的实现方法:使用专门设计的硬件电路实现。使用专门设计的硬件电路实现。使用软件来实现。使用软件来实现。使用可编程定时使用可编程定时/计数器来实现。计数器来实现。80C51系列单片机,集成了系

27、列单片机,集成了2个可编程个可编程16位定时位定时/计数器。每个定时计数器。每个定时/计数器独立工作,可以工作在计数器独立工作,可以工作在计数和定时两种模式,有计数和定时两种模式,有4种工作方式。种工作方式。1.1.定时定时/计数器的结构计数器的结构2.2.定时定时/计数器的时钟源计数器的时钟源选择内部时钟时,时钟频率固定,常用作定时器;选择内部时钟时,时钟频率固定,常用作定时器;选择外部输入信号时,常用来对外部事件计数。选择外部输入信号时,常用来对外部事件计数。(1 1)选择内部时钟)选择内部时钟 由由80C5180C51单片机主时钟的单片机主时钟的1212分频产生的,如果选择分频产生的,如

28、果选择12MHz12MHz的晶振或者外部输入的晶振或者外部输入12MHz12MHz时钟,则计数器时钟周时钟,则计数器时钟周期为:期为:(2)选择外部时钟)选择外部时钟由引脚由引脚T0(P3.4)、T1(P3.5)输入。计数时钟下降沿输入。计数时钟下降沿有效。有效。由于采样一个下降沿需要两个机器周期,由于采样一个下降沿需要两个机器周期,因此外部计数时钟的最高频率是因此外部计数时钟的最高频率是fosc/24fosc/24。使用外部时钟时,常用来对外部事件计数。设使用外部时钟时,常用来对外部事件计数。设置计数初值为零,然后对外部事件计数,计数结置计数初值为零,然后对外部事件计数,计数结束后,读取计数

29、结果。束后,读取计数结果。3.3.定时定时/计数器的控制寄存器和模式寄存器计数器的控制寄存器和模式寄存器(1)模式寄存器模式寄存器TMODTMOD地址是地址是89H 定定时时/计计数器数器1定定时时/计计数器数器0D7D6D5D4D3D2D1D0名称名称GATEC/TM1M0GATEC/TM1M0GATE:计数器门控位。:计数器门控位。C/T:时钟选择控制位。:时钟选择控制位。M1M0:工作方式选择位。:工作方式选择位。(2)控制寄存器控制寄存器TCONTCON地址是地址是88H位地址8FH8EH8DH8CH8BH8AH89H88H位名称TF1TR1TF0TR0IE1IT1IE0IT0TF1:

30、定时:定时/计数器计数器1中断申请标志位,当计数器计数中断申请标志位,当计数器计数溢出时,该位为溢出时,该位为1。在中断被响应后,该位由硬件自。在中断被响应后,该位由硬件自动清除。在查询方式下由软件清除。动清除。在查询方式下由软件清除。TR1:定时:定时/计数器计数器1的启动控制位。的启动控制位。当当GATE=0时,时,TR1=1启动计数器启动计数器1计数,计数,TR1=0,计数器,计数器1停止计停止计数,保持原值;数,保持原值;当当GATE=1时,时,TR1=1且且INT1=1时,时,启动计数器启动计数器1计数,计数,TR1=0或或INT1=0,计数器,计数器1停止停止计数,保持原值。计数,

31、保持原值。启动计数的指令为:启动计数的指令为:SETB TR1SETB TR1,停止计数指令为:停止计数指令为:CLR TR1CLR TR1。TF0:定时:定时/计数器计数器0中断申请标志位。具体操作同中断申请标志位。具体操作同TF1。TR0:定时:定时/计数器计数器0的启动控制位,具体操作同的启动控制位,具体操作同TR1。4.4.定时定时/计数器的计数器的4 4种工作方式种工作方式(1)(1)方式方式1 1:1616位定时位定时/计数器计数器例:某例:某80C51单片机系统的工作时钟为单片机系统的工作时钟为12MHz,定时时间为定时时间为800us,使用定时器,使用定时器0的方式的方式1工作

32、,则工作,则计数初值计数初值分开高分开高8位,低位,低8位,位,则则TH0=0FCH,TL0=0DFH。(2)方式方式0:13位定时位定时/计数器计数器 方式方式0使用了使用了TH0的的8个比特位,加上个比特位,加上TL0的低的低5个比特位,构成了一个个比特位,构成了一个13位计数器。位计数器。例如,某例如,某80C51单片机系统的工作时钟为单片机系统的工作时钟为6MHz,定时时间为定时时间为800us,使用定时器,使用定时器0的方式的方式0工作,则工作,则计数初值为计数初值为在在给给T0设设置初置初值时值时,要特,要特别别注意,分开高注意,分开高8位,低位,低5位,此例中,位,此例中,TH0

33、1EH,TL070H,而是而是TH0=11110011=0F3H,TL0=10000=10H。(3)方式方式2:自动重装的:自动重装的8位定时位定时/计数器计数器例:某例:某80C51单片机系统的工作时钟为单片机系统的工作时钟为3MHz,要,要求定时时间为求定时时间为800us,使用定时器,使用定时器0的方式的方式2工作时,工作时,则计数初值为则计数初值为设设置置TL0=38H,TH0=38H。(4)方式方式3:只有计数器只有计数器T0可以工作在方式可以工作在方式3。T0T0方式方式3 3下的下的T1T1方式方式2 2结构结构 5.定时定时/计数器的初始化计数器的初始化(1)(1)设置中断使能

34、寄存器设置中断使能寄存器IEIE。(2)(2)设置计数器模式寄存器设置计数器模式寄存器TMODTMOD。(3)(3)计算和设置计数初值计算和设置计数初值(4)(4)如果计数器工作在中断模式,则这时需要打开如果计数器工作在中断模式,则这时需要打开全局中断。全局中断。(5)(5)启动计数器工作。启动计数器工作。(6)(6)编写计数器主体程序编写计数器主体程序6.6.定时定时/计数器的应用计数器的应用(1)(1)通过定时器扩展外部中断源通过定时器扩展外部中断源例:把外部中断源接到定时例:把外部中断源接到定时/计数器计数器0 0的外部时钟输的外部时钟输入脚入脚T0T0(P3.4P3.4)。设置定时)。

35、设置定时/计数器计数器0 0为方式为方式2 2自动重装自动重装方式,计数器模式,计数初值为方式,计数器模式,计数初值为0FFH0FFH,中断使能打开。,中断使能打开。当外部时钟输入产生下降沿时,计数溢出,当外部时钟输入产生下降沿时,计数溢出,TF0TF0置位,置位,产生中断。由于工作在方式产生中断。由于工作在方式2 2,所以自动重装初值,所以自动重装初值0FFH0FFH,外部再次输入下降沿,则产生新的中断。,外部再次输入下降沿,则产生新的中断。由此就扩由此就扩展了一个下降沿有效的外部中断源。展了一个下降沿有效的外部中断源。ORG 0000HAJMP MAIN_STARTORG 000BH AJ

36、MP INT_T0_EEX0_HANDLE ORG 0030HINT_T0_EEX0_HANDLE:CLR EA PUSH PSWPUSH ACCPUSH ;外部扩展中断源处理子程序外部扩展中断源处理子程序POP POP ACCPOP PSWRETIORG 0100HMAIN_START:SETB ET0 MOV IP,#00HANL TMOD,#F0H ORL TMOD,#00000110BMOV TH0,#0FFHMOV TL0,#0FFHSETB TR0 SETB EA STOP:AJMP$(2 2)定时器模式的应用)定时器模式的应用例例:设设单单片片机机的的晶晶振振频频率率为为12MH

37、z,现现要要求求从从P1.0输输出出周周期期为为500us(频频率率为为2kHz),占占空空比比50%的的方波。方波。晶振频率为晶振频率为12MHz,则计数器时钟周期为,则计数器时钟周期为1us,由于周期为,由于周期为500us,占空比,占空比50%,则高低电,则高低电平时间各为为平时间各为为250us,定时时间为,定时时间为250us。方法一:使用计数器方法一:使用计数器0 0,方式,方式0 0,查询方式,查询方式计数初值:计数初值:设置设置TH0=11111000B=0F8H,TL0=00110B=06H。工作在方式字:工作在方式字:TMOD=00000000B=00H。查询方式下,不需要

38、初始化查询方式下,不需要初始化IEIE。初始化使初始化使P1.0=0,然后每次定时溢出时,使,然后每次定时溢出时,使P1.0翻翻转即可。转即可。TF0TF0需要在程序中软件清零。需要在程序中软件清零。ORG 0000HAJMP MAIN_STARTORG 0100HMAIN_START:MOV TMOD,#00H MOV TH0,#0F8H MOV TL0,#06HCLR P1.0SETB TR0 WAIT:JNB TF0,$CLR TF0MOV TH0,#0F8HMOV TL0,#06HCPL P1.0AJMP WAIT END方法二:使用定时方法二:使用定时/计数器计数器1 1,方式,方式

39、1 1,中断方式,中断方式计数初值:计数初值:则则TH1=0FFH,TL1=06H。工作方式字:定时器模式,软件启动,则工作方式字:定时器模式,软件启动,则TMOD=00010000B=10H。使用中断方式,设置使用中断方式,设置ET1=1,允许定时,允许定时/计数器计数器1中断。其他使能位不变。在初始化最后打开全局中断。其他使能位不变。在初始化最后打开全局中断使能位中断使能位EA。初始化使。初始化使P1.0=0。在中断服务子。在中断服务子程序中,使程序中,使P1.0翻转即可。翻转即可。ORG 0000HAJMP MAIN_STARTORG 001BHAJMP INT_T1_HANDLEORG

40、 0030HINT_T1_HANDLE:MOV TH1,#0FFHMOV TL1,#06HCPL P1.0RETI ORG 0100HMAIN_START:MOV TMOD,#10H SETB ET1 MOV TH1,#0FFH MOV TL1,#06HCLR P1.0SETB EASETB TR1WAIT:AJMP$END方法三:使用定时方法三:使用定时/计数器计数器1 1,方式,方式2 2,中断方式,中断方式在方法一和方法二中,每次需要软件重转计数初值,在方法一和方法二中,每次需要软件重转计数初值,因此实际产生的方波周期不是因此实际产生的方波周期不是500ms。使用方式。使用方式2就可以解

41、决这个问题。就可以解决这个问题。方式方式2的计数初值为的计数初值为 则则TL1=06H,TH1=06H。TMOD=00100000B=20H。使用中断方式,设使用中断方式,设ET1=1,在初始化最后打开全局中断使能位,在初始化最后打开全局中断使能位EA。初。初始化使始化使P1.0=0。在中断服务子程序中,使。在中断服务子程序中,使P1.0翻转。翻转。ORG 0000HAJMP MAIN_STARTORG 001BHAJMP INT_T1_HANDLEORG 0030HINT_T1_HANDLE:CPL P1.0RETI ORG 0100H MAIN_START:MOV TMOD,#20H SE

42、TB ET1MOV TH1,#06H MOV TL1,#06HCLR P1.0SETB EA SETB TR1WAIT:AJMP$END(3 3)计数器模式的应用)计数器模式的应用例:在某个会场上,专门设置了人员入口和出口,例:在某个会场上,专门设置了人员入口和出口,为了安全需要,会场内只允许为了安全需要,会场内只允许1000人同时在场。当人同时在场。当人数到达人数到达1000人时,入口亮红灯,门卫阻止人员进人时,入口亮红灯,门卫阻止人员进入。入。使用定时使用定时/计数器计数器0统计外部事件用作计数器,需要统计外部事件用作计数器,需要选择外部时钟,不需要使用中断;计数值最大为选择外部时钟,不需

43、要使用中断;计数值最大为1000,使用方式,使用方式1和方式和方式0都可以,在此选用方式都可以,在此选用方式1。把人数统计的高把人数统计的高8位放在位放在30H,低,低8位放在位放在31H。TMOD=00000101=05H,计数初值为,计数初值为0。ORG 0000HORG 0000HAJMP MAIN_STARTAJMP MAIN_STARTORG 0100HORG 0100HMAIN_START:MAIN_START:MOV TMOD,#05HMOV TMOD,#05HMOV TH0,#0MOV TH0,#0 MOV TL0,#0MOV TL0,#0CLR P1.0CLR P1.0SET

44、B TR0SETB TR0COUNT:COUNT:MOV 30H,TH0MOV 30H,TH0MOV 31H,TL0MOV 31H,TL0MOV A,TH0MOV A,TH0CJNE A,30H,COUNTCJNE A,30H,COUNTCHECK:CLR CCHECK:CLR CSUBB A,SUBB A,#03H#03HJC COUNTJC COUNT MOV A,31HMOV A,31H SUBB A,#0E8HSUBB A,#0E8HJC COUNTJC COUNT SETB P1.0SETB P1.0STOP:AJMP STOPSTOP:AJMP STOPENDEND 本 章 小 结

45、本章的内容由本章的内容由3个部分组成。个部分组成。第一部分第一部分:由突发事件的处理引出中断的概念;:由突发事件的处理引出中断的概念;然后展开讨论中断的作用;对比正常程序和中断然后展开讨论中断的作用;对比正常程序和中断程序的差异,根据中断执行的过程不同对中断源程序的差异,根据中断执行的过程不同对中断源进行了分类,读者需要仔细体会两种分类的差异,进行了分类,读者需要仔细体会两种分类的差异,在微机原理部分还会讲到两种中断源的执行过程在微机原理部分还会讲到两种中断源的执行过程的不同;详细讨论了中断执行过程中的中断源识的不同;详细讨论了中断执行过程中的中断源识别、中断入口地址寻找、断点保护和接续、现场

46、别、中断入口地址寻找、断点保护和接续、现场保护和恢复,以及中断返回。最后介绍了中断嵌保护和恢复,以及中断返回。最后介绍了中断嵌套和中断优先级的意义。套和中断优先级的意义。第二部分第二部分:详细讨论了:详细讨论了80C51单片机的中断系统。单片机的中断系统。主要包括中断系统的结构图,图主要包括中断系统的结构图,图6.3包含了包含了80C51中断系统的所有内容,读者需要认真仔细地分析中断系统的所有内容,读者需要认真仔细地分析该图的每处细节,结合该图进行后面的学习。此该图的每处细节,结合该图进行后面的学习。此部分根据中断执行的过程,依次分析了中断源、部分根据中断执行的过程,依次分析了中断源、中断标志

47、位、中断使能控制、中断优先级设置、中断标志位、中断使能控制、中断优先级设置、中断入口地址、中断服务子程序的编写方法和中中断入口地址、中断服务子程序的编写方法和中断申请的撤销。讨论了中断执行的时间,介绍了断申请的撤销。讨论了中断执行的时间,介绍了通过中断实现单步操作的方法和中断扩展的方法。通过中断实现单步操作的方法和中断扩展的方法。读者需要熟练掌握读者需要熟练掌握IE,IP,TCON,SCON中各比中各比特位的作用和意义。特位的作用和意义。第三部分第三部分:分析了:分析了80C51单片机的定时单片机的定时/计数器的计数器的应用。介绍了定时应用。介绍了定时/计数器的内部结构,分析了定计数器的内部结构,分析了定时器和计数器两种模式的原理和区别;仔细分析时器和计数器两种模式的原理和区别;仔细分析了了4种工作方式的工作原理、等效电路结构、定时种工作方式的工作原理、等效电路结构、定时时间计算方法;通过实例演示了各种工作方式的时间计算方法;通过实例演示了各种工作方式的应用方法。在实际的系统设计中会经常使用到定应用方法。在实际的系统设计中会经常使用到定时器,读者需要熟练掌握时器,读者需要熟练掌握TMOD,TCON中各比特中各比特位的意义和作用,掌握中断方式和查询方式的编位的意义和作用,掌握中断方式和查询方式的编程方法,并多做实验提高实际编程能力。程方法,并多做实验提高实际编程能力。END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁