微机原理——定时器8253(8254)学习2应用与设计

目录

简要说明

 用户扩展的定时计数器应用举例

1 8254作测量脉冲宽度

2 8254作定时

3 8254作分频

4 8254同时用作计数与定时

硬件设计

​编辑软件设计

微机系统中定时计数器应用举例

5 计时器设计

硬件设计

软件设计

6 发生器设计

硬件设计

软件设计


简要说明

定时器应用有两种,一种是根据系统分配的定时/计数资源来开发,一种是利用用户扩展的定时/计数器来开发。这两种端口地址不同,前一个是系统指定的,后一个是由用户指定;前一个的工作方式和计数器通道的具体用途是由系统的初始化确定的固定不变,后一个由用户在设计时安排。

(由系统分配的端口地址)根据表3.1:系统分配给8253的端口地址:0号计数器40H,1号计数器41H,2号计数器42H,方式命令寄存器43H,时钟脉冲频率1.19318MHz。

(用户扩展的定时器应用)根据表3.3:0号计数器地址304H,1号计数器305H,2号计数器306H,方式命令寄存器307H,时钟脉冲频率1.19318MHz。

三个计数器通道的初始化汇编语言:

 用户扩展的定时计数器应用举例

1 8254作测量脉冲宽度

系统提供的输入时钟CLK = 1MHz,采用二进制计数,软启时门控信号GATE的作用是允许或禁止计数,所以可以用GATE进行脉冲宽度测量,(GATE=1允许计数,GATE=0禁止计数)。

把被测量的脉冲作为门信号连到某个计数器通道(如通道1)的GATE端,GATE为低电平时,装计数初值,GATE变为高电平时开始计数,直到被测脉冲信号变为低电平停止计数,并锁存,然后读出通道1的当前值n,最后脉冲宽度就是(65536-n)us。

选择计数器通道1,工作在0方式,将计数初值设为最大值0000H,设时钟脉冲为1MHz(所得脉冲宽度的单位是us),所以能测最大脉冲宽度是65536us。

2 8254作定时

三种命令格式和六种工作方式:微机原理——定时器学习1-CSDN博客

要求每隔5ms发出一个扫描负脉冲,系统提供CLK为20kHz,使用十进制计数。

每隔5ms一次的连续负脉冲,选择方式2,所以用计数器通道2,将OUT2作为定时脉冲输出。

周期T = 1/20kHz = 0.05ms,定时常数Tc = 5ms / 0.05ms = 100。

3 8254作分频

产生频率为1000Hz的方波,系统提供CLK=1.19318Hz,二进制计数。

产生方波:方式3,采用技术通道0,OUT0作为方波输出。

定时常数Tc = CLK0 / OUT0 = 1.19318MHz / 1000Hz = 1193 = 4A9H。。

4 8254同时用作计数与定时

硬件设计

流水线的工作过程:向通道0写入计数初值时,即开始对流水线上的罐头进行计数,计满24个罐头,计数器输出波形OUT0的上升沿,触发通道1开始定时,定时器输出波形OUT1的下降沿使工作台暂停,经5s后OUT1的上升沿启动工作台,流水线又开始工作,通道0开始计数。(通道0和1都采用十进制计数) 

软件设计

通道0:00 01 010 1    15H    24=18H

通道1:01 11 001 1    73H    定时常数为5 * 100 = 500 = 1F4H(由上一节,作定时器需要换算)

(书上可能错了,时钟频率是100Hz,书上乘的是200。。。)

微机系统中定时计数器应用举例

5 计时器设计

设计一个计一天时间的日计时器——日时钟。

利用8254的计数器0,工作在方式3(输出一系列方波,方波的周期是准确的,可以用做定时单位),计数初值设置为最大65536,当输入CLK0 = 1.1931816MHz时:

输出方波的频率 Fout0 = 1.1931816MHz / 65536 = 18.2Hz

输出方波的周期 Tout0 = 1 / 18.21000ms = 54.945ms      可以用这个54.945作计时单位。

一天 = 2460601000ms / 54.945 = 1573040个计时单位,十六进制为001800B0H个。

(计满1573040个计时单位就是一天,计满65543个计时单位就是一小时,计满1092个计时单位就是一分钟,计满18.2个计时单位就是一秒)

硬件设计

软件设计

6 发生器设计

硬件设计

软件设计

=================================================================

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot数据源配置

springboot数据源配置 数据层解决方案——持久化技术 内置持久化解决方案——jdbcTemplate 内置数据库 H2一般用于测试环境,配置profiels,只在开发阶段使用,让他在上线的时候不走这里就可以了 要使用内嵌的数据库H2,要先导入jar包

C++ day51 买卖股票最佳时期

题目1:309 买卖股票的最佳时机含冷冻期 题目链接:买卖股票的最佳时机含冷冻期 对题目的理解 prices[i]表示第i天股票的价格,尽可能多地完成更多的交易,不能同时进行多笔交易,卖出股票后,第二天无法买入股…

Hisat-Trinity-PASA等组学分析流程

一边学习,一边总结,一边分享! 详细教程请访问: 组学分析流程 本期分析流程 Hisat2-SamtoolsTrinity_GG_denovoPASA … 本期教程文章 题目:Genomic insights into local adaptation and future climate-induced vu…

C++ 基础篇

目录 C开发概述 C特点 C跨平台的原因 C编译器 C库 操作系统API C基本概念 注释 变量 常量 两种定义常量方式的区别 表示符命名规则 常见的关键字 数据类型 整型 浮点数 字符型 转义字符 字符串型 布尔类型 运算符 算术运算符 赋值运算符 比较运算符 逻…

