MCS51单片机定时器计数.ppt

上传人:小飞机 文档编号:5439675 上传时间:2023-07-07 格式:PPT 页数:45 大小:478.50KB
返回 下载 相关 举报
MCS51单片机定时器计数.ppt_第1页
第1页 / 共45页
MCS51单片机定时器计数.ppt_第2页
第2页 / 共45页
MCS51单片机定时器计数.ppt_第3页
第3页 / 共45页
MCS51单片机定时器计数.ppt_第4页
第4页 / 共45页
MCS51单片机定时器计数.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《MCS51单片机定时器计数.ppt》由会员分享,可在线阅读,更多相关《MCS51单片机定时器计数.ppt(45页珍藏版)》请在三一办公上搜索。

1、12.MCS-51单片机的定时器/计数器,单片机原理及接口技术第5章,12.1 定时器/计数器概述 12.2 定时器/计数器的工作方式选择寄存器12.3 定时器/计数器的控制寄存器12.4 定时器/计数器4种工作方式及其应用,本章学习要求,1、理解定时、计数概念及两者的区别,掌握工作方式寄存器与控制寄存器中各个位的意义。,2、掌握定时/计数器初始化方法,能把定时/计数器设置在需要的工作方式。,3、能应用定时/计数器来实现所需的功能,包括程序的编写。,微机系统中经常要使用到定时信号,例如:,系统日历时钟的计时;,动态存储器的定时刷新;,.,定时/计数器就是产生定时计数信号的硬件方法。,定时/计数

2、器的功能主要体现在两个方面:,计数功能;,定时功能。,12.1 定时器/计数器概述,1、计数功能对事件的个数进行计数。正计数:关心记录事件的次数。倒计数:关心预先设定事件次数发生完的时刻。预先设置好计数初值(定时常数),进行减1操作(倒计数),减到0时,输出一个信号。作为计数器,在减到0后,输出一个信号,此次计数结束。,开始计数,计数结束,输出信号,2.定时功能,取得给定的时间间隔(定时间隔),作为:延时:某事件发生后间隔一定的时间。时标:给定时间间隔的连续脉冲。设置好定时常数后,进行减1操作,减到0时,输出信号,并自动恢复初值重新计数,从而可产生定时间隔。作为定时器,在减到0后,输出一个信号

3、,同时自动恢复初值并重新计数(与计数器不同)。,开始计数,重新计数,产生定时间隔,计数功能作为计数个数,计数结束发中断信号。记录外部特定事件发生的个数。定时功能作为周期性定时中断信号。用于多任务分时操作系统,实现程序的切换。用作系统时钟基准。作为一个可编程波特率发生器,用于异步串行通信。可往I/O设备输出精确的定时信号,实现外设与CPU的同步。实现CPU的时间延时。,计数器/定时器的用途:,MCS-51单片机的定时器/计数器简介,2个16位的定时/计数器,有多种工作方式。,定时/计数器工作在定时模式时,计数脉冲信号来自单片机的内部,计数速率是晶振频率的1/12(即计数周期等于机器周期),当计数

4、器启动后,每个机器周期计数器自动加1。,定时/计数器工作在计数模式时,计数器对外部脉冲进行计数,计数器计算P3.4(T0脚)、P3.5(T1脚)负跳变的次数。每产生一次负跳变,计数器自动加1。,MCS-51单片机定时器/计数器的逻辑结构,MCS-51单片机的定时/计数器有一个工作方式寄存器(Timer/counter MODe control register,TMOD),用于设置定时/计数器的工作方式,高4位用于T1,低4位用于T0,TMOD寄存器的地址为89H。,12.2 定时器/计数器的工作方式选择寄存器,TMOD各位的定义(以定时器/计数器T0为例),门控位:,GATE0,定时/计数器

