7. 【可编程定时器8253】:外部引脚、内部结构特点、计数启动方式、6种工作方式、控制字格式、应用

计数与定时

在这里插入图片描述




8253芯片特点

1. 外部引脚

在这里插入图片描述

2. 内部结构特点(含3个计数器、1个控制寄存器)

具有三个完全相同的、独立的计数/定时器

在这里插入图片描述
在这里插入图片描述
 
 
 
三个可独立工作的16位定时/计数器,一个控制寄存器。共占用4个端口地址。
最低2位地址区分片内4个端口
在这里插入图片描述




2. 计数启动方式(软件启动、硬件启动的定义)

在这里插入图片描述
8253/8254可工作于6种工作方式下,不同的工作方式,具有不同的计数启动方式和输出波形。



3. 6种工作方式

在这里插入图片描述

不能自动重复计数的工作方式

方式0:软件启动,不自动重复计数,计数结束输出高电平。

在这里插入图片描述

方式1:硬件启动,不自动重复计数,计数开始输出低电平,结束后又变高。

在这里插入图片描述

方式4:软件启动,不自动重复计数,计数结束输出一个CLK宽度的低电平。

在这里插入图片描述

方式5:硬件启动,不自动重复计数,波形与方式4相同。

在这里插入图片描述



能自动重复计数的工作方式(能输出连续波形)

方式2:软、硬件启动,自动重复计数。计数到最后一个脉冲时输出低电平。

在这里插入图片描述
① 可输出频率为(1/N)CLK脉冲频率的连续方波信号。
② 每1个OUT端脉冲包含(N-1)*CLK的正脉冲,1个CLK的负脉冲



方式3:软、硬件启动,自动重复计数。输出对称方波。

在这里插入图片描述
① 若N为偶数,输出频率为(1/N)CLK频率的连续对称方波信号。
② 若N为奇数,输出波形为 (N+1)/2CLK 周期正脉冲 , (N-1)/2CLK 负脉冲



工作方式小结

  • 需要两个写脉冲——两次写操作
    第1个写脉冲写入控制字
    第2个写脉冲写入计数初值
  • 不同的工作方式,有不同的计数启动方法。
  • 可根据对输出波形的要求,选择不同的工作方式。
  • 能输出连续波形的只有方式2和方式3。





4. 控制字格式

计数初值可以是8位或16位,
8253/8254数据总线宽度是8位,因此,若计数初值是16位,需要分两次传送。

在这里插入图片描述

最大16位BCD数:9999
最大16位二进制数:FFFF
8253为减法计数器
 
最大计数初值:0
若D0=1,那么0-1=9999
若D0-0,那么0-1=FFFF
即0是最大值(虚值)





5. 8253的应用

1. 应用中的注意点

  • 每一次启动计数,需有两次写操作:

    写控制字
    写计数器初值
                 如果初值为8位字长,则一次写入;若初值为16位字长,则需两次写入

  • 每个计数器的控制命令字均送入控制寄存器

  • 各计数器的计数初值送到该计数器计数寄存器初值寄存器

2.与系统的连接示意

在这里插入图片描述

3. 初始化程序流程

一个计数器的初始化程序设计流程:
在这里插入图片描述
当有两个以上计数器被应用时的初始化程序设计流程:

在这里插入图片描述
注:是写入全部的计数器控制字,在逐个写计算初值
在这里插入图片描述

4. 8253应用例子

在这里插入图片描述

由其接口地址为0120H~0123H可知
0120H 是计数器0:CNTO
0121H 是计数器1:CNT1
0122H 是计数器2:CNT2
0123H 是控制寄存器

输入8253的时钟频率为2MH
则8253的CLK: 1/2MH=0.5us

① CNT0每10ms输出一个CLK周期宽的负脉冲

计算计数初值:
CNT0:10ms/0.5us=20000 (需20000次CLK 才达到10ms)

确定控制字:
CNT0:方式2,16位计数值 ——> 00110100

00110100控制字含义:
 
00:计数器0
11:(计数长度选择)先读/写计数器低8位,再读/写计数器高8
010:(工作方式选择)x10-方式2
0:二进制计数

 
 
选择16位计数的原因:因为8位二进制最大是255,而这是2000
 
 
 
选择方式2的原因:
在这里插入图片描述

初始化程序:

在这里插入图片描述




② CNT1输出10KHz的连续方波信号

计算计数初值:
CNT1:2 MHz/10KHz=200

确定控制字:
CNT1:方式3,低8位计数值——> 01010110

控制字含义:
在这里插入图片描述
 
 
 
选择方式3的原因:
在这里插入图片描述

初始化程序:

类似




③ CNT2在定时5ms后产生输出高电平

计算计数初值:
CNT2: 5ms/0.5us=10000

确定控制字:
CNT2:方式0,16位计数值——> 10110000

控制字含义:
在这里插入图片描述
 
 
 
选择方式0的原因:

初始化程序:

类似

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的白是什么白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值