【微机原理及接口技术】可编程计数器/定时器8253

【微机原理及接口技术】可编程计数器/定时器8253

文章目录

  • 【微机原理及接口技术】可编程计数器/定时器8253
  • 前言
  • 一、8253的内部结构和引脚
  • 二、8253的工作方式
  • 三、8253的编程
  • 总结


前言

本篇文章就8253芯片展开,详细介绍8253的内部结构和引脚,8253的工作方式以及8253的编程。


定时器和计数器

  • 定时控制在微机系统中极为重要
    定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔。
  • 计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器

定时功能的实现方法

  • 软件延时
    ——利用微处理器执行一个延时程序段实现

  • 不可编程的硬件定时
    ——采用分频器、单稳电路或简易定时电路控制定时时间

  • 可编程的硬件定时
    ——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路

8253定时计数器

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

一、8253的内部结构和引脚

在这里插入图片描述
计数器结构示意图
在这里插入图片描述

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

计数器的3个引脚

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


二、8253的工作方式

  • 方式0: 计数结束中断
    在这里插入图片描述

①写入控制字
②写入计数初值
④计数初值送减1计数寄存器
⑤计数过程
⑥计数结束

  • 方式1: 可重触发单稳态

在这里插入图片描述

①写入控制字
②写入计数初值
③硬件启动
④计数初值送减1计数寄存器
⑤计数过程
⑥计数结束

  • 方式2: 频率发生器(分频器)

在这里插入图片描述

  • 方式3: 方波发生器

在这里插入图片描述

  • 方式4: 软件触发选通信号
    在这里插入图片描述

  • 方式5: 硬件触发选通信号
    在这里插入图片描述


三、8253的编程

  • 8253加电后的工作方式不确定
  • 8253必须初始化编程,才能正常工作
  • 8253编程包括:
  • 初始化编程
    (1) 写入控制字
    (2) 写入计数值
    读取计数值
    (1) 锁存当前计数值
    (2) 读取当前计数值

1、写入方式控制字
控制字写入控制字端口地址(A1A0=11)
在这里插入图片描述

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

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

8253的端口地址
在这里插入图片描述
3、读取计数值
读取计数值,要注意读写格式和计数数制

  • 对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


总结

到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

E: Package ‘curl‘ has no installation candidate

错误1: E: Package curl has no installation candidate Package curl is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another sourceE: Package curl …

人工智能初识

🌞欢迎来到人工智能基础的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年5月1…

C/C++语法|pthread线程库的使用

笔记主要内容来自 爱编程的大柄–线程 爱编程的大柄–线程同步 在进入代码实践之前,我们应该搞清楚。 线程是成语的最小执行单位,进程是操作系统中最小的资源分配单位。 这样的话我们可以理解以下两点: 同一地址空间中的多个线程独有的是&…

618手把手教你捡漏服务器

618最全捡漏攻略 捡漏规则1、新人优惠⭐⭐⭐2、教育优惠⭐⭐3、回馈活动⭐️ ECS价格对比新人优惠💝京东云 50/年百度云 60.69/年阿里云 82/年腾讯云 99/年 回馈活动🎁阿里云 教育优惠🏫阿里云腾讯云 hi,好久不见各位,…

16 -java反射

目录 第16章 反射 16.1 反射的概念 16.2反射的作用 16.3 java.lang.Class类 16.3.1 哪些类型可以获取Class对象 16.3.2 获取Class对象的四种方式 16.4 反射的基本应用 16.4.1 获取类型的详细信息 16.4.2 创建任意引用类型的对象 16.4.3 操作任意类型的属性 16.4.4 调…

【JS基础知识07】函数

一:函数是什么以及函数作用 1 函数是什么 函数是经过封装、调用后,能够完成特定任务的代码块 2 函数的作用 仅需“函数名(实参)”就可以调用函数,起到精简代码,提高开发效率的作用 二:函数使用 1 语法规则&#…

探索零阶优化:在语言模型提示优化中的应用与原理【初步理解】

什么是零阶优化? 零阶优化(Zero-Order Optimization)是一种优化方法,用于在没有显式梯度信息的情况下优化目标函数。与常见的梯度下降法不同,零阶优化不依赖于目标函数的梯度,而是通过直接评估目标函数值来…

