8253译码电路设计以及初始化编程讲解

先验知识回顾:知识点不清晰的时候可以查询相关知识点。
https://blog.csdn.net/qq_42604176/article/details/105810973

需掌握的主要知识点

1、译码电路设计
2、初始化编程

例题1

在以 8086构成的最大方式系统中,有一片8254的端口地址分别为301H、303H、305H和307H,给定的外部时钟为512kHz。 要求:、
(1)利用计数器0产生周期为1ms的周期信号,请编写初始化程序;利用这一计数器能产生的最低信号频率为_______, 这时的时常数CR。=________;
思路:
1、分析采用哪种方式
根据要求产生周期信号,采用方式2/3:分频器/周期性方波输出;
2、计算时常数CR0
CR0=输出信号周期/外部时钟周期=1ms/(1/512k)=512
3、了解该计数器的最大分频次数,计算最大分频次数
最大分频次数是62256次,这样可以获取最低频率:512k/62256=8.22Hz

MOV DX,307H;DX指向控制寄存器
MOV AL,0011 0110B;配置字:选择通道0, CR/OL使用16位,方式3,2进制计数
OUT DX,AL;	字配置完成
MOV DX,301H;DX指向通道0
MOV AX,512;设置时常数
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;	配置完成

(2)利用计数器1和2产生如图9. 17所示的周期信号,并编写初始化程序;
产生信号
产生这种非方波的周期信号,使用方式2,但是在方式2下,低电平时间仅为一个时钟周期。因此,利用一个计数通道无法实现。现在采用计数器1和计数器2联合,先利用计数器1产生周期为1.5ms的周期信号,然后将输出OUT1信号作为计数器2的时钟输入CLK2。
对于计数器1,工作方式可以选择方式2/3,一般选择方式3,这样可以使产生的信号近似对称,其时常数CR1=1.5ms/(1/512k)=768,采用16位的时常数表示。
对于计数器2,工作方式只能选择方式2,其时间常数CR2=(3s+1.5ms)/1.5ms=2001,所以也需要16位时常数表示。

;配置计数器1
MOV DX,307H;DX指向控制寄存器
MOV AL,0111 0110B;配置字:选择通道1, CR/OL使用16位,方式3,2进制计数
OUT DX,AL;	字配置完成
MOV DX,303H;DX指向通道1
MOV AX,768;设置时常数
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;	配置完成;配置计数器2
MOV DX,307H;DX指向控制寄存器
MOV AL,1011 0100B;配置字:选择通道2, CR/OL使用16位,方式2,2进制计数
OUT DX,AL;	字配置完成
MOV DX,305H;DX指向通道2
MOV AX,2001;设置时常数
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;	配置完成

(3)画出8253的端口译码电路(地址线只使用Ao~Ag)及其连接图。
译码电路地址要求:

A2A1ADDR(二进制)ADDR(16进制)
0011,0000,0001301H
0111,0000,0011303H
1011,0000,0101305H
1111,0000,0111307H

注意由于是奇地址,数据线和A0所做出的的更改:
电路

例题2

设8253的端口地址为260H ~ 263H,外部时钟信号为1MHz,要求产生如图所示的周期波形,画出8253的连接图,并编写初始化程序段。
题目
分析:
产生的信号低电平时间比高电平宽的多,所以不能直接采用方式2实现。如果可以增加外部器件,则可以在上一题的基础上,将OUT端信号非门取反。
1、由于要采用方式3,产生周期:1s+12ms=1012ms的方波信号,题目给定的外部时钟周期为1MHz,这时候需要的分频系数(时常数)为:1012ms/1us=1012000,显然这个超过了65536(2^16),所以通过一个计数通道无法实现,所以采用计数器0和计数器1联合产生。CR0=1000,CR1=1012,这样OUT0周期为1ms。
2、利用计数器2的方式1(可编程单稳脉冲)实现单脉冲形成一次作为要求产生信号的低电平,时常数CR2=1s/1ms-1=1000-1=999,计数器0 的OUT0信号作为计数器2的时钟输入信号,OUT1作为计数器2的硬件触发信号,确保周期为1012ms。这里注意,计数器的方式1的时常数确定的是输出低电平的时长,也就是所谓的单脉冲宽度.

