海南自贸港首支S基金落地三亚
06-17
定时器/计数器本质上是一个加1计数器。
随计数器输入脉冲而加1,即每来一个脉冲,计数器自动加1。
当计数器全为1时,再输入一个脉冲,将使计数器归零,溢出计数器将导致计数器返回到零。
相应的中断标志位被设置为1,并向CPU发送中断请求(当定时器/计数器中断使能时)。
如果定时器/计数器工作在计时模式,则表示计时时间已到;如果工作在计数模式,则表示计数值已满。
可以看出,加1计数器的计数值是溢出时计数器的值减去初始计数值得到的。
定时器/计数器的本质是一个加1计数器(16位),由两个寄存器THx和TLx组成,高8位和低8位。
TMOD是定时器/计数器的工作模式寄存器,决定了定时器/计数器的工作模式和功能; TCON是控制寄存器,控制T0和T1的启动和停止,并设置溢出标志。
初始化程序应完成以下工作: 给TMOD赋值,以确定T0和T1如何工作。
计算初始值并写入TH0、TL0或TH1、TL1。
中断模式下,给EA赋值,使能定时器中断。
设置TR0或TR1以启动定时器/计数器计时或计数。
计数器初值的计算: 机器周期是CPU完成一次基本运算所需的时间。
计数值N乘以机器周期Tcy即为定时时间t 当使用12MHZ外部晶振时,晶振周期(振荡周期)=1/12,机器周期(1个机器周期等于12个振荡周期)=(1/12) * 12 =1us。
(如果使用模式1,即16位定时器/计数器,则最大一次为6*1us = 6us) 【示例1】使用定时器/计数器对外部事件进行计数。
要求:检测定时器/计数器T0引脚上出现的下降沿信号的数量。
当数量达到6时,控制单片机P1.1引脚由高电平变为低电平。
说明: (1)任务分析 定时器/计数器可以累加其脉冲输入引脚上的下降沿信号的数量。
本例中,要求定时器/计数器T0的计数次数Q=6。
由式(4-6)可知,在工作模式1和工作模式2下,定时器的最大下降沿数/counter可计数分别为=6和28=,因此两种工作模式均能满足任务要求。
。
本例仅以方法1为例来实现设计任务。
(2) T0初值计算 由公式(4-4)可知,当计数器数量Q=6时,定时器/计数器的初值M=6=0=0FFFAH ,即TH0=0FFH,TL0=0FAH。
(3)确定定时器/计数器模式控制字TMOD 由于不测量引脚电平,GATE=0;使用计数功能,所以C/T=1;工作在模式1,所以M1M0 =01。
本程序与T1无关,因此TMOD的高4位可以全部为0。
因此TMOD=05H。
(4)编程 以下是使用中断方式的参考程序。
【例2】使用定时器/计数器模拟下降沿触发的外部中断。
需求:使用定时器/计数器T0模拟下降沿触发的外部中断。
每当定时器/计数器T0的脉冲输入引脚(P3.4)出现下降沿时,单片机P1.1引脚的电平状态就会反转。

。
说明: (1)任务分析 下降沿(INT0和INT1)触发的外部中断,当中断输入引脚(P3.2和P3)出现下降沿信号时发出中断请求.3) .在计数模式下,定时器/计数器寄存器将累加其脉冲输入引脚(P3.4 和 P3.5)上出现的下降沿次数,并在达到预定次数时产生中断请求。
对于N位定时器/计数器,如果其初始值M设置为2N-1,则脉冲输入引脚的下降沿可以使定时器发出中断请求,这与外部中断触发的效果一致通过下降沿。
因此,可以使用定时器/计数器来模拟外部中断。
但需要注意的是,外部中断可以自动重复触发,每次产生中断时都必须重新初始化定时器/计数器。
为了更好地模拟外部中断的自动重复触发,定时器/计数器可以设置为工作模式2,可以自动重新分配初始值。
(2)T0初始值的计算 根据任务分析结果可知,需要将T0设置为工作模式2,位数N=8,初始值值 M=2N-1=28- 1 ==0FFH。
(3)确定定时器/计数器模式控制字TMOD 对于T0,由于不测量引脚电平,GATE=0;使用定时功能,所以C/T=1;它工作在模式2,所以M1M0=10。
由于本程序与T1无关,因此TMOD中与T1相关的高4位可以全部为0。
因此TMOD=06H。
(4)编程 以下是使用中断方式的参考程序。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-08
06-18
06-17
06-17
06-18
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现