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

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

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

1、2023/1/261第第5 5章章 80C5180C51的中断系统与定时器的中断系统与定时器/计数器计数器80C51的的中断系统中断系统5.180C5180C51单片机的单片机的定时器定时器/计数器计数器5.25.32023/1/2625.15.1 80C5180C51的中断系统的中断系统5.1.1 5.1.1 中断及中断嵌套的概念中断及中断嵌套的概念 中断的概念中断的概念 当当CPU正在处理某项事务正在处理某项事务的时候,如果外界或内部发生的时候,如果外界或内部发生了紧急事件,要求了紧急事件,要求CPU暂停正暂停正在处理的工作转而去处理这个在处理的工作转而去处理这个紧急事件,待处理完后再回到

2、紧急事件,待处理完后再回到原来被中断的地方,继续执行原来被中断的地方,继续执行原来被中断了的程序,这样的原来被中断了的程序,这样的过程称为过程称为中断中断。2023/1/263与中断有关的几个术语:与中断有关的几个术语:1、中断源中断源:引起:引起CPUCPU中断的因源。中断的因源。2、中断请求中断请求(中断申请)(中断申请):中断源向:中断源向CPUCPU提出的处理要求。提出的处理要求。3、中断响应过程中断响应过程:CPUCPU暂时中断原来的工作暂时中断原来的工作A A,转去处理事件,转去处理事件B B的过程。的过程。4、中断服务中断服务(中断处理)(中断处理):对事件对事件B B的整个处理

3、过程。的整个处理过程。5、中断返回中断返回:事件处理完毕后,再回到原来被中断的地方事件处理完毕后,再回到原来被中断的地方(断点),继续执行程序。(断点),继续执行程序。6、中断系统中断系统:实现中断功能的部件。:实现中断功能的部件。一个完整的中断过程应包括:一个完整的中断过程应包括:中断请求中断请求、中断判优中断判优、中中断响应断响应、中断服务中断服务和和中断返回中断返回。2023/1/264 对于多重中断,若新来的中对于多重中断,若新来的中断优先级别更高,则断优先级别更高,则CPUCPU应该中应该中断现行的中断服务程序,响应优断现行的中断服务程序,响应优先级别高的中断,在高级中断处先级别高的

