2024年5月11日发(作者:)
微机原理及接口技术 实验指导书 周志敏 谢楠 编 浙江水利水电专科学校 计算机
与信息工程系 2008 年 3 月 目 录第1章 80X86微机原理及其程序设计实
验 ..................................................................................11.1 系统认识实
验............................. ...........................................................................................11.2 运算
类编程实验................ . ................................................................................................. 51.3
分支程序设计实
验............................. .................................................................................81.4 循环程序设
计实验........................................... ...................................................................111.5 显示
程序实验................................................................... ...................................................14第
2章 80X86微机接口技术实
验 ............... ...............................................................................152.1 静态存储器扩展实
验.................... ......................................................................................152.2 8259 中断控
制实验.................................................................... .........................................182.3 DMA
特性及8237应用实验............................................. ...............................................242.4
8254 定时/计数器应用实
验.................................................. ............................................302.5 8255 并行接口实
验............................................................ ................................................352.6 8251 串行
接口应用实验...................................................... ..............................................392.7 键盘
扫描及显示设计实验............................................... ................................................512.8
电子发声设计实验............................................................... ............................................55
附录1 Wmd86联机软件使用说
明 ....................................... ....................................................59附录2 系统实验程序清
单 ........................................................................... .............................67附录3 系统编程
信息 ..................................................................................... ...........................69附录4
I386EX系统板引出管脚排列及名称 .................................................. ..........................71
附录5 TD-PITE实验箱布
局............................................................................. ..................... ..72 第1章 80X86 微
机原理及其程序设计实验 本章主要介绍汇编语言程序设计,通过实验来学习80X86
的指令系统、寻址方式以及程序的设计方法,同时掌握联机软件的使用。 1.1 系统
认识实验1.1.1 实验目的 掌握TD-PITE 80X86 微机原理及接口技术教学实验系统
的操作,熟悉Wmd86联机集成开发调试软件的操作环境。1.1.2 实验设备 PC机一台,
TD-PITE 实验装置一套。1.1.3 实验内容 编写实验程序,将00H~0FH 共16 个数
写入内存3000H 开始的连续16 个存储单元中。1.1.4 实验步骤 1. 运行Wmd86 软
件,进入Wmd86 集成开发环境。 2. 根据程序设计使用语言的不同,通过在“设置”
下拉列表来选择需要使用的语言,如图1-1-1所示。语言选择后,下次再启动软件,
语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1-1 语言环境选
择界面 3. 语言选择后,点击新建或按CtrlN 组合键来新建一个文档,如图1-1-2所
示。默认文件名为Wmd861。 图1-1-2 新建文件界面 4. 编写实验程序,如图1-1-3
所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。 1 图1-1-3 程
序编辑界面 5. 点击 ,编译文件,若程序编译无误,则输出如图1-1-4所示的输出信
息,然后再点击 进行链接,链接无误输出如图1-1-5所示的输出信息。 图1-1-4 编
译输出信息界面 图1-1-5 链接输出信息界面 6. 连接PC与实验系统的通讯电缆,打
开实验系统电源。 7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程
序,联机调试了。可以通过端口列表中的“端口测试”来检查通讯是否正常。点击 下
载程序。 为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次
完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下
载。起始运行语句下会有一条绿色的背景。如图1-1-6所示。 图1-1-6 加载成功输出
显示界面 2 8. 将输出区切换到调试窗口,使用D0000:3000命令查看内存3000H 起
始地址的数据,如图1-1-7所示。存储器在初始状态时,默认数据为CC。 图1-1-7 内
存地址单元数据显示 9. 点击按钮 运行程序,然后再点击 来停止程序运行,接下
来观察程序运行结果,仍使用命令D0000:3000 来观察数据变化。如图1-1-8所示。 图
1-1-8 运行程序后数据变化显示 10. 也可以通过 在语句AA2: JMP AA2 处设置断
点,断点显示如图1-1-9 所示,然后运行程序,当遇到断点时程序会停下来,然后
观察数据。可以使用E0000:3000 来改变该地址单元的数据,如图1-1-10 所示,输
入11 后,按“空格”键,可以接着输入第二个数,如22,结束输入按“回车”键。 图
1-1-9 断点设置显示 图1-1-10 修改内存单元数据显示界面 3 实验例程文件名为
。1.1.5 操作练习 编写程序,将内存3500H 单元开始的8 个数据复制
到3600H 单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单
元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。 4 1.2 运算类编
程实验1.2.1 实验目的 1. 掌握使用运算类指令编程及调试方法; 2. 掌握运算类指
令对各状态标志位的影响及其测试方法; 3. 学习使用软件监视变量的方法。1.2.2
实验设备 PC机一台,TD-PITE 实验装置一套。1.2.3 实验内容及步骤 80X86 指令
系统提供了实现加、减、乘、除运算的基本指令,可对表1-3-1 所示的数据类型进
行算术运算。 表1-2-1 数据类型算术运算表1. 二进制双精度加法运算 计算X+Y=
Z,将结果Z存入某存储单元。实验程序参考如下。 本实验是双精度(2 个16 位,
即32 位)加法运算,编程时可利用累加器AX,先求低16位的和,并将运算结果存
入低地址存储单元,然后求高16 位的和,将结果存入高地址存储单元中。由于低16
运算后可能向高位产生进位, 因此高16 位运算时使用ADC 指令, 这样在低16位
相加运算有进位时,高位相加会加上CF中的1。实验程序清单(例程文件名为:
)SSTACK SEGMENT STACKDW 64 DUPSSTACK ENDSPUBLIC XH XL
YH YL ZH ZL 设置全局变量DATA SEGMENTXL DW X低位XH DW X高位YL
DW Y低位YH DW Y高位ZL DW Z低位ZH DW Z高位DATA ENDSCODE
SEGMENTASSUME CS:CODE DS:DATASTART: MOV AX DATAMOV DS
AXMOV AX XL 5ADD AX YL X低位加Y低位MOV ZL AX 低位和存到Z的低位
MOV AX XHADC AX YH 高位带进位加MOV ZH AX 存高位结果JMP START 在
此行设置断点,以观察变量值CODE ENDSEND START实验步骤(1)编写程序,
经编译、链接无误后装入系统;(2)程序装载完成后,点击„变量区‟标签将观察窗
切换到变量监视窗口;(3)点击 ,将变量XH,XL,YH,YL,ZH,ZL 添加到
变量监视窗中,然后修改XH,XL,YH,YL 的值,如图1-3-1 所示,修改XH 为
0015,XL为65A0,YH 为0021,YL为B79E;(4)在JMP START语句行设置断点,
然后运行程序;(5)当程序遇到断点后停止运行,查看变量监视窗口,计算结果
ZH 为0037,ZL为1D3E;(6)修改XH,XL,YH和YL的值,再次运行程序,观察
实验结果,反复测试几组数据,验证程序的功能。 图1-2-1 变量监视窗口2. 十进制
的BCD码减法运算 计算X-Y=Z,其中X、Y、Z为BCD 码。实验程序参考例程。
实验程序清单(例程文件名为)SSTACK SEGMENT STACKDW 64
DUPSSTACK ENDSPUBLIC X Y Z 定义全局变量DATA SEGMENTX DW Y DW Z
DW DATA ENDS 6CODE SEGMENTASSUME CS:CODE DS:DATASTART: MOV
AX DATAMOV DS AXMOV AH 00HSAHFMOV CX 0002HMOV SI OFFSET
XMOV DI OFFSET ZA1: MOV AL SISBB AL SI02HDASPUSHFAND AL
0FHPOPFMOV DI ALINC DIINC SILOOP A1JMP START 设置断点,以方便观察变
量。CODE ENDSEND START实验步骤(1)输入程序,编译、链接无误后装入系
统;(2)点击 将变量X, Z 添加到变量监视窗中, Y, 并为X, 赋值, Y 假
定存入40 与12 的BCD 码,即X 为0400,Y 为0102;(3)在JMP START语句行
设置断点,然后运行程序;(4)程序遇到断点后停止运行,观察变量监视窗,Z应
为0208;(5)重新修改X 与Y 的值,运行程序,观察结果,反复测试几次,验证
程序正确性。 7 1.3 分支程序设计实验1.3.1 实验目的 1. 掌握分支程序的结构; 2.
掌握分支程序的设计、调试方法。1.3.2 实验设备 PC机一台,TD-PITE 实验装置一
套。1.3.3 实验内容 设计一数据块间的搬移程序。设计思想:程序要求把内存中一
数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的
数据块在存储中可能有三种情况,如图1-4-1所示。 图1-3-1 源数据块与目的数据块
在存储中的位置情况 对于两个数据块分离的情况,如图1-3-1(a),数据的传送从
数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则
要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论: 当源数据块首
地址<目的块首地址时,从数据块末地址开始传送数据,如图1-3-1(b)所示。 当
源??/B>块首地址>目的块首地址时,从数据块首地址开始传送数据,如图1-3-1
(c)所示。 实验程序流程图如图1-4-2所示。 8 图1-3-2 程序流程图实验程序清单
(例程文件名为:)SSTACK SEGMENT STACKDW 64 DUPSSTACK
ENDSCODE SEGMENTASSUME CS:CODESTART: MOV CX 0010HMOV SI
3100HMOV DI 3200HCMP SI DIJA A2ADD SI CXADD DI CXDEC SIDEC DIA1:
MOV AL SIMOV DI ALDEC SIDEC DIDEC CX 9JNE A1JMP A3A2: MOV AL
SIMOV DI ALINC SIINC DIDEC CXJNE A2A3: JMP A3CODE ENDSEND
START1.3.4 实验步骤1. 按流程图编写实验程序,经编译、链接无误后装入系统;
2. 用E 命令在以SI为起始地址的单元中填入16 个数;3. 运行程序,然后再停止运
行;4. 通过D 命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同;5.
通过改变SI、DI 的值,观察在三种不同的数据块情况下程序的运行情况,并验证程
序的功能。 10 1.4 循环程序设计实验1.4.1 实验目的 1. 加深对循环结构的理解; 2.
掌握循环结构程序设计的方法以及调试方法。1.4.2 实验设备 PC机一台,TD-PITE
实验装置一套。1.4.3 实验内容及步骤1. 计算S=1+2×3+3×4+4×5+…+N(N+
1),直到N(N+1)项大于200为止。编写实验程序,计算上式的结果,参考流程
图如图1-5-1所示。 图1-4-1 程序流程图实验程序清单(例程文件名为:)
SSTACK SEGMENT STACKDW 64 DUPSSTACK ENDSCODE SEGMENTASSUME
CS:CODESTART: MOV DX0001HMOV BL02HA1: MOV ALBLINC BLMUL BL
11ADD DXAX 结果存于DX中CMP AX00C8H 判断NN1与200的大小JNA A1A2:
JMP A2CODE ENDSEND START实验步骤(1)编写实验程序,编译、链接无误后
装入系统;(2)运行程序,然后再停止程序运行;(3)运算结果存储在寄存器DX
中,查看结果是否正确;(4)可以改变N(N+1)的条件来验证程序功能是否正确,
但要注意,结果若大于FFFFH 将产生数据溢出。2. 求某数据区内负数的个数 设数
据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后
一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,
然后将所有数据中凡是符号位为1 的数据的个数累加起来,即得到区内所包含负数
的个数。 实验程序流程图如图1-5-2所示。 图1-4-2 程序流程图 12实验程序清单(例
程文件名为:)SSTACK SEGMENT STACKDW 64 DUPSSTACK
ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DI 3000H 数据区首地址
MOV CL DI 取数据个数XOR CH CHMOV BL CHINC DI 指向第一个数据A1:
MOV AL DITEST AL 80H 检查数据首位是否为1JE A2INC BL 负数个数加1A2:
INC DILOOP A1MOV DI BL 保存结果A3: JMP A3CODE ENDSEND START实验步
骤(1)按实验流程编写实验程序;(2)编译、链接无误后装入系统;(3)键入
E3000,输入数据如下: 3000=06 (数据个数) 3001=12 3002=88 3003=82 3004
=90 3005=22 3006=33(4)先运行程序,然后停止程序运行;(5)查看3007 内
存单元或寄存器BL 中的内容,结果应为03;(6)可以进行反复测试来验证程序的
正确性。 13 1.5 显示程序实验1.5.1 实验目的 1. 了解INT 10H 各功能模块的作用
及用法; 2. 掌握字符方式下PC机显示器显示控制。1.5.2 实验设备 PC机一台,
TD-PITE 实验装置一套。1.5.3 实验内容 编写实验程序,在显示器上的输出窗口显
示A~Z共26 个大写?⑽淖帜浮?显示I/O 功能调用使用说明如下: INT 10 使用说明
入口:AH=00H,AL=01H 功能:清屏 入口:AH=01H,AL=数据 功能:写AL
中的数据到显示屏上 入口:AH=06H,DS:BX=字串首地址,且字符串尾用00H 填
充 功能:显示一字串,直到遇到00H 为止实验程序清单(例程文件名为:)
SSTACK SEGMENT STACKDW 64 DUPSSTACK ENDSCODE SEGMENTASSUME
CS:CODESTART: MOV CX001AHMOV BL41H „A‟的ASCII码值MOV AH01HA1:
MOV ALBLINT 10H 功能调用INC BLPUSH CXMOV CX0FFFFHA2: LOOP A2POP
CXDEC CXJNZ A1A3: JMP A3CODE ENDSEND START1.5.4 实验步骤1. 编写实
验程序,经编译、链接无误后装入系统;2. 运行实验程序,观察实验结果;3. 修改
实验程序,在显示器上显示„GOOD AFTERNOON‟,要求使用AH=06 功能(显示
一字符串功能块)完成。 14 第2 章 80X86 微机接口技术实验 接口技术是把由处
理器、存储器等组成的基本系统与外部设备连接起来,从而实现CPU与外部设备通
信的一门技术。微机的应用是随着外部设备的不断更新和接口技术的不断发展而深
入到各行各业,任何微机应用开发工作都离不开接口的设计、选用及连接。微机应
用系统需要设计的硬件是一些接口电路,所要编写的软件是控制这些接口电路按要
求工作的驱动程序。因此,接口技术是微机应用中必不可少的基本技能。 2.1 静态
存储器扩展实验2.1.1 实验目的 1. 了解存储器扩展的方法和存储器的读/写; 2. 掌
握CPU对16 位存储器的访问方法。2.1.2 实验设备 PC机一台,TD-PITE 实验装置
一套,示波器一台。2.1.3 实验内容 编写实验程序,将0000H~000FH 共16个数写
入SRAM 的从0000H 起始的一段空间中,然后通过系统命令查看该存储空间,检
测写入数据是否正确。2.1.4 实验原理 存储器是用来存储信息的部件,是计算机的
重要组成部分,静态RAM 是由MOS管组成的触发器电路,每个触发器可以存放1 位
信息。只要不掉电,所储存的信息就不会丢失。因此,静态RAM工作稳定, 不要
外加刷新电路,使用方便。但一般SRAM 的每一个触发器是由6 个晶体管组成,
SRAM芯片的集成度不会太高,目前较常用的有6116(2K×8位),6264(8K×8位)
和62256(32K×8位)。本实验平台上选用的是62256,两片组成32K×16位的形式,
共64K字节。62256 的外部引脚图如图2-1-1所示。 图2-1-1 62256引脚图 本系统采
用准32 位CPU,具有16 位外部数据总线,即D0、D1、…、D15,地址总线为BHE
#(#表示该信号低电平有效)、BLE#、A1、A2、…、A20。存储器分为奇体和
偶体,分别由字节允许线BHE#和BLE#选通。 存储器中,从偶地址开始存放的字
称为规则字,从奇地址开始存放的字称为非规则字。处理器访问规则字只需要一个
时钟周期,BHE#和BLE#同时有效,从而同时选通存储器奇体和偶体。处理器访
问非规则字却需要两个时钟周期,第一个时钟周期BHE#有效,访问奇字节;第二
个时钟周期BLE#有效,访问偶字节。处理器访问字节只需要一个时钟周期,视其
存放单元为奇或偶,而BHE#或BLE#有效,从而选通奇体或偶体。写规则字和非
规则字的简单时序图如图2-1-2所示。 15 图2-1-2 写规则字(左)和非规则字(右)
简单时序图实验程序清单SSTACK SEGMENT STACKDW 32 DUPSSTACK
ENDSCODE SEGMENTSTART PROC FARASSUME CS:CODEMOV AX 8000H
存储器扩展空间段地址MOV DS AXAA0: MOV SI 0000H 数据首地址MOV CX
0010HMOV AX 0000HAA1: MOV SI AXINC AXINC SIINC SILOOP AA1NOPHERE:
JMP HERESTART ENDPCODE ENDSEND START 图2-1-3 SRAM实验接线图
162.1.5 实验步骤1. 实验接线图如图2-1-3所示,按图接线;2. 编写实验程序,经编
译、链接无误后装入系统;3. 先运行程序,然后再停止程序运行;4. 通?鼶 命令查
看写入存储器中的数据,应为0001、0002、…、000F共16 个字;5. 改变实验程序,
按非规则字写存储器,观察实验结果;6. 改变实验程序,按字节方式写存储器,观
察实验现象;7. 将实验程序改为死循环程序,分别按规则字与非规则字的方式写存
储器,并使用示波器观察WR#信号的波形,分析实验现象,掌握16 位外部数据总
线的操作方法。 17 2.2 8259 中断控制实验2.2.1 实验目的 1. 掌握8259 中断控制器
的工作原理; 2. 学习8259 的应用编程方法; 3. 掌握8259 级联方式的使用方法。
2.2.2 实验设备 PC机一台,TD-PITE 实验装置一套。2.2.3 实验内容及步骤1. 中断
控制器8259 简介 在Intel 386EX 芯片中.


发布评论