微机原理实验

  • 格式:doc
  • 大小:133.00 KB
  • 文档页数:5

I/O地址译码与简单并行接口
冯展祥 08378014
一、实验目的
通过实验,掌握触发器、74LS273、74LS244、74LS138,开关、发光二极管和单脉冲按钮的使用方法以及I/O地址译码电路的工作原理和简单并行口的工作原理及使用方法。

二、实验原理与内容
(1) I/O地址译码
实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O 地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~
28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

实验电路中的D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。

利用这个原理编程使得L7闪烁发光(亮、灭、亮、灭、......)
图1-1 I/O地址译码原理图
(2)简单并行接口
1.利用74ls244进行8位并行输入显示
1、按下面图1-2简单并行输入接口电路图连接电路(74LS244插通用插座,
74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别
接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

2、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并
将其对应字母在屏幕上显示出来。

图1-2 8位并行输入
下面是这个实验的流程图:
2.利用74ls273进行8位并行输出显示
1、按下面图1-3简单并行输出接口电路图连接线路(74LS273插通用插座,
74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输
出,根据8个发光二极管发光情况验证正确性。

图1-3 8位并行输出显示
下面是实验的流程图
(3)提高性实验
1.ASCII码转换为BCD码
将并行接口输出实验键盘读入的十进制ASCII码,在通过74ls273接口输出之前先把它转换为BCD码,用8个发光二极管发光情况验证正确性;若输入不是十进制数的ASCII码,则对应8个发光二极管全亮,显示内容为“FFH”。

2.转换接口地址
74ls273接口地址接入280H,74ls244接口地址接入288H,对并行接口输入实验和并行接口输出实验重新验证。

三、实验结果
(1)I/O地址译码
按照实验书上显示的图将电路连接然后将演示实验中的范例代码复制到
软件上后,编译、连接后运行,可以看到标号为L7的LED灯持续闪烁吗,至于闪烁的时间则是由DELAY的函数决定。

(2)8位并行输入
一样将程序复制并且运行后,可以看到当作为输入的8位开关的状态改变后(即输入的相应位改变),电脑屏幕上显示的字符会改变,而且该显示会不断刷新直到新的状态值输入,然后显示又会变为新的字符并且不断刷
新直到有键按下结束。

(3)8位并行输出
和之前一样,执行程序后,可以看到代表输入字符的ASCII码的8个显示灯会随着输入的字符的改变而改变(亮灭的状态),直到按下ESC键程序结束。

而将每一个灯得亮当做1,灭当做0来计算,把2进制的8位数
每4位一个化为16进制数,可以知道灯显示的确实是输入的字符的ASCII 码。

(4)ASCII码转换为BCD码后显示
要实现题目要求的内容,只需要在每次键盘输入字符后判断所输入字符的
ASCII码值是否在30H和39H之间,是则减去30H后显示,否则直接显示FFH则可。

下面是源程序:
;****************************;
;* 提高部分的并行输出实验*;
;****************************;
ls273 equ 2a8h
code segment
assume cs:code
start:
mov ah,2 ;回车符
mov dl,0dh
int 21h
mov ah,1 ;等待键盘输入
int 21h
cmp al,27 ;判断是否为ESC键
je exit ;若是则退出
cmp al,30h ;小于30H则显示全亮
jl ex1
cmp al,39h ;大于39H则显示全亮
ja ex1
sub al,30h ;转换为BCD码
jmp ex2
ex1:mov al,0ffh
ex2:mov dx,ls273 ;从2A8H输出BCD码或者全亮
out dx,al
jmp start ;转start
exit: mov ah,4ch ;返回
int 21h
code ends
将程序进行编译和运行后,可以发现当输入在0~9之间时输出显示只有后四个灯显示0~9之间的BCD码(也就是它们的二进制值),而当键盘输入的键为ESC时退出程序,其它的输入则显示的灯全亮。

(5)转换接口地址
只需要将原来程序中的
ls273 equ 2a8h
改为
ls273 equ 280h
以及
ls244 equ 2a0h
改为
ls244 equ 288h
即可。

修改后将对应的输出口的线连接到或门上去,则可发现程序的执行结果和之前的是一样的。

四、心得体会
通过这次的实验,我加深了对8086/8088的地址译码的理解以及使用8086/8088进行并行输入、并行输出的理解。

此外,我也掌握了触发器、74LS273、74LS244、74LS138,开关、发光二极管和单脉冲按钮的使用方法,知道了进行微机实验的实验环境和实验板的各种组成芯片。

最为重要的是,我学会了将在微机课上学习到得知识实际用到了这次的实验中,复习验证了以前学的知识。