定时/计数器结构(t0和t1)
定时器的区别:
t0可分成2个独立的8位定时器,而定时器1则不能;
t1可作为串口的波特率发生器,而定时器0则不能。
工作原理
定时器:脉冲来源是由系统的时钟晶振器输出脉冲源提供
计数器:脉冲来源是由t0或t1引脚(p3.4或p3.5)输入的外部脉冲源提供
用途:定时器和计数器
核心:加1计数器
原理:每来一个脉冲则加1计数器加1,当加到全1时再来一个脉冲使加1计数器归零,同时加1计数器的溢出使tcon寄存器中的tf0(或tf1)置1,向cpu发出中断请求
脉冲来源:
注:t0或t1都不能同时既做定时器也做计数器
补充:
计数器工作原理:
用作计数器时,对t0或t1引脚的外部脉冲计数,如果前一个机器周期采样值为1,后一个机器周期采样值为0 ,则说明有一个脉冲,计数器加1。
在每个机器周期的s5p2期间采样引脚输入电平。新的计数初值于下一个机器周期的s3p1期间装入计数器。
此种方式需要两个机器周期来检测一个1->0负跳变信号,因此最高的计数频率为时钟频率的1/24。
s5p2:
s5p2指的是第5个时钟周期的相位2。
晶体振荡器的振荡信号从xtal2端输入到片内的时钟发生器上,时钟发生器是一个二分频触发器电路,它将振荡器的信号频率除以2,向cpu提供了两相时钟信号p1和p2。时钟信号的周期称为机器状态时间s,它是振荡周期的2倍。在每个时钟周期(即机器状态时间s)的前半周期,相位1(即p1信号)有效,在每个时钟周期的后半周期,相位2(即p2信号)有效。
使用的寄存器
tcon控制寄存器:启动和停止定时/计数器的计数,并控制定时器的工作状态,不能按位寻址
tmod方式寄存器:设置定时器的工作方式,选择定时或计数的功能,可以按位寻址。(和中断共用寄存器,高四位为定时计数器使用,低四位为中断使用)
注:gate逻辑结构此处略过
工作方式:
方式0
计算公式:
最大计数:8192个机器周期
工作原理:13位计数器,使用tl0的低5位和th0的高8位组成,tl0的低5位溢出时向th0进位。th0溢出时发出中断请求。
方式1
计算公式:
最大计数:65536个机器周期
工作原理:16位计数器,tl0作为低8位,th0作为高8位
方式2:自动重装初值的8位计数方式
计算公式:p.s.晶振频率必须选择12的整数倍,因为定时器的频率是晶振频率的1/12。
最大计数:256个机器周期
优点:适合做比较精准的脉冲信号发生器
缺点:
工作原理:计数器溢出后,计数器自动将上次设置的初值重装。
方式3:p.s.只能用于定时/计数器t0,t0工作在方式3时,t1不要使用在有中断的场合。通常该种情况下t1用作串口波特率发生器
工作原理:将t0分成两个独立的8位定时/计数器tl0和th0。
tl0为正常的8位定时/计数器,计数器溢出后置位tf0,申请中断,之后重装初值。
th0也是8位定时/计数器,但由于tl0占用了tf0和tr0,因此th0占用定时器tf1和tr1(所以t1不能用)
时钟周期/机器周期计算:
定时/计数器初始化
对tmod赋值,确定t0和t1的工作方式
计算初值,并将其写入th.x和tl.x
使用中断方式时对ie寄存器赋值开发中断
使tr0或tr1置位,启动定时/计数器
基于电话网络的自来水成分远程监控的应用方案
土壤水分快速测定仪的使用,它都有哪些注意事项
区块链如何影响人们的行为和潜意识
美的微晶510冰川银新品苏宁首发 冰箱新科技助力保鲜生活
魅族MX6又降掉价了, 目前已经低至1299元, 还不行动吗?
51单片机定时/计数器结构和计数器工作原理
ARRA高功率直接校准衰减器的参数
两年后,超越苹果的国产品牌会是谁?
用于安全关键应用的无传感器马达控制解决方案
你真的了解示波器探头吗?
美国服务器有什么特点?
详谈Linux操作系统编程的互斥量mutex
2017年VR/AR及认知能力技术蔓延,将碰撞出怎么样的惊喜?
有关态势感知(SA)的卷积思考
光电传感器的的典型应用
关于机器学习和人工神经网络
应用开发者为生存弃安卓投苹果
前瞻KVM的未来市场,其应用前景相当可观
SIG与DiiA就IoT商业照明系统达成合作,实现蓝牙mesh照明控制的连接
eps维修与养护