微机接口实验讲义.docx
《微机接口实验讲义.docx》由会员分享,可在线阅读,更多相关《微机接口实验讲义.docx(59页珍藏版)》请在冰豆网上搜索。
![微机接口实验讲义.docx](https://file1.bdocx.com/fileroot1/2023-2/22/fbd8c725-932f-4712-9d09-00af73775d4f/fbd8c725-932f-4712-9d09-00af73775d4f1.gif)
微机接口实验讲义
第一章汇编语言编程环境熟悉
1.1汇编语言环境练习
一、汇编程序功能:
三、为了运行汇编语言程序在磁盘上要存在以下文件:
1.编辑程序,如EDIT.EXE。
2.编译程序,如MASM.EXE。
3.连接程序,如LINK.EXE。
4.调试程序,如DEBUG.EXE。
四、汇编过程中各个文件的作用
1、ASM汇编语言源文件?
用汇编语言编写的源程序。
2、MASM5.0汇编程序?
将源文件转换成目标文件的程序(是一种工具)。
3、OBJ目标文件?
二进制的目标文件。
4、LIST列表文件?
同时列出源程序和机器语言程序清单,同时给出了符号表,便于调试,可有可无。
5、CRF交叉文件?
给出了用户定义的所有符号,及其所在行号和引用行号。
6、MAP映像文件?
给出了每个段在存储器中的分配情况。
7、LIB库文件?
给出程序中调用子程序的库文件。
五、DEBUG调试程序。
在DOS的提示符下,可键入命令:
C:
\DEBUG[D:
][PATH][FILENAME[.EXT][PARM1][PARM2]
其中,文件名是被调试文件的名字。
如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。
如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。
命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。
在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。
DEBUG的主要命令:
1、显示存储单元的命令D(DUMP),格式为:
_D[address]或_D[range]
例如,按指定范围显示存储单元内容的方法为:
-d100120
18E4:
0100C70604023801C706-06020002C7060802G...8.G....G..
18E4:
01100202BB0402E80200-CD20505156578B37.;..h..MPQVW.7
18E4:
01208B
其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,”·”表示不可显示的字符。
这里没有指定段地址,D命令自动显示DS段的内容。
如果只指定首地址,则显示从首地址开始的80个字节的内容。
如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。
2、修改存储单元内容的命令有两种。
·输入命令E(ENTER),有两种格式如下:
第一种格式可以用给定的内容表来替代指定范围的存储单元内容。
命令格式为:
-Eaddress[list]
例如,-EDS:
100F3'XYZ'8D
其中F3,'X','Y','Z'和各占一个字节,该命令可以用这五个字节来替代存储单元DS:
0100到0104的原先的内容。
第二种格式则是采用逐个单元相继修改的方法。
命令格式为:
-Eaddress
例如,-EDS:
100
则可能显示为:
18E4:
010089.-
如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键可接着显示下一个单元的内容,如下:
18E4:
010089.781B.-
这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。
·填写命令F(FILL),其格式为:
-Frangelist
例如:
-F4BA:
01005F3'XYZ'8D
使04BA:
0100~0104单元包含指定的五个字节的内容。
如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。
3)检查和修改寄存器内容的命令R(register),它有三种格式如下:
·显示CPU内所有寄存器内容和标志位状态,其格式为:
-R
例如,-r
AX=0000BX=0000CX=010ADX=0000SP=FFFEBP=0000SI=0000DI=0000
DS=18E4ES=18E4SS=18E4CS=18E4IP=0100NVUPDIPLNZNAPONC
18E4:
0100C70604023801MOVWORDPTR[0204],0138DS:
0204=0000
·显示和修改某个寄存器内容,其格式为:
-Rregistername
例如,键入
-RAX
系统将响应如下:
AXF1F4
:
即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:
-Rbx
BX0369
:
059F
则把BX寄存器的内容修改为059F。
·显示和修改标志位状态,命令格式为:
-RF系统将响应,如:
OVDNEINGZRACPECY-
此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:
OVDNEINGZRACPECY-PONZDINV
即可,可见键入的顺序可以是任意的。
4)运行命令G,其格式为:
-G[=address1][address2[address3…]
其中,地址1指定了运行的起始地址,如不指定则从当前的CS:
IP开始运行。
后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。
5)跟踪命令T(Trace),有两种格式:
·逐条指令跟踪
-T[=address]
从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。
如未指定地址则从当前的CS:
IP开始执行。
·多条指令跟踪
-T[=address][values]
从指定地址起执行n条指令后停下来,n由values指定。
6)汇编命令A(Assemble),其格式为:
-A[address]
该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。
必须注意:
DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。
7)反汇编命令U(Unassemble)有两种格式。
·从指定地址开始,反汇编32个字节,其格式为:
-U[address]
例如:
-u100
18E4:
0100C70604023801MOVWORDPTR[0204],0138
18E4:
0106C70606020002MOVWORDPTR[0206],0200
18E4:
010CC70606020202MOVWORDPTR[0208],0202
18E4:
0112BBO4O2MOVBX,0204
18E4:
0115E80200CALL011A
18E4:
0118CD20INT20
18E4:
011A50PUSHAX
18E4:
011B51PUSHCX
18E4:
011C56PUSHSI
18E4:
011D57PUSHDI
18E4:
011E8B37MOVSI,[BX]
如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
·对指定范围内的存储单元进行反汇编,格式为:
-U[range]
例如:
-u10010c
18E4:
0100C70604023801MOVWORDPTR[0204],0138
18E4:
0106C70606020002MOVWORDPTR[0206],0200
18E4:
010CC70606020202MOVWORDPTR[0208],0202
或
-u100112
18E4:
0100C70604023801MOVWORDPTR[0204],0138
18E4:
0106C70606020002MOVWORDPTR[0206],0200
18E4:
010CC70606020202MOVWORDPTR[0208],0202
可见这两种格式是等效的。
8)命名命令N(Name),其格式为:
-Nfilespecs[filespecs]
命令把两个文件标识符格式化在CS:
5CH和CS:
6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。
filespecs的格式可以是:
[d:
][path]filename[.ext]
例如,
-Nmyprog
-L
-
可把文件myprog装入存储器。
9)装入命令(Load),有两种功能。
·把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。
其格式为:
-L[address[drivesectorsector]
·装入指定文件,其格式为:
-L[address]
此命令装入已在CS:
5CH中格式化了文件控制块所指定的文件。
如未指定地址,则装入CS:
0100开始的存储区中。
10)写命令W(Write),有两种功能。
·把数据写入磁盘的指定扇区。
其格式为:
-Waddressdrivesectorsector
·把数据写入指定的文件中。
其格式为:
-W[address]
此命令把指定的存储区中的数据写入由CS:
5CH处的文件控制块所指定的文件中。
如未指定地址则数据从CS:
0100
开始。
要写入文件的字节数应先放入BX和CX中。
11)退出DEBUG命令Q(quit),其格式为:
-Q
它退出DEBUG,返回DOS。
本命令并无存盘功能,如需存盘应先使用W命令。
六、汇编语言初级程序主要包括下列的程序模式:
简单程序——程序一统到底,中间没有任何分支和跳转。
分支程序——程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。
循环程序——程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。
1.2汇编语言程序设计
实验一、顺序程序设计,计算2^3。
一、汇编语言编程步骤:
1.定义一个段;
2.实现处理任务;
3.程序结束;
4.段与段寄存器的关联。
二、程序:
assumecs:
abc
abcsegment
movax,2
addax,ax
addax,ax
abcends
end
三、实验要求:
1.完成汇编语言编写、编译、连接、运行、调试过程。
2.验证编写程序功能正确。
3.练习单步调试程序,观察各个寄存器内容,尤其是CS,IP寄存器的变化。
4.写实验报告记录。
实验报告应包括实验目的、实验内容、实验步骤、记录观察现象、实验体会等。
实验二、二进制拆分实验
一、实验程序:
DATASEGMENT
DATDW0101101000111100B
DA1DB0
DA2DB0
DA3DB0
DA4DB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,DAT
MOVCL,04H
MOVBL,AL
ANDAL,0FH
MOVDA1,AL
SHRBL,CL
MOVDA2,BL
MOVBH,AH
ANDAH,0FH
MOVDA3,AH
SHRBH,CL
MOVDA4,BH
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
二、实验要求:
1.分析程序功能,给程序加注释,画出程序流程图。
2.编辑源文件、编译、连接、调试、运行文件。
3.修改源文件,实验拆分数据的高位存储。
4.写实验报告记录。
实验报告应包括实验目的、实验内容、实验步骤、记录观察现象、实验体会等。
实验三、分支程序设计
一、实验程序:
DATASEGMENT
NUM1DB02H
NUM2DB02H
NUM3DB55H
DA1DB99H
DA2DW8888H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,NUM1
CMPAL,NUM2
JEPRO1
CMPAL,NUM3
JEPRO2
MOVDA1,AL
LEABX,NUM1
MOVDA2,BX
CLOSE:
MOVAX,4C00H
INT21H
PRO1:
MOVCL,NUM3
MOVDA1,CL
LEABX,NUM3
MOVDA2,BX
JMPCLOSE
PRO2:
MOVCL,NUM2
MOVDA1,CL
LEABX,NUM2
MOVDA2,BX
JMPCLOSE
CODEENDS
ENDSTART
二、实验要求:
1.分析程序功能,给程序加注释,画出程序流程图。
2.编辑源文件、编译、连接、调试、运行文件。
3.修改源程序,实现在三个数中找到最大的数,存储在相应内存单元。
4.写实验报告记录。
实验报告应包括实验目的、实验内容、实验步骤、记录观察现象、实验体会等。
实验四、循环程序设计
一、实验程序:
DATASEGMENT
ADRDB'ABC12345DE'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEASI,ADR
MOVCX,10
BEG:
MOVAL,[SI]
CMPAL,30H
JCNEXT
CMPAL,39H
JANEXT
MOVAL,0FFH
MOV[SI],AL
NEXT:
INCSI
LOOPBEG
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
二、实验要求:
1.分析程序功能,给程序加注释,画出程序流程图。
2.编辑源文件、编译、连接、调试、运行文件。
3.修改源程序,实现在字符串中找到大写字母,存在对应内存单元。
4.写实验报告记录。
实验报告应包括实验目的、实验内容、实验步骤、记录观察现象、实验体会等。
第二章超想-3000TB实验系统
2.1概述
超想-3000TB综合实验/仿真系统全面支持8086系列的实验仿真开发。
8688技术应用于超想-3000TB综合实验仪,采用了超大规模定制芯片的通用仿真器,利用综合实验仪上的硬件资源,结合8086/88仿真技术,推出的新一代微机教学实验系统。
HK8688教学实验系统集微处理器8088和外配PC/80286/386/486/586及其兼容机于一体的高科技实验系统,具有实验、开发、自诊断等功能。
该实验系统自带键盘、八位七段数码管、微处理器8088和RS-232通讯接口,可以接PC机做实验,也可以无须任何辅助设备而独立做实验。
实验机上提供32KBRAM的程序和数据空间,具有无条件暂停等功能。
在实验系统资源分配方面:
8088有1兆寻址空间,在单板机和串行监控方式下,实验系统提供给用户使用空间:
00000H-6FFFFH,80000H-FFFFFH,包括总清入口共960K存储空间。
其中80000H-87FFFH是实验机提供的RAM空间,可供用户系统存放实验程序。
监控占用80000H-80013H作为单步、断点、无条件暂停。
系统00000H-000FFH与80000H-800FFH是重合的,总是访问实验内部RAM,所以,此区间用户的其他中断矢量可存放于此。
另外,80100H-802FFH为监控数据区或用户堆栈区,在实验程序加载时,起始地址要大于80300H也就是这个道理。
70000H-7FFFFH为实验机提供的64KEPROM地址空间,存放实验机监控程序,用户不可占用。
80000H-87FFFH为实验机提供的32KRAM地址空间,用户可以存放实验程序和数据。
0000H-FFFFH共64KI/O空间全提供给用户使用。
实验机已译码200H-23FH地址空间给用户使用。
2.2实验系统配置与运行
2.2.1立运行的单板机配置方式的安装与运行
独立运行的单板机配置方式是在脱离PC机的情况下,直接利用实验机上的微处理器8088做微机外围接口实验。
2.2.2串行监控配置方式的安装与运行
串行监控配置方式是利用微机向实验机发送串行监控命令,实验机上的微处理器8088根据监控命令做相应的动作。
在该配置方式下,做实验时用到的微处理器是仿真器上的微处理器。
2.3实验机模块原理
实验机主板由许多独立的实验模块组成,可用它们组成多个硬件实验。
主要包括8255并行口模块、单色灯模块、分频器模块、A/D转换模块、D/A转换模块、串行通讯8251A模块、定时/计数器8253模块、8259中断控制器模块、单脉冲触发模块等模块。
下面介绍各个模块的功能与用途:
2.3.1可编程并行口8255模块
8255地址是PA口CS+0H,PB口CS+1H,PC口CS+2H,命令控制口CS+3H,
2.3.2单色LED灯模块
单色LED灯输入DL1-DL8可由8255来驱动,用来完成单色灯实验。
2.3.3分频器模块
将JP0插至RAM端,可以从Q0~Q15输出不同频率的时钟信号,可作为8253的输入时钟。
2.3.4可编程定时/计数器模块
本电路模块可用于产生定时中断,实现实时时钟实验等,具体接法请参照实验。
本电路口地址为CS。
2.3.58259中断控制器实验模块
本模块为8259中断实验模块,仅在单板机和串行监控方式下,做8259中断实验。
2.3.68251A可编程串行通讯模块
这里用MAX232作输入、输出驱动,可与RS232兼容。
其优点是,芯片内部有升压电路,只要单一+5V电源就可输出满足RS232要求的电平。
8251A的波特率由8284及74LS393分频后,通过波特率开关选择提供,一般选择波特率为9600。
8251A口基地址为CS51,命令口地址为CS51+2,数据口地址为CS51
2.3.7D/A转换器模块
该电路可以用于做D/A转换实验和驱动直流电机实验。
0832口地址为CS。
2.3.8A/D转换器模块
0809各通道的口地址是CS+0H,CS+1H,CS+2H,CS+3H,CS+4H,CS+5H,CS+6H,CS+7H。
用于A/D转换实验。
第三章串行方式下的硬件实验以及调试软件
3.1串行方式下的硬件实验
做88实验时,一定要注意以下接线:
●将8088CPU适配板的DC34芯插座与超想3000仿真器上的DC34插座用扁平电缆连接起来。
●将8088CPU适配板上的18芯显示器接口与实验平台上的18芯JLED连接起来。
●将8088CPU适配板上的A0、A1、A2分别与实验平台上的地址总线A0、A1、A2连接,数码管右上角的短路帽做51、96实验时右插,做8086实验时插向左边。
操作步骤:
1、启动WINDOWS环境下串行监控调试软件HK8688。
2、编辑、连接硬件实验程序。
3、连机。
连机成功,数码管出现“86882.1”字样。
然后加载编译连接后的文件。
4、在调试选项下,选择单步调试、设置断点、全速执行等方法动态调试实验程序。
5、如实验结果不符合设置要求,重新操作3~5步骤。
3.2串口通信实验
串口通信8251A芯片介绍:
8251A是Intel公司的产品,具有同步、异步接受或发送的功能,使用单+5V电源的单相时钟,其功能是:
1.同步或异步方式下,字符位数5-8个;
2.同步传输率0-64K,异步传输率0-19.2K;
3.同步传输时,自动产生1个起始位,编程可产生1个或1个半或2个停止位;
4.具有奇偶效验,数据丢失和帧错误检测能力;
5.同步方式时,可自动检测,插入同步字符。
1、8251A内部工作原理
2、8251A工作初始化流程图
3、8251A模式字格式
4、8251A控制字格式
5、8251A状态字格式
实验一8251A可编程串行通讯实验
一、实验连线:
C553接200-20T
0uT1接8251A的Txclk和RXclk
GATE1接+5V
CS51接208-20F
CLK接频率为1M
RXD接通信接口的RXI
TXD接通信接口的TDX
二、实验说明
本实验需要一根串口线将实验箱右侧的串口与PC机串口相连。
由8253提供8251A所需频率,用串口调试助手接收从8251A发送的数据。
操作步骤:
首先将串口线仿真器与PC机连接好,各实验连线连接完毕,打开程序,编译连接运行后,打开“串口调试助手”设置好串口,波特率等。
可看到,接收区接收到从8251A发来的数据。
三、实验内容
1.设计程序,实现实验要求内容。
3.3并行接口
一、芯片介绍
8255A可编程并行通信接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电。
1.8255A的内部结构图:
(1)8255A有三种基本工作方式:
方式0:
基本的输入/输出方式
方式1:
选通的输入/输出方式
方式2:
双向传输方式
2、8255A的控制字与初始化编程
8255A的控制字有两类:
方式选择控制字和端口C按位置位/复位控制字。
1.方式选择控制字格式:
2.端口C按位置位/复位控制字格式
实验一开关状态显示实验
一、实验要求
编写程序,设定8255的PB口为开关量输入,PC口为开关量输出,要求能随时将PB口的开关状态通过PC口的发光二极管显示出来。
二、实验目的
学习使用8255各个口的不同工作方式
三、实验电路及连接图
将K0~K7分别连接至8255的PB0~PB7,将L0~L7分别连线连至8255的PC0~PC7,8255CS55连至译码处的200~207插孔。
将8088CPU适配板上的A0、A1、A2分别与实验平台上的地址总线A0、A1、A2连接。
四、实验说明
本实验要求8255工作方式0,PB口设置为输入,PC口设置为输出,输入量为开关量,通过8255可实时显示在LED灯上。
按下RST键则返回监控。
五、实验程序(SWITCH.ASM)
DATASEGMENT
DATAENDS
STACKSEGMENTSTACK
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK