问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

8253可编程计数器/定时器详解:从结构到编程实战

创作时间:
作者:
@小白创作中心

8253可编程计数器/定时器详解:从结构到编程实战

引用
CSDN
1.
https://m.blog.csdn.net/2301_80035097/article/details/139307003

8253可编程计数器/定时器是计算机系统中常用的硬件组件,广泛应用于各种定时和计数任务。本文将详细介绍8253的内部结构、工作方式和编程方法,帮助读者深入了解这一重要硬件设备的工作原理和使用方法。

定时器和计数器的基本概念

在微机系统中,定时控制是一个非常重要的功能。定时器通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔。当计数电路记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数,常又称为计数器。

实现定时功能的方法主要有三种:

  1. 软件延时:利用微处理器执行一个延时程序段实现
  2. 不可编程的硬件定时:采用分频器、单稳电路或简易定时电路控制定时时间
  3. 可编程的硬件定时:软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路

8253定时计数器具有以下特点:

  • 3个独立的16位计数器通道
  • 每个计数器有6种工作方式
  • 可以按二进制或十进制(BCD码)计数

8253的内部结构和引脚

计数器结构示意图

  • 计数初值存于计数初值寄存器
  • 在计数过程中,减1计数寄存器的值不断递减,而计数初值寄存器中的预置内容不变
  • 当前计数输出寄存器用于写入锁存命令时,锁定当前计数值

计数器的3个引脚

  • CLK时钟输入信号:在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1
  • GATE门控输入信号:控制计数器工作,可分成高电平触发和上升沿触发两种类型
  • OUT计数器输出信号:当一次计数过程结束(计数值减为0或1),OUT引脚上将产生一个输出信号

8253的工作方式

8253支持6种工作方式:

  • 方式0:计数结束中断
  • 方式1:可重触发单稳态
  • 方式2:频率发生器(分频器)
  • 方式3:方波发生器
  • 方式4:软件触发选通信号
  • 方式5:硬件触发选通信号

8253的编程

8253加电后的工作方式不确定,必须进行初始化编程才能正常工作。8253的编程主要包括:

  1. 初始化编程
  • 写入控制字
  • 写入计数值
  1. 读取计数值
  • 锁存当前计数值
  • 读取当前计数值

写入方式控制字

控制字写入控制字端口地址(A1A0=11)

写入计数值

计数值写入计数器各自的端口地址

  • 选择二进制时,计数值范围:0000H~FFFFH,其中0000H是最大值,代表65536
  • 选择十进制(BCD码)时,计数值范围:0000~9999,其中0000代表最大值10000

8253的端口地址

读取计数值

读取计数值时要注意读写格式和计数数制

  • 对8位数据线,读取16位计数值需分两次
  • 计数在不断进行,应该将当前计数值先行锁存,然后读取
  • 向控制字端口地址:写入锁存命令
  • 从计数器端口地址:读取锁存的当前计数值

应用实例

例1:
要求计数器0工作于方式3,输出方波的频率为2KHz,计数脉冲的频率为2.5MHz,采用二进制计数,试写出初始化程序段。

  1. 8253的端口地址为:80H,81H,82H,83H。
  2. 计数初值计算:TC = 2.5MHz/2KHz=1250
  3. 8253的方式控制字为:00 11 011 0
  4. 初始化程序段:
MOV AL,00110110B
OUT 83H,AL
MOV AX, 1250
OUT 80H,AL
MOV AL, AH
OUT 80H,AL

例2:
硬件如图所示,利用8253的通道0和通道1,设计并产生频率为1Hz的方波。设通道0的输入时钟频率为1MHz,8253所占端口为90H~93H。(写出计算过程,并初始化芯片)

通道0计数初值:1MHZ/100HZ=10000
通道1计数初值:100HZ/1HZ=100

MOV AL,00110100B
OUT 93H,AL
MOV AX,10000
OUT 90H,AL
MOV AL,AH
OUT 90H,AL
MOV AL,01010110B
OUT 93H,AL
MOV AL,100
OUT 91H,AL

总结

本文详细介绍了8253可编程计数器/定时器的内部结构、工作方式和编程方法。通过本文的学习,读者可以深入了解8253的工作原理和使用方法,为计算机硬件和底层编程的学习提供参考。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号