第六章 单片机课件.ppt
文本预览下载声明
第六章 MCS-51单片机的定时器/计数器 实现定时常用的三种方法: 软件定时:占用CPU时间,效率低。 用555电路:不可编程。 可编程芯片:功能强,需要另外扩展。 单片机内部有2个16位的定时/计数器:使用灵活,编程方便。--优先选用 6.1 定时器/计数器结构 一.定时器/计数器的结构及工作原理 MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。每个定时器/计数器的基本部件是两个8位的计数器(其中TH1、TL1是T1的计数器,TH0、TL0是T0的计数器)拼装而成。它们是采用加“1”方式工作的。 两个特殊功能寄存器(TMOD和TCON)用来对定时器/计数器的工作方式进行选择和控制。 8051单片机的定时器/计数器结构如下图所示。 定时功能----计数输入信号是内部时钟脉冲,其计数脉冲来源于晶振时钟输出信号的12分频,即每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。 计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。只要T0或T1的引脚上有一个1到0的负跳变,相应的计数器就加1. 在TMOD中,各有一个控制位(C/T),分别用于控制定时/计数器T0和T1工作在定时器方式还是计数器方式。 定时模式,对内部机器周期计数 定时时间 t =计数值N x Tcy 计数模式,对外部事件脉冲计数 计数脉冲周期要大于2 Tcy T0和T1计数器都只能递增计数,当16位计数器的计数值增加到0FFFFH时,再输入1个脉冲就会使计数器的值回零,并发生溢出信号,置相应的标志位(TCON中TF0或TF1置1), 向CPU发出中断请求。 设定计数次数:计数器的计数量程-计数初值。 二.定时器/计数器的控制寄存器 与定时器/计数器有关的控制寄存器有: 1. 定时器控制寄存器TCON TF1:定时器/计数器1(T1)的溢出中断标志位。 TF0:定时器/计数器0(T0)的溢出中断标志位。 TR1:定时器/计数器1的运行控制位。通过置1或清0来启动或停止T1的计数。 TR0:定时器/计数器0的运行控制位。 单片机复位后,TCON寄存器的所有位均为0. 2. 工作方式控制寄存器TMOD 高4位用于定时器1,低4位用于定时器0 ② C/T:定时器方式或计数器方式选择位 C/T=0时,为定时器方式 C/T=1时,为计数器方式 ③ GATE:门控位 当GATE=0时,TCON寄存器中的TR0或TR1为1,则可立即启动定时器/计数器; 当GATE=1时,不但要TR0或TR1为1,且单片机的INT0或INT1引脚的输入要为高电平,才能启动定时器/计数器。 三.定时器/计数器0或1的工作方式 1. 方式0—13位方式。由TL0的低5位和TH0的8位组成。TL0的5位计数溢出后,TH0的计数加1,直到全部的13位计数值为全1后,下一个计数脉冲的到达将使TF0置位为1,向CPU发出中断请求。 2. 方式1—16位方式 16位计数,由TL0作为低8位、TH0作为高8位 ; 16位计数,由TL1作为低8位、TH1作为高8位。 3. 方式2—8位自动装入时间常数方式 TL0作为8位内部计数器,TH0作为重装初值寄存器,在TL0计数溢出置位TF0标志的同时,由硬件控制直接将重装初值装入TL0,开始新一轮的计数,如此不断循环。 方式2和方式0、1最大的差别就是计数器的初值是由硬件控制自动装入的。 方式0、1一旦计数溢出,就表示计数器已回0,如果要按照原先的初值重新计数,就需要通过软件重装计数器初值。 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位。 1.初始化步骤 MCS-51内部定时器/计数器是可编程的,其工作方式和工作过程均可由MCS-51通过程序对它进行设定和控制。因此,MCS-51在定时器/计数器工作前必须先对它进行初始化。初始化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。 (2) 根据实际需要给定时器/计数器选送定时器初值或计数器初值,以确定需要定时的时间和需要计数的初值。 (3) 根据需要给中断允许寄存器IE选送中断控制字和给中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级
显示全部