微机原理Proteus实验——IO 口读写实验

题目:

一.实验要求 利用板上集成电路上的资源,扩展一片 74HC245,用来读入开关状态;扩展一片 74HC373,用来作来输出口,控制 8 个 LED 灯。 二.实验目的 1 、了解 CPU 常用的端口连接总线的方法。 2、掌握 74HC245、74HC373 进行数据读入与输出。 三.实验电路及连线 将所需的部件找到,包括两块74HC373,三个74HC02,一块74HC245,一块74LS138, 一块 RESPACK-8,一块 DIPSW_8,八个 LED 灯(颜色可以自选),8 个电阻(RES), 地线(GROUND),电源(POWER)若干 四.实验说明 一般情况下,CPU 的总线会挂有很多器件,如何使这些器件不造成冲突,这就要 使用一些总线隔离器件,例如 74HC245、74HC373。74HC245 是三态总线收发器,本 实验用它做输入,片选地址为 0D0000H-0DFFFFH。就是用于读入开关值。74HC373 是 数据锁存芯片,通过它作数据的锁住输出。

讲解部分:

一、连接思路

程序开始后,先定位到开关接口的地址,从连接开关的接口读入开关的输入数据。

接下来,定位到LED灯的接口地址,传出数据使相应的LED灯点亮。

其中,接口的位置与数据锁存使用74HC245芯片,CPU指令锁存采用74HC373芯片,译码器采用74LS138芯片,并利用或非门来构建连接逻辑关系。

二、芯片与原理讲解

先放一张全图~ 

  CPU采用8086芯片,其中用于实现实验目的的引脚主要有32号和29号的读和写引脚,用来表示是否进行读写,AD[0..15]为数据指令复用线,用来传递指令和数据。25号用来高电平触发74HC373LE进行数据锁存。

 输入:RP1用来提供高电势,配合DSW1实现开关信号的产生。我们发现开关打开时,该路接地,则向外输出低电平。如图中例,输出的信号为01010001。

 74HC245:作为锁存器和接口,当芯片的19号引脚为高电平时数据传递方向为A-B,为低电平时数据传递方向为B-A。如将A连接CPU部分,B连接外设,则在作为输入接口时,19应该出0,作为输出接口时,19应该出1。

输入接口74HC245:观察发现,当CE输入低电平时,芯片被触发,将开关信号数据从B端传入A端连接的数据指令线。

 74HC373:与74HC245类似,1号引脚输入低电平时,数据由D侧输入,向Q侧传出。

输出接口74HC373:当OE输入低电平时,芯片被触发,将数据从D端连接的数据指令线传入Q端。这里我们发现,芯片的输出端口是对着LED的阴极的,因此需要输出低电平点亮LED。结合输入端口的逻辑,我们只需将输入的数据信号传给输出即可实现——开关打开,LED亮,开关关闭——LED灭。

CPU指令锁存74HC373:当OE输入低电平时,CPU指令线上的信号从D端传到Q端,通过Q端连接的片选器来寻找输入输出接口。

片选器74LS138:E1高电平,E2和E3低电平时有效,输入的ABC为二进制对应Y0到Y7,如CBA为 110时,对应十进制为6,即触发Y6引脚出低电平。片选器通过输入的ABC信号来选取对应的接口地址。

由于READ的片选地址Y5为101,WRITE的片选地址为110,我们可以确认输入端D4到D7的数据,并将其余位补0,作为接口地址信号(为之后汇编代码用)。 

我们再看一遍全图,这次从CPU开始,CPU想先读取开关信号,于是他传指令,通过指令锁存器和译码器选择输入接口,Y5出0后经过上方逻辑门使得U3(输入接口)的10号引脚为0,传入数据开关信号。接下来,传入的数据被存在CPU寄存器里,CPU再去传出指令去给LED写入数据,于是他又传指令,选择输出接口并通过低位数据线传出寄存器内保存的开关信号数据,使LED点亮。为此,我们可以写出汇编指令。

三、汇编指令

.MODEL SMALL
.STACK
.DATA
INPUT EQU 0D000H
OUTPUT EQU 0E000H
.CODE
.STARTUP
START:MOV DX,INPUTIN AL,DXMOV DX,OUTPUTOUT DX,ALJMP START
.EXIT 0
END

这里采用了简化的汇编。我们先在数据段放上输入和输出的地址,即刚刚译码器Y5和Y6的地址,0D000H和0E000H。接下来我们先用IN指令传入输入信号(开关信号),并将开关信号数据存入AL,接下来我们读取LED地址,并将AL上的数据传出给LED,实现对灯的开闭。汇编核心代码就是输入和输出的4行。

 

效果图如上。

题源来自于南京农业大学汇编语言和微机原理实验题一。

注:如本文出现漏洞,欢迎评论联系作者修改。 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部