MOV DX,263H;写计数器0方式控制字
MOV AL, 0011 0110B;计数器016位,方式三,二进制
OUT DX,AL;
MOV DX,260H;写计数器0的时常数
MOV AX,1000;
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;
MOV DX,263H;写计数器1方式控制字
MOV AL,0111 0110B;计数器116位,方式三,二进制
OUT DX,AL;
MOV DX,261H;写计数器1时常数
MOV AX,1012;
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;
MOV DX,263H;写计数器2方式控制字
MOV AL,1011 0010B;计数器216位,方式1,二进制
OUT DX,AL;
MOV DX,262H;写计数器2时常数
MOV AX,999;
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;

连接图
OUT0:输出的是周期为1ms的方波
OUT1:输出的是周期为1012ms的方波,也就是说每1012ms产生一个上升沿,这确定了计数器2的方式1一个周期宽度
OUT2:输出的是周期为1012ms,低电平时长为1000ms的脉冲。
我觉得最需要关注的两个连接点就是:OUT0->CLK1,OUT1->GATE2

例题3

在8088最小系统中,8253 的端口地址为284H~287H.系统提供的时钟为IMHz,要求在OUT0输出周期为20微秒的方波,在OUTI输出周期为200微秒,其中每周期为负的时间是180微秒的信号。请编写8253的初始化程序。
分析:这一题和上一题的思路很相似,主要的就是不需要联合。
1
通道0产生方波,可以使用方式3产生。
时常数CR0=输出信号周期/外部时钟周期=20us/(1/1M)=20;
通道2产生方波,可以使用方式3产生。
时常数CR2=输出信号周期/外部时钟周期=200us/(1/1M)=200;
通道1,采用方式1,时常数,CR1=180/20-1=8;

;配置计数器0
MOV DX,287H;DX指向控制寄存器
MOV AL,0001 0110B;配置字:选择通道0, CR/OL使用低8位,方式3,2进制计数
OUT DX,AL;	字配置完成
MOV DX,284H;DX指向通道0
MOV AL,20;设置时常数
OUT DX,AL;配置完成
MOV DX,287H;写计数器2控制方式字
MOV AL,1001 0110B;
OUT DX,AL;
MOV DX,286H;写计数器2时常数
MOV AL,200;
OUT DX,AL;
MOV DX,287H;
MOV AL,0101 0010B;
OUT DX,AL;
MOV DX,285H;
MOV AL,8;
OUT DX,AL;

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

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

相关文章

java安卓写文件路径,如何使用gradle作为构建系统,平台Android配置Protobuf(Java)文件的输出路径?...

我正在努力解决以下问题:我有2个基于maven的java项目和1个基于gradle的Android项目 . 布局如下:Workspace/├── MavenProj1/├── MavenProj2/├── AndroidGradleProject1/├── Protos/所有这些的包结构很常见,比方说 com.example.* 所…

Java System类exit()方法及示例

系统类exit()方法 (System class exit() method) exit() method is available in java.lang package. exit()方法在java.lang包中可用。 exit() method is used to exit the currently running JVM (Java Virtual Machine). exit()方法用于退出当前正在运行的JVM(Java虚拟机)。…

基于图像处理的数码印花喷墨墨滴形状规范的研究(Python+OpenCV+Mysql)

大体思路:由于墨滴的不同参数会对墨滴的形态产生一定的影响,故如果通过研究墨滴的形态则通过海量的数据就可以大概确定墨滴的各项参数指标的范围。通过OpenCV对墨滴的喷出的形状进行图像处理,对墨滴图像进行一系列的分析,通过一系…

ASP.NET 主题(Themes)FAQ

1、主题是什么 主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。主题是一组Web Control的属性设置的集合,提供一种简单的方法设置控件的样式属性。 主题只在Web Contr…

Head First HTML与CSS、XHTML++笔记(第四章 WEB镇之旅 第五章 认识媒体)

第四章 链接&#xff08;详解<a>元素&#xff09; 目标锚 在目标位置 <h2><a id"chai">contentTest</a></h2> 在需要链接位置 <a href"index.html#chai">See</a> 链接到自身的目标锚 <a href"#top"…

Opencv实战【4】——图片动漫化处理

博主联系方式&#xff1a; QQ:1540984562 微信&#xff1a;wxid_nz49532kbh9u22 QQ交流群&#xff1a;750313950 目录动漫化风格的特点处理手段代码实现效果总结动漫化风格的特点 &#xff08;1&#xff09;动漫中的细节相对少&#xff1b; &#xff08;2&#xff09;动漫中的边…

nextshort_Java扫描仪的nextShort()方法与示例

nextshort扫描器类的nextShort()方法 (Scanner Class nextShort() method) Syntax: 句法&#xff1a; public short nextShort();public short nextShort(int rad);nextShort() method is available in java.util package. nextShort()方法在java.util包中可用。 nextShort() …