达梦数据库创建表空间

CREATE TABLESPACE TBS_SZJG_FRDATA DATAFILE ‘TBS_SZJG_FRDATA.DBF’ size 128 AUTOEXTEND ON NEXT 100;

光耦的工作原理

一、光电耦合器简介 光电耦合器主要是一种围绕光作为媒介的光电转换元器件,能够实现光到电、电到光之间的自由转换。我们又可以称之为光电隔离器,之所以这么称呼,主要是因为光电耦合器能够很好的对电路中的电信号起到隔离的作用。有效的保护…

npm镜像源管理

查看当前使用的镜像源 npm config get registry --locationglobal 设置使用官方源 npm config set registry https://registry.npmjs.org/ --locationglobal 设置淘宝镜像源 npm config set registry https://registry.npm.taobao.org/ --locationglobal 设置其他镜像源 npm co…

如何使用 .htaccess 删除文件扩展名

本周有一个客户,购买Hostease的虚拟主机,询问我们的在线客服,如何使用 .htaccess 删除文件扩展名?我们为用户提供相关教程,用户很快解决了遇到的问题。在此,我们分享这个操作教程,希望可以对您有…

随机森林算法教程(个人总结)

背景 随机森林(Random Forest)是一种集成学习方法,主要用于分类和回归任务。它通过构建多个决策树并将其结果进行集成,提升模型的准确性和鲁棒性。随机森林在处理高维数据和防止过拟合方面表现出色,是一种强大的机器学…

如何在中国网上发布文章

随着互联网的迅猛发展,网上发布文章已经成为一种重要的传播方式。而在中国,作为世界上最大的互联网市场,如何在中国网上发布文章成为了许多人关注的焦点。媒介多多网发稿平台作为一个专业的发稿平台,为广大作者提供了很好的发布文…

计算机系统基础实验三(解了但尽量理解)

一.准备阶段 1、下载好32位的实验代码后,将文件解压缩并且通过共享文件夹操作将文件添加到虚拟机中,双击查看bomb.c代码,将c代码完整看了一遍,发现看这里的c代码是无从下手的,代码中只含有主函数,触发炸弹…

KITTI数据中pose含义

Folder ‘poses’: The folder ‘poses’ contains the ground truth poses (trajectory) for the first 11 sequences. This information can be used for training/tuning your method. Each file xx.txt contains a N x 12 table, where N is the number of frames of this …

(二刷)代码随想录第17天|● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 math.abs指的是绝对值;这棵树的左右子树的高度差小于1的时候,同时该树的左右子树都是平衡二叉树的时候,这棵树才是平衡二叉树; class Solution {public boolean isBalanced(TreeNode root) {return getHeight(ro…

AI 画图真刺激,手把手教你如何用 ComfyUI 来画出刺激的图

目前 AI 绘画领域的产品非常多,比如 Midjourney、Dalle3、Stability AI 等等,这些产品大体上可以分为两类: 模型与产品深度融合:比如 Midjourney、Dalle3 等等。模型与产品分离:比如 SD Web UI、ComfyUI 等等。 对于…

宏基因组分析流程(Metagenomic workflow)202405|持续更新

Logs 增加R包pctax内的一些帮助上游分析的小脚本(2024.03.03)增加Mmseqs2用于去冗余,基因聚类的速度非常快,且随序列量线性增长(2024.03.12)更新全文细节(2024.05.29) 注意&#x…

LeetCode2336无限集中的最小数字

题目描述 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。实现 SmallestInfiniteSet 类:SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。int popSmallest() 移除 并返回该无限集中的最小整数。void addBack(int num) 如果正整数 …

如何让一个普通用户可以读写某个目录

循环设置这个目录以及上面每一级目录的读取和执行权限 sudo chmod -R orx /opt/software/yourdir 然后设置指定用户user1可以读写这个目录 sudo setfacl -Rm u:user1:rwx /opt/software/yourdir 读取acl sudo getfacl -R /opt/software/yourdir -R 是循环读取子目录和文件的意思…