微机原理及接口技术实验指导书周志敏谢楠编浙江水利水电专科学校计算机与信息工程系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 实验例程文件名为Wmd861.asm。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。实验程序清单(例程文件名为:
A3-1.ASM)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 DATAM
OV 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 码。实验程序参考例程。实验程序清单(例程文件名为A3-2.ASM)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 程序流程图实验程序清单(例程文件名为:A3-1.ASM)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 程序流程图实验程序清单(例程文件名为:A4-1.ASM)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实验程序清单(例程文件名为:A4-2.ASM)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 为止实验程序清单(例程文件名为:A5-1.ASM)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 0000H
AA1: 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 芯片中.汇编语言指导书
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论