8088实验指导书.docx
《8088实验指导书.docx》由会员分享,可在线阅读,更多相关《8088实验指导书.docx(33页珍藏版)》请在冰豆网上搜索。
![8088实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-1/26/a9674e04-6db0-47f9-b6af-8a515119b729/a9674e04-6db0-47f9-b6af-8a515119b7291.gif)
8088实验指导书
微机原理及应用实验指导书
杨凌霄阎有运郭顺京张伟编著
河南理工大学电气工程系
2004.8
前言
实验目的
掌握微型计算机的结构组成和工作原理、微机存储系统的结构组成和工作原理,熟练掌握微型计算机的中断技术、典型接口芯片的硬件设计和初始化及工作程序的设计。
了解微型计算机的最新技术和发展。
为后续课程打下坚实的基础。
实验综述
微机原理及接口技术是一门实践性很强的专业技能课,通过实验环节使学生掌握微型计算机与外设连接的有关技术,以及一些典型通用接口的工作原理、工作过程及应用方法,培养学生对接口电路分析和设计的能力,使学生能将微型计算机与通用或专用外设连接起来,构成完整的微机系统或计算机控制系统。
每次实验前,学生必须按照指导书要求进行不少于实验课时数的预习与准备。
实验结果必须经实验教师认可。
实验环境
硬件条件:
高档PC机
微机及接口实验系统装置
软件条件:
DOS操作系统、Windows操作系统。
任意一种编辑程序,如EDIT.EXE。
宏汇编程序MASM.EXE。
连接程序LINK.EXE。
调试程序DEBUG.EXE。
集成操作软件:
WMD86
目录
实验一系统认识实验1
实验二顺序程序设计6
实验三循环程序设计7
实验四分支程序设计8
实验五子程序设计9
实验六显示程序设计10
实验七中断特性及8259应用编程实验11
实验八8255并行接口应用实验16
实验九8253定时/计数器应用实验19
实验十8251串行接口应用实验22
实验十一双机通讯实验25
实验十二EPROM扩展实验27
实验十三8255键盘及显示接口实验30
实验一系统认识实验
一、实验目的
掌握TDN86/88教学系统的基本操作。
二、实验设备
TDN86/88教学实验系统。
三、实验内容及步骤
实验内容:
从3500H内存单元开始建立0~15共16个数据。
实验源程序如下:
STACKSEGMENTSTACK;8088宏汇编程序
DW64DUP(?
);定义堆栈段
STACKENDS
CODESEGMENT;定义代码段
ASSUMECS:
CODE
START:
MOVDI,3500H;程序开始设数据首址
MOVCX,0010H;字节数送入CX中
MOVAX,0000H
SAHF
Al:
MOV[DI],AL;写入一字节
INCDI;修改地址指针
INCAX;修改数据
DAA;十进制调整
LOOPA1;未填完转移
A2:
JMPA2
CODEENDS;代码段结束
ENDSTART;程序结束
实验步骤:
1、使用串行通信电缆将实验系统与计算机(PC)微机相连。
2、打开WMD86进入系统环境如图1-1所示。
图1—1
3、点击‘选择串口’如图1—2所示。
可选串行口l或串行口2(计算机后面与USB接口相邻的为串行口1)。
图1—2
4、点击文件,打开新建源程序,如图1—3所示。
图1—3
5、输入源程序并保存为DQ.asm.如图1—4所示。
图1—4
6、点击‘编译’,对源程序进行汇编、连接,生成可执行文件DQ.EXE如图1—5所示。
图1—5
7、汇编、连接无误后点击‘窗口’,如图1—6所示。
图1—6
8、点击‘调试窗口’如图1-7所示,进入调试窗口。
图1—7
9、按实验系统(箱)中的RESET键或计算机键盘上的Ctrl+Break键,显示器上将出现‘welcometoyou!
’,如图1—8所示,说明实验系统(箱)和计算机通信成功。
图1—8
10、装入DQ.EXE程序,确认程序段地址CS:
0000及偏移量地址IP:
2000。
11、提示装载完毕后使用U0000:
2000命令进行反汇编,检查程序是否正
确装入。
12、在“>”提示符下键入G=0000:
2000(在系统默认段址CS=0000情况下,也可直接键入G=2000)可连续运行程序。
13、使用D0000:
3500可查看3500H~350FH单元中的内容是否为0~15,共16个数。
可用E3500修改内存单元中的内容。
14、在以后的实验中将会用到示波器,示波器窗口如图1—9所示。
图1—9
实验二顺序程序设计
一、实验目的
1)掌握顺序程序设计方法。
2)学习数据传送及算术和逻辑运算指令的用法。
3)熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。
二、实验内容
1)有一字变量BUF1是以原码表示的有符号数,要求将其转换为反码和补码,分别存入BUF2和BUF3单元,并在屏幕上显示出来。
2)有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。
相加若有进位不存入存储单元。
三、实验设备
PC机一台
四、实验准备
1)分析题目,将程序中的原始数据和最终结果的存取方法确定好。
2)画出流程图。
3)写出源程序。
4)对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。
五、实验步骤
1)输入源程序。
2)汇编、连接程序,生成.EXE文件,执行文件,检查结果。
3)用DEBUG调试程序。
六、实验报告的要求
1)列出源程序,说明程序的基本结构,包括程序中各部分的功能。
2)说明程序中各部分所用的算法。
3)说明主要符号和所用到寄存器的功能。
4)上机调试过程中遇到的问题是如何解决的。
5)对调试源程序的结果进行分析。
实验三循环程序设计
一、实验目的
1)加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容
1)编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。
其程序的逻辑框图如图3.1所示。
2)将从3000H内存单元开始的100个字节存储单元全部清0。
本实验要求在DEBUG调试状态下进行,包括汇编程序、运行程序、检查结果。
三、实验设备:
PC机一台
四、试验准备
实验内容一:
按程序流程图编制实验程序。
实验内容二:
写流程图、编写程序。
对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。
五、实验步骤
实验内容一:
输入源程序,汇编、连接程序,执行程序,检查结果。
实验内容二:
1)输入源程序并检查无误。
2)对内存单元3000H开始的100个存储单元用E命令输入任意数。
3)程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。
4)用D命令检查执行结果。
五、实验报告的要求
1)列出源程序。
2)对程序中用到的寄存器说明其功能。
3)总结计数控制循环程序的设计方法。
4)说明怎样使用DEBUG进行程序调试的。
调试过程中所遇到的问题是如何解决的。
实验四分支程序设计
一、实验目的
1)掌握分支程序的结构。
2)掌握分支程序的设计,调试方法。
二、实验内容
1)在BUF和BUF+1、BUF+2单元分别放有一个无符号字节型数,编程序将其中最大数存入MAX单元,并在屏幕上显示。
2)要求同上,只是比较的数为有符号数。
3)将1000H单元开始的10个字节数,采用奇偶校验,将奇数在前偶数在后仍存回原数据区。
本实验要求在DEBUG调试状态下进行,包括汇编程序、运行程序、检查结果。
三、实验准备
1)阅读教材中有关分支程序的内容。
2)按要求编写程序。
3)对照实验步骤,将要测的数据事先画好表格。
四、实验设备
PC机一台
五、实验步骤
1)输入源程序。
2)汇编、连接程序,生成.EXE文件,执行文件检查结果。
3)对于实验内容三,进入DEBUG后,先用A命令汇编程序,同时用E命令对1000H开始的单元置10个字节数,然后对程序进行调试,用T命令观察程序流程。
程序运行完毕用D命令检查1000H开始的10个单元的内容。
六、实验报告的要求
1)列出源程序。
2)将实验测得的数据与理论分析比较。
3)总结为什么在设计分支程序时必须解决三个问题:
判断、转向和定标号。
4)说明标志位CF、SF和OF的意义。
实验五子程序设计
一、实验目的
1)学习子程序的定义和调用方法。
2)掌握子程序、子程序的嵌套、递归子程序的结构。
3)掌握子程序设计、编制及调试。
二、实验内容
设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。
三、实验准备
1)阅读教材中有关的内容,按要求编写程序。
2)熟悉字符显示程序段的编写。
3)对照实验步骤,将要测的数据画好表格。
四、实验设备
PC机一台
五、实验步骤
1)编辑、汇编、连接程序,生成.EXE文件。
2)进入DEBUG,对程序进行调试。
⑴在以BUF为起始地址的存储区中置入数据。
⑵调试运行程序,记录RESULT和RESULT+2单元的内容。
六、实验报告的要求
1)列出源程序。
2)通过实验说明PUSH指令和POP指令的功能及先进后出的工作原则。
说明子程序开始用PUSH指令保护现场,执行完子程序主体后用POP指令恢复现场的必要性。
3)说明主程序和子程序在程序形式上有何异同。
实验六显示程序设计
一、实验目的
1)掌握软件延时程序的编写方法。
2)熟悉系统功能调用的方法。
二、实验内容
1)在CRT上每隔一秒连续显示字符0~9。
编程提示:
为了使输出的字符之间有空格,在每一个循环中输出一个0~9的字符和一个空格。
为了输出0~9,置寄存器BL初值为0,每循环一次使其增量。
为了保证输出是十进制,增量后用DAA调整指令。
由于输出为一位十进制数,用AND*,0FH指令屏蔽高4位。
2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。
三、实验设备
PC机一台
四、实验准备
1)阅读教材中有关的内容,按要求编写程序。
2)熟悉软件延时程序的编写方法。
3)熟悉系统功能调用的方法。
五、实验步骤
1)输入源程序。
2)编辑、汇编、连接程序,生成.EXE文件,执行文件检查结果。
3)改变延时时间,观察显示速度。
六、实验报告的要求
1)列出源程序。
2)总结软件延时程序的编写方法。
3)总结常用系统调用的功能及调用方法。
实验七中断特性及8259应用编程实验
一、实验目的
1)认识TDN86/88系统的中断特性。
2)掌握8259中断控制器的工作原理。
3)掌握8259可编程中断控制器的应用编程。
4)学习掌握8259级连方式的使用方法。
5)学习在接口实验单元上构造连接实验电路的方法。
二、实验设备
TDN86/88教学实验系统。
三、实验准备
1)系统中的8259A芯片
系统中的8259A芯片工作于单片方式,但可由用户扩展接成级连方式。
其线路如图7-1所示。
图中的圈点表示此为排针形式引出脚。
(注:
以下线路图中的圈点均为排针形式引出脚,以后不再另作说明)
图7-1系统中的8259A芯片
系统启动时,8259A被初始化,其初始化是通过系统中的初始化程序设置初始化命令字ICW来实现的。
系统初始化时,规定0#和4#中断源分别提供给实时钟和与PC微机联机的串口通讯,用户可以使用其余的中断源。
在进入监控后,只有4#中断源处于开启状态,其它中断源都被屏蔽了。
中断矢量地址与中断号之间的关系如下表。
中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
矢量地址
20H
-
23H
24H
-
27H
28H
-
2BH
2CH
-
2FH
30H
-
33H
34H
-
37H
38H
-
3BH
3CH
-
3FH
说明
可用
可用
可用
串口2
串口1
可用
可用
可用
2)接口实验单元中的级连实验用8259A芯片
除系统中的8259A芯片外,在接口实验单元中专门提供了另一片8259A芯片,以便进行8259级连实验。
其线路如图7-2所示。
图7-2接口实验单元中的级连用8259A芯片线路
3)接口实验单元中的R—S触发器电路
图7-3R-S触发器电路
4)按实验内容编写程序(若无流程图,要画流程图)。
四、实验内容及步骤
1.8259A应用实验
(1)
按图7-4所示实验线路,编写程序,使主机每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。
图7-4实验
(1)线路
程序流程图及参考程序如图7-5所示。
图7-5实验
(1)流程图
实验步骤
1)按图7-4连接实验线路。
2)输入程序并检查无误后,经汇编、连接后装入系统。
3)G=0000:
2000↓,运行实验程序。
(注意:
程序中8259中断向量地址为绝对地址,已定义为段地址CS=0000H,偏移地址IP=2000H,故装载时一定按此地址装入CS与IP中。
后面实验不再重述。
)
4)重复按KK2微动开关键,显示屏上面用“7”来响应,直到按入10次后,系统处于停机状态(用CTRL+Break返回监控)。
2.8259A应用实验
(2)
按图7-6所示实验线路,完成下面的要求:
图7-6实验
(2)线路
当无中断请求时,执行主程序,延时显示“main”,若有中断请求,则执行其中断服务程序,显示该中断号“6”或“7”;若正在执行较低级的中断服务程序,则允许比它优先级高的中断被响应(IRQ6>IRQ7)。
主程序在执行过程中,每显示一个“main”空一格。
实验步骤
1)按图7-6连接实验电路。
2)输入程序并检查无误后,经汇编、连接后装入系统。
3)G=0000:
2000↓,运行实验程序,则显示“MAIN”,先后按动KK1和KK2微动开关来模拟中断请求信号,记录请求顺序及显示结果。
3.8259级连实验
本实验旨在掌握8259级连方案的硬件接线及编程。
本实验是以系统中的8259作为主片,外接另一片8259作为从片,构成8259级连方式的中断实验线路,如图7-7所示,其中规定主片的IRQ7上连接一片从片,从片上的IRQ7接外中断申请电路(R—S单脉冲触发器),并规定从片的中断矢量编号为30-37H,其命令寄存器组编址为00和01。
图7-78259级连实验图
实验步骤:
(1)按图7-7搭接实验线路,其中INTA连接必须在开机上电之后。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)G=0000:
2000,回车,运行实验程序,并通过按动KKl微动开关向从片申请中断,每按动一次KKl,显示屏上显示一个“7”字符,表明CPU响应了一次中断。
五、实验报告要求
1)实验用电路、端口地址、控制字、程序流程图和源程序。
2)实验中的原始记录。
3)实验中出现的异常现象、出现原因分析和解决方法。
4)在实验
(2)中,若先按动KK2,再按动KK1(此时尚未显示“7”),显示结果会是什么?
为什么?
实验八8255并行接口应用实验
一、实验目的
1)学习并掌握8255的各种工作方式及其应用。
2)学习在系统接口实验单元上构造实验电路。
二、实验设备
TDN86/88教学实验系统。
三、实验准备
1)熟悉8255的各种工作方式及其应用。
2)学习在系统接口实验单元上构造实验电路。
(1)系统中的8255芯片。
8255的数据线片选信号线、地址线、读写控制线分别与系统总线相连,其A、B、C三个端口以排针形式引出,供8255实验使用,其线路如图8-1所示。
端口地址如表8-1所示。
图8-1系统中的8255线路
表8-18255端口地址
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
(1)接口实验单元中的开关和发光二极管电路。
接口实验单元中的开关和发光二极管电路如图8-2所示。
图8-2拨动开关和发光二极管电路
3)按实验内容画流程图和编写程序。
四、实验内容及步骤
1.8255接口应用实验
(1)(A口方式0输出,B口方式0输入)
按图8-3所示实验线路,编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入/输出功能。
图8-3实验接线图
实验步骤:
(1)按图8-3连接实验线路。
(2)输入源程序并检查无误,经汇编、连接后装入系统。
(3)运行程序,拨动开关组,观察发光二极管组应一一对应。
2.8255接口应用实验
(2)(B口方式1输入和A口方式0输出)
按图8-4所示实验线路,编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式1并作为输入口,则端口C的PC2成为选通信号输入端
B,PC0成为中断请求信号输出端INTRB。
当B口数据就绪后,通过发
B信号来请求CPU读取端口B数据,并送端口A输出显示。
图8-4实验接线图(KK1初态为“1”)
实验步骤:
(1)按图8-4连接实验线路。
KK1开关拨向下方,使PC2(A点)为高电平。
(2)输入源程序检查无误后,经汇编、连接后装入系统。
(3)运行实验程序,然后拨动开关组K0-K7,准备好后,按动微动开关KK1,观察发光二极管组,应与开关组信号对应。
五、实验报告要求
1)写出源程序。
说明程序设计的依据。
2)调试过程中所遇到的问题是如何解决的。
为什么?
3)实验中出现的现象。
为什么会出现这些现象?
4)说明两个实验内容的特点。
实验九8253定时/计数器应用实验
一、实验目的
1)熟悉8253在系统上的典型接法。
2)掌握8253的工作方式及应用编程。
二、实验设备
TDN86/88教学实验系统一台
三、实验准备
1.8253的初始化编程过程如图9-1所示:
图9-18253的初始化编程过程
2.系统中的8253芯片
系统中装有一片8253芯片,其线路如图9-2所示。
图9-2系统中的8253线路
系统中,8253的0#通道输出线与8259的0#中断请求线相连,作为实时钟中断信号;1#通道入口接1.8432MHz的信号源,输出接8251的收、发时钟端,供串行通讯用,这里1#计数器仅当作为一个分频器来用;2#通道以排线形式引出,作为开放接口,提供给用户使用。
系统中的8253端口地址如表9-1所示。
表9-1系统中的8253端口地址
信号线
寄存器
编址
IOY2
0#计数器
40H
1#计数器
41H
2#计数器
42H
控制寄存器
43H
3.根据实验内容画出流程图和编写源程序,说明8253的工作方式和控制字。
四、实验内容及步骤
1.8253计数器应用实验
(1)
设定8253的2#通道方式为方式0,用于事件计数,当计数值为5时结束,发出中断请求信号,显示“M”,具体线路如图9-3所示。
图9-38253实验
(1)线路
实验步骤
(1)按图9-3接线。
(2)输入源程序检查无误后,经汇编、连接后装入系统。
(3)在0000:
003CH单元起填入IRQ7中断矢量,即0000:
003C12200000。
(4)运行程序,并按动KK1键,观察是否每按6次,屏上显示一个“M”字符。
2.8253定时器应用实验
(2)
利用8253的0#通道来定时中断(IRQ0),循环显示“0”~“9”十个数,其线路图如图9-4所示。
图9-4实验
(2)线路
实验步骤
(1)按图9-4接线。
(2)输入源程序检查无误后,经汇编、连接后装入系统。
(3)运行程序,观察显示屏上应连续一行一行地显示“0”~“9”十个数,直到用“RESET”复位开关来打断为止。
(4)修改8253的0#时间常数,再运行程序,观察显示的快慢程度。
五、实验报告要求
(1)经实验调试后的程序流程图和源程序。
(2)在将计数初值赋给8253后,马上就可以启动并进行定时或计数吗?
(3)实验纪录。
(4)实验
(1)中为何计数初值为5而要按6次按键才出现“M”?
(5)若CLK0输入1.1925MHZ的时钟,能否在OUT0实现输出30ms的定时脉冲?
实验十8251串行接口应用实验
一、实验目的
1.掌握8251的工作方式。
2.学习串行通讯的有关知识。
二、实验设备
1.TDN86/88教学实验系统一台。
2.示波器一台。
三、实验准备
1.系统中的8251芯片
系统装有一片8251芯片,并和标准RS-232C接口相连好,如图10—1所示。
在教学系统中,该电路用来完成同PC微机的联机以及串行监控操作的实现,其8251端口地址如表10—1所示。
图10-1系统中的8251
表10-1系统中的8251的端口地址
信号线
寄存器
编址
IOY6
数据口
C0H
控制寄存器
C1H
2.实验单元中的8251
实验单元另装有一片8251芯片,用于各种串行口实验,如图10-2所示,8251端口地址如表10-2所示。
图10-2实验单元中的8251
表10-2实验单元中的8251的端口地址
信号线
寄存器
编址
IOY4
数据口
80H
控制寄存器
C1H
DSR数据装置准备好,输入,低电平有效
DTR数据终端准备好,输出,低电平有效
CTS发送信号,输入,低电平有效
RTS请求发送信号,输出,低电平有效
3.对串行传输的数据格式,本实验有如下规定:
(1)一个字有一个逻辑“0”的起始位,8位数据位,1位逻辑“1”的停止位,如图10-3所示;
(2)传输波特率9600baut。
图10-3数据格式
4.根据实验内容编写程序。
四、实验内容及步骤
利用实验用8251输出数据,用示波器观察数据波形。
连线如图10—4所示。
图10-4串口与示波器连线
实验步骤:
(1)用示波器与8251旁的TXD、GND排针引脚相连接。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)运行程序,在示波器上观察数据波形。
(4)改变发送的数,运行程序,观察相应的波形。
四.实验报告要求
(1)经实验调试后的程序流程图和源程序。
(2)说明8251有几种工作方式,其数据格式如何?