php 生成css文件怎么打开,php生成html文件的多种步骤介绍

//定义日期函数functiongetdatetime(){$datetimegetdate();$strReturn$datetime["year"]."-";$strReturn$strReturn.$datetime["mon"]."-";$strReturn$strReturn.$datetime["mday"];return$strReturn;}//定义时间函数(文件名…

08-KNN手写数字识别

标签下载地址 文件内容备注train-images-idx3-ubyte.gz训练集图片&#xff1a;55000张训练图片&#xff0c;5000张验证图片train-labels-idx1-ubyte.gz训练集图片对应的数字标签t10k-images-idx3-ubyte.gz测试集图片&#xff1a;10000张图片t表示test&#xff0c;测试图片&…

MFC odbc访问远程数据库

首先&#xff0c;MFC通过ODBC访问数据库&#xff0c;主要使用两个类&#xff0c;一个是CDataBase&#xff0c;一个是CRecordset。第一个是用于建立数据库连接的&#xff0c;第二个是数据集&#xff0c;用来查询的。步骤如下&#xff1a;1.实例化一个CDataBase对象&#xff0c;并…

微机原理——扩展存储器设计

目录【1】存储器的层次结构【2】存储器的分类【3】SRAM1、基本原理&#xff1a;2、结构&#xff1a;3、芯片参数与引脚解读&#xff1a;4、CPU与SRAM的连接方式【4】DRAM1、基本原理&#xff1a;2、结构3、芯片引脚解读&#xff1a;【5】存储器系统设计【6】存储器扩展设计&…

floatvalue 重写_Java Number floatValue()方法与示例

floatvalue 重写Number类floatValue()方法 (Number Class floatValue() method) floatValue() method is available in java.lang package. floatValue()方法在java.lang包中可用。 floatValue() method is used to return the value denoted by this Number object converted …

array_column php什么版本可以用,array_column兼容php5.5以下版本

gistfile1.txt// ----------------------------------------------------------------------// |获取二维数组中指定的一列&#xff0c;PHP5.5以后有专用函数array_column()// ----------------------------------------------------------------------// |param array $arr// …

。net学习之控件的使用注意点

jQuery使用 1、自定义属性的使用<script>$(#xwjj_i_main br[brinfoPd_KangQiao_Subject_Xwjj_br_1]).hide();</script> 2、ready代码块$(document).ready(function(){ //你的代码}); 3、简单的特效hide&#xff08;&#xff09;$("a").click(function()…

09-CNN手写数字识别

CNN卷积神经网络的本质就是卷积运算 维度的调整&#xff1a; tf.reshape(imageInput,[-1,28,28,1]) imageInput为[None,784]&#xff0c;N行* 784维 调整为 M28行28列*1通道 即&#xff1a;二维转化为四维数据 参数一&#xff1a;等价于运算结果M 参数二&#xff1a;28 28 表示…

【转】左值与右值

出处&#xff1a;http://www.embedded.com/electronics-blogs/programming-pointers/4023341/Lvalues-and-Rvalues C and C enforce subtle differences on the expressions to the left and right of the assignment operator If youve been programming in either C or C for…

Opencv将处理后的视频保存出现的问题

问题描述&#xff1a; 代码运行过程中&#xff0c;imshow出来的每帧的效果图是正确的&#xff0c;但是按照网上的方法保存下来却是0kb&#xff0c;打开不了。 参考的网上的一些方法&#xff0c;均是失败的&#xff0c;具体原因我也不清楚&#xff1a; 1、例如我这样设置&#x…

Java Number shortValue()方法与示例

Number类shortValue()方法 (Number Class shortValue() method) shortValue() method is available in java.lang package. shortValue()方法在java.lang包中可用。 shortValue() method is used to return the value denoted by this Number object converted to type short (…

MATLAB可以打开gms文件吗,gms文件扩展名,gms文件怎么打开?

.gms文件类型&#xff1a;Gesture and Motion Signal File扩展名为.gms的文件是一个数据文件。文件说明&#xff1a;Low-level, binary, minimal but generic format used to organize and store Gesture and Motion Signals in a flexible and optimized way; gesture-related…

黑白图片颜色反转并保存

将图像的黑白颜色反转并保存 import cv2 # opencv读取图像 img cv2.imread(rE:\Python-workspace\OpenCV\OpenCV/YY.png, 1) cv2.imshow(img, img) img_shape img.shape # 图像大小(565, 650, 3) print(img_shape) h img_shape[0] w img_shape[1] # 彩色图像转换为灰度图…