MCS-51单片机的定时器计数器课件_第1页
MCS-51单片机的定时器计数器课件_第2页
MCS-51单片机的定时器计数器课件_第3页
MCS-51单片机的定时器计数器课件_第4页
MCS-51单片机的定时器计数器课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章MCS-51单片机的定时器/计数器1精选2021版课件实现定时常用的三种方法:软件定时:占用CPU时间,效率低。用555电路:不可编程。可编程芯片:功能强,需要另外扩展。单片机内部有2个16位的定时/计数器:使用灵活,编程方便。--优先选用2精选2021版课件6.1定时器/计数器结构一.定时器/计数器的结构及工作原理MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。每个定时器/计数器的基本部件是两个8位的计数器(其中TH1、TL1是T1的计数器,TH0、TL0是T0的计数器)拼装而成。它们是采用加“1”方式工作的。

两个特殊功能寄存器(TMOD和TCON)用来对定时器/计数器的工作方式进行选择和控制。

8051单片机的定时器/计数器结构如下图所示。3精选2021版课件内部总线工作方式工作方式TH1TL1TH0TL0TCONTMODT1T0微处理器8051单片机定时器/计数器结构示意图

加1计数器(高8位、低8位)

TMOD,工作方式设置;

TCON,启动、停止及设置溢出标志。

4精选2021版课件定时功能----计数输入信号是内部时钟脉冲,其计数脉冲来源于晶振时钟输出信号的12分频,即每个机器周期使寄存器的值加1。定时器可看做是对机器周期的计数器。所以,定时计数频率是振荡频率的1/12。计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。只要T0或T1的引脚上有一个1到0的负跳变,相应的计数器就加1.在TMOD中,各有一个控制位(C/T),分别用于控制定时/计数器T0和T1工作在定时器方式还是计数器方式。5精选2021版课件定时模式,对内部机器周期计数定时时间t=计数值NxTcy计数模式,对外部事件脉冲计数计数脉冲周期要大于2TcyT0和T1计数器都只能递增计数,当16位计数器的计数值增加到0FFFFH时,再输入1个脉冲就会使计数器的值回零,并发生溢出信号,置相应的标志位(TCON中TF0或TF1置1),

向CPU发出中断请求。设定计数次数:计数器的计数量程-计数初值。6精选2021版课件二.定时器/计数器的控制寄存器

与定时器/计数器有关的控制寄存器有:1.定时器控制寄存器TCON7精选2021版课件TF1:定时器/计数器1(T1)的溢出中断标志位。TF0:定时器/计数器0(T0)的溢出中断标志位。TR1:定时器/计数器1的运行控制位。通过置1或清0来启动或停止T1的计数。TR0:定时器/计数器0的运行控制位。单片机复位后,TCON寄存器的所有位均为0.8精选2021版课件2.工作方式控制寄存器TMOD

高4位用于定时器1,低4位用于定时器0①M1,M0:工作模式选择位。定时器/计数器四种工作模式选择如表6-1所示。9精选2021版课件10精选2021版课件②C/T:定时器方式或计数器方式选择位C/T=0时,为定时器方式C/T=1时,为计数器方式③GATE:门控位当GATE=0时,TCON寄存器中的TR0或TR1为1,则可立即启动定时器/计数器;当GATE=1时,不但要TR0或TR1为1,且单片机的INT0或INT1引脚的输入要为高电平,才能启动定时器/计数器。11精选2021版课件三.定时器/计数器0或1的工作方式1.方式0—13位方式。由TL0的低5位和TH0的8位组成。TL0的5位计数溢出后,TH0的计数加1,直到全部的13位计数值为全1后,下一个计数脉冲的到达将使TF0置位为1,向CPU发出中断请求,同时把计数器变为全“0”。12精选2021版课件其定时时间为:(213-初值)×机器周期13精选2021版课件2.方式1—16位方式16位计数,由TL0作为低8位、TH0作为高8位;16位计数,由TL1作为低8位、TH1作为高8位。其定时时间为:(216-初值)×机器周期14精选2021版课件3.方式2—8位自动装入时间常数方式TL0作为8位内部计数器,TH0作为重装初值寄存器,在TL0计数溢出置位TF0标志的同时,由硬件控制直接将重装初值装入TL0,开始新一轮的计数,如此不断循环。方式2和方式0、1最大的差别就是计数器的初值是由硬件控制自动装入的。方式0、1一旦计数溢出,就表示计数器已回0,如果要按照原先的初值重新计数,就需要通过软件重装计数器初值。15精选2021版课件方式2适合于用作较精确的脉冲信号发生器。16精选2021版课件4.方式3—2个8位方式仅T0可以工作在方式3,T1处于方式3时停止计数。此时,T0分成2个独立的计数器—TL0和TH0,前者用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)。(1)TH0由TR1启动/停止,溢出TF1(2)TL0由TR0启动/停止,溢出TF0(3)TH0只能定时,TL0可以定时/计数,且都是8位。17精选2021版课件1.初始化步骤MCS-51内部定时器/计数器是可编程的,其工作方式和工作过程均可由MCS-51通过程序对它进行设定和控制。因此,MCS-51在定时器/计数器工作前必须先对它进行初始化。初始化步骤为:(1)根据题目要求先给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。(2)根据实际需要给定时器/计数器选送定时器初值或计数器初值,以确定需要定时的时间和需要计数的初值。6.2定时器/计数器的初始化18精选2021版课件(3)根据需要给中断允许寄存器IE选送中断控制字和给中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。(若采用中断方式)(4)给定时器控制寄存器TCON送命令字,以启动或禁止定时器/计数器的运行。19精选2021版课件

