计算机接口技术实验指导书_第1页
计算机接口技术实验指导书_第2页
计算机接口技术实验指导书_第3页
计算机接口技术实验指导书_第4页
计算机接口技术实验指导书_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《微机接口技术》实验指导书

主编周光宇

宁波大红鹰学院

信息工程学院

计算机接口技术实验指导

1、前言

本实验指导书适用于宁波大红鹰学院计算机科学与技术专业嵌入

式方向的学生,实验时间16学时,课内实验12学时。

主要学习内容为80X86语言实验环境配置、汇编源语言格式、输

出字符、循环结构、子程序调用、加减乘除等指令操作和微机接口实

验。

学习结束后,要求学生能掌握基本汇编语言程序编写、调试的方

法,初步掌握微机I/O接口芯片的编程应用。

目录

第一部分汇编语言程序设计4

实验一熟悉微机模拟实验环境4

实验二DOS环境下的汇编语言编程环境使用(基础与验证型)12

实验三发声系统程序编程设计(综合性实验)19

附录一8086指令系统一览表25

附录二8086指令对标志位的影响32

附录三8086宏汇编常用伪指令表32

附录四ASCII码表34

附录五DOS系统功能调用(INT21H)35

附录六BIOS系统功能调用40

附录七Debug命令表43

附录八汇编语言实验报告参考格式44

第二部分EL-MUT-IH型微机接口实验系统简介45

一、硬件资源45

二、单元电路原理46

第三部分基本实验(8086)54

一、软件系统使用说明54

二、实验系统概述54

三、实验项目57

实验一I/O端口实验57

实验二8253定时实验59

实验三DMA实验62

实验四8259中断控制及中断服务实验63

补充1:DMA(8237A)实验源程序69

补充2:8086上8259实验调整说明70

实验五8255并行口实验73

实验六8250串口实验74

实验七A/D转换实验77

实验八D/A实验80

实验九8255A并行口实验一交通灯实验83

程序运行后,发光二极管的亮灭能反映交通灯的变化规律。83

实验十8279显示器接口实验84

实验H-8279键盘扩展实验87

实验十二用户CPLD译码实验90

第一部分汇编语言程序设计

实验一熟悉微机模拟实验环境

一、实验目的

1、熟悉微机模拟实验环境

2、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响

二、实验步骤

1、Emu8086软件及安装:Emu8086-AssemblerandMicroprocessorEmulator是一个

可在Windows环境下运行的8086CPU汇编仿真软件。它集成了文本编辑器、编译器、反

编译器、真调试、虚拟设备和驱动器为一体,并具有在线使用指南,这对刚开始学习汇

编语言的人是一个很有用的工具。您可以在真器中单步或连续执行程序,其可视化的工

作环境让使用者操作更容易。您可以在程序执行中动态观察各寄存器、标记位以及存储

器中的变化情况。仿真器会在模拟的PC中执行程序,以避免程序运行时到实际的硬盘或

内存中存取数据。此外,该软件完全兼容Intel新一代处理器,包括了PentiumllL

Pentium4的指令。

a、安装emu8086V4.07,b、安装补丁程序。

2、运行emu8086仿真软件:

双击桌面emu8086图标一小

1)启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。

图1启动界面

软件提供的实例中包含了几十种典型的程序代码,其中包括:数值计算、逻辑运算、

屏幕显示、键盘输入、文件打印、马达控制、温度控制、交通灯控制等。

在软件提供的快速指南中提供了多种在线帮助工具,包括:文件索引、8086CUP指

令使用指南、系统中断调用列表以及用法等。用户可以通过该工具快速地掌握8086CPU

指令体系和emu8086汇编真软件的使用。

2)新建文件

单击图1中的“New”选项,软件会弹出如图2所示的选择界面。

choosecodetespial:e

图2新疆文本格式选择

•COM模板——适用于简单且不需分段的程序,所有内容均放在代码段中,程序代

码默认从ORG010011开始;

•EXE模板——适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。

需要注意的是采用该模板时,用户不可将代码段人为地设置为ORG0100H,而应由编译

器自动完成空间分配;

•BIN模板——二进制文件,适用于所有用户定义结构类型:

•BOOT模板——适用于在软盘中创建文件。

此外,若用户希望打开一个完全空的文档,则可选择emptyworkspace的选项。

4)编译和加载程序

用户可根据上述选择的模板中编写程序,如图3所示。该编辑界面集文档编辑、指

令编译、程序加载、系统工具、在线帮助为一体,其菜单功能如表1所示。

图3文档编辑界面