5、工作不受外部控制。,GATE1,定时/计数器T0的起停受INT0引脚的控制。,定时和计数模式选择位:,0,定时器模式,每一个机器周期计数器自动加1。,1,计数器模式,在单片机T0引脚上每发生一次负跳变,计数器自动加1。,工作方式选择位:,12.3 定时器/计数器的控制寄存器,控制寄存器TCON既有中断标志寄存器的功能(低4位),同时具有控制定时/计数器的功能(高4位),TCON寄存器的地址为88H。作用是控制定时/计数器的起停,反映定时/计数器是否计满。,单片机复位时,特殊功能寄存器TCON将被清0。,TFx(x=0,1)和TRx(x=0,1)由软件方法置1或清0。既可按单元操作的方式,也可以

6、按位操作方式。,如启动定时/计数器T0和T1,清除溢出标志位TF0和TF1操作如下:,SETB TR0 SETB TR1 CLR TF0 CLR TF1,或:MOV TCON,#01010000B,12.4 定时/计数器的4种工作方式及其应用,一、定时/计数器的初始化,定时/计数器的初始化包括设置工作方式、计数器或定时器模式、计算计数初始值、启动定时/计数器、设置中断控制位等。,定时和计数可以采用查询方式和中断方式实现。,采用查询方式初始化定时/计数器的步骤,(1)确定工作方式、计数器或定时器模式及启动控制方式,构造方式控制码并写入特殊功能寄存器TMOD:MOV TMOD,#控制码。,(2)计

7、算定时器或计数器的计数初始值,根据工作方式把初始值送人TH0、TL0或TH1、TL1。,(3)启动定时/计数器:SETB TRx,x=0,1。,此后定时/计数器开始工作,通过查询TFx是否为1来判断定时或计数是否达到要求。,采用中断方式初始化定时/计数器地步骤,(1)确定工作方式、计数器或定时器模式及启动控制方式,构造方式控制码并写入特殊功能寄存器TMOD:MOV TMOD,#控制码。,(2)计算定时器或计数器的计数初始值,根据工作方式把初始值送人TH0、TL0或TH1、TL1。,(3)开放CPU中断,允许定时/计数器溢出中断CPU的工作:对IE寄存器编程。,此后定时/计数器开始工作,当计数器

8、溢出时,定时或计数达到要求,CPU响应中断,程序转移到相应的中断处理程序入口处。,(4)启动定时/计数器:SETB TRx,x=0,1。,一、方式0(13位方式),MCS-51单片机的2个16位定时/计数器T0和T1具有多种工作方式,其中T0有4种方式,T1有3种。它们由TMOD寄存器设置。,二、定时/计数器的工作方式,当GATE=0时,只要TR0为1,TL0及TH0组成的13位计数器就开始计数;,当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,13位计数器开始计数。,计数器开始工作后,当13位计数器从初始值开始加1计数直到各位全为1以后,再计数1次,计数器就产生溢出,则TF0位由

9、硬件自动置1,同时把计数器清0。,在方式0下,计数器计数范围是18192(213)。定时时间范围为18192个机器周期,即当晶振频率fosc=12MHz时,最大定时时间为8.192 ms,要求在计数若干次或者定时(延时)若干秒后,再进行下一步的动作。,工程设计时,我们经常碰到这样的问题:,若采用定时/计数器实现,最直接的方法是让定时/计数器计数若干次或者定时若干秒后溢出,让溢出标志TF0(或TF1)为我们提供测试判断的条件。,然而,计数器只有在计数满后才会溢出,上述问题转换为在某个初始值的基础上再计数N次或再定时t秒使定时/计数器溢出。因此,求初始值是解决上述问题的关键。,初始值的计算,计数器

10、工作模式,设计数N次后,要求计数器溢出,问初始值应为多少?,设初始值为,则:,有:,预先给计数器装入初始值,当计数器计数N次后,溢出标志TF0为1。,定时器工作模式,设定时td秒,要求计数器溢出。,首先计算定时td需要多少个机器周期,即:,设初始值为,预先给计数器装入初始值,当计数器计数N个机器周期后,溢出标志TF0为1,定时时间到。,则:,有:,定时/计数器方式0的应用,例1:已知某生产线传送带上的产品单向传送到包装机,传送带上的产品之间有间隔,使用光电传感器检测产品的个数,每计数到12个产品时,由气缸驱动的顶推装置把这批产品推入包装机包装,顶推装置的顶推气缸动作响应时间为50ms。系统采用

