微机原理与接口技术实验指导书(2014) - 同 - 图文 下载本文

微机原理与接口技术实验指导书

2.4 子程序设计实验

2.4.1 实验目的

(1) 掌握子程序的定义调用方法。

(2) 掌握系统功能调用程序的使用和编写方法。

2.4.2 实验设备

PC微机一台。

2.4.3 实验内容及说明

在汇编程序设计中,用户通常会将常用的具有特定功能的程序段编制成子程序使用。一般过程定义伪操作的格式如下:

procedure name PROC Attribute …

procedure name ENDP

其中Attribute 是指类型属性,可以是NEAR或FAR,调用程序和过程在同一个代码段中使用NEAR属性,不在同一个代码段中,使用FAR。

编写一个含有子程序调用的程序,求函数y=a2+b2+ab。a、b是两个单字节无符号数据,并在数据段中定义,结果在y中(占用三个字节)。子程序的任务是求两数乘积及累加和。程序流程如图2.4所示。

2.4.4 实验步骤

程序汇编、链接通过后,用debug进行检测,改变a、b的值,将y开始的三个单元置0,运行程序,看y的值是否正确。

(1) 运行Tddebug软件,选择Edit菜单编写实验程序。提供10字节的数据:12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H。

(2) 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接。 (3) 使用Rmrun菜单中的Run,运行程序,观察运行结果。 (4) 更改数据区中的数据,考察程序的正确性。

2.4.5 实验原始记录

记录程序调试中遇到的主要问题和解决方法。

2.4.6 实验报告与总结

(1) 汇编程序设计的循环能否象C语言中的FOR可以提前退出?

16

微机原理与接口技术实验指导书

(2)指令LOOPZ/LOOPE是结果_________或_________发生转移的指令;而指

令LOOPNZ/LOOPNE则是结果_________或_________发生转移的指令。

(3)循环结构控制方式有哪几种?

数据段:定义单字节数a和b,赋任意值;定义单字节数y,预留三个单元。 堆栈段:定义100个字节的堆栈空间 代码段:保留返回地址;DS初始化; 传递参数a 调用子程序求a平方 传递参数b 调用子程序求b平方及累加和 传递参数a、b 调用子程序求a×b及累加和 返回dos

图2-4 程序流程

17

微机原理与接口技术实验指导书

2.2 地址译码电路设计实验

2.2.1 实验目的

(1) 学习3-8译码器在接口电路中的应用。 (2) 掌握地址译码电路的一般设计方法。

2.2.2 实验设备

PC微机一台、TD-PIT实验系统一套。

+

2.2.3 实验内容

用74LS138译码器设计地址译码电路,并用其输出作为基本输入输出单元的片选信号,使用设计的端口地址编写程序,实现数据的输入输出。

2.2.4 实验原理

微机接口电路中,常采用74LS138译码器来实现I/O端口或存储器的地址译码。74LS138有3个输入引脚、3个控制引脚及8个输出引脚,其管脚信号如图2-1所示。当3个控制信号有效时,相应于输入信号A、B、C状态的那个输出端为低电平,该信号即可作为片选信号。

图2-1 74LS138译码器管脚

32位扩展系统总线上有一个IOM/信号,该信号为低电平时指示当前操作为I/O操作,为高电平指示当前操作为存储器操作,它和译码器不同的连接可以用来区分是I/O端口译码还是存储器端口译码。32位总线地址是由A2开始,所以地址是以4字节边界对齐的。

实验系统的I/O地址空间共有256字节,偏移地址一般从00H~FFH。起始地址由PC机系统分配,可以用CHECK程序读出。所以设计地址译码电路,主要是针对低8位地址线译码,得到偏移在00H~FFH之间的端口。本实验要求不使用总线上的片选信号,自行设计端口偏移地址分别为C0H~DFH和E0H~FFH的译码电路,然后用译码输出作为基本输入输出单元的片选。编写程序,完成I/O数据操作。实验参考线路如图2-2所示。

2.2.5 实验步骤

18

微机原理与接口技术实验指导书

(1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 (2) 按图2-2所示连接实验线路。

(3) 首先运行CHECK程序,查看I/O端口始地址。 (4) 利用设计好的端口地址编写程序,然后编译链接。 (5) 运行程序,拨动开关,观看数据灯显示是否正确。

图2-2 地址译码设计实验参考接线图

2.2.6 实验原始记录

记录程序调试中遇到的主要问题和解决方法。

2.2.7实验报告与总结

(1)讨论实验中译码电路的地址如何形成以及地址范围? (2)常用的译码电路方法

19

微机原理与接口技术实验指导书

2.3 点阵LED显示设计实验

2.3.1 实验目的

(1) 学习点阵LED的操作方法。 (2) 掌握无条件输入输出程序的设计方法

2.3.2 实验内容

使用基本输入输出单元中的两路输出OA[7:0]和OB[7:0]分别控制点阵LED的

行控制R[7:0]和列控制L[7:0]。编写程序,使点阵LED的每一行和每一列依次循环显示。

2.3.3 实验说明

8×8点阵LED相当于8×8个发光管组成的阵列,其中每一行共用一个阳极

(行控制),每一列共用一个阴极(列控制)。行控制和列控制满足正确的电平就可使相应行列的发光管点亮。实验平台上点阵LED的管脚及相应的行、列控制位如图2-3所示。

图2-3 点阵LED的管脚图

本实验利用基本输入输出单元的两路输出分别控制点阵LED的行和列,编

写一个简单的程序,使每一行和每一列依次循环显示。参考程序流程如图2-4所示。实验参考接线如图2-5所示。

2.3.4 实验步骤

(1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 (2) 首先运行CHECK程序,查看I/O空间始地址。

(3) 利用查出的地址,按照图2-4所示的流程图编写程序,然后编译链接。 (4) 参考图3所示连接实验线路。 (5) 运行程序,观察LED显示是否正确。

20