4、中断,在高级中断处理完后,再返回原先的中断服务理完后,再返回原先的中断服务程序,这个过程就是程序,这个过程就是中断嵌套中断嵌套。中断嵌套的概念中断嵌套的概念2023/1/265 80C51 80C51中断系统的结构中断系统的结构5 5个中断源、个中断源、2 2个个优优先先级级5.1.2 5.1.2 中断请求源和中断控制中断请求源和中断控制2023/1/266 中断请求源及中断请求标志中断请求源及中断请求标志5.1.2 5.1.2 中断请求源和中断控制中断请求源和中断控制外部中断外部中断0 0(INT0INT0)外部中断外部中断1 1(INT1INT1)T0T0溢出中断(溢出中断(TF0TF0)

5、T1T1溢出中断(溢出中断(TF1TF1)串行口中断(串行口中断(RIRI或或TITI)2023/1/267TCON寄存器:寄存器:5.1.2 5.1.2 中断请求源和中断控制中断请求源和中断控制 中断控制中断控制TCONTCON寄存器寄存器2023/1/268 触发方式设置及中断标志触发方式设置及中断标志 76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字节地址:字节地址:88H 电电平方式(平方式(ITx=0ITx=0),),INTxINTx引脚引脚低低电电平平时时IEx=1IEx=1,响响应应中断中断后后IExIEx不自不自动动清清0 0(INTxINTx引脚状引

6、脚状态态)。)。边边沿方式(沿方式(ITx=1ITx=1),),INTxINTx引脚引脚负负跳跳变变时时IEx=1IEx=1,响响应应中断中断后后IExIEx自自动动清清0 0。外部中断标志外部中断标志IE1IE1、IE0IE0(用(用IExIEx表示)表示)2023/1/269两种触发方式比较:两种触发方式比较:电电平方式平方式时时,INTxINTx低低电电平必平必须须保持到响保持到响应时应时,否,否则则就会就会漏掉;在中断服漏掉;在中断服务结务结束前,束前,INTxINTx低低电电平必平必须须撤除,否撤除,否则则中断中断返回之后将再次返回之后将再次产产生中断。生中断。边边沿方式沿方式时时,

7、采,采样样到有效下降沿后,在到有效下降沿后,在IExIEx中将中将锁锁存一个存一个1 1。若。若CPUCPU暂时暂时不能响不能响应应,申,申请标请标志也不会志也不会丢丢失,直到响失,直到响应应时时才清才清0 0。2023/1/2610 溢出中断标志溢出中断标志TF1TF1、TF0TF0(用(用TFxTFx表示)表示)溢出中断请求标志溢出中断请求标志TFxTFx ,TxTx启动后就开始由初值进行加启动后就开始由初值进行加1 1计数,直至最高位产生溢出使计数,直至最高位产生溢出使TFx=1TFx=1向向CPUCPU请求中断。请求中断。CPUCPU响应中断后响应中断后TFxTFx自动清自动清0 0。

8、2023/1/2611 中断控制中断控制SCONSCON寄存器寄存器76543210SCONTIRI字节地址:字节地址:98HRIRI:串口:串口接收接收中断标志,响应中断时中断标志,响应中断时不能自动清除不能自动清除 TITI:串口:串口发送发送中断标志,响应中断时中断标志,响应中断时不能自动清除不能自动清除 2023/1/2612补充知识补充知识-中断请求的撤除中断请求的撤除1 1、定时器中断请求的撤除:、定时器中断请求的撤除:对于定时器对于定时器0 0或定时器或定时器1 1溢出中断,溢出中断,CPUCPU在响应中断后由硬在响应中断后由硬件自动清除中断标志位件自动清除中断标志位TF0TF0

9、或或TF1TF1,无须采取其他措施。,无须采取其他措施。2 2、串行口中断的撤除:、串行口中断的撤除:对于串行口中断,在对于串行口中断,在CPUCPU响应中断后,硬件不能清除中断响应中断后,硬件不能清除中断请求标志请求标志TITI或或RIRI,必须在中断服务程序中由软件来清除相应,必须在中断服务程序中由软件来清除相应的标志。的标志。3 3、外部中断的撤除:、外部中断的撤除:外部中断分为边沿触发和电平触发两种方式。外部中断分为边沿触发和电平触发两种方式。(1 1)对于边沿触发的外部中断)对于边沿触发的外部中断0 0或外部中断或外部中断1 1,CPUCPU在响应在响应中断后由硬件自动清除中断标志位

10、中断后由硬件自动清除中断标志位IE0IE0或或IE1 IE1,无须采取其他,无须采取其他措施。措施。(2 2)对于电平触发的外部中断)对于电平触发的外部中断0 0或外部中断或外部中断1 1,其中断请求,其中断请求撤除方法较复杂。撤除方法较复杂。2023/1/2613中断源的开放和屏蔽由中断源的开放和屏蔽由IEIE控制(控制(1 1,开放;,开放;0 0,禁止,禁止)76543210IEEAESET1EX1ET0EX0字节地址:字节地址:A8H EX0:外中断外中断0允许允许 ET0:T0中断允中断允许许 EX1:外中断外中断1 1允许允许 ET1:T1中断允许中断允许 ES :串口中断允串口中

11、断允许许 EA:CPU中断允中断允许许 中断控制中断控制IEIE寄存器寄存器2023/1/2614IE寄存器寄存器2023/1/2615 中断控制中断控制IPIP寄存器寄存器中断优先级由中断优先级由IPIP控制(控制(1 1,高级;,高级;0 0,低级,低级)76543210IPPSPT1PX1PT0PX0字节地址:字节地址:B8H PX0:外中断外中断0优先级优先级 PT0:T0中断中断优先级优先级 PX1:外外中断中断1 1优先级优先级 PT1:T1中断中断优优先先级级 PS :串口中断串口中断优优先先级级同一优先级的自然顺序:同一优先级的自然顺序:自高至低:自高至低:INT0INT0、T

12、OTO、INT1INT1、T1T1、串口。、串口。2023/1/2616IP寄存器寄存器2023/1/2617 中断优先级控制中断优先级控制几个中断同时申请,先响应高级的中断几个中断同时申请,先响应高级的中断 正正进进行行的的中中断断服服务务,同同级级或或低低级级中中断断不不能能对对其其中中断,但可以被高级中断所中断。断,但可以被高级中断所中断。为此,中断系统内设有对应高、低为此,中断系统内设有对应高、低2 2个个优先级状优先级状态触发器态触发器(用户不能寻址)。(用户不能寻址)。状态触发器的复位由中断返回指令状态触发器的复位由中断返回指令RETIRETI控制。控制。2023/1/26181、

13、低优先级中断源可被高优先级中断源所中断、低优先级中断源可被高优先级中断源所中断(中断嵌套),反之不能(即高优先级中断源不能被低(中断嵌套),反之不能(即高优先级中断源不能被低优先级中断源中断)。优先级中断源中断)。2、一种中断源(不管是什么优先级),一旦得到、一种中断源(不管是什么优先级),一旦得到响应,与它同级的中断源不能再中断它。响应,与它同级的中断源不能再中断它。3、当、当CPU同时同时收到几个收到几个同一优先级同一优先级的中断请求时,的中断请求时,按按自然优先级自然优先级的顺序响应中断。的顺序响应中断。2023/1/2619表表5-1 自然优先级排列表自然优先级排列表中断源中断源同级内

14、的中断优先级同级内的中断优先级外部中断外部中断0最高最高定时器定时器/计数器计数器0溢出中断溢出中断外部中断外部中断1定时器定时器/计数器计数器1溢出中断溢出中断串行口中断串行口中断最低最低2023/1/26205.1.3 5.1.3 中断处理过程中断处理过程 中断响应条件中断响应条件有中断请求有中断请求 相应的中断允许位为相应的中断允许位为1 1CPUCPU开中断(即开中断(即EA=1EA=1)遇下面情况之一将不被响应(遇下面情况之一将不被响应(此间中断条件失效,中断丢失此间中断条件失效,中断丢失)正正在在处处理理同同级级或或高高级级中中断断(没没有有高高优优先先级级或或同同级级优优先先级级

15、的的中中断断服服务务在在执行)执行)当当前前查查询询周周期期不不是是所所执执行行指指令令的的最最后后一一个个机机器器周周期期(正正在在执执行行的的指指令令已已结束)结束)正正在在执执行行RETIRETI或或访访问问IEIE或或IPIP的的指指令令(如如果果执执行行的的指指令令是是RETI,或或访访问问IE、IP,必须再执行一条其他的指令才去中断响应),必须再执行一条其他的指令才去中断响应)1 1、中断响应、中断响应2023/1/2621 中断响应时间中断响应时间中断响应至少需要中断响应至少需要3 3个完整的机器周期个完整的机器周期(3 38 8个)!个)!受阻时要附加受阻时要附加3 3 5 5