2.计数器初值的计算

定时器/计数器可用软件随时随地启动和关闭,启动时它就自动加1计数,一直计到满,即全为1,若不停止,计数值从全1变为全0,同时将计数溢出位置1并向CPU发出定时器溢出中断申请。对于各种不同的工作模式,最大的定时时间和计数数值不同。这里在使用中就会出现两个问题:

一是要产生比定时器最长的定时时间还要短的时间和比计数器最多的计数次数还要少的计数次数;

二是要产生比定时器最长的定时时间还要长的时间和比计数器最多的计数次数还要多的计数次数。20精选2021版课件

如果计数初值设定为C,则计数器从初值C开始作加1计数到计满为全1所需要的计数值设定为D,由此便可得到如下的计算通式:C= M -D①式中,M为计数器量程,该值和计数器工作模式有关。在模式0时,M为213;在模式1时,M为216;在模式2和模式3时,M为28。21精选2021版课件3.定时器初值的计算在定时器方式下,计数器由单片机脉冲经12分频后计数。因此,定时器定时时间T的计算公式为式中,Tc为定时器的初始常数值;T为计数器从初值Tc开始作加1计数到计满为全1所需要的时间;M为计数器量程,和定时器的工作模式有关;fosc是单片机晶体振荡器的频率。22精选2021版课件在上式中,若设Tc = 0,则定时器定时时间为最大(初值为0,计数从全0到全1,溢出后又为全0)。由于M的值和定时器工作模式有关,因此不同工作模式下定时器的最大定时时间也不一样。例如,若设单片机主脉冲晶体振荡器频率fosc为12 MHz,则最大定时时间为模式0时:Tmax = 213 × 1µs = 8.192 ms模式1时:Tmax = 216× 1µs = 65.536 ms模式2和3时:Tmax = 28× 1µs = 0.256 ms23精选2021版课件例6-5.用定时器1,方式2实现1s的延时。24精选2021版课件25精选2021版课件

根据13位定时器/计数器特性,先把低5位0CH送TL0,TL0的高三位置零,高8位F0H送至TH0。可用下列指令实现定时器T0初始化。

MOVTMOD,#00H;T0工作于模式0,定时方式

MOVTL0,#0CH;低5位送TL0寄存器

MOVTH0,#0F0H;高8位送TH0寄存器26精选2021版课件27精选2021版课件28精选2021版课件29精选2021版课件初始化程序:MOVTMOD,#16H;T1定时模式1,T0计数模式2MOVTL0,#0FFH ;T0时间常数送TL0MOVTH0,#0FFH ;T0时间常数送TH0MOVTL1,#78H;T1时间常数(低8位)送TL1MOVTH1,#0ECH;T1时间常数(高8位)送TH1SETBTR0;置TR0为1,允许T0启动计数SETBTR1;置TR1为1,允许T1启动计30精选2021版课件31精选2021版课件32精选2021版课件例6-5.用定时器1,方式2实现1s的延时(12MHZ)。解:因方式2是8位计数器,其最大定时时间为:256*1μs=256μs,为实现1s的延时,可选择定时时间为250μs,再循环4000次。定时时间选定后,可确定计数值为250,则定时器1的初值为:X=M-计数值=256-250=6=6H。采用定时器1,方式2工作,因此,TMOD=20H。33精选2021版课件DELAY:MOVR7,#40 ;置25ms计数循环初值MOVR6,#100 ;置250μs计数循环初值MOVTMOD,#20H ;设定时器1为方式2MOVTH1,#06H ;置定时器初值MOVTL1,#06HSETBTR1 ;启动T1LP1:JBCTF1,LP2 ;查询计数溢出SJMPLP1 ;无溢出则继续计数LP2: DJNZR6,LP1 ;未到25ms继续循环MOVR6,#100DJNZR7,LP1 ;未到1s继续循环RET ;返回主程序

34精选2021版课件6.3定时器/计数器的应用

定时器/计数器是单片机的重要组成部分,其工作方式灵活,功能强大,配合中断使用可减轻CPU的负担,减少外围电路。本节通过实例说明定时器/计数器的使用方法。【例6-6】试通过定时器实现方波输出。设时钟频率fosc为12 MHz,从P1.0输出频率周期为1ms的方波,如图所示。35精选2021版课件36精选2021版课件37精选2021版课件38精选2021版课件39精选2021版课件40精选2021版课件【6-7】.设P1口接有8个LED,编程实现8个LED的跑马灯。系统晶振为12MHZ,跑马灯顺序为依次点亮P1.0-P1.7的LED,并不断循环。要求使用定时器T0的方式1进行定时,每个LED点亮时间为1s.41精选2021版课件查询方式:ORG0000HLJMPMAINORG0050HMAIN:MOVTMOD,#01;令T0定时方式1MOVTH0,#3CHMOVTL0,#0B0H;定时50ms初值@12MHzSETBTR0;启动T0MOVR7,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论