微机原理与接口技术(第二版)龚尚福等编 配套实验讲义

更新时间:2023-05-20 05:05:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 系统认识实验

一.实验目的

掌握TDN86/88教学实验系统的基本操作。

二.实验设备

TDN86/88教学实验系统一台。

三.实验内容及步骤

1. 系统认识实验(1) (1)程序的输入与修改

从3500H内存单元开始建立0-15共16个数据。

实验步骤:

a. 使用串行通讯电缆将实验系统与PC机相连。 b. 开启实验系统。

c. 在系统软件所在目录(默认为C:\TANGDU\W8688)下运行文件WMD86.EXE进入集成操作

软件环境,打开文件菜单选择新建,即可开始输入源程序。 d. 输入程序后,在文件菜单中选择保存程序,注意文件名的格式,扩展文件名必须为*.ASM,

例:ABC.ASM。 e. 在编译菜单中选择汇编(CTRL+F2)对源程序进行汇编,若源程序没有错误生成目标文

件*.OBJ,若源程序中有错误则返回错误信息,根据错误信息对源程序进行修改后再进行汇编。 f. 汇编无误后,在编译菜单中选择链接(CTRL+F3)对汇编生成的*.OBJ目标文件进行链接,

链接信息显示于屏幕上,如没有错误,生成相应的可执行文件*.EXE。 g. 在窗口菜单中选择调试(CTRL+1)打开调试窗口,出现系统提示符“>”后选择菜单中

的装入程序,选择相应的*.EXE文件,填入程序段地址与偏移量(默认段地址0000,偏

移量2000,一般不用修改),确定后PC开始将程序从磁盘装入到教学实验系统内存,提示装载完毕后使用U命令进行反汇编,检查程序是否正确装入。U命令输入格式为U0000:2000。

h. 当发现源程序输入错误或需要调整时,在调试窗口下可用A命令来修改,如修改2000

句为MOV DI,3500的操作如下:

(2)运行程序

系统提供了单步运行、断点运行、连续运行等方式,具体操作如下:

a. 单步运行:在“>”提示符下输入T↙或点击菜单中的单步运行执行,每运行一条指令后

会显示下一条待执行指令并显示变化寄存器的内容,重复T↙可一步一步运行直至程序结束。 b. 连续运行:在“>”提示符下输入G=0000:2000↙(在系统默认段址CS=0000情况下

可直接输入G=2000↙)可连续运行程序,在运行过程中,可通过CTRL+BREAK或点击菜单中的停止来终止程序运行。

c. 断点运行:在程序中可用B命令定义断点,系统规定最多定义10个断点,例如:

上例中定义了2009地址为断点,输入GB=0000:2000↙程序连续运行至断点时,程序中断并显示当前各寄存器内容。GB是G命令的扩充,表示含断点连续运行程序,断点仅当系统复位时清除。 (3)内存单元的内容显示:

使用D0000:3500↙可查看3500H-350FH单元中的内容是否为0-15共16个数。 (4)内存单元内容的修改:

若要修改某一单元内容,可进行如下操作,其中,“空格”键用于向待编辑单元的高地

址方向移动地址,而“-”键则向反方向移动地址;用↙来确认输入,退出E命令。

2. 系统操作练习(2)

将内存3500H单元开始的0-15共16个数传递到3600H单元开始的数据区中。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)E3500↙,在3500-3510单元中分别送入00、01、02 。

(3)G=0000:2000↙,运行程序,按CTRL+BREAK中断,返回监控。 (4)D3600↙,显示结果:3600 00 01 02 。

实验二 运算类编程实验

一.实验目的

1. 掌握使用运算类指令编程及调试方法。

2. 掌握运算类指令对各状态标志位的影响及其测试方法。

二.实验设备

TDN86/88教学实验系统一台

三.实验内容及步骤

8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对二进制、BCD码数据类型进行算术运算。

1. 二进制双精度加法运算

计算X+Y=Z,将结果Z存入某存储单元。

本实验程序是双精度(2个16位,既32位)运算,利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。(设:CS:0000H,IP:2000H) (2)用U0000:2000查看MOV AX,XXXX(DATA)语句,得到数据段段地址CS:XXXX。用E命令EXXXX:0000↙给XL,XH,YL,YH赋值存入二进制数A0 65 15 00和9E B7 21 00。 (3)G=0000:2000↙,运行程序。