16、个机器周期(个机器周期(无同级或高级中断正进行无同级或高级中断正进行)查询周期不是当前指令的最后机器周期查询周期不是当前指令的最后机器周期(如如MULMUL,+3+3)查询周期恰逢查询周期恰逢RETIRETI类指令类指令(且后跟且后跟MULMUL指令指令+5+5)2023/1/2622 CPUCPU响应中断过程响应中断过程将相应优先级状态触发器置将相应优先级状态触发器置1 1(阻断后来同级或低级中断阻断后来同级或低级中断 )执行硬件执行硬件LCALLLCALL指令(指令(PCPC入栈,中断服务程序入口址送入栈,中断服务程序入口址送PCPC)执行中断服务程序执行中断服务程序 编写中断服务程序注意

17、编写中断服务程序注意中断服务程序入口存放指令中断服务程序入口存放指令LJMPLJMP或或AJMPAJMP现场保护与现场恢复现场保护与现场恢复2023/1/2623 中断服务程序入口地址表 2023/1/2624开中断开中断中断否?中断否?保护现场保护现场设备服务设备服务恢复现场恢复现场 开中断开中断中断返回中断返回中中断断服服务务程程序序 中断响应中断响应 程序断点进栈程序断点进栈向量地址向量地址 PC是是 单重中断单重中断 中断返回中断返回保护现场保护现场设备服务设备服务恢复现场恢复现场开中断开中断中断否?中断否?中断响应中断响应 程序断点进栈程序断点进栈向量地址向量地址 PC是是中中断断服

18、服务务程程序序 多重中断多重中断 2 2、中断处理、中断处理2023/1/26253 3、中断返回、中断返回 中断服务程序最后指令必须是中断服务程序最后指令必须是RETIRETI,其功能:,其功能:将断点从堆栈弹出送将断点从堆栈弹出送PCPC,CPUCPU从原断点继续执行程序从原断点继续执行程序 将相应优先级状态触发器清将相应优先级状态触发器清0 0,恢复原来工作状态,恢复原来工作状态 注意注意不能用不能用RETRET代替代替RETRETI I 中断服务程序中中断服务程序中PUSHPUSH和和POPPOP必须成对使用必须成对使用2023/1/2626小小 结结2023/1/26275.1.4

19、5.1.4 应用举例应用举例【例例5-15-1】设有设有5 5个个外部中断源,中断外部中断源,中断优先级由高到低排优先级由高到低排队顺序为队顺序为XI0XI0、XI1XI1、XI2XI2、XI3XI3、XI4XI4。试。试设计它们与设计它们与80C5180C51单单片机的接口。片机的接口。2023/1/2628中断服务程序中断服务程序:ORG 0003H ORG 0003H LJMP INSE0 LJMP INSE0 ORG 0013HORG 0013H LJMP INSE1 LJMP INSE1 INSE0:PUSH PSW;XI0INSE0:PUSH PSW;XI0中断服务中断服务 PUS

20、H ACCPUSH ACC POP ACC POP ACC POP PSW POP PSW RETI RETI (转下页转下页)2023/1/2629INSE1:PUSH PSW INSE1:PUSH PSW (接上页接上页)PUSH ACC PUSH ACC JB P1.0,DV1 JB P1.0,DV1;P1.0P1.0为为1 1,转,转XI1XI1中断服务程序中断服务程序 JB P1.1,DV2 JB P1.1,DV2;P1.1P1.1为为1 1,转,转XI2XI2中断服务程序中断服务程序 JB P1.2,DV3 JB P1.2,DV3;P1.2P1.2为为1 1,转,转XI3XI3中断

21、服务程序中断服务程序 JB P1.3,DV4 JB P1.3,DV4;P1.3P1.3为为1 1,转,转XI4XI4中断服务程序中断服务程序INRET:POP ACCINRET:POP ACC POP PSW POP PSW RETI RETI DV1:DV1:;XI1XI1中断服务程序中断服务程序 AJMP INRETAJMP INRET DV4:DV4:;XI4XI4中断服务程序中断服务程序 AJMP INRETAJMP INRET 2023/1/26305.2 80C51单片机的定时器单片机的定时器/计数器计数器结构结构基本型:基本型:T0T0,定时、计数。,定时、计数。T1 T1,定时

22、、计数、串口波特率发生器。,定时、计数、串口波特率发生器。5.2.1 5.2.1 定时器定时器/计数器的结构与工作原理计数器的结构与工作原理 TH1TH1、TL1TL1TH0TH0、TL0TL0TCONTCONTMODTMOD2023/1/2631 由两个特殊功能寄存器由两个特殊功能寄存器TCON、TMOD以及以及T0、T1组成。组成。1、T0:分为两个独立的:分为两个独立的8位计数器(加位计数器(加1计数器),计数器),分别是:低分别是:低8位计数器位计数器TL0和高和高8位计数器位计数器TH0。2、T1:分为两个独立的:分为两个独立的8位计数器(加位计数器(加1计数器),计数器),分别是:

23、低分别是:低8位计数器位计数器TL1和高和高8位计数器位计数器TH1。3、TMOD:定时器的模式(方式)控制寄存器。:定时器的模式(方式)控制寄存器。4、TCON:定时器的控制寄存器。:定时器的控制寄存器。2023/1/2632方式寄存器方式寄存器TMODTMOD 76543210TMODTMODGATEC/TM1M0GATEC/TM1M0字节地址:字节地址:89HGATEGATE:门门控控位位。GATEGATE0 0时时,只只要要TRxTRx为为1 1,就就可可启启动动计计数数器器工工作作;GATAGATA1 1时时,定定时时器器的的启启动动还还要要加加上上INTxINTx引引脚脚为为高电平

24、这一条件。高电平这一条件。C/TC/T:模式选择位。:模式选择位。清清0 0为定时模式,置为定时模式,置1 1为计数方式。为计数方式。M1M0M1M0:工作方式设置位。可设置四种工作方式:工作方式设置位。可设置四种工作方式(见下页见下页)。)。2023/1/2633M1M0M1M0工作方式工作方式说说 明明0000方式方式0 01313位定位定时时/计计数器数器0101方式方式1 11616位定位定时时/计计数器数器1010方式方式2 28 8位自位自动动重装定重装定时时/计计数器数器1111方式方式3 3T0T0分成两个独立的分成两个独立的8 8位定位定时时/计计数器;数器;T1T1此方式停

25、止此方式停止计计数数注意:注意:TMODTMOD不能进行位寻址不能进行位寻址 2023/1/26342023/1/2635控制寄存器控制寄存器TCONTCON 76543210TCONTF1TR1TF0TR0字节地址:字节地址:88HTFxTFx:TxTx溢出标志位。溢出标志位。响应中断后响应中断后TFxTFx有硬件自动清有硬件自动清0 0。用。用软件设置软件设置TFxTFx可产生同硬件置可产生同硬件置1 1或清或清0 0同样的效果。同样的效果。TRxTRx:TxTx运行控制位。运行控制位。置置1 1时开始工作;清时开始工作;清0 0时停止工作。时停止工作。TRxTRx要由软件置要由软件置1

26、1或清或清0 0(即启动与停止要由软件控制即启动与停止要由软件控制)。)。2023/1/2636工作原理工作原理实质是实质是加加1 1计数器计数器定定时时器器模模式式时时,是是对对内内部部机机器器周周期期计计数数。计计数数值值乘乘以以机机器器周周期期就就是是定定时时时时间间(每每一一个个机机器器周周期期使使计计数数器器的的值值加加1 1 )计计数数器器模模式式时时,是是对对外外部部事事件件计计数数。脉脉冲冲由由T0T0(P3.4P3.4)或或T1T1(P3.5P3.5)引脚输入。引脚输入。2023/1/26375.2.2 5.2.2 定时器定时器/计数器的工作方式计数器的工作方式T0T0有方式