编写完程序后,用户只需单击工具栏上的“compile”按钮,即可完成程序的编译工

作,并弹出如图4所示的编译状态界面。若有错误则会在窗口中提示,若无错误则还会

弹出保存界面,让用户将编译好的文件保存相应的文件夹中。默认文件夹

为…\emu8086\MyBuild\,但您可以通过菜单中assembler/setoutputdirectory对

默认文件夹进行修改。用户保存的文件类型与第一阶段所选择的模板有关。

完成编译和保存文件后,用户可按下图4中的“close”按钮先关闭该窗体,再利用

工具栏上的“emulate”按钮打开真器界面和原程序界面进行真调试,也可以按下图4

中的Run按钮运行直接程序。

图4编译状态界面

表1编译器菜单功能

二级菜单三级菜

一级菜单名称功能

名称单名称

file文件

new新建

com

com模板

template

exe

exe模板

template

bin

bin模板

template

boot

boot模板

template

example实例

open打开文件

save保存文件

saveas另存为

prints打印文件

exportto转换为超文本

HTML文件

exit退出

edit编辑

undo取消

redo重复

cut剪切

cope复制

paste粘贴

selectall选择全部

find查找

findnext查找下一个

replace代替

indent缩进

outdent凸出

comment将被选块变为

block注释

uncomment将被注释变为

block指令

advanced

高级宏汇编

editormacros

advanced高级设置

Showline

显示行编号

numbers

tabitfy空格转换为定

selection位字元

untabitfy定位字元转换

selection为空格

lowercase用小写字母表

selection示

uppercase用大写字母表

selection示

display显示出空格出

whitespace空间

bookmark书签

toggle在光标处放置

bookmark标签

previous跳到上一个标

bookmark签处

next跳到下一个标

bookmark签处

jumpto跳到第一个标

first签处

jumpto跳到最后一个

last标签处

clearall

清除所有标签

bookmark

assembler汇编

compile编译

compile编译并加载到

andloadin真器中

theemulation

fasmFasm汇编

set

设置输出文件

output

directory

emulator真器

show

显示真窗口

emulator

assemble

编译并加载到

andloadin

真器中

theemulator

math数学计算

multi

多进制基本计

base

算器

calculator

base

基本转换器

converter

asciicodeASCII码表

help帮助

documenta

tionand文档及指南

tutorials

check

软件更新检查

foranupdate

about关于软件

四.仿真调试

当用户完成程序编译后,利用工具栏中的“emulate”按钮可将编译好的文件加载到

仿真器进行真调试。除使用“emulate”按钮外,用户也可以用菜单栏中的

assemb1er/compi1eandloadintheemulationemulator/assembleandloadinthe

emulator打开仿真器。仿真器界面如图5所示。

exlerrteJ.vix'devicesviIx-dx_1vekIelpr'—-.-

_I__________________|ricgl。±top]________rue]stepdelayms:O

070001OOH弋g指廿A

工84MOV>;h

03003.INT

000^090NlMOV

01MOVh

07工04:18INT0B

07105:00MOVAX

t

0-7106:01MOV100QNhm

E

0-710-7:18MOVX000I04hn

0710B:00MOVXE0006hn

07109:00MOV1C000I08hn

0710A:20MOVXC000Ahn

E00I0n

0T10B:02MOVS。Ch

0710c:18MOV

0I0

0710D:0.

0710E:011.

Q710F:180I

2。.

0T111:1

居拜es区],______„_______1c_____,XZ,//:,_z_,

|cfe似屏乖I脚程评界而1卜呈可篁位I/俄加西口I/降极西口I际记位用曰

可打开存外®T寄存《t、治谆停止joebug飞过亩

图5仿真舞界面

当用户将程序加载到仿真器后,会同时打开仿真器界面和源程序界面,用户在仿真

器界面中也可以同时看到源代码和编译后的机器码。点击的任意i条源程序指令,则对

应的机器代码显示为被选显示状态,与此同时,上面的代码指针也会相应变化。用户也

可以通过这种操作了解,数据段和堆栈段中各变量或数据在存储器中的情况。

用户可以利用工具栏中的“singlestep”按钮进行单步跟踪调试,以便仔细观察各

寄存器、存储器、变量、标记位等情况,这对于程序初始调试时十分有用;当程序调试

完毕,或需要连续运行观察时,则可以使用“run”按钮;当希望返回上一步操作时,则

可以使用“stepback”按钮;若单击“reload”按钮,则真器会重新加载程序,并将指