(4)DXXXX:0008↙,显示计算结果:3E 1D 37 00 CC 。 (5)反复试几组数,考察程序的正确性。

2. 十进制数的BCD码减法运算

计算X-Y=Z,其中,X、Y、Z为BCD码。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。(设:CS:0000H,IP:2000H) (2)用U0000:2000查看MOV AX,XXXX(DATA)语句,得到数据段段地址CS:XXXX。用E命令EXXXX:0000↙给X,Y赋值存入40和12的BCD码:00 04 02 01。 (3)G=0000:2000↙,运行程序。

(4)DXXXX:0004↙,显示计算结果:08 02 CC 。 (5)反复试几组数,考察程序的正确性。

3. 乘法运算

本实验实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,乘积在屏幕上显示。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)用U0000:2000↙查看MOV AX,XXXX(DATA)语句,得到数据段段地址CS:XXXX。用E命令EXXXX:0000↙给在对应数据段填入乘数与被乘数。

(3)G=0000:2000↙,运行程序,屏幕显示结果。用CTRL+BREAK可终止程序运行。 (4)反复试几组数,考察程序的正确性。

四.思考题

1. 编写有符号数A1B1+A2B2的程序,A1、A2、B1、B2均为符号数。 2. 编写两个数值长度不等的BCD码相加程序。

实验三 分支程序设计实验

一.实验目的

1. 掌握分支程序的结构。

2. 掌握分支程序的设计、调试方法。

二.实验设备

TDN86/88教学实验系统一台

三.实验内容及步骤

1. 比较两个字符串STR1与STR2是否相同,若相同则在屏幕上显示MATCH,不同则显示

NOMATCH。

2. 设计一数据块间的搬移程序

设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图3-1所示。

图3-1

对于两个数据块分离的情况,如图3-1(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏,可以得出以上结论:

当源数据块首址>目的块首址时,从数据块首地址开始传送数据。

当源数据块首址<目的块首址时,从数据块末地址开始传送数据。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)用E命令在以SI为起址的单元中填入16个数。 (3)G=0000:2000↙,运行程序。

(4)用D命令查看DI为起址的单元中的数据是否与SI单元中的数据相同。 (5)试改变SI、DI的取值,观察在三种不同的数据块情况下程序的运行。

四.思考题

为什么当源数据块首址>目的块首址时,应从数据块首地址开始传送数据?而当源数据块首址<目的块首址时,应从数据块末地址开始传送数据?

一.实验目的

1. 加深对循环结构的理解。 2. 掌握循环结构程序设计的方法。 3. 熟练掌握调试循环程序的方法。

二.实验设备

TDN86/88教学实验系统一台

三.实验内容及步骤

1. 编制程序

计算式子1+2+3+ +99+100的结果。

2. 求某数据区内负数的个数

设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。 (2)E3000↙输入数据如下:

3000=06(数据个数) 3001=12 88 82 90 22 33

(3)G=0000:2000↙,运行实验程序。 (4)D=3007↙,显示结果03。

四.思考题

修改程序2,使其能分别求出数据区中正数、零和负数的个数。

一.实验目的

1. 掌握分支、循环、子程序调用等基本的程序结构。 2. 学习综合程序的设计、编制及调试。

二.实验设备

TDN86/88教学实验系统一台

三.实验内容及步骤

1. 在数据区中存放着一组数,数据的个数就是数据缓冲区的长度,要求用气泡法对该数据区中数据按递增关系排序。 设计思想:

a. 从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N

-1个数比较,第N-1个数与第N-2个数比较等等;若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数将被排在N个数的最前列。

b. 对剩下的N-1个数重复上步,找到N-1个数中的最小数。 c. 重复第二步,直到N个数全部排序好为止。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)用E3000↙在3000-3009H数据区中任意放入10个无符号数。 (3)G=0000:2000↙,运行实验程序。 (4)用D=3000↙检查排序结果。

(5)反复修改数据区中的数,运行程序并观察结果,以验证程序的正确性。

2. 学生成绩名次表

将分数为1-100之间的30个成绩存入首址为3000H的单元中,3000H+i表示学号为i的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+i为学号i的学生名次。

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。 (2)将30个成绩存入首址为3000H的单元中。 (3)调试并运行实验程序。

