您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > MCS-51单片机定时器计数器 第四章
1第5章MCS-51单片机定时器/计数器主要内容定时/计数器的工作原理模式定时/计数器的工作方式定时/计数器的应用2(1)定时器/计数器的概念定时器计数器定时/计数器内部计数器外部计数器(2)MCS-51的定时器/计数器简介2个16位的定时/计数器,有多种工作方式。定时/计数器工作在定时模式时,计数脉冲信号来自单片机的内部,计数速率是晶振频率的1/12,当计数器启动后,每个机器周期计数器自动加1。定时/计数器工作在计数模式时,计数器对外部脉冲进行计数,计数器计P3.4(T0脚)P3.5(T1脚)负跳变次数。每产生一次负跳变,计数器自动加1。5.1概述3单片机内部总线TH1TL1TH0TL0TCONTMOD单片机CPU定时/计数器T1定时/计数器T0溢出溢出方式方式启动启动溢出中断请求T1外部计数脉冲T0外部计数脉冲P3.4P3.5MCS-51定时器/计数器的逻辑结构5.1概述4GATEM0C/TM1M0GATEC/TM1D0D1D2D3D4D5D6D7定时/计数器工作方式定时器和计数器模式选择门控位定时/计数器T0定时/计数器T1定时/计数器工作方式定时器和计数器模式选择门控位5.2定时器/计数器的工作方式选择及控制(一)定时/计数器的工作方式寄存器(TMOD,89H)5定时器和计数器模式选择位=0,定时器模式,每一个机器周期计数器自动加1。=1,计数器模式,在单片机T0引脚上每发生一次负跳变,计数器自动加1。GATE=0,定时/计数器工作不受外部控制。GATE=1,定时/计数器T0的起停受INT0引脚的控制。TMOD各位的定义(以定时器/计数器T0为例)M0M1说明00013位定时器/计数器,由TL0低五位和TH0高八位组成工作方式01116位定时器/计数器,由TL0低八位和TH0高八位组成1028位定时器/计数器,由TL0低八位组成113TL0低八位和TH0高八位分别位8位定时器/计数器5.2定时器/计数器的工作方式选择及控制(一)定时/计数器的工作方式寄存器(TMOD,89H)TC/TC/5.2定时器/计数器的工作方式选择及控制(一)定时/计数器的工作方式寄存器(TMOD,89H)6TF1TF0IE1TR1IT0IT1IE0TR0定时器/计数器1的溢出标志TCOND0D1D2D3D4D5D6D7定时器/计数器0的起停控制位定时器/计数器1的起停控制位定时器/计数器0的溢出标志TR0=1启动定时/计数器T0TR0=0定时/计数器T0停止计数TR1=1启动定时/计数器T1TR1=0定时/计数器T1停止计数5.2定时器/计数器的工作方式选择及控制(二)定时/计数器控制寄存器(TCON)控制定时/计数器的起停,反映定时/计数器是否计满。7(二)定时/计数器控制寄存器(TCON)单片机复位时,特殊功能寄存器TCON被清0。TFx(x=0,1)和TRx(x=0,1)由软件方法置1或清0。既可按单元操作的方式,也可以按位操作方式。如启动定时/计数器T0和T1,清除溢出标志位TF0和TF1操作如下:SETBTR0SETBTR1CLRTF0CLRTF1或:MOVTCON,#01010000B5.2定时器/计数器的工作方式选择及控制8注意:使用定时器/计数器时应注意以下几个方面:(1)MCS-51的定时器/计数器为加1计数器。(2)定时器/计数器T1的工作方式没有方式3,如果设置它为方式3(M1M0=11),定时器/计数器T1停止工作。(3)一般情况下,定时器/计数器T1溢出后,TF1自动置1,可以以此为判断标志,检测定时或计数是否完成,但在定时器/计数器T0设置为方式3时,TF1为1时意味着8位计数器TH0溢出,TF0为1表示8位计数器TL0溢出。(4)在计数器模式时,计数脉冲的频率不高于振荡器频率的1/24.5.2定时器/计数器的工作方式选择及控制(二)定时/计数器控制寄存器(TCON)95.3.1方式05.3定时器/计数器的工作方式及工作原理定时器/计数器T0工作方式0的逻辑结构计数器的低五位计数器的高八位TH0TL010当GATE=0时,只要TR0为1,TL0及TH0组成的13位计数器就开始计数;当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,13位计数器开始计数。计数器开始工作时,当13位计数器从初始值开始加1计数,当13位计数器各位全1以后,再计数1次,计数器就产生溢出,则TF0位由硬件自动置1,同时把计数器清0。在方式0下,计数器计数范围是1~8192(2^13)。定时时间范围为1~8192个机器周期。5.3定时器/计数器的工作方式及工作原理5.3.1方式011在工程设计时,我们经常碰到的是这样的问题:要求在计数次或者定时(延时)秒后,再进行下一步的动作。如果采用定时/计数器实现,最直接的方法是让定时/计数器计数次或者定时秒后溢出,溢出标志TF0(或TF1)为我们提供了测试判断条件。然而,计数器只有在计满后才会溢出,上述问题转换为在某个初始值的基础上再计N次或再定时t秒使定时/计数器溢出。因此,求初始值是解决上述问题的关键。5.3定时器/计数器的工作方式及工作原理5.3.1方式012(1)计数器工作模式计数N次,要求计数器溢出,设初始值为,则:,那么,预先给计数器装入初始值,当计数器计数次后,溢出标志TF0为1。5.3定时器/计数器的工作方式及工作原理5.3.1方式0X132NXNX132NX132N13(2)定时器模式定时td,要求计数器溢出。首先计算定时td需要多少个机器周期,即:设初始值为X,则:,预先给计数器装入初始值,当计数器计个机器周期后,溢出标志TF0为1,定时时间到。N2X13132NXMTNdt5.3定时器/计数器的工作方式及工作原理5.3.1方式014定时器/计数器T0工作方式1的逻辑结构5.3定时器/计数器的工作方式及工作原理5.3.2方式115当GATE=0时,只要TR0为1,TL0及TH0组成的16位计数器就开始计数;当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,16位计数器开始计数。计数器开始工作时,当16位计数器从初始值开始加1计数,当16位计数器各位全1以后,再计1次,计数器就产生溢出,则硬件自动把TF0位置1,同时把计数器清0。5.3定时器/计数器的工作方式及工作原理5.3.2方式116(1)计数器工作模式计数N次,要求计数器溢出,设初始值为X,则:,那么,预先给计数器装入初始值,当计数器计数N次后,溢出标志TF0为1。162NXNX162NX1625.3定时器/计数器的工作方式及工作原理5.3.2方式117(2)定时器工作模式定时td秒,要求计数器溢出。首先计算定时td需要多少个机器周期才能实现,即:设初始值为X,则:,那么,。预先给计数器装入初始值,当计数器计N个机器周期后,溢出标志TF0为1,定时时间到。方式1时,定时/计数器的最大计数次数为65536(初始值为0),最大定时时间为65536TM(初始值为0)。5.3定时器/计数器的工作方式及工作原理5.3.2方式1MdTtNNX162162NXNX16218定时器/计数器0在工作方式2的逻辑结构5.3定时器/计数器的工作方式及工作原理5.3.3方式219当GATE=0时,只要TR0为1,计数器TL0开始计数;当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,计数器TL0开始计数。计数器开始工作时,当8位计数器TL0从初始值开始加1计数,当计数器各位全“1”以后,再计1次,计数器产生溢出,则TF0位由硬件自动置1,同时把TH0的内容装载到TL0。5.3定时器/计数器的工作方式及工作原理5.3.3方式220(1)计数器工作模式计数N次,要求计数器溢出,设初始值为X,则:,那么,预先给计数器装入初始值,当计数器计数N次后,溢出标志TF0为1。82NXNX82NX825.3定时器/计数器的工作方式及工作原理5.3.3方式221(2)定时器工作模式定时td秒,要求计数器溢出。首先计算定时td需要多少个机器周期才能实现,即:。设初始值为X,则:,那么,。预先给计数器装入初始值,当计数器计N个机器周期后,溢出标志TF0为1,定时时间到。方式2时,定时/计数器的最大计数次数为256(初始值为0),最大定时时间为256TM(初始值为0)。MdTtN82NXNX82NX825.3定时器/计数器的工作方式及工作原理5.3.3方式222当M1M0设置为11时,定时/计数器T0的工作方式为方式3。只有定时/计数器T0有方式3,定时/计数器T1没有工作方式3,如果把T1设置为方式3,计数器将停止工作。在工作方式3下,定时器/计数器T0被拆分成2个独立的8位计数器TL0和TH0。5.3定时器/计数器的工作方式及工作原理5.3.4方式3235.3定时器/计数器的工作方式及工作原理5.3.4方式3TL0定时/计数器逻辑结构定时器/计数器T0工作方式3的逻辑结构24TH0定时/计数器逻辑结构定时器/计数器T0工作方式3的逻辑结构5.3定时器/计数器的工作方式及工作原理5.3.4方式3255.4.1定时器/计数器初始化定时/计数器的初始化包括设置工作方式、计数器或定时器模式、计算计数初始值、启动定时/计数器、设置中断控制位等。定时和计数可以采用查询方式和中断方式实现。5.4定时器/计数器的编程应用举例26(一)采用查询方式实现定时和计数(1)确定工作方式、计数器或定时器模式及启动控制方式,构造方式控制码并写入特殊功能寄存器TMOD:MOVTMOD,#控制码。(2)计算定时器或计数器的计数初始值,根据工作方式把初始值送人TH0、TL0或TH1、TL1。(3)启动定时/计数器:SETBTRx,x=0,1。定时/计数器开始工作,通过查询TFx是否为1来判断定时或计数是否达到要求。5.4定时器/计数器的编程应用举例5.4.1定时器/计数器初始化27(二)采用中断方式实现定时和计数(1)确定工作方式、计数器或定时器模式及启动控制方式,构造控制码并写入特殊功能寄存器TMOD。(2)计算定时器或计数器的计数初始值,根据工作方式把初始值送人TH0、TL0或TH1、TL1。(3)开放CPU中断,允许定时/计数器溢出中断CPU的工作:对IE寄存器编程。(4)启动定时/计数器:SETBTRx,x=0,1。当计数器溢出时,定时或计数达到要求,CPU响应中断,程序转移到相应的中断处理程序入口处。5.4定时器/计数器的编程应用举例5.4.1定时器/计数器初始化28定时/计数器有多种工作方式,每一种工作方式都能提供定时和计数功能,我们在应用中如何选择合适的工作方式呢?(1)掌握每种工作方式下定时/计数器的工作原理和特点。(2)了解每种工作方式下定时/计数器的最大计数次数和最大定时时间。5.4定时器/计数器的编程应用举例5.4.2定时器/计数器应用2913位定时/计数器(方式0)最大计数次数为8192,当晶振频率为12MHz时,最大定时时间为8.192ms。16位定时/计数器(方式1)最大计数次数为65536,当晶振频率为12MHz时,最大定时时间为65.536ms。8位定时/计数器(方式2和方式3)最大计数次数为256,当晶振频率为12MHz时,最大定时时间为0.256ms。5.4定时器/计数器的编程应用举例5.4.2定时器/计数器应用30(一)方式0的应用5.4定时器/计数器的编程应用举例5.4.2定时器/计数器应用8051P1.0T1KA光电传感器产品传送带VccDKV24VDC顶推气缸电磁阀线圈控制系统原理31(一)方式0的应用例1:已知某生产线传送带上产品单向传送到包装机,传送带上的产品之间有间隔,使用光电开关检测的产品个数,每计数到12个产品时,由气缸驱动的顶推装置把这批产品推入包装机包装,顶推装置的顶推气缸动作响应时间为50ms。系统采用单片机控制,采用定时/计数器实现产品计数。5.4定时器/计数器的编程应用举例5.4.2定时器/计数器应用32解:(1)计数采
本文标题:MCS-51单片机定时器计数器 第四章
链接地址:https://www.777doc.com/doc-3798612 .html