首页 理论教育 单片机定时器/计数器初始化技巧

单片机定时器/计数器初始化技巧

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:根据需要开放定时器/计数器的中断,给IE中的相关位赋值。启动定时器/计数器,给TCON中的TR1或TR0置1。表5-10 不同工作方式的定时初值及计数初值的计算方法 用定时器0方式0,定时5ms,以中断方式工作,进行程序初始化设计,晶振频率为6MHz。

1.定时器/计数器的初始化步骤

定时器/计数器是一种可编程部件,在使用定时器/计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下:

(1)确定定时器/计数器的工作方式,确定方式控制字,并写入TMOD。

(2)预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。

(3)根据需要开放定时器/计数器的中断,给IE中的相关位赋值。

(4)启动定时器/计数器,给TCON中的TR1或TR0置1。

2.定时初值或计数初值的计算方法

不同工作方式的定时初值及计数初值的计算方法见表5-10所示。

表5-10 不同工作方式的定时初值及计数初值的计算方法

978-7-111-44921-8-Chapter05-19.jpg

【例5-2】 用定时器0方式0,定时5ms,以中断方式工作,进行程序初始化设计,晶振频率为6MHz。

解:用定时器0方式0时,定时器/计数器方式寄存器TMOD低4位中的M1M0应取00;可设定为软件启动定时器,故GATE取0;因用定时功能,C/T取0;定时器方式寄存器TMOD高4位为无关位,一般都取0,所以TMOD应为00H。

晶振频率为6MHz,则

T=12/fosc=[12/(6MHz)]=2μs(www.xing528.com)

定时初值为

X=213-T/T=213-5×103/2=8192-2500=5692

=163CH=1011000111100B

因TL0的高3位未用,对计算出的定时初值X要进行修正,即在低5位前插入3个0,修正后的定时初值

X=1011000100011100B=B11CH

定时器以中断方式工作,故将中断总允许位EA和定时器0的中断允许位ET0置1。

参考程序:

758900 MOV TMOD,#00H;置定时器0为工作方式0

758C B1 MOV TH0,#0B1H;定时初值的高8位

758A 1C MOV TL0,#1CH;定时初值的低8位

D2 AF SETB EA;开放中断总允许位

D2 A9 SETB ET0;开放定时器0的中断允许位

D28C SETB TR0;启动定时器0

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