- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、定时/计数器 2、定时/计数器的寄存器 定时/计数器2既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2 位选择。定时/计数器2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位RCLK,TCLK,CP/RL2 ,TR2来选择,参见表7-11。 三、定时/计数器 2、定时/计数器的寄存器 (2)定时/计数器2模式寄存器T2MOD 当定时器2 工作于16 位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过定时/计数器2模式寄存器T2MOD(见表7-12)中的DCEN(向下计数允许位)来实现。T2MOD的地址是0C9H,不可位寻址。 三、定时/计数器 3、定时/计数器的工作方式 1.方式0 方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。 当为计数工作方式时,计数值的范围是:1~8192(213); 当为定时工作方式时,定时时间的计算公式为: (213-计数初值)×晶振周期×12 或 (213-计数初值)×机器周期 其时间单位与晶振周期或机器周期相同(ms)。 例1 设定时器T0选择工作模式0,求最长定时时间,如果要实现定时时间为1ms,fosc=6MHz。试确定T0的初值,并编程使P1.0输出2ms的方波。 解:当T0处于工作模式0时,加1计数器为13位。T0最大定时时间对应于13位计数器T0的各位全为0,即(TH0)=00H,(TL0)=00H。 最长定时时间为: tmax=(213-0)×12/6 =213×2 us = 16.384ms 设定时时间为1ms时的初值为X,则: X = 213 – 6/12 × 1000 = 7692 转化成二进制为:1111000001100B 按照低5位,高8位拆开,T0的低5位TL0=01100B=0CH T0的高8位TH0= 11110B,即1EH 方式0应用 三、定时/计数器 3、定时/计数器的工作方式 2.方式1 方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。 当为计数工作方式时,计数值的范围是: 1~65536(216) 当为定时工作方式时,定时时间计算公式为: (216-计数初值)×晶振周期×12 或 (216-计数初值)×机器周期 例1 利用定时器T0产生一个频率为50Hz的方波,由P1.1输出。要求采用中断方式。fosc=12MHz。 解:方波周期T=1/50Hz=0.02s=20ms,如果要输出方波,则需要将P1.1状态每半个周期翻转一次。故定时时间为10ms,则定时器初值为: X = 65536 – 10000 = 55536 = D8F0H 则:TH0=0D8H,TL0=0F0H 方式1应用 三、定时/计数器 3、定时/计数器的工作方式 3.方式2 8位自动装入时间常数方式。由TLl构成8位计数器,THl仅用来存放时间常数。启动T1前,TLl和THl装入相同的时间常数,当TL1计满后,除定时器回零标志TFl置位,具有向CPU请求中断的条件外,THl中的时间常数还会自动地装入TLl,并重新开始定时或计数。所以,工作方式2是一种自动装入时间常数的8位计数器方式。由于这种方式不需要指令重装时间常数,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时/计数范围要小于方式0和方式1。 当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器TH以硬件方法自动给计数器TL重新加载。变软件加载为硬件加载。 初始化时,8位计数初值同时装入TL0和TH0中。当TL0计数溢出时,置位TF0,同时把保存在预置寄 存器TH0中的计数初值自动加载TL0,然后TL0重新计数。如此重复不止。这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。但这种工作方式下是8位计数结构,计数值有限,最大只能到255。 这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。 三、定时/计数器 3、定时/计数器的程序设计 4.方式3 2个8位方式。方式3只适用于定时器0。如果使定时器1
文档评论(0)