1.定时器/计数器的初始化步骤
定时器/计数器是一种可编程部件,在使用定时器/计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下:
(1)确定定时器/计数器的工作方式,确定方式控制字,并写入TMOD。
(2)预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。
(3)根据需要开放定时器/计数器的中断,给IE中的相关位赋值。
(4)启动定时器/计数器,给TCON中的TR1或TR0置1。
2.定时初值或计数初值的计算方法
不同工作方式的定时初值及计数初值的计算方法见表5-10所示。
表5-10 不同工作方式的定时初值及计数初值的计算方法
【例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
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。