三极管在数字电路中的应用

一、认识三极管 三极管拥有3个引脚,分别对应3个级:基极(Base)、发射极(Emitter)、集电极(Collector),如下图所示;下图横向左侧的是基极,带箭头的那个引脚就是发射极,另一个就是集电…

从零开始搭建博客网站-----登陆页面

登录按钮以及背景图设置 安装element-plus和css插件 npm install element-plus --save npm install sass --save npm install sass-loader --save在main.js里引用 寻找背景图存入assets文件下,并且在Login.vue里设置背景图和登录按钮 设置的背景图的大小没有起…

基于ResNet18网络完成图像分类任务

目录 1 数据处理 1.1 数据集介绍 1.2 数据读取 1.3 构造Dataset类 2 模型构建 3 模型训练 4 模型评价 5 模型预测 6 什么是预训练模型和迁移学习 7 比较“使用预训练模型”和“不使用预训练模型”的效果。 总结 在本实践中,我们实践一个更通用的图像分类任务…

物联网开发(一)新版Onenet 基础配置

onenet新创建的账号,没有了多协议接入,只有新的物联网开放平台 第一讲,先给大家讲一下:新版Onenet 基础配置 创建产品 产品开发-->创建产品 产品的品类选择个:大致符合你项目的即可,没有影响 选择智…

构建第一个ArkTS应用(纯HarmonyOS应用)

1. 安装开发工具 在华为开发者官方上下载HarmonyOS应用专用的开发工具,链接地址:HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 要想使用开发工具让项目跑起来,需要10G的磁盘空间。开发工具需要的磁盘空间为2.36G;SDK需…

Python笔记1.2(with open() as file和open()、logging、os、shutil、glob、decode和encode)

Python笔记1.1(字符串日期转换、argparse、sys、overwrite、eval、json.dumpsloads、os.system(cmd)、zfill、endswith、深浅拷贝) Python笔记2(函数参数、面向对象、装饰器、高级函数、捕获异常、dir) Python笔记1.2 13、with …

Linux(12):磁盘配额(Quota)与进阶文件系统管理

磁盘配额(Quota)的应用与实作 Quota 的一般用途: 针对 www server ,例如:每个人的网页空间的容量限制; 针对 mail server,例如:每个人的邮件空间限制。 针对 file server,例如:每个人最大的可用…

Python 爬虫 之scrapy 框架

文章目录 常用的命令开始爬虫请求与响应让控制台只输出想要的信息创建一个py 文件来帮忙运行爬虫 工作原理图实战 常用的命令 Scrapy是一个用于爬取网站数据的Python框架,以下是一些常用的Scrapy命令: 开始的时候 用 cd 进入你想创建scrapy 的文件夹 &a…

Java中各种数据类型之间的转换

低类型向高类型自动进行转换,高类型向低类型的准换会丢失数据,整数到字符类型的转换将获取对应编码的字符。 进行高精度向低精度的强制类型准换时,需要将想要转换成的数据类型加一个括号()。 如何完成自动转换呢? 转换前的数据类…

Linux 下命令行启动与关闭WebLogic的相关服务

WebLogic 的服务器类型 WebLogic提供了三种类型的服务器: 管理服务器节点服务器托管服务器 示例和关系如下图: 对应三类服务器, 就有三种启动和关闭的方式。本篇介绍使用命令行脚本的方式启动和关闭这三种类型的服务器。 关于WebLogic 的…

系统地自学 Python

文章目录 如何系统地自学 Python1. 选择合适的 Python 版本2. 安装 Python 和必要的工具3. 学习 Python 的基础知识4. 学习 Python 的高级特性5. Python 的应用领域6. 保持良好的学习习惯 如何系统地自学 Python Python 是一种广泛使用的编程语言,它具有简洁、易读、…

微服务的应用架构

架构描述的是在更高层次将应用拆分为子系统或模块的方法,以及这些子系统之间的交互关系。在一个基于微服务架构构建的应用中,每个服务都需要有自己的架构。 事实上,单体应用在复杂度较低时,它的生产效率是要高于微服务的。只有在…

【Go语言 map源码分析】

map底层数据结构 我们在之前学习C中的map时知道了 map的底层其实是有两种数据结构 这取决于我们要求它有序还是无序 如果说我们要求map是有序的它的底层数据结构就是红黑树如果说我们要求map是无序的它的底层数据结构就是哈希表 但是Go语言中的map数据结构有点特殊 如下图 …

QueryRunner报红处理

如图,有同学反映QueryRunner报红,就是没有导包 自己去找项目的地址,找到web文件夹下的WEB-INF 把这些jar包都粘贴进去,以后项目基本都会用到的,资源自己去找 粘贴好后打开文件的Project Structure 点击Dependencies 点…

github打不开,全网最简单解决方法,没有之一

下载watt toolkit, 选择‘github’,点击‘一键加速’, 具体步骤如下:去电脑微软商店下载watt toolkit,或者直接打开网址https://apps.microsoft.com/detail/9MTCFHS560NG?hlen-us&glUS 如图,点击安装i…

洛谷 B2006 地球人口承载力估计 C++代码

目录 前言 思路点拨 AC代码 结尾 前言 今天我们来做洛谷上的一道题目。 网址:地球人口承载力估计 - 洛谷 题目: 思路点拨 经典牛吃草问题。 解设一个人一年吃一份草。 则x*a-y*b为会多出的草,为什么会多呢?是因为每年都有…