11、单片机控制,采用定时/计数器实现产品的计数,解:,(1)计数采用定时/计数器T1的方式0,则方式控制字为:,即:(TMOD)=01000000B,(2)需要计数的次数为12次,方式0实现计数,则计数初始值为:,则(TH1)=11111111B,(TL1)=00010100B,CLR P1.0;顶推气缸复位MOV TMOD,#01000000B;设置工作方式0和计数器模式MOV TH1,#11111111B;设置计数初始值高8位MOV TL1,#00010100B;设置计数初始值低5位SETB TR1;计数器启动CNTING:JBC TF1,OK;检测是否溢出,若溢出,清溢;出标志,并跳转到OK

12、(P100)SJMP CNTING;等待产品传送,计数OK:MOV TH1,#11111111B;重新装入计数常数值,以便下;一次计数循环 MOV TL1,#00010100B,(3)利用查询方式初始化:,SETB P1.0;顶推气缸动作,推入包装机ACALL DL50MS;控制信号保持50ms,以便气缸动;作到位。短调用指令,相对于;LCALL(P104)CLR P1.0;顶推气缸复位SJMP CNTING;延时50ms子程序,晶振频率为12M HzDL50MS:MOV R7,#50DL1MS:MOV R6,#200DL:NOP;空操作指令 NOP NOP,DJNZ R6,DL;循环控制转移

13、指令(P101)DJNZ R7,DL1MSRET,利用中断方式初始化:课本P151,定时计数器T0工作方式1的逻辑结构,二、方式1(16位方式),当GATE=0时,只要TR0为1,TL0及TH0组成的16位计数器就开始计数;,当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,16位计数器开始计数。,计数器开始工作后,当16位计数器从初始值开始加1计数直到16位计数器各位全为1以后,再计数1次,计数器就产生溢出,则硬件自动把TF0位置1,同时把计数器清0。,在方式1下,计数器计数范围是165536(216)。定时时间范围为165536个机器周期,即当晶振频率fosc=12MHz时,最大

14、定时时间为65.536 ms,定时计数器T0工作方式1的逻辑结构,方式1初始值的计算,计数器工作模式,设计数N次后,要求计数器溢出,问初始值应为多少?,设初始值为,则:,有:,预先给计数器装入初始值,当计数器计数N次后,溢出标志TF0为1。,定时器工作模式,设定时td秒,要求计数器溢出。,首先计算定时td需要多少个机器周期才能实现。,即:,设初始值为,预先给计数器装入初始值,当计数器计数N个机器周期后,溢出标志TF0为1,定时时间到。,则:,有:,定时/计数器方式1的应用,例2:设单片机应用系统的晶振频率为6MHz,要求使用定时/计数器定时方法在P1.0引脚输出周期为100ms,占空比为1:4

15、的信号序列,如下图所示。,P1.0引脚输出的信号序列,解:,分析:设计时,以20ms为一个基本定时单位,高电平保持1个基本定时单位之后,P1.0变为低电平,保持4个基本定时单位,然后,P1.0再次改变为高电平,周而复始地重复上述过程,就可以实现题目要求的信号序列。,(1)计算计数的初始值,系统的晶振频率为fosc=6MHz,机器周期TM=2s。选用定时/计数器T0的方式1实现,确定定时时间为td=20ms,假设计数初始值为X:,则(TH0)=0D8H,(TL0)=0F0H。,(2)设置工作方式,方式1:M1M0=01,因此,(TMOD)=01H。,定时器模式:,定时/计数器启动不受外部控制:G

16、ATE=0,(3)初始化程序(中断方式或程序查询方式 P154),三、方式2(8位自动装入时间常数方式),定时计数器0在工作方式2的逻辑结构,当GATE=0时,只要TR0为1,计数器TL0开始计数;,当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,计数器TL0开始计数。,定时计数器0在工作方式2的逻辑结构,计数器开始工作后,当8位计数器TL0从初始值开始加1计数直到计数器各位全为“1”以后,再计数1次,计数器就产生溢出,则TF0位由硬件自动置1,同时把TH0的内容装载到TL0。,在方式2下,计数器计数范围是1256(28)。定时时间范围为1256个机器周期,即当晶振频率fosc=1

