您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > ch09-MCS51定时器与计数器和中断系统
1第九章MCS-51定时器/计数器与中断系统2020/5/28微机系统原理及应用微机系统原理及应用2内容提要MCS-51的定时器/计数器(重点)增强型MCS-51的T2定时器(了解)MCS-51的中断系统(重点)2020/5/2839.1MCS-51的定时器/计数器事件脉冲fosc预分频初值寄存器溢出回零门+1/-1二进制计数器MCS-51的计数是加计数。2020/5/28计数功能:对从引脚输入的脉冲计数。定时功能:对来自内部时钟电路的计数脉冲进行计数。TMOD(89H)TCON(88H)4TF1TF0TR0TR1IE1IE0IT0IT1TCON(88H):可位寻址的特殊功能寄存器。T0触发控制T1触发控制T0溢出标志T1溢出标志编程指令采用CLRTR0/TR1SETBTR0/TR11)定时器控制寄存器(TCON)2020/5/285没有位寻址功能只能使用字节传送MOVTMOD,#..GATEGATEC/TM1M0C/TM1M0T1控制字段T0控制字段TMOD(89H):不可位寻址的特殊功能寄存器。门控位GATE=0:以运行控制位TR0/TR1启动定时/计数功能。GATE=1:以运行控制位TR0/TR1启动定时/计数功能之前,应先将外部中断置1。定时/计数方式选择位0为定时1为计数工作方式选择位2)工作方式控制寄存器(TMOD)2020/5/280/1INTINT69.1.2定时器/计数器的工作方式2020/5/28方式371)方式0(a)T0或T1方式0的结构2020/5/28方式0是13位计数结构的工作方式,其计数器由THi全部8位和TLi的低5位构成。8方式0定时和计数应用2020/5/28在方式0下的输入脉冲的计数值范围是:1~8192(213)当为定时工作方式时,定时时间的计算公式为:(213–计数初值)×晶振周期×12最小定时单位:1个机器周期(12Tost)最大定时单位:12Tost×213机器周期9方式0的信号流图2020/5/28图9-6方式0简图MOVTMOD,#00000000SETBTR0MOVTH0,#____MOVTL0,#_____MOVA,TMODANLA,#F0HORLA,#0_HMOVTMOD,A10例某MCS-51微控制器应用系统,晶体频率为12MHz,请计算在方式0下的最小、最大定时时间?如果使用定时器T0来记录时间,当要求定时器每5ms能向CPU发出一个定时处理请求,定时器的计数器中装入的初始值为多少?试编程完成处始化任务。解:最小定时时间:最大定时时间:5ms需要的计数为5×10-3/1×10-6=5000;计数初值为:8192–5000=31923192=0C78h=01100011,11000B(分为高8位与低5位)2020/5/2861121()1210s13128.192()sms11初始化语句MOVA,TMODANLA,#F0HORLA,#00H;T0无GATE,Timer,Mode0MOVTMOD,ASETBTR0MOVTH0,#63H;01100011BMOVTL0,#18H;11000B…2020/5/28思考:如果是采用T1,应该怎样做?122)方式1(b)T0或T1方式1的结构2020/5/28方式1是16位计数结构的工作方式,其计数器由THi全部8位和TLi的全8位构成。13方式1定时和计数应用2020/5/28在方式1下的输入脉冲的计数值范围是:1~65536(216)当为定时工作方式时,定时时间的计算公式为:(216–计数初值)×晶振周期×12最小定时单位:1个机器周期(12Tost)最大定时单位:12Tost×216机器周期14例某MCS-51微控制器应用系统,晶体频率为12MHz,请计算在方式1下的最小、最大定时时间?如果使用定时器T0来记录时间,当要求定时器每5ms能向CPU发出一个定时处理请求,定时器的计数器中装入的初始值为多少?试编程完成处始化任务。2020/5/2815另解如果选用方式1,是16位方式,计算范围为216=65536,计数初值为:65536–5000=60536=EC78H初始化语句:MOVA,TMODANLA,#F0HORLA,#01H;T0无GATE,Timer,Mode1MOVTMOD,ASETBTR0MOVTH0,#0ECH;01100011BMOVTL0,#78H;11000B…2020/5/28163)方式2信号流图2020/5/28方式2为重装自动初值的8位定时/计数器。TLi:计数器THi:初值寄存器计数范围:1~256(28)TLi计满溢出后,由硬件自动将THi中的初值重新装入TLi。17方式2的优缺点缺点:长时间定时、大范围计数是不合适的。优点:初值由硬件重装,因此溢出周期非常的准确;软件重装初值难免或多或少的延误,不够准确。2020/5/28184)T0的方式3信号流图2020/5/28这种方式并不常用。19例Intel8051的时钟频率为12MHz,定时器最长的定时时间是:()A.10usB.8192usC.65536usD.256us2020/5/2820例9-3在某牛奶自动灌装线上,每检测到20瓶,产生一个装箱指令脉冲,使相关设备动作。试用MCS-51型微控制器的计数器实现该控制要求。检测信号从T1引脚(P3.5)输入,指令脉冲从P1.2输出。2020/5/2821解:自动灌装线上装有传感装置,每检测到一瓶牛奶向T1引脚发送一个脉冲信号;使用计数功能,可实现该控制要求;选T1的方式2;初值为256-20=236=ECh。2020/5/2822CSEGAT0000HLJMPSTARTMCSEGMENTCODERSEGMCSTART:CLRT1;清除输出MOVTMOD,#60H;T1,无GATE,计数,方式2MOVTL1,#0ECH;初值MOVTH1,#0ECH;初值SETBTR1;启动LOOP:WAIT:JBCTF1,OUTAJMPWAITOUT:SETBP1.2NOPNOPNOPCLRP1.2AJMPLOOPEND2020/5/28程序:239.3MCS-51中断系统2020/5/28中断的概念(程序的正常、异常)中断源优先级管理中断的响应过程(条件)中断服务程序应用举例一、中断的概念中断:在微机系统中,中断是指CPU在执行某段程序的过程中,由于某一事件的发生,要求CPU暂时停止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到原来程序停止处继续执行。中断的概念执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回家中看书电话铃响书中做记号电话交谈继续看书二、MCS-51的中断源中断源:把可以引起中断的事件称为中断源。MCS-51是一个多中断源的单片机,共有三种类型5个中断源:INT0:外部中断0中断请求;INT1:外部中断1中断请求;T0:定时/计数器0溢出中断请求;T1:定时/计数器1溢出中断请求;TxD/RxD:串行口通信中断请求。外部中断定时中断串行中断外部中断:外部原因产生的中断称为外中断。电平方式的中断请求是低电平有效。脉冲方式的中断请求则是脉冲的后沿(负跳变)有效。定时中断:为满足单片机内部定时/计数器的需要而设置的中断,属于内部中断。串行中断:为单片机内部串行口接受和发送数据而设置的中断,也属于内部中断。CPU识别中断申请的依据:CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。P1P2S1振荡周期状态周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2S5P2期间三、与中断有关的SFR定时器控制寄存器TCON(88H):低4位管理外部中断。TF1TF0TR0TR1IE1IE0IT0IT1(1)外部事件中断请求标志位IE0和IE1=0:没有外部中断申请;=1:有外部中断申请。(2)外部中断请求的触发方式选择位IT0和IT1=0:电平触发方式;=1:脉冲触发方式。例要求INT0引脚的中断请求信号为低电平有效,INT1引脚的中断请求信号为脉冲后沿有效,请设计TCON的有关位。CLRIT0SETBIT1串行口控制寄存器SCON(98H)RISM1SM0SM2RENTB8RB8TID0D1D2D3D4D5D6D7RISM1SM0SM2RENTB8RB8TID0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7(1)TI:串行口发送中断请求标志位当串行口发送缓冲器发送完一帧数据后,由硬件自动把TI置1,以此向CPU请求中断。(2)RI:串行口接收中断请求标志位当串行口接收缓冲器接收完一帧串行数据后,由硬件把RI置1;以此向CPU请求中断。MCS-51中断系统总图中断允许控制寄存器IE(A8H):对所有中断源的开放和允许进行控制,可位寻址。EAEX0EX1ET1ESET0D0D1D2D3D4D5D6D7EAEX0EX1ET1ESET0EAEX0EX1ET1ESET0D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7(1)EA:CPU中断允许总控制位。EA=0:中断总禁止,禁止所有中断。EA=1:中断总允许,置1后,各中断源的中断允许由各个控制位进行设置。(2)EX0/EX1:外部中断允许控制位;=0:禁止外部中断INT0/INT1;=1:允许外部中断INT0/INT1。中断允许控制寄存器IE(A8H):对所有中断源的开放和允许进行控制,可位寻址。EAEX0EX1ET1ESET0D0D1D2D3D4D5D6D7EAEX0EX1ET1ESET0EAEX0EX1ET1ESET0D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7(3)ET0/ET1:定时/计数中断允许控制位;=0:禁止定时/计数器的定时中断;=1:允许定时/计数器的定时中断。(4)ES:串行口中断允许控制位。=0:禁止串行口中断;=1:允许串行口中断。结论:MCS-51单片机中的各个中断源均为可屏蔽中断。MOVIE,#10010110B或:SETBEA;CPU开放中断SETBEX1;允许中断SETBET0;允许定时/计数器溢出中断SETBES;允许串行口中断例若想实现单片机开放中断,允许外部事件INT1中断、定时/计数器T0溢出中断和串行口中断,应如何设置中断允许寄存器IE?设定程序如下:MCS-51中断系统总图中断优先级控制寄存器IP(B8H):对所有中断源的优先级进行设定,可位寻址。PX0PT0PT1PSPX1PX0PT0PT1PSPX1D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7(1)PX0:为外部事件中断的优先级设定位;(2)PT0:为定时/计数器T0的溢出中断优先级设定位;(3)PX1:为外部事件中断的优先级设定位;(4)PT1:为定时/计数器T1的溢出中断的优先级设定位;(5)PS:为串行口中断的优先级设定位。设置为“0”的位,为低优先级;设置为“1”的位,为高优先级。表9-3中断优先级与中断向量若都被设置成同一优先级,5个中断源的自然优先级由硬件形成,排列如表9-3所示。MCS-51单片机各个中断源的中断处理程序入口地址是固定的。四、中断处理过程主程序中断请求EA=1;此中断源的中断允许位是否为1接受中断申请断点地址保护中断向量地址装入PC中断处理程序根据不同中断源的申请,完成各中断申请要做的事。中断源及其对应的中断向量地址中断源中断向量地址外部中断0中断地址区0003H—000AH定时/计数器0中断地址区000BH—0012H外部中断1中断地址区0013H—001AH定时/计数器1中断地址区001BH—0022H串行通信中断0023H—002AH外部中断0申请CPU保存当前PC值0003H装入PC执行中断服务程序INT0ORG0003HLJMPINT0_
本文标题:ch09-MCS51定时器与计数器和中断系统
链接地址:https://www.777doc.com/doc-5590712 .html