(4)检查3100H开始的区域中的名次表的正确性。

四.思考题

1. 请指出程序1中哪部分属于外循环,哪部分属于内循环? 2. 程序中对SI、CX压栈和弹栈的意义何在?

3. 修改程序2,使其能将3100H开始的区域中的名次表显示出来。

实验六 中断特性及8259应用编程实验

一.实验目的

1. 认识TDN86/88系统的中断特性。 2. 掌握8259中断控制器的工作原理。 3. 掌握8259可编程控制器的应用编程。 4. 学习掌握8259级连方式的使用方法。

5. 学习在接口实验单元上构造连接实验电路的方法。

二.实验设备

1. TDN86/88教学实验系统一台。 2. 排线、导线若干。

三.实验内容及步骤

1. 8259应用实验(1)

图6-1 实验(1)线路

按图6-1所示实验线路编写程序,使每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。

实验步骤:

(1)按图6-1连接实验线路。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)G=0000:2000运行实验程序。

(4)重复按KK2微动开关,显示屏上应用“7”来响应,直到按10次后,系统处于停机状态,用CTRL+BREAK返回监控。

2. 8259应用实验(2)

图6-2 实验(2)线路

按图6-2所示实验线路,编写程序,完成下面的要求: 当无中断请求时,执行主程序,延时显示“main”,若有中断请求,则执行其中断服务程序,显示该中断号“6”或“7”;若正在执行较低级的中断服务程序,则允许比它优先级高的中断被响应(IRQ6>IRQ7)。主程序在执行过程中,每显示一个“main”,空一格。

实验步骤:

(1)按图6-2连接实验线路。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)G=0000:2000↙,运行实验程序,则连续显示MAIN,先后按动KK1和KK2微动开关来模拟中断请求信号,记录请求顺序及显示结果。

3. 8259级连实验

本实验是以系统中的8259作为主片,外接另一片8259作为从片,构成8259级连方式的中断实验线路,如图6-3所示,其中规定主片的IRQ7上连接一片从片,从片上的IRQ7接中断申请电路(R-S单脉冲触发器),并规定从片的中断矢量编号为30-37H,其命令寄存器组编址为00和01。

图6-3 8259级连实验接线图

实验步骤:

(1)按图6-3连接实验线路,其中INTA连接必须在开机上电之后。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)G=0000:2000↙,运行实验程序,并通过按动KK1微动开关向从片申请中断,每按动一次KK1,显示屏上显示一个“7”字符,表明CPU响应了一次中断。

四.思考题

在实验(2)中,若先按动KK2,在按动KK1(此时尚未显示“7”),显示结果会是什么?为什么?

实验七 8255并行接口应用实验

一.实验目的

1. 学习并掌握8255的各种工作方式及其应用。 2. 学习在系统接口实验单元上构造实验电路。

二.实验设备

1. TDN86/88教学实验系统一台。 2. 排线、导线若干。

三.实验内容及步骤

1. 8255接口应用实验(1)

图7-1 实验线路图

按图7-1所示实验线路编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入/输出功能。

实验步骤:

(1)按图接线。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)G=0000:2000↙,运行实验程序,拨动开关组,观察发光二极管应一一对应。

2. 8255接口应用实验(2)

按图7-2所示接线,编写程序,使8255端口A工作在方式0并作为输出口,端口B工作于方式1并作为输入口,则端口C的PC2成为选通信号输入端STBB,PC0成为中断请求信号输出端INTRB。当B口就绪后,通过发STBB信号来请求CPU读取端口B数据并送端口A输出显示。

图7-2 实验接线图(KK1-初态为“1”)

实验步骤:

(1)按图接线。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)G=0000:2000↙,运行实验程序,拨动开关组K0-K7,准备好后,按动微动开关KK1,观察发光二极管组,应与开关信号对应。

实验八 8253定时/计数器应用实验

一.实验目的

1. 熟悉8253在系统中的典型接法。 2. 掌握8253的工作方式及应用编程。

二.实验设备

1. TDN86/88教学实验系统一台。 2. 排线、导线若干。

三.实验内容及步骤

1. 8253计数器应用实验(1)

设定8253的2#通道工作方式为方式0,用于事件计数,当计数值为5时,发出中断请求信号,显示“M”。其实验线路如图8-1所示。

