首页 理论教育 单片机定时器/计数器初始化-技术指南

单片机定时器/计数器初始化-技术指南

时间:2023-10-28 理论教育 版权反馈
【摘要】:定时器/计数器在使用之前需要进行初始化,写入控制字和预置初值。此间还提供一种延时子程序方法供对比,不是采用定时器而是采用估算机器周期数的方法来实现。汇编语言的定时器/计数器初始化参考程序如下:2.预置初值的计算例:晶振频率fosc=6MHz,机器周期T=2μs,定时时间Tc=1ms,求预置初值X。

单片机定时器/计数器初始化-技术指南

定时器/计数器在使用之前需要进行初始化,写入控制字和预置初值。此间还提供一种延时子程序方法供对比,不是采用定时器而是采用估算机器周期数的方法来实现。

1.初始化的主要步骤

1)对TMOD寄存器写入控制字,以确定工作模式。

2)对THx、TLx预置初值。

3)按需要设置中断方式、中断入口地址,允许中断。

4)启动TRx。

汇编语言的定时器/计数器初始化参考程序如下:

978-7-111-49886-5-Chapter03-13.jpg

2.预置初值的计算

例:晶振频率fosc=6MHz,机器周期T=2μs,定时时间Tc=1ms,求预置初值X

(1)模式1

(216-X)×2μs=1000μs(www.xing528.com)

X=216-500=65036=FE0CH

预置值:THx=0FEH,TLx=0CH

(2)模式0

978-7-111-49886-5-Chapter03-14.jpg

因模式0用了32分频定标器,从二进制化为十六进制时要正确选取数位,得

预置值:THx=11110000B=0F0H(从低第6位算起)

TLx=00001100B=0CH(高3位要补零)

3.延时子程序的时间估算

通常以工作寄存器作计数器,设置1层或多层计数循环和预置初值以达到延时的目的。以R7和R6的两层计数循环为例,预置值分别为248和200,晶振频率6MHz,机器周期2μs,延时子程序的机器周期估算示意图见图3-4。

第(1)层中的(R7-1)指令需两个机器周期,递减到零后共执行(248×2)个机器周期,其余层按同法计算,执行的机器周期总数为:(248×2)+3)×200+3=99803

总延时时间为:99803×2μs=199606μs

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

我要反馈