首页 理论教育 单片机C语言编程:轻松掌握定时器T0和T1工作方式

单片机C语言编程:轻松掌握定时器T0和T1工作方式

时间:2023-10-11 理论教育 版权反馈
【摘要】:对于11.0592MHz的晶振,可算出机器周期约为1.09μs。以上是定时器方式1的工作过程,其他的8位定时器、13位定时器的工作方式基本相同。这是在方式1给定时器装初值时,TH0中装入的是初值对256取模,TL0中装入的是初值对256取余的原因。

单片机C语言编程:轻松掌握定时器T0和T1工作方式

1.单片机的几个周期概念

(1)时钟周期:时钟频率的倒数。

(2)机器周期:为单片机的基本操作周期,在一个基本操作周期内单片机可完成一个基本的操作(如存储器的读写、取指令等)。机器周期为时钟周期的12倍。对于11.0592MHz的晶振,可算出机器周期约为1.09μs。

(3)指令周期:指CPU执行一条指令所需的时间,一般一个指令周期为1~4个机器周期。

2.定时器工作方式1

方式1的计数位是16位。以T0为例进行说明,T0由两个寄存器TL0和TH0构成,TL0为低8位,TH0为高8位。

启动T0后,TL0便在机器周期的作用下从0000 0000开始计数(计到00000001→00000010→00000011→00000100→……),当TL0计满也就是计到1111 1111(即255)时,再计1个数即计到256时,TL0清0(即变为00000000),同时向TH0进一位,直到TH0也计满(此时TH0、TL0内的数为1111 1111,即65535),再计1个数就溢出,产生中断请求,同时TF0(中断标志位)由硬件自动置1。中断服务程序执行完毕后,硬件自动将TF0清0。

以上是定时器方式1的工作过程,其他的8位定时器、13位定时器的工作方式基本相同。(www.xing528.com)

可以看出,TH0中每增加一个“1”,就相当于计了256个数。这是在方式1给定时器装初值时,TH0中装入的是初值对256取模,TL0中装入的是初值对256取余的原因。

3.任务书

在图2-1所示的电路中,利用定时器/计数器0的工作方式1,实现一个LED(以D0为例)亮1s、熄1s,这样周期性地闪烁。

4.典型程序示例及解释

978-7-111-46996-4-Part01-155.jpg

978-7-111-46996-4-Part01-156.jpg

说明:定时器是工作在后台,是和主函数同时工作的,只是产生中断请求时,才打断其他程序而执行中断服务程序(当然是在满足优先级的前提下)。

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

我要反馈