4. 内功能部件
定时器/计数器
可编程计数器阵列
UART通信接口
SMBus
SPI总线
定时器/计数器
定时和计数功能最终都是通过计数实现的,若计数的事件源是周期固定的脉冲,则可以实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能由一个部件实现。
实现定时和计数的方法一般有软件、专用硬件电路和可编程定时器/计数器三种方法。
采用软件只能定时,且占用CPU时间,降低了CPU的使用效率。
专用硬件电路可实现精确的定时和计数,但参数调节不便。
可编程定时器/计数器,不占用CPU时间,能与CPU并行工作,实现精确的定时和计数,又可以通过编程设置其工作方式和其它参数,因此使用方便。
定时器/计数器
C8051F020内部有T0~T4共5个16位定时器/计数器,其中T0~T2与MCS-51中的定时器/计数器兼容,还有两个16位自动重装初值的定时器T3 和T4既可以作为通用定时器使用,也可以用于ADC和SMBus。
表4-1 C8051F020定时器/计数器的工作方式
定时器的一般结构和工作原理
方式选择
计数器
定时器
启/停控制
执行机构
减1计数:如Intel 8253
加1计数:如T0~T4
溢出标志
查询
中断
最大定时时间
TMAX=2n×T计数
式中n由工作方式决定,T计数为定时器/计数器的计数脉冲周期时间,由C8051F的主脉冲或主脉冲经12分频提供,是否需要12分频取决于对时钟控制寄存器CKCON的设定(提供12分频选项是为了与标准8051兼容)。
T0~T4均为加1计数器
时钟控制寄存器CKCON
位7:未用。读=0b,写=忽略。
位6-3:T4M-T0M:T4到T0的时钟选择(不包含T3,的第0位T3XCLK决定)。
0:定时器按系统时钟的12分频计数
1:定时器按系统时钟频率计数
位2-0:保留。读=000b,写入值必须是000b。
、计数方式
定时方式:每一个计数周期(T计数)计数器加1,直至计满溢出(从全1到全0)产生中断请求。对于一个N位的加1计数器,若T计数是已知的,则从初值a开始加1计数至溢出所占用的时间为:
当N=8、a=0时,最大定时时间为: T=256×T计数
计数方式:外部输入信号的下降沿触发计数,计数器在每个时钟周期或时钟周期的12分频采样外部输入信号,若一个周期的采样值为1,下一个周期的采样值为0,则计数器加1,故识别一个从1到0的跳变需2个周期,所以,对外部输入信号最高的计数速率是时钟频率的1/2或1/24(取决于是否12分频)。同时,外部输入信号的高电平与低电平保持时间均需大于一个周期。
定时器/计数器T0和T1
对定时器/计数器T0和T1的访问和控制是通过操作SFR实现的。
T0和T1都是16位的加1计数器,访问时以两个字节的形式出现:TL0+TH0、TL1+TH1
TCON用于允许/禁止定时器0和定时器1并指示它们的工作状态。
T0和T1都有四种工作方式,可以TMOD中的方式选择位M1-M0进行选择。
1、方式寄存器TMOD
T0M0
T0M1
C/T0
GATE0
T1M0
T1M1
C/ T1
GATE1
TMOD
字节
地址
89H
D7 D6 D5 D4 D3 D2 D1 D0
控制T0
控制T1
方式选择
00:方式0
01:方式1
10:方式2
11:方式3
定时/计数选择
0:定时器
1:计数器
门控位
2、控制寄存器TCON
IT0
IE0
IT1
IE1
TR0
TF0
TR1
TF1
TCON
字节
地址
88H
D7 D6 D5 D4 D3 D2 D1 D0
控制外部中断
控制T1、T0
启/停控制
GATE=0时
O:停
1:启
溢出标志
1:溢出
0:不溢出
会展‘网络 现场’互动APP解决方案 来自淘豆网m.daumloan.com转载请标明出处.