单片机原理及应用教程.ppt
文本预览下载声明
本章结束 谢谢使用 * * 第5章 MCS-51单片机定时器/计数器 5.1 定时器/计数器概述 5.2 定时器/计数器的控制 5.3 定时器/计数器的工作模式 5.4 定时器/计数器应用实例 MCS-51单片机内部有两个16位定时器/计数器,简称定时器0(T0)和定时器1(T1)。它们均可用作定时器或事件计数器,为单片机系统提供计数和定时功能,还可作为串行接口的波特率发生器 5.1 定时器/计数器概述 定时器/计数器实际上是加1计数器,当它对外部事件进行计数时,由于频率不固定,此时称之为计数器;当它对内部固定频率的机器周期进行计数时,称之为定时器。 定时器/计数器的基本结构如图5-1所示。 TH1、TL1是T1的计数器,TH0、TL0是T0的计数器。TH1和TL1、TH0和TL0分别构成两个16位加法计数器 。 它们的工作状态及工作方式由两个特殊功能寄存器TMOD和TCON的各位来决定。工作状态有定时和计数两种,由TMOD的第2位(T0)或第6位(T1)决定。工作模式共有0~3四种,也是由TMOD其中的两位(1个定时器)来决定。TMOD和TCON的内容由软件写入。 图5-1 定时器/计数器内部结构框图 5.2 定时器/计数器的控制 定时器/计数器有4种工作模式,由TMOD设置并由TCON控制。 5.2.1 定时器/计数器的工作模式寄存器TMOD 特殊功能寄存器TMOD的地址为89H,它不能位寻址,在设置时一次写入。 其中: M1M0-工作模式控制位 M1M0对应4种不同的二进制组合,分别对应4种工作模式。 5.3 定时器/计数器的工作模式 MCS-51系列单片机的定时器/计数器T0和T1可由软件对特殊功能寄存器TMOD中控制位C/进行设置,以选择定时功能或计数功能。对M1和M0位的设置对应于四种工作模式,即模式0、模式1、模式2、模式3。 5.3.1 工作模式0 模式0是选择定时器/计数器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。其逻辑框图如图5-4所示。 图5-4 定时器/计数器T0工作模式0逻辑结构框图 5.3.2 工作模式1 该模式对应的是一个16位的定时器/计数器,如图5-5所示。其结构与操作几乎与模式0完全相同,惟一的差别是:在模式1中,寄存器TH0和TL0是以全部16位参与操作。用于定时工作方式时,定时时间为 t=(216-T0初值)×振荡周期×12 用于计数工作方式时,计数最大长度为216=65535个外部脉冲。 图5-5 定时器/计数器T0工作模式1逻辑结构框图 5.3.3 工作模式2 模式2把TL0(或TL1)设置成一个可以自动重装载的8位定时器/计数器,如图5-6所示。TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这时,16位计数器被拆成两个,TL0用作8位计数器,TH0用以保存初值。 用于定时工作方式时,其定时时间(TF0溢出周期)为 t=(28-TH0初值)×振荡周期×12 用于计数工作方式时, 最大计数长度为28=256 个外部脉冲。 图5-6 定时器/计数器T0工作模式2逻辑结构框图 5.3.4 工作模式3 工作模式3对T0和T1大不相同。若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器,如图5-7所示。 图5-7 定时器/计数器T0工作模式3逻辑结构框图 5.4 定时器/计数器应用实例 5.4.1 模式0的应用 【例5-1】 利用定时器/计数器每隔1ms控制产生宽度为两个机器周期的负脉冲,由P1.0送出。设时钟频率为12MHz。 为了提高CPU的效率,采用中断方式工作。 首先求定时器的初值,设定时器初值为X,定时1ms,则应有 (213-X)×10-6=1×10-3 式中,机器周期为1μs,可求得X=719211000B,其中高8位0E0H赋给TH0,低5位18H送TL0。由于系统复位后,TMOD清0,正好处于定时器模式0状态,且GATE=0,也可不设置TMOD。 程序如下: ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0100H MAIN: MOV TH0, #0E0H MOV TL0, #18H ; 送定时初值 MOV IE, #82H ; 允许T0中断EA=1,ET0=1 SETB TR0 ; 启动定时器0 LOOP: SJMP LOOP ORG 0200H T0INT: CLR P1.0 SETB P1.0 ; 送2μs的负脉冲 MOV TH0, #0DDH ; 用软件
显示全部