第七章MCS-51系列单片机的定时器/计数器及其应用章节题目第一次课:MCS-51的定时/计数器概述教学目的和要求1.掌握T0与T1的工作方式,以及各种方式的应用;教学重点和难点重点:T0与T1的工作方式难点:T0与T1的工作方式教学方式传统方法和多媒体教学过程一、复习提问、导入新课二、讲授新课1.MCS-51的定时/计数器概述2.T0与T1的工作方式,以及各种方式的应用;三、总结本次课应着重掌握和理解以下几个问题:1.定时/计数器的特点2.定时/计数器的四种工作模式7.1MCS-51的定时/计数器概述8031/8051内部带有两个16位的定时/计数器一、定时/计数器的特点:(1)是一个二进制的加法计数器,当计数器计满回零时刻自动产生溢出中断请求;(2)既可以用作定时器,也可用作计数器(3)有四种工作模式:模式0、模式1、模式2和模式3(4)定时时间和计数值均可通过程序设定,最大值与工作模式和单片机的时钟频率有关(5)它是硬件延时逻辑电路,与软件延时相比,可以提高CPU的工作效率。二、定时/计数器的应用1.定时——产生一个标准的时间间隔例如单片机使用这种方式可以产生一个符合某一要求的脉冲方波(如下图)。2.计数——对外部的事件(脉冲)进行统计外部事件的发生是随机的,单片机不可能预知外部事件何时发生,但可以进行统计(计数)。当达到所要求的计数值时,单片机进行相应的操作。7.2定时/计数器的四种工作模式1.模式0——13位计数器模式在某一个初值的基础上加1计数,当计数器计满为全“1”,再来一个计数脉冲时,就产生一个“溢出中断信号”TF1=1。40mSMCS-51Px.y20msMCS-51T0(T1)端口外部设备(1)C/T:计数器输入脉冲选择开关(2)寄存器初值:该参数决定着定时或计数的周期。(3)TR、GATE、INT1控制定时/计数器的启动:GATE=0时,TR1=1开始定时/计数;TR1=0:计数器T1停止计数;GATE=1时(门控方式),TR=1且INT1=1时,开始工作。此种方式主要用于测量加在INT1脚上一个正脉冲的脉宽.(4)TF=1:定时或计数时间到,可以采用查询或中断方式处理计数值C=213-初值定时时间T=(213-初值)×Tosc×122.模式1——16位计数器模式(以T1为例).定时时间=(216-初值)×Tosc×123.模式2——8位自动重装初值模式由TL1做计数器,TH1做初值寄存器,工作前TL1,TH1分别预置相同的初值。TL1计数时,当产生溢出的同时,将TH1中的初值自动重装TL1。TL1继续计数……此模式主要用于做串行口波特率发生器。定时时间=(28-TH1初值)×Tosc×124.模式3——组合扩展模式(仅适用于T0)在这种模式中,单片机将T0和T1重新进行“拆分、组合”.将T0变为由TH0,TL0组成的两个独立的8位定时/计数器.总结:1.定时/计数器的特点2.定时/计数器的四种工作模式高三位弃用TL1振荡器1/12(低5位)TF1中断启动控制T1引脚TR1GATEINT1C/T=0C/T=113位加1计数器TH1(高8位)溢出中断信号章节题目第二次课:MCS-51对定时/计数器的控制教学目的和要求1.掌握TMOD、TCON的设置和应用;2.定时/计数器的初始化教学重点和难点重点:TMOD、TCON的设置和应用难点:GATE的用法教学方式传统方法和多媒体教学过程一、复习提问、导入新课T0与T1的工作方式二、讲授新课1.MCS-51对定时/计数器的控制2.定时/计数器的初始化三、总结本次课应着重掌握和理解以下几个问题:1.TMOD、TCON的设置和应用2.初始化的步骤7.3MCS-51对定时/计数器的控制MCS51通过两控制寄存器TMOD和TCON实现对T0、T1的控制1.模式控制寄存器TMOD(SFR的地址:89H)GATE选通门:GATE=0时,只要TR=1,计数器就开始工作;GATE=1时,只有INT=TR=“1”时,计数器工作C/T计数、定时方式选择位:C/T=1时,计数方式。C/T=0时:定时方式。M1、M0模式选择:确定四种工作模式.M1M0工作模式00模式0:13位计数器模式01模式1:16位计数器模式10模式2:8位自动重装模式11模式3:TH0、TL0和T1各自独立模式0、模式1:区别仅在于长度为13位和16位;模式2:常用于单片机串行通讯时作“波特率”发生器。模式3:仅T0可以工作于该模式2.控制寄存器TCON(SFR地址:88H)TF0定时器T0的溢出标志:计数器溢出时硬件自动置位,即TF0=1。进入中断后硬件自动清除(TF0=0),若是查询方式则可由软件清除;TR0计数器T0的控制位:由软件设定:TR0=1计数器开始工作;TR0=0计数器停止计数。TF1、TR1同上。IE1,IE0外部中断INT1,INT0的请求标志:当单片机检测到INT引脚上有下降沿时,IE=1申请中断.进入中断服务程序时,硬件自动清除IE标志.IT1,IT0外中断触发类型控制:IT=1时,外中断信号的下降沿触发IE标志;M0M1C/TGATEM0M1C/TGATE定时/计数器1定时/计数器0IITT00IIEE00IITT11IIEE11TTRR00TTFF00TTRR11TTFF11T0、T1的启动和溢出标志外部中断标志IE和触发方式选择IT=0时,外中断信号的低电平触发IE标志。7.4定时/计数器的初始化一、初始化的步骤:1.根据需要,设定工作方式(C/T位)计数或定时;2.确定初值TC;3.若采用中断方式,则要设置相应的中断参数、优先级别;4.送命令字,启动计数器。二、计数、定时初值的计算:1.计数初值计算公式:TC=M-C例:在模式0或模式1时,每接收100个外部事件,要求产生一个中断,确定计数初值。(1)模式1:TC=65536-100=65436=FF9CH(2)模式0:TC=8192-100=8092=1F9CH2.定时器初值计算公式:TC=M–T/T计数其中:M计数模;T定时时间;T计数系统时钟周期的12倍,即12Tosc设系统时钟为6MHZ,则T计数=2μЅ。定时器4种模式的最大定时时间与M有关。模式计数模M最大定时时间Tmax模式013位Tmax=8192*2μЅ=16.384ms模式116位Tmax=65536*2μЅ=131.072ms模式2,38位Tmax=256*2μЅ=0.512mЅ例:请计算定时50ms所需要的定时初值。(设fosc=6MHz)1.确定模式:选择模式1,且C/T=0(定时方式)。2.计算定时初值:TC=M–T/T计数TC=65536-50ms/2μЅ=65536-25000=40536=9E58H即THi=9EH;TLi=58H章节题目第三次课:定时/计数器的应用教学目的和要求1.掌握定时/计数器的应用教学重点和难点重点:难点:定时器/计数器的应用教学方式传统方法和多媒体教学过程一、复习提问、导入新课初始化步骤二、讲授新课定时器/计数器的应用三、总结本次课应着重掌握和理解以下几个问题:定时/计数器的应用7.5定时/计数器应用TMODTCON例:设fosc=6MHz,利用单片机内定时/计数器及P10口线输出1000个脉冲,脉冲周期为2ms,试编程。解:P10•T12msT=12×1/fosc=2us选取T0定时;T1计数。设T0采用中断方式产生周期为2ms方波,T1对该方波计数,当输出至第1000个脉冲时,使TF1置1。在主程序中用查询方法,检测到TF1变1时,关掉T0,停止输出方波。T0、T1参数的确定:T0模式0、定时:脉宽为脉冲周期的一半。所以:X=213-1ms/2us=0001111000001100BTH0=0F0HTL0=0CHT1模式1、计数:N=1000则X=65536-1000=64536=0FC18H程序:ORG0000HLJMPMAINORG000BHLJMPTOSORG1000HMAIN:MOVTMOD,#50H;T0定时,模式0;T1计数,模式1MOVTL0,#0CHMOVTH0,#0F0HMOVTL1,#18HMOVTH1,#0FCHSETBTR1SETBTR0SETBET0SETBEAWAIT:JNBTF1,WAIT;查询1000个脉冲计够没有?没有等待。CLREACLRET0ANLTCON,#0FH;停T0、T1GATEC//TM1M0GATEC//TM1M0TF1TR1TF0TR0IE1IT1IE0IT0SJMP$TOS:MOVTL0,#0CHMOVTH0,#0F0HCPLP10RETIEND例:脉冲参数测量——GATE功能的使用。脉冲高电平(计数)长度值存于21H、20H中,脉冲低电平长度存于23H、22H中。解:GATE=0时,TRi=1,即可启动Ti定时/计数GATE=1时,TRi=1,且/INTi=1,才启动定时/计数。ORG0000HLJMPMAINORG2000HMAIN:MOVTMOD,#99H;T0、T1均工作在定时,;模式1,GATE=1MOVA,#00H;T0、T1赋计数初值00H,定时最长时间;为0000~65536MOVTL0,AMOVTH0,AMOVTL1,AMOVTH1,ATEST0:JBP32,TEST0;检测是否到a点SETBTR0;到a点,TR0=1,做好取计时值准备。TEST1:JNBP32,TEST1;检测是否到1点SETBTR1;到1点T0计时;TR1=1,做好T1计时准备。TEST2:JBP32,TEST2;检测是否到2点CLRTR0;到2点,停止T0计时,T1开始计时。MOV20H,TH0;保存T0计时结果MOV21H,TL0TEST3:JBP33,TEST3;检测是否到3点CLRTR1;到3点,停止T1计数MOV22H,TH1;保存T1计数结果MOV23H,TL1LCALLDISPSJMP$小结:1.定时/计数的四种方式是怎样的?2.如何计算计数初值?如何编程送入计数初值?3.GATE的用法是怎样的?