令指针指向程序的第一条指令;您也可以利用“load”按钮,从您保存的文件夹中加载

其它程序。用户除使用上述工具栏中的按钮进行仿真调试外,还可以利用其菜单中的其

它功能进行更高级的调试和设置。菜单的详细功能见表2所示。

表2真器菜单功能

一级菜单名称二级菜单名称功能

file文件

loadexecutable***加载要执行的程序

reload重新加载程序

examples打开实例

resetemulatorandram复位真器和RAM

setcommandlineparameter设置命令行参数

settheemulatorsstate保存真器设置

loadformpreviousstate载入原先保存的设置

math数学计算

multibasecalculator多进制基本计算器

baseconverter基本转换器

debugsinglestep单步跟踪

singleover单步

stepback单步返回

stoponcondition设置停止运行的条件

rununtil运行到光标处

run连续运行

setbreakpoint在光标处设置断点

clearbreakpoint清除所有断点

showcurrentbreakpoint显示当前断点指令

showcurrentinstruction(at

显示当前指令

CS:IP)

setCS:IPtoselectedposition将被选指令设定为当前指令

view观察

loganddebug,exeemulation打开debug.调试窗口

extendvalueviewer打开扩展数值观察器

stack打开堆栈窗口

variables打开变量窗口

symboltable打开标记表

listing显示源程序及目标文件内容

originalsourcecode打开源程序代码窗口

软件高级设置,可对字体、颜色、

option

文本格式、键盘输入等进行设置

选择打开存储器、寄存器等单元,

arithmetic&logicalunit

与AUX按钮功能相同

flag打开标记位窗口

lexicalflaganalyser打开文本说明格式的标记位窗口

asciicode打开ASCII码表

emulatorscreen打开模拟屏幕窗口

external外部真器

startdebug,exe启动windows的debug真调试器

commandprompt打开DOS命令窗口

run在DOS环境下运行程序

Virtual

虚拟设备

devices

LED-Disply.exeLED显示器

printer,exe打印机

robit.exe机器人

simple,exe读写端口

simplest,exe在屏幕上读写端口

stepper_motor.exe步进马达

thermometer,exe温度控制

tranffic_lights交通灯控制

VGA_STATE.exe显示屏控制

Virtualdrive虚拟驱动盘

bootformvirtualfloppy(floppy_0)从虚拟的软盘中导入程序

write512byteat0000:7C00toboot将存储器中07c存单元开始的512

