单片机与嵌入式系统7.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机与嵌入式系统7

* 第七章 MCS-51单片机定时器/计数器 §7.1 定时计数工作原理 §7.2 定时/计数器的控制 §7.3 定时/计数器的应用 * 7.1 定时/计数器的工作原理 定时/计数器实质上是一个加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;当它对外部事件进行计数时,它是计数器。 * 加法计数器是计满溢出时才申请中断,所以在给计数器赋初值时,不能直接输入所需的计数值,而应输入的是计数器计数的最大值与这一计数值的差值。设最大值为M,计数值为N,初值X的计算方法如下: 计数初值:X=M-N 定时初值:X=M-定时时间/T ,而T=12/晶振频率 * 7.2 定时/计数器的控制 * 1工作方式寄存器TMOD的设置(89H) 一、定时器/计数器的设置 T1 T0 1)门控方式选择位GATE : =0,非门控方式(内部启动): TRx=1,启动定时器工作; TRx=0,停止定时器工作。 =1,门控方式(外部启动): TRx=1且引脚INTx=1才启动。 * 2)功能选择位C/T =0:定时功能,计数内部机器周期脉冲; =1:计数功能,计数引脚T0(T1)输入的负脉冲。 N个方波 T 计数:脉冲不等间隔。 波形等间隔,次数已定,时间确定 即对机器周期T进行计数。 左图定时时间为 N*T 每个下降沿计数一次 确认一次负跳变需两个机器周期, 所以,计数频率最高为fosc/24。 定时:频率1/T * 3)方式选择位M1、M0:4种工作方式 M1 M0 工作模式 0 0 13位定时/计数器(THx高8位,TLx低5位) 0 1 16位定时/计数器(THx高8位,TLx低8位) 1 0 8位自动重装初值定时/计数器(THx预置常数,TLx计数) 1 1 T0两个8位计数器,T1停止工作(只适用于T0) * 控制寄存器TCON用于控制定时器的启动、停止和中断请求。 2控制寄存器TCON的设置(88H) TCON D7 D6 D5 D4 D3 D2 D1 D0 (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 1)启动控制位TR0、TR1: =0,停止定时器工作; =1,启动定时器工作。 例:启动T0:SETB TR0 2)溢出中断标志位TF0、TF1: 定时器溢出使TFx=1,引起中断请求,CPU响应中断后, 系统自动将TFx清0。 * 二、定时/计数器的工作模式 1模式0 (M1,M0=00,13位) fosc 13位定时/计数器。THx8位和TLx低5位组成加1计数器。 计数外部脉冲个数:1~8192(213) 定时时间(若T=1?s):1?s~8.19ms T=12/fosc 13位初值高8位给TH0,低5位数前面加3个0凑成8位后给TL0。如要求计数值N为1000,则初值X为:X=8192-1000=7192=1C18H(或11100)其二进制的高8位是,低5位是11000B,因此赋初值时TH0=E0H,TL0=18H。 * 2模式1(M1,M0=01,16位) THx8位和TLx8位组成16位加1计数器。 计数外部脉冲个数:1~65536(216) 定时时间(若T=1?s):1?s~(65536×T=65.54ms) T=12/fosc 如要求计数值N为1000,则初值X为: X=65536-1000=64536=FC18H,因此赋初值时TH0=FCH,TL0=18H。 * 3模式2(M1,M0=1 0,8位重装式) 用于需要重复定时和计数的场合,经常将T1用于串口波特率发生器 最大计数值:256 (28) 最大定时时间(若T=1?s): 256?s T=12/fosc 如希望每隔250μs产生一个定时控制脉冲,若晶振频率为12MHz,此时计数初值X=256-250/1=6,故只要在THx,TLx中预置初值6。 * 方式2与方式0、1的区别: 方式0和方式1的最大特点就是计数溢出后,计数器全为0,因而循环定时或循环计数应用时就要在程序中反复设置初值。 方式2计数溢出后自动加载计数初值,以TLx为计数器,以THx为预置寄存器,初始化时把计数初值分别加载至TLx和THx中,溢出后由THx以硬件方式自动给TLx重新加载初值。 方式2在串口通讯时,常用作波特率发生器。 * fosc 振荡器 4模式3(M1,M0=1 1,T0被设成两个8位) T0分成2个8位定时器:TL0定时/计数

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档