27、有方式0 0、1 1、2 2、3 3;T1T1有方式有方式0 0、1 1、2 2。以。以T0T0为例说明。为例说明。方式方式0 0:1313位方式位方式 2023/1/2638方式方式1 1:1616位方式位方式 X=2X=21616-N=65536-N -N=65536-N 计数范围:计数范围:1 16553665536 计数初值要计数初值要分成分成2 2个字节个字节分别送入分别送入TH0TH0、TL0TL02023/1/2639方式方式2 2:8 8位自动重装方式位自动重装方式 X=2X=28 8-N=256-N -N=256-N 计数范围:计数范围:1 1256256 特别适合与脉冲信号

28、发生器特别适合与脉冲信号发生器2023/1/2640方式方式3 3:(仅(仅T0T0有此方式,有此方式,T1T1的方式的方式3 3将停止计数)将停止计数)TL0 TL0进行进行8 8位定时位定时/计数计数 TH0 TH0进行进行8 8位定时(位定时(T1T1方式方式2 2时,可出借时,可出借TR1TR1、TF1TF1)2023/1/26415.2.3 5.2.3 定时器定时器/计数器的初始化计数器的初始化p 初始化步骤:初始化步骤:对对TMODTMOD赋值,以确定赋值,以确定T0T0和和T1T1的工作方式;的工作方式;求初值求初值,并写入并写入TH0TH0、TL0TL0或或TH1TH1、TL1

29、TL1;中断方式时,要对中断方式时,要对IEIE赋值,开放中断;赋值,开放中断;使使TR0TR0或或TR1TR1置位,启动定时置位,启动定时/计数器工作。计数器工作。2023/1/2642 1、定时工作方式时:、定时工作方式时:X=M-计数值计数值=2、计数工作方式时:、计数工作方式时:X=M-计数值计数值 式中:式中:X:计数初值;:计数初值;t:要求定时的时间,单位是:要求定时的时间,单位是 ;fosc:振荡器的振荡频率,单位是:振荡器的振荡频率,单位是Mhz。p 计数器初值的计算计数器初值的计算 M:最大计数值 模式模式0下:下:M=213=8192 模式模式1下:下:M=216=655

30、36 模式模式2下:下:M=28=256 模式模式3下:下:M=28=2562023/1/2643【例例5-25-2】已知单片机时钟频率已知单片机时钟频率=6MHZ=6MHZ,当定时器,当定时器T0T0分别工作于方式分别工作于方式0 0和方式和方式1 1,定时时间为,定时时间为1ms1ms时,计时,计算送入算送入TH0TH0和和TL0TL0的计数初值各为多少?的计数初值各为多少?2023/1/2644【例例5-35-3】若单片机时钟频率 ,请计算定时2ms所需的定时器初值。解:由于定时器工作在方式解:由于定时器工作在方式2和方式和方式3下时的最大定时时间只有下时的最大定时时间只有0.256ms

31、,因此要想获得,因此要想获得2ms的定时时间,定时器必须工作在方式的定时时间,定时器必须工作在方式0或或方式方式1。若采用方式若采用方式0,则根据公式可求得定时器初值为:,则根据公式可求得定时器初值为:TC=213-2ms/1us=6192=1830H 即:即:TH0应装入应装入C1H;TL0应装入应装入10H(高三位为(高三位为0)若采用方式若采用方式1,则有:,则有:TC=216-2ms/1us=63536=F830H 即:即:TH0应装入应装入F8H;TL0应装入应装入30H2023/1/2645 定时时间较小时(小于定时时间较小时(小于65ms65ms)求计数初值求计数初值X:X:Tc

32、yTcy为为1 1S S N=10ms/1N=10ms/1S=10S=10 000000X=65536-10000=D8F0HX=65536-10000=D8F0H应将应将D8D8送送TH0,F0HTH0,F0H送送TL0TL0 5.2.4 5.2.4 应用举例应用举例【例例5-45-4】设系统的晶振频率为设系统的晶振频率为12MHZ12MHZ,利用定时,利用定时/计计数器数器T0T0的方式的方式1 1,编制程序使,编制程序使P1.0P1.0引脚上输出周期为引脚上输出周期为20ms20ms的方波。的方波。确定方式字:确定方式字:T0T0在定时的方式在定时的方式1 1时:时:M1M0=01M1M

33、0=01,GATE=0 GATE=0,C/T=0C/T=0方式控制字为方式控制字为0101H H 2023/1/2646 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0100HORG 0100HMAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0方式方式1 1 MOV TH0,#0D8H;MOV TH0,#0D8H;装入计数初值装入计数初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB ET0 ;T0 SETB

34、ET0 ;T0开中断开中断 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB TR0 ;SETB TR0 ;启动启动T0T0 SJMP$;SJMP$;等待中断等待中断DVT0:CPL P1.0 DVT0:CPL P1.0 MOV TH0,#0D8H MOV TH0,#0D8H MOV TL0,#0F0H MOV TL0,#0F0H RETI RETI END END主程序主程序 中断服务程序中断服务程序 2023/1/2647采用软件查询方式完成的源程序如下:采用软件查询方式完成的源程序如下:ORG 0000H ORG 0000H LJMP MAIN ;LJMP MAIN

35、 ;跳转到主程序跳转到主程序 ORG 0100H ;ORG 0100H ;主程序主程序 MAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0工作于方式工作于方式1 1 LOOP:MOV TH0,#0D8H ;LOOP:MOV TH0,#0D8H ;装入计数初值装入计数初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB TR0 ;SETB TR0 ;启动定时器启动定时器T0T0 JNB TF0,$;TF0=0 JNB TF0,$;TF0=0,查询等待,查询等待 CLR TF0 ;CLR TF0 ;清清TF0TF0 CPL P1.0 ;P

36、1.0 CPL P1.0 ;P1.0取反输出取反输出 SJMP LOOP SJMP LOOP END END2023/1/2648 定时时间较大时(大于定时时间较大时(大于65ms65ms)。实现方法:一是采用。实现方法:一是采用1 1个定时个定时器定时一定的间隔(如器定时一定的间隔(如20ms20ms),然后用软件进行计数;二是采),然后用软件进行计数;二是采用用2 2个定时器级联,其中一个定时器用来产生周期信号(如个定时器级联,其中一个定时器用来产生周期信号(如20ms20ms为周期),然后将该信号送入另一个计数器的外部脉冲输入端为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉

37、冲计数。进行脉冲计数。【例例5-55-5】编写程序,实现用定时编写程序,实现用定时/计数器计数器T0T0定时,使定时,使P1.7P1.7引引脚输出周期为脚输出周期为2s2s的方波。设系统的晶振频率为的方波。设系统的晶振频率为12MHz12MHz。确定方式字:确定方式字:T0T0在定时的方式在定时的方式1 1时:时:M1M0=01M1M0=01,GATE=0 GATE=0,C/T=0C/T=0方式控制字为方式控制字为0101H H 求计数初值求计数初值X:X:TcyTcy为为1 1S S N=20ms/1N=20ms/1S=20S=20 000000X=65536-20000=4E20HX=65

38、536-20000=4E20H应将应将4E4E送送TH0,20HTH0,20H送送TL0TL0 采用定时采用定时20ms20ms,然后再计数,然后再计数5050次的方法实现次的方法实现 2023/1/2649 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0030HORG 0030HMAIN:MOV TMOD,#01H;MAIN:MOV TMOD,#01H;置置T0T0方式方式1 1 MOV TH0,#4EH;MOV TH0,#4EH;装入计数初值装入计数初值 MOV TL

39、0,#20H;MOV TL0,#20H;首次计数值首次计数值 MOV R7,#50MOV R7,#50 ;计数计数5050次次 SETB ET0 ;T0 SETB ET0 ;T0开中断开中断 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB TR0 ;SETB TR0 ;启动启动T0T0 SJMP$;SJMP$;等待中断等待中断DVT0:DJNZ R7,NT0DVT0:DJNZ R7,NT0 MOV R7,#50 MOV R7,#50 CPL P1.7 CPL P1.7 NT0:MOV NT0:MOV TH0,#4EH TH0,#4EH MOV MOV TL0,#20HT

40、L0,#20H SETB TR0 SETB TR0 RETI RETI END END主程序主程序 中断服务程序中断服务程序 2023/1/2650【例例5-65-6】定时器定时器/计数器用于外部中断扩展。计数器用于外部中断扩展。用用T0T0扩展一个外部中断源。将扩展一个外部中断源。将T0T0设置为计数器方式,按方设置为计数器方式,按方式式2 2工作,工作,TH0TH0、TL0TL0的初值均为的初值均为0FFH0FFH,T0T0允许中断,允许中断,CPUCPU开放开放中断。其初始化程序如下:中断。其初始化程序如下:MOV TMOD,#06H ;MOV TMOD,#06H ;置置T0T0为计数器方式为计数器方式2 2 MOV TL0,#0FFH ;MOV TL0,#0FFH ;置计数初值置计数初值 MOV TH0,#0FFHMOV TH0,#0FFH SETB TR0 ;SETB TR0 ;启动启动T0T0工作工作 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB ET0 ;SETB ET0 ;允许允许T0T0中断中断 T0T0外部引脚上出现一个下降沿信号时,外部引脚上出现一个下降沿信号时,TL0TL0计数加计数加1 1,产生,产生溢出,将溢出,将TF0TF0置置1 1,向,向CPUCPU发出中断请求发出中断请求

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

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

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

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