当前位置:文档之家› 单片机控制装置与调试任务五 定时器与计数器共20页

单片机控制装置与调试任务五 定时器与计数器共20页


• (2)工作方式l • 将方式寄存器TMOD的方式选择位M1M0设置为01时,定时器/计数器设定
为方式1,由TH0和TL0(或TH1和TL1)构成了16位的计数器。图4.9给出了定 时器T0在方式1时的工作原理框图,Tl在方式1时的工作原理与此类似。
图5-2 定时器/计数器0方式1开关SI自动地接在下面,定时器/计数器工作在计数状 态,TH0、TL0构成了一个16位的加法计数器,它对T0(P3.4)引脚上的外部脉 冲计数。当计数到全1(FFFFH),再来一个外部脉冲便计数到0,计数器溢出 使TF0=1,以此作为定时器/计数器的中断标志向CPU请求中断。
• 在方式0下,计数长度为1 3位二进制数.最大计数值M=213=8192。如果要 让数器汁数N次,则应向计数器中写入的计数初值X为
• 计数初值X=最大计数值M-计数次数M—计数次数=213—N=8192—N
• 例如,设置计数器计数2000次,计数次数N=2000数初值x为 • 计数初值x=213一N=8192—2000=6192 • = 11000001,10000 B • 但应注意,上述13位计数初值的高8位写入TH1,而13位计数初值的低5位二
式,各位定义如表4.5所示。
• 如果C / =1,定时器/计数器1工作在计数状态,则由THI、TLl构成的13位加 法计数器对Tl(P3.5)引脚上的外部脉冲计数。当计数到全1(即8l9l或 1FFFH).再来一个外部脉冲便计数到0,计数器溢出使TFl=I.以此作为定 时器/计数器的中断标志。
• 当处于定时方式时,定时器/计数器对内部机器周期TC进行加1计数,因此 其计数最小单位就是1个机器周期。例如,当我们的应用系统采用的时钟频率 为12 MHz时,其机器周期Tc=1 us,其基本定时单位就是l us 。

在定时/计数过程中,可以用指令将加法计数器的值读回CPU。
• 2. 定时器计数器的控制方式
33、如果惧怕前面跌宕的山岩,生命 就永远 只能是 死水一 潭。 34、当你眼泪忍不住要流出来的时候 ,睁大 眼睛, 千万别 眨眼!你会看到 世界由 清晰变 模糊的 全过程 ,心会 在你泪 水落下 的那一 刻变得 清澈明 晰。盐 。注定 要融化 的,也 许是用 眼泪的 方式。
35、不要以为自己成功一次就可以了 ,也不 要以为 过去的 光荣可 以被永 远肯定 。
在方式1下,计数长度为16位二进制数,最大计数值M=216=65 536。如果要让计 数器计数N次,则事先应向计数器中写入的计数初值X为 计数初值X=最大计数值M-计数次数N=216—N =65 536—N
在上式中,M是计数器的最大计数值,N为计次数,X是应写入TH0、TL0的计数 初值。例如,让计数器计数100次,计数次数N=100,则计数初值X为

(1) 定时器方式寄存器TMOD

TMOD称为定时器方式寄存器,用来设置定时器/计数器的工作方式、是
否需要门控信号等,其地址为89H。定时器/计数器T0、T1都有4种工作方
式,可通过对方式寄存器TMOD设置来选择工作方式。TMOD的低4位用于设
置定时器/计数器T0的工作方式.高4位用于设置定时器/计数器1的工作方
单片机控制装置与调试任务 五 定时器与计数器
31、别人笑我太疯癫,我笑他人看不 穿。(名 言网) 32、我不想听失意者的哭泣,抱怨者 的牢骚 ,这是 羊群中 的瘟疫 ,我不 能被它 传染。 我要尽 量避免 绝望, 辛勤耕 耘,忍 受苦楚 。我一 试再试 ,争取 每天的 成功, 避免以 失败收 常在别 人停滞 不前时 ,我继 续拼搏 。

任务五 定时器与计数器
• 一 任务背景

51系列单片机有两个16位定时器/计数器,通过对机器周期计数达到定
时的目的,通过对外部事件计数达到计数之目的。
• 1. 定时器/计数器的基本原理

51单片机的定时器/计数器采用加法计数方式工作。两个定时器/计数
器T0和T1自内部均有一个16位加法计数器(TH0, TL0和TH1, TL1),用来
完成加1计数。当加法计数器产生溢出时,硬件自动产生溢出中断标志信号,
可向CPU申请中断。由于加法计数器的初值可以由程序设定,因此其计数/
定时范围就可利用软件来编程。

当处于计数方式时,定时器/计数器对加在T0(P3. 4). T1(P3.5)引脚的脉
冲信号进行加1计数,我们可以通过设置不同的初值来控制计数次数。
• C / =0时为定时器方式,图4.9中开关SI接在上面,加法计数器对机器周期Tc 计数,每个机器周期计数器加1。根据计数次数N便可计算出定时时间,定时 时间由下式确定:
• T=N×Tc=(65 536-X)Tc • 式中Tc为单片机的机器周期。如果振荡频率fosc=12 MHz,则Tc=1us,定时
进制数前面要加3个0,凑成8位二进制数后写入TL1。此例中应向TH1写入的 数据是:11000001B(C1H),向TLI写入的数据是:00010000 B(10H),即计 数初值X= C110H。 • 在方式0下,X= 8191时是最小计数初值;x=0时,计数器从1计数到8192,x=0 是方式0时的最大计数初值,最大计数次数N= 8192。 • 如果C / =0,为定时器方式,加法计数器对机器周期Tc计数,每个机器周期 计数器加1。根据计数次数N便可计算出定时时间,定时时间由下式确定: • T=N×Tc=(8192—X)Tc • 式中Tc为单片机的机器周期。如果振荡频率fosc=12 MHz,则Tc=l us,定时 范围为1~8192 us。
计数初值X=216—N=65356—100=65436=FF9CH
此例中应向TH0写入FFH、向TL0写入9C H才可实现100次计数。 当计数初值x=65535(FFFFH)时,只计数1次便产生溢出中断,所以65 535是方 式1时的最小计数初值;X=0时,计数器从l计数到65 536,计数器溢出请求中 断.所以0是方式l时的最大计数初值,最大计数次数N=65 536。
相关主题