17、2MHz时,最大定时时间为0.256 ms,定时计数器0在工作方式2的逻辑结构,方式2初始值的计算,计数器工作模式,设计数N次后,要求计数器溢出,问初始值应为多少?,设初始值为,则:,有:,预先给计数器装入初始值,当计数器计数N次后,溢出标志TF0为1。,定时器工作模式,设定时td秒,要求计数器溢出。,首先计算定时td需要多少个机器周期才能实现。,即:,设初始值为,预先给计数器装入初始值,当计数器计数N个机器周期后,溢出标志TF0为1,定时时间到。,则:,有:,定时/计数器方式2的应用,例3:低频信号由T0(P3.4)引脚输入,要求当T0(P3.4)发生负跳变时,从P1.0引脚上输出1个500

18、us的同步脉冲。设系统的晶振频率为6MHz。,同步脉冲输出原理,解:,分析:采用定时/计数器计数方式和定时方式结合的方法,当P3.4引脚出现负跳变时,让计数器溢出,此时,使P1.0引脚输出低电平,并且改变定时/计数器的工作方式为定时方式,使低电平保持500us的延时,当计数器再次溢出时,使P1.0引脚输出高电平,同时把定时/计数器的工作方式改变为计数方式,原理如上图所示。,选用定时/计数器T0的方式2可实现上述要求。,(1)外部事件计数的初始化,工作方式:M1M0=10,因此,(TMOD)=06H。,计数器模式:,GATE=0,计数初始值:由于P3.4引脚上的信号,每发生一次负跳变,要求计数器

19、溢出,所以,(TL0)=0FFH,同时,令(TH0)=0FFH,以便下一个负跳变出现时,计数器也可溢出。,(2)500 定时的初始化,工作方式:M1M0=10,因此,(TMOD)=02H。,定时模式:,GATE=0,计数初始值计算:系统晶振频率为6MHz,则机器周期为2,方式2时计数器为8位,则定时500 所需的机器周期个数为,计数器初始值为:,因此,(TL0)=06H,同时,令(TH0)=06H,四、方式3(2个8位方式),当工作方式寄存器中的M1M0设置为11时,定时/计数器T0的工作方式为方式3。,只有定时/计数器T0有方式3,定时/计数器T1没有工作方式3,如果把T1设置为方式3,计数

20、器T1将停止工作。,在工作方式3下,定时/计数器T0被拆分成2个独立的8位计数器TH0和TL0,TH0的逻辑结构,方式3与方式2一样,每个8位计数器的计数范围是1256(28)。定时时间范围为1256个机器周期,即当晶振频率fosc=12MHz时,最大定时时间为0.256 ms,本章小结,一、MCS-51单片机内部有2个可编程的16位定时/计数器T0和T1,它们既可以作为定时器,又可以作为外部事件的计数器,还可以作为串行口的波特率发生器。T0有4种工作方式,而T1有3种工作方式。,二、定时/计数器T0的计数器由TL0和TH0构成;定时/计数器T1的计数器由TL1和TH1构成。T0和T1有多种工作方式,由定时/计数器方式寄存器TMOD设置。,三、T0和T1的启动和停止由定时/计数器控制寄存器TCON控制,当计数器计数溢出时,其溢出标志位TF0和TF1被置1,并可以以此标志向CPU提出中断请求。,计数功能作为计数个数,计数结束发中断信号。记录外部特定事件发生的个数。定时功能作为周期性定时中断信号。用于多任务分时操作系统,实现程序的切换。用作系统时钟基准。作为一个可编程波特率发生器,用于异步串行通信。可往I/O设备输出精确的定时信号,实现外设与CPU的同步。实现CPU的时间延时。,四、计数器/定时器的用途归纳,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号