章 单片微机的定时器 原及粒用
第六章 单片微机的定时器/计数器 原理及应用
6-1概述 在单片微机应用系统中,常常会需要定时或计数,通常 采用以下三种方法来实现 1.硬件法 硬件定时功能完全由硬件电路完成,不占用CPU时间。 但当要求改变定时时间时,只能通过改变电路中的元件参数来 实现,很不灵活。 2.软件法 软件定时是执行一段循环程序来进行时间延时,优点是 无额外的硬件开销,时间比较精确。但牺牲了CPU的时间,所以 软件延时时间不宜长,而在实时控制等对响应时间敏感的场合 也不能使用
在单片微机应用系统中,常常会需要定时或计数,通常 采用以下三种方法来实现: 1.硬件法 硬件定时功能完全由硬件电路完成,不占用CPU时间。 但当要求改变定时时间时,只能通过改变电路中的元件参数来 实现,很不灵活。 2.软件法 软件定时是执行一段循环程序来进行时间延时,优点是 无额外的硬件开销,时间比较精确。但牺牲了CPU的时间,所以 软件延时时间不宜长,而在实时控制等对响应时间敏感的场合 也不能使用。。 6-1 概述
3.可编程定时器/计数器 可编程定时器/计数器最大特点是可以通过软件编程来实现定时 时间的改变,通过中断或查询方法来完成定时功能或计数功能 有专门的可编程定时器/计数器芯片可供选用,比如 Intel8253。 还有一些日历时钟芯片,如菲利浦公司的PCF8583等。 80C51包含有两个16位的定时器/计数器:T0和T1 80C52包含有三个16位的定时器/计数器:T0、T1和T2;在 80C51系列的部分产品(如 Philips公司的80C552)中,还包含有 个用做看门狗的8位定时器(T3)。 定时器/计数器的核心是一个加1计数器.其基本功能是 计数加1
3.可编程定时器/计数器 可编程定时器/计数器最大特点是可以通过软件编程来实现定时 时间的改变,通过中断或查询方法来完成定时功能或计数功能。 有专门的可编程定时器/计数器芯片可供选用,比如Intel 8253。 还有一些日历时钟芯片,如菲利浦公司的PCF8583等。 80C51包含有两个16位的定时器/计数器:T0和T1; 80C52包含有三个16位的定时器/计数器:T0、T1和T2;在 80C51系列的部分产品(如Philips公司的80C552)中,还包含有 一个用做看门狗的8位定时器(T3)。 定时器/计数器的核心是一个加1计数器.其基本功能是 计数加1
若是对单片微机的T0、T1或T2引脚上输入的一个1到0 的跳变进行计数增,即是计数功能。 若是对单片微机内部的机器周期进行计数,从而得到定 时,这就是定时功能。 定时功能和计数功能的设定和控制都是通过软件来设定 的 80C51的定时器/计数器除了可用作定时器或计数器之外, 还可用作串行接口的波特率发生器
若是对单片微机的T0、T1 或T2引脚上输入的一个1到0 的跳变进行计数增l,即是计数功能。 若是对单片微机内部的机器周期进行计数,从而得到定 时,这就是定时功能。 定时功能和计数功能的设定和控制都是通过软件来设定 的。 80C51的定时器/计数器除了可用作定时器或计数器之外, 还可用作串行接口的波特率发生器
6.2定时器/计数器T0、m T0、T1的内部结构简图示于图6-中。从图中可以看 出,T0、T1由以下几部分组成: 计数器TH0、TL0和TH、TL1; 特殊功能寄存器TMOD、TCON; 时钟分频器; 输入引脚T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中可以看 出,T0、T1由以下几部分组成: • 计数器TH0、TL0和TH1、TL1; • 特殊功能寄存器TMOD、TCON; • 时钟分频器; • 输入引脚T0、T1。 6.2 定时器/计数器T0、T1
621与定时器/计数器T0、T1有关的 特殊功能寄存器 1.T0、T1的方式寄存器TMOD 字节地址为89H TMOD的格式如下:低4位用来定义T0,高4位用来定 义T1
⒈ T0、T1 的方式寄存器——TMOD 字节地址为89H。 TMOD的格式如下:低4位用来定义T0,高4位用来定 义T1 6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
D7 D6 D5 D4 D3 D2 DI DO GATE C/T MI MO GATE C/T MI MO TO 各位的意义如下 GATE门控位 GATE=1时,由外部中断引脚、和TR0、TR1共同来启动 定时器。当引脚为高电平时,TR0置位启动定时器T0;当 引脚为高电平时,TR1置位,启动定时器T1。 GATE=0时,仅由TR0和TR1置位来启动定时器T0和T1
D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 T1 T0 各位的意义如下: • GATE——门控位 GATE=1时,由外部中断引脚、和TR0、TR1共同来启动 定时器。当 引脚为高电平时,TR0置位启动定时器T0;当 引脚为高电平时,TR1置位,启动定时器T1。 GATE=0时,仅由TR0和TR1置位来启动定时器T0和T1
功能选择位 C/T=1时,选择计数功能;C/T=0时,选择定时功能。 T0、T1的计数、定时功能是通过TMOD中的C/位来选择的。 ①定时器,设置C/T=0 计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值增1 每个机器周期等于12个振荡周期,故计数速率为振荡周期的1/ 12。当采用12MHz的晶体时,计数速率为1MHz。定时器的定时 时间,与系统的振荡频率fosc、计数器的长度和初始值等有关。 ②计数器,设置C/T=1 通过引脚T0(P34)和T1(P3.5)对外部信号进行计数。在 每个机器周期的S5P2期间,CPU采样引脚的输入电平。若前一机 器周期采样值为1,下一机器周期采样值为0,则计数器增1,此 后的机果周期SP1期间,新的计数值装入计数果
C/T——功能选择位 C/T=1时,选择计数功能;C/T=0时,选择定时功能。 T0、T1 的计数、定时功能是通过TMOD中的C/T位来选择的。 ① 定时器,设置C/T=0 计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值增1。 每个机器周期等于12个振荡周期,故计数速率为振荡周期的1/ 12。当采用12MHz的晶体时,计数速率为1MHz。定时器的定时 时间,与系统的振荡频率fosc、计数器的长度和初始值等有关。 ② 计数器,设置C/T=1 通过引脚T0(P3.4)和T1(P3.5)对外部信号进行计数。在 每个机器周期的S5P2期间,CPU采样引脚的输入电平。若前一机 器周期采样值为1,下一机器周期采样值为0,则计数器增1,此 后的机器周期S3P1期间,新的计数值装入计数器
所以检测一个1到0的跳变需要两个机器周期,故计数脉冲频率 不能高于振荡脉冲频率的1/24。 M1、M0工作方式选择位。 由于有M1和M0两位,可以有四种工作方式,如表6-1所 示 2定时器/计数器T0、T1的控制寄存器TCON 控制寄存器TCON是一个逐位定义的8位寄存器,字节地址为 88H,位寻址的地址为88H~8FH。其格式如下 位地8FH8EH8DH8CH8BH8AH89H88H 址 位功TF1TR1TF0TR0IE1T1IE0IT0 能
所以检测一个1到0的跳变 需要两个机器周期,故计数脉冲频率 不能高于振荡脉冲频率的1/24。 • M1、M0——工作方式选择位。 由于有M1和M0两位,可以有四种工作方式,如表6-1所 示。 ⒉ 定时器/计数器T0、T1的控制寄存器——TCON 控制寄存器TCON是一个逐位定义的8位寄存器,字节地址为 88H,位寻址的地址为88H~8FH。其格式如下: 位地 址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位功 能 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
其中各位的意义如下: TF1(TCON.7)—定时器/计数器T1的溢出标志 T1溢出时,该位由内部硬件置位。若中断开放,即响应 中断,进入中断服务程序后,由硬件自动清0;若中断禁止, 可用于判跳,用软件清0。 TR1(TCON.6)T1的运行控制位。 用软件控制,置I时,启动T1;清0时,停止T1 TF0(TCON.5)—T0的溢出标志
其中各位的意义如下: • TF1(TCON.7)——定时器/计数器T1的溢出标志。 T1溢出时,该位由内部硬件置位。若中断开放,即响应 中断,进入中断服务程序后,由硬件自动清0;若中断禁止, 可用于判跳,用软件清0。 • TR1(TCON.6)——T1的运行控制位。 用软件控制,置l时,启动T1;清0时,停止 T1。 • TF0(TCON.5)——T0的溢出标志