图8-1 实验(1)线路

实验步骤:

(1)按图接线。

(2)输入程序并检查无误,经汇编、连接后装入系统。

(3)用E命令在0000:003CH单元填入IRQ7中断矢量,即0000:003C 12 20 00 00。 (4)运行实验程序,按动微动开关KK1,观察是否每按6次,屏幕上显示一个“M”字符。

2. 8253定时器应用实验(2)

利用8253的0通道来定时中断(IRQ0),循环显示“0”-“9”十个数,实验线路如图8-2。

#

图8-2 实验(2)线路

实验步骤:

(1)输入程序并检查无误,经汇编、连接后装入系统。

(2)运行程序,显示屏上应连续逐行显示“0”-“9”十个数,直到用“RESET”复位开关来中断。

(3)修改8253的0时常,再运行程序,观察显示的快慢程度。

3. 电子发声实验(3)

系统的OPCLK(1.1625MHz)作为音乐节拍,由表格查出每个音符对应的时常送给计数器2(工作在方式3:方波频率发生器),以确定音调,驱动扬声器产生音乐。实验接线如图8-3。

#

图8-3 实验(3)接线图

实验步骤:

(1)按图接线。

(2)输入程序并检查无误,经汇编、连接后装入系统。 (3)G=2000↙运行程序,即可听到扬声器发出音乐声。

四.思考题

在将计数初值赋给8253后,马上就可以启动并进行定时或计数吗?

实验九 8251串行接口应用实验

(一)双机通讯实验

一.实验目的

1. 掌握8251的工作方式。 2. 学习串行通讯的有关知识。

3. 了解8251在半双工双机通讯情况下的软件编制,硬件连接技术。

二.实验设备

1. TDN86/88教学实验系统两台。 2. 排线、导线若干。

三.实验内容及步骤

本实验需用两台TDN86/88教学实验系统,并通过排线将两台仪器相连,具体接线如图9-1。

图9-1 双机通讯

其中1号机用做接收机,2号机用做发送机。实验目的是将2号机中的3000-3009H十个单元中的代码传送到1号机的3000-3009H单元中。

实验步骤:

(1)按图9-1将1、2号机连接起来。

(2)两台机器上电后,均输入程序,并要求2号机用E命令在3000-3009H十个单元中填入十个ASCII码,如:3000:30 31 32 33 34 35 36 37 38 39

(3)先使1号机程序运行,等串行接收数据,然后再运行2号机程序,发送字符串到串口,当数发送、接收完毕时,1号机显示相应的ASCII码字符串,如:R 0 1 2 3 4 5 6 7 8 9,用CTRL+BREAK可使程序中断,返回监控。

(4)检查1号机的3000-3009H单元,应和2号机一致。

(二)串口自发自收实验

一.实验目的

掌握8251串行通讯方式的硬件接口电路及软件编制。

二.实验设备

1. TDN86/88教学实验系统一台。 2. 排线、导线若干。

三.实验内容及步骤

对于串行传输的数据格式,本实验有如下规定:

一个字有一个逻辑“1”起始位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为9600baut。

实验步骤:

(1)将实验系统上8251的TXD与RXD直接相连。

(2)输入程序并检查无误,经汇编、连接后装入系统。 (3)用E命令在4000-400A单元赋值。

(4)运行程序,用D命令观察3000-300A单元内容和4000-400A单元内容是否一致。

四.思考题

使两机分别工作在中断方式下,画出流程图,并编制程序。

实验十 A/D转换实验

一.实验目的

1. 学习掌握模/数信号转换基本原理。 2. 掌握ADC0809芯片的使用方法。

二.实验设备

1. TDN86/88教学实验系统一台。 2. 排线、导线若干。

三.实验内容及步骤

按图编写实验程序,实现A/D转换。

图10-1 ADC0809应用实验线路

实验步骤:

(1)按图接线。

(2)输入程序并检查无误,运行程序。

(3)调节W电位起,显示屏上显示AD0809:IN0 XX。

(4)用万用表测出W输出电压,并记录显示屏上的相应数据,做出转换图。 (5)求0809芯片的整量化误差。

四.思考题

若改用EOC信号来申请中断读A/D值,程序如何设计?

本文来源:https://www.bwwdw.com/article/wse4.html

Top