第5章 定时器计数器2(1).doc

第5章 定时器计数器2(1).doc

ID:58875242

大小:216.50 KB

页数:11页

时间:2020-09-21

第5章 定时器计数器2(1).doc_第1页
第5章 定时器计数器2(1).doc_第2页
第5章 定时器计数器2(1).doc_第3页
第5章 定时器计数器2(1).doc_第4页
第5章 定时器计数器2(1).doc_第5页
资源描述:

《第5章 定时器计数器2(1).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、...2、模式1模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。(1)计数工作方式由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为:初值=216-计数值【216=初值+计数值】所以方式1的计数值围是:1~65536(216=65536),最大值为:65536(2)定时工作方式定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=216-初值定时时间t=计数值×机器周期=(216-初值)×(1/晶体振荡频率)×12在模式1下的情况下,如果fosc=12MHz,最大定时时间为:t=(65536-

2、初值)×(1/12)×12=65536-0=65.536ms在模式1下的情况下,如果fosc=6MHz,最大定时时间为:t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072ms。【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。要定时2.5ms,也可以用模式1。2500=(216-初值)×(1/12)×12初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111011000111100――>THn=0xF6和TLn=0x3C在fosc=12MHz时

3、,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用:1、2个定时/计数器共同处理;2、1个定时/计数器配合软件计数方式处理。3、模式2方式0和方式1的最大特点是计数溢出后,计数器为全0。因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。这不仅影响定时精度,也给程序设计带来麻烦。方式2就是针对此问题而设置的。该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。此模式下定时器寄存器作为可自动重装载的8位计数器(TLn),如下图所示。.......以T0为例,模式2把寄存器

4、TH0作为一个存放初值的常数寄存器,TL0则成为一个可以自动重装载的8位计数器。TL0计数溢出时,不仅置位溢出标志TF0向CPU提出中断申请,同时还自动把TH0中的初值重新装载到TL0中。TH0中的容靠软件预置,重新装载后其容不变。模式2的操作对于定时器0及定时器1是相同的。假定计数值为X,则应装入定时器/计数器的初值为:初值=28-计数值【28=初值+计数值】所以方式2的计数值围是:1~256(28=256),最大值为:256定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=28-初值定时时间t=计数值×机器周期=(28-初值)×(1/晶体振荡频率

5、)×12在模式2下的情况下,如果fosc=12MHz,最大定时时间为:t=(256-初值)×(1/12)×12=256µs在模式2下的情况下,如果fosc=6MHz,最大定时时间为:t=(256-初值)×(1/6)×12=(256-0)×2=512µs。4、模式3方式3只适用于定时/计数器T0,T1不能工作在方式3。方式3将T0分成为两个独立的8位计数器TL0和TH0。.......模式3对定时器/计数器0和定时器/计数器1是不同的。将T/C0设置为模式3时,将使TH0和TL0成为2个互相独立的8位定时器/计数器。如上图所示。由于TL0利用了定时器/计数器0的全

6、部控制位:、TR0、GATE、和TF0,它的操作情况与模式0、1类同,不同的仅为8位。TH0则被固定作为一个8位定时器(计数机器周期),不能作为计数器方式,它使用定时器/计数器1的运行控制位TR1作为运行控制唯一条件,同时占用它的中断标志位TF1。一般来说,当系统需要增加一个额外的8位定时器时,才设置定时器/计数器0工作于模式3。当定时器/计数器0工作于模式3时,由于TH0占用了定时器1的TR1的控制位和中断标志,虽然定时器/计数器1仍可定义为模式0、1和2,但只能用在不需要中断的场合。例如,工作于自动装载模式(模式2),作串行口的波特率发生器使用等等。5.1.

7、4定时器/计数器T0和T1应用举例定时器/计数器的编程注意点:一是能正确写入控制字(初始化),二是计算定时和计数常数。一般情况下,初始化程序应完成如下工作:1.根据要求选择方式,确定方式控制字,写入方式控制寄存器TMOD,以确定T0和T1的工作方式;2.根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器TH0、TL0或TH1、TL1;3.如果采用中断方式,则须编写中断服务程序,并且需要:①对IE寄存器的ETx置位,允许定时/计数器中断;②置位EA,使CPU开放总中断。4.设置定时/计数器控制寄存器TCON的值,启动定时/计数器开始工作。5.等待

8、定时/计数时间到,如果采

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。