sector(floppy_0)(个字节写到软盘中

write".bin"filetofloppy将bin文件写到软盘中

createnewfloppydrive创建一个新的软盘

3、显示数字或字符

输入以下代码,进行编译和运行(分别采用单步运行方式和连续运行方式)

datasegment;ds数据段

xdb3

dataends

stacksegment;ss堆栈段

stackends

codesegment;cs代码段

assumecs:code,ds:data,ss:stack

main:

movax,data

movds,ax

movdl,1

adddl,30h;0~9的数字与相应的ASCII码相差30H

movah,2

int21h

movah,4ch;程序结束,返回DOS

int21h

codeends

endmain

保存源程序

注意:保存源程序的文件名不能太长(包括路径);

注意:保存源程序的文件名的后缀为.asm

运行中录数据寄存器、标志寄存器、IP寄存器的数据变化,并进行简要说明。

实验二DOS环境下的汇编语言编程环境使用(基础与验证型)

一、实验要求和目的

1、掌握汇编语言程序设计的基本方法和技能;

2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;

3、熟练掌握宏汇编程序MASM的使用;

4、熟练掌握连接程序LINK的使用。

二、软硬件环境

1、硬件环境:微机;

2、软件环境:装有MASM、DEBUG、LINK、EDIT、CREF.EXE和EXR2BIN.EXE等应用程

序。

三、实验涉及的主要知识单元

1、汇编语言源程序的汇编过程

汇编语言源程序的汇编过程是是利用汇编程序(MASM)对己编辑好的源程序文件(.ASM)

进行汇编,将源程序文件中以ASCII码表示的助记符指令逐条翻译成机器码指令,并完成源

程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为.OBJ的目标文件、

扩展名为.LST的列表文件和扩展名为.CRF的交叉索引文件。目标文件是必须建立的,它

包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件U'的操作数地址还

不是内存的绝对地址,只是一个可浮动的相对地址。列表文件(.LST)中包含了源程序的全

部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。交叉索

引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。.LST和.CRF两个文件不是

必须建立的,可有有无,可以通过汇编时的命令加以选择。

在对源程序文件(ASM文件)汇编时,汇编程序将对ASM文件进行两遍扫描,若程序文

件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境

修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即OBJ文件。因此,

汇编程序的主要功能可以概括为以下三点:(1)检查源程序中的语法错误,并给出错误信息;

(2)产生目标程序文件(OBJ文件),并可给出列表文件(.LST文件);(3)展开宏指令。

汇编程序是系统提供的用于汇编的系统软件,目前常用的汇编程序有Microsoft公司推

出的宏汇编程MASM(MACROASSEMBLER)和BORLAND公司推出的TASM(TURBOASSEMBLER)两种。

Microsoft公司推出有宏汇编程序MASM和小汇编程序ASM两种,二者的区别在于:MASM有

宏处理功能,而ASM没有宏处理功能,因此,MASM比ASM的功能强大,但MASM需要

占据较大的内存空间,当内存空间较小时(如64KB),只能使用ASM。

2、目标程序的连接过程

汇编后产生的目标程序(OBJ文件)并不是可执行程序文件(EXE文件),还不能直接运行,

它必须通过连接程序(LINK)连接成一个可执行程序后才能运行。连接程序进行连接时,其输

入有两个部分:一是目标文件(.OBJ),目标文件可以是一个也可以是多个,可以是汇编语言

经汇编后产生的目标文件,也可以是高级语言(例如C语言)经编译后产生的目标文件;另一

是库文件(.LIB),库文件是系统中已经建立的,主要是为高级语言提供的。连接后输出两个

文件,一是扩展名为.EXE的可执行文件,另一个是扩展名为.MAP的内存分配文件,它是

连接程序的列表文件,又称为连接映像(LinkM叩),它给出每个段在存储器中的分配情况,

该文件可有可无•连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。所以,

到此为止,连接过程已经结束,可以在操作系统下执行该.EXE程序了。

3、汇编语言和DOS操作系统的接口

编写的汇编语言源程序是在DOS环境下运行时,必须了解汇编语言是如何同DOS操作

系统接口的。

用编辑程序把源程序输入到机器中,用汇编程序把它转换为目标程序,用连接程序对其

进行连接和定位时,操作系统为每一个用户程序建立了一个程序段前缀区PSP,其长度为256

个字节,主要用于存放所要执行程序的有关信息,同时也提供了程序和操作系统的接口。操

作系统在程序段前缀的开始处(偏移地址0000H)安排了一条INT20H软中断指令。INT20H

中断服务程序由DOS提供,执行该服务程序后,控制就转移到DOS,即返回到DOS管理的

状态。因此,用户在组织程序时,必须使程序执行完后能去执行存放于PSP开始处的INT20H

指令,这样便返回到DOS,否则就无法继续键入命令和程序。

DOS在建立了程序段前缀区PSP之后,将要执行的程序从磁盘装入内存。在定位程序时,

DOS将代码段置于PSP下方,代码段之后是数据段,最后放置堆栈段。内存分配好之后,

DOS就设置段寄存器DS和ES的值,以使它们指向PSP的开始处,即INT20H的存放地址,

同时将CS设置为PSP后面代码段的段地址,IP设置为指向代码段中第一条要执行的指令位

置把SS设置为指向堆栈的段地址,让SP指向堆栈段的栈底,然后系统开始执行用户程序。

为了保证用户程序执行完后能返回到DOS状态,可使用如下两种方法。

(-)标准方法

首先将用户程序的主程序定义成一个FAR过程,其最后一条指令为RET。然后在代码

段的主程序(即FAR过程)的开始部分用如下三条指令将PSP中INT20H指令的段地址及偏

移地址压入堆栈:

PUSHDS;保护PSP段地址

MOVAX,0;保护偏移地址0

PUSHAX

这样,当程序执行到主程序的最后一条指令RET时,由于该过程具有FAR属性,故存

在堆栈内的两个字就分别弹出到CS和IP,从而执行INT20H指令,使控制返回到DOS状

态。返回DOS的标志就是程序运行完后出现一个DOS的标识符,如C:\>o

(二)非标准方法

也可在用户的程序中不定义过程段,只在代码段结束之前(即CODEENDS之前)增加两

条语句:

MOVAH,4CH

INT21H

则程序执行完后也会自动返回DOS状态。

此外,由于开始执行用户程序时,DS并不设置在用户的数据段的起始处,ES同样也不

设置在用户的附加段起始处,因而在程序开始处使用以下方法重新装填DS和ES的值使其指

向用户的数据段:

MOVAX,段名

MOV段寄存器名,AX:段寄存器名可以是DS、ES、SS之一

四、实验内容与步骤

1、实验内容

编写程序,判断一个年份是否是闰年。

2、实验步骤

汇编语言程序设计上机过程如图1.1所示。

图1.1汇编语言程序上机过程

(-)用编辑程序EDIT建立汇编语言源程序文件(ASM文件)

例如,编写程序,判断一个年份是否是闰年的汇编语言源程序,可以在DOS模式下用

编辑程序EDIT.EXE建立汇编语言源程序文件ABC.ASM,注意文件名的扩展名必须是.ASM。

也可以在Windows2000或者在WindowsXP环境下鼠标单击“开始”-“运行”,在“运行”

中输入“CMD”进入DOS模式,运行EDIT软件,例如:

C>EDITABC.ASM

进入EDIT的程序编辑画面时,输入汇编语言源程序如下:

DATASEGMENT

INFONDBODH,OAH,*Pleaseinputayear:$'

YDBODII,OAH,,Thisisaleapyear!$'

NDBODH,OAH,JThisisnotaleapyear!$'

WDW0

BUFDB8

DB?

DB8DUP(?)

DATAENDS

STACKSEGMENT'stack'

DB200DUP(O)

STACKENDS

CODESEGMENT

ASSUMEDS:DATA,SS:STACK,CS:CODE

START:MOVAX,DATA

MOVDS,AX

LEADX,INFON

MOVAH,9

INT21H

LEADX,BUF

MOVAH,10

INT21H

MOVCL,[BUF+1]

LEADI,BUF+2

CALLDATACATE

CALLIFYEARS

JCAl

LEADX,N

MOVAH,9

INT21H

JMPEXIT

Al:LEADX,Y

MOVAH,9

INT21H

EXIT:MOVAH,4CH

INT21H

DATACATEPROCNEAR

LEASI,BUF+2

MOVBX,0

X3:

MOVAL,[SI]

SUBAL,30H

MOVAH,0

XCHGAX,BX

MOVDX,10D

MULDX

XCHGAX,BX

ADDBX,AX

INCSI

LOOPX3

MOVW,BX

RET

DATACATEENDP

IFYEARSPROCNEAR

PUSHBX

PUSHCX

PUSHDX

MOVAX,W

MOVCX,AX

MOVDX,0

MOVBX,4

DIVBX

CMPDX,0

JNZLABI

MOVAX,CX

MOVBX,100

DIVBX

CMPDX,0

JNZLAB2

MOVAX,CX

MOVBX,400

DIVBX

CMPDX,0

JZLAB2

LABI:CLC

JMPLAB3

LAB2:STC

LAB3:POPDX

POPCX

POPBX

RET

IFYEARSENDP

CODEENDS

ENDSTART

(二)用汇编程序MASM将ASM文件汇编成目标程序文件(OBJ文件)

当源程序建立以后,仍以ABC.ASM程序为例,我们用汇编程序MASM对ABC.ASM源

程序文件进行汇编,以便产生机器码的目标程序文件ABC.OBJ,其操作步骤如下:

C>MASMABC

Microsoft(R)MacroAssemblerVersion5.00

Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.

Objectfilename[ABC.OBJ]:

Sourcelisting[NUL.LST]:ABC

Cross-reference[NUL.CRF]:ABC

50674+450574Bytessymbolspacefree

0WarningErrors

0SevereErrors

由此可知,汇编程序调入后,首先显示版本号,然后出现三个提示行。

第一个提示行为:Objectfilename[ABC.OBJ]:

这是询问目标程序文件名,方括号内为机器规定的默认的文件名,通常直接按回车键,

表示采用默认的文件名(如上所示),这是我们汇编的主要目的。

第二个提示行为:Sourcelisting[NUL.LST1:

这是询问是否建立列表文件。若不建立,直接回车;若要建立,可以输入文件名ABC

再回车,表示要建立名为ABC的列表文件。列表文件中同时列出源程序和机器语言程序清

单,并给出符号表,有利于程序调试。

第三个提示行为:Cross-reference[NUL.CRF]:

这是询问是否要建立交叉索引文件。若不建立,则直接回车;若要建立,可以输入文件

名ABC,表示要建立ABC.CRF文件。由于.CRF是非文本文件,为了建立交叉索引文件,还

必须调用CREF.EXE程序,即输入:

C>CREFABC

Microsoft(R)Cross-ReferenceUtilityVersion5.00

Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved.

listing[ABC.REF]:

17Symbols

这时首先显示版本号,然后出现一个提示行:Listing[ABC.REFJ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论