@2017libin
2019-06-30T15:26:50.000000Z
字数 1268
阅读 65
定时计数器控制接口
汇编
1. 软件定时的三种方法
- 软件定时
- 不可编程的硬件定时
- 可编程的硬件定时:软硬件结合
2. 8253计时定数器
结构
- 有三个独立的16位计数器通道
- 每个通道:
- CLK:时钟输入信号,每次输入一个时钟信号(下降沿),计数器的值减1。
- GATE:门控输入信号,控制计数器的工作方式,分为电平控制和上升沿控制。
- OUT:计数器输出信号,当计数值为0,输出一个波形,波形取决于工作方式。
tips:这里的out相当于是通过减速之后的输出,减的倍数看的是计数器的值。
- 数据线
- 接收CPU发送的控制字以及计数值
- 发送计数器的当前计数值以及工作状态
工作方式
- CPU写控制字,设定控制方式
- CPU写预置寄存器,设定工作方式
- 对于方式1和方式5需要硬件启动,也就是GATE端出现一个上升沿信号
- CLK端的下一个下降沿,将预置寄存器的值送入减1计数器
- CLK每一个下降沿,减1计数器的值减1。
- 减1计数器的值减至0,一次计数器结束,OUT输出高电平。
计数方式
- 方式0(计数结束表示中断):在设置初值之后,第一个下降沿将预置寄存器的值送入减1寄存器,之后CLK每一个下降沿减1计数器的值减1。一开始OUT为低,直到减1计数器的值为0,OUT由低变高。GATE低电平暂停计数。
- 方式1(可编程单稳脉冲):在设置控制字之后,也就是的上升沿,OUT变为高电平,直到设置预置寄存器之后的第一个CLK下降沿,OUT才开始变为低电平。特点是产生一个宽度=计数值时钟周期的单稳负脉冲。GATE低电平时不暂停计数,由低变高时重新将预置寄存器的值送入减1计数器。
- 方式2(分频器(频率发生器)):OUT同方式1一样,设置完控制字之后变为高电平。若计数值为n,则OUT输出有(n-1)个时钟周期处于高电平,1个时钟周期处于低电平。即当计数器的值为1时,OUT由高变低,经过1个时钟周期又变为高电平。
- 方波3(方波发生器):跟方式2差不多,不过有一半为高一半为低。如果计数值为奇数的话,高电平的时钟周期比低电平的时钟周期多1。
- 方式4(软件触发选通信号):跟方式2差不多,只不过方式4需要重新设定计数值。同时GATE为低电平时不计数,由低变为高电平重新开始计数。
- 方式5:(硬件触发选通信号):跟方式4差不多,唯二的区别时需要硬件来启动,同时GATE为低时不会影响计数。
小结:
1. GATE在除了方式1和5以外,始终为高电平,而且处于低电平暂停计数。GATE启动方式1和方式5计数。
2. GATE由低变高,只有方式0不重新计数。而且对于方式1,GATE有效后的第一个CLK下降沿,OUT从高电平下降为低电平。
3. OUT在方式0的时候一开始为低电平,直到计数值为0才开始变为高电平。除了方式0,其他都是在设置完控制字之后开始变为高电平。OUT在方式1时,在设置预置寄存器开始后的CLK的第一个下降沿开始变为低电平,直到计数值为0才开始变为高电平。在方式2,3,4,5的时候,在计数值为1,或者计数值为( N+1)/2开始变为低电平,然后在计数值为0又变为高电平重新计数。