微机原理实验指导书通信Word文件下载.docx
《微机原理实验指导书通信Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书通信Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
![微机原理实验指导书通信Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-2/2/df0da321-312e-4aba-acc8-69168cc478be/df0da321-312e-4aba-acc8-69168cc478be1.gif)
①实验课题
②实验设备及工具
③实验目的
④实验过程和结果分析
通过实验,学生应达到以下几点目的:
1通过实验,掌握微机接口的基本概念、功能、组成,掌握CPU与接口交换数据的方式及分析和设计接口电路的基本方法。
2掌握定时器/计数器、中断、存储器接口、并行接口、串行接口、A/D与D/A转换器接口以及总线与接口标准的基本概念、组成和特点。
熟悉相应的接口芯片的结构。
掌握它们一些具体的应用和连接方法,并根据具体的接口功能要求编制相应的接口程序根据所做实验,完成实验总结报告
3
掌握I/O端口地址译码技术,了解几种主要的人机交互设备接口的功能和原理。
实验一数据传送与算术运算
一.实验目的:
1.学会数据传送和算运算指令的用法。
2.熟悉在PC机上建立﹑汇编﹑链接﹑调试,和运行8088汇编语言程序的过程。
3.掌握利用DEBUG调试软件来调试汇编语言程序的方法。
二.实验器材
1.PC机一台;
2.QTH-2008PCI32位微机教学实验仪一套。
三.实验内容:
多字节加法,要求把6个字节数据分配在数据区,定义30个字节的堆栈空间。
将多字节的和存放在字节sum单元中。
四.实验步骤
1、运行EDIT或记事本等编辑器,建立文件名为XXX.ASM源文件,输入给定程序。
2、用MASM.EXE或TASM.EXE汇编程序产生XXX.OBJ目标文件。
方法:
MASM XXX.ASM↙。
3、用LINK.EXE或TLINK.EXE产生XXX.EXE可执行文件。
LINKXXX.OBJ↙。
4、运行DEBUG调入XXX.EXE可执行文件。
方法一:
DEBUGXXX.EXE↙。
方法二:
DEBUG↙
NXXX.EXE↙。
L↙。
5、运用DEBUG命令对XXX.EXE进行调试和分析。
A用反汇编U命令,将汇编程序段调到显示屏幕上。
b.用T单步执行程序段,执行每条指令观察其结果。
c.用运行命令G执行程序并验证其执行结果。
d.用设置断点的方法执行程序段并检查执行结果。
e.利用DEBUG其他命令运行、修改、并观察其结果。
注意:
以上方法MASM.EXE,LINK.EXE,XXX.ASM都在同一路径下。
五.思考题
1、常用的数据传送指令和算术运算指令有几种类型?
试归纳并举例说明。
2、如果程序中有弹出指令,栈指针如何变化?
试举例说明。
3、在DEBUG下输入程序段,如何建立、修改、存盘?
4、程序段近过程与远过程有什么不同?
什么情况下是RET?
什么情况下是RETF?
5、程序返回系统有几种方法?
并说明?
六.报告要求
1.写明本次实验内容和实验步骤。
2.整理出实验任务的源程序和运行结果。
3.对调试过程中的问题进行分析,对运行结果进行分析。
4.写出上机调试各步骤及中间过程。
5.小结DEBUG的使用方法。
6.
回答思考题。
实验二代码转换
1.学习不同数及编码相互转换的程序设计方法。
2.进一步掌握程序编辑,编译,连接过程。
3.进一步掌握可执行文件在DEBUG里调试过程。
二.实验器材。
在数据段中定义1个字节数据,将数据转换成16进制的ASCII码,然后在屏幕上显示这些数据。
显示数据用DOS功能2号调用,每个数据用空格分隔。
例如数据4AH,经过转换在屏幕上显示4AH
四.实验步骤:
1.输入给定的程序,编译、连接并产生可执行文件。
2.DEBUG调试分析各程序的功能,观察调试过程中数据传输指令执行后,各寄存器及数据区的内容。
并给出16进制数转换成ASCII码数学表达式。
3.更改数据区的数据,考察程序的正确性。
五.思考题:
1.十六进制数转换成ASCII码还有哪些简单的方法吗?
2.十进制数的ASCII码如何转换为BCD码?
。
3.将一个数据改为8个数据,实现它,程序需要怎样修改?
4.试列出数码转换对应关系表。
六.实验报告:
1.写明本次实验内容和实验步骤。
2.整理出实验任务的源程序和运行结果。
并对源程序进行注册说名明。
3.对调试过程中的过程中的问题进行分析,对运运结果进行分析。
4.写出上机调试步骤及中间过程。
5.回答思考题。
实验三程序的基本结构练习
1、实验目的:
1.了解﹑掌握分支﹑循环和子程序调用的基本程序结构。
2.学习综合程序设计﹑编制及调试。
3.掌握模块化程序﹑编译﹑连接的方法。
2、实验器材:
1.PC机一台;
2.QTH-2008PCI32位微机教学实验仪一套。
3、实验内容:
在数据段中有20个字节单元,保存着某一功课的成绩,统计该门功课中不及格、60-69,70-79,80-89,90-100的人数,并且求该门功课的平均值
4、实验步骤:
1.输入给定程序,分析模块程序结构,编译、连接产生可执行文件。
2.断点调试程序段的工作过程。
3.更改数据区中的数据,考察程序的正确性。
4.试着进行成绩的输入和输出结果。
5、思考题:
1.统计人数还有什么好的方法?
2.输入和输出注意那些问题?
6、实验报告:
1.总结编写程序的基本结构的方法和原则,编译和连接方法。
2.写明本次实验内容和实验步骤。
3.整里出实验任务的源程序和运行结果,并对源程序进行注释说明。
4.对调试过程中的问题进行分析,对运行结果进行分析。
5.写出上机调试各步骤及中间过程。
6.回答思考题。
实验四存储器扩展
1、熟悉微机接口实验装置的结构及使用方法
2、了解微机存储器系统的组成结构
3、掌握对微机存储器扩充的方法
3、实验说明
1、61256介绍
微处理器通过数据总线、地址总线及控制总线与存储器连接,如下图所示:
地址总线为地址信号,用来指明选中的存储单元地址。
数据总线为数据信号,它是微处理器送往存储器的信息或存储器送往微处理器的信息。
它包括指令和数据。
控制总线发出存储器读写信号,以便从ROM、RAM中读出指令或数据,或者向RAM写入数据。
在微机系统中,常用的静态RAM有6116、6264、62256等。
在本实验中使用的是61256。
61256为32K╳8位的静态RAM,其逻辑图如下:
其中A0~14为15根地址线,I/O0~7为8根数据线,CS为片选端,OE为数据输出选通端,WR为写信号端。
其工作方式见下表:
控制信号
CS
OE
WR
数据线
读
L
H
输出
写
╳
输入
非选
高阻态
2、访问地址超过1M的地址空间
由于实验装置中映射的存储器地址空间大于DOS应用程序可以访问的1M地址空间,因此必须进入保护模式才可以访问大于1MB的存储器空间地址。
在32位微机原理中已经学习了保护模式下程序的编写,本实验要求编写保护模式的程序,访问高于1MB的存储空间,实现对61256的读写访问
为了实现对61256的读/写,实验中需要安排两个数据段描述符,第一个描述源数据段,为1MB以内空间的某个存储区域;
第二个描述目标数据段,指向实验系统中某个61256扩展的存储区域。
实验程序可以在保护模式下将源数据段中的内容写入目标数据段,传输结束后可以在把源数据段内容清为0,再把目标数据段的内容写入源数据段,然后在显示这个内容看是否实现了正确的数据写和读。
4、实验内容
编写一个保护模式下的实验程序,对实验装置上的1片的61256芯片内写入一些数据,然后读出显示在屏幕上以验证正确与否。
5、实验步骤:
1.存储器连线
2.输入给定程序,分析模块程序结构,编译、连接产生可执行文件。
3.断点调试程序段的工作过程。
4.更改数据区中的数据,考察程序的正确性。
6、思考题:
保护模式下访问内存与实模式相比有什么不同?
7、实验报告:
2.整里出实验任务的源程序和运行结果,并对源程序进行注释说明。
5.回答思考题。
实验五并行接口(8255)扩展
1、实验目的
了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。
2、实验设备
1.PC机一台;
1.实验四所用74LS244,74LS27芯片是不可编程的简单I/O接口,而8255是一个可以编程的接口芯片。
2.8255A的内部结构:
(1)数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
(2)三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:
这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组工作方式,低3位决定B组的工作
方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
(4)读写控制逻辑:
用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
3.8255A的工作方式:
方式0—基本输入输出方式;
方式1—选通输入输出方式;
方式2—双向选通输入输出方式。
4.A0,A1:
端口选择信号。
规定A1A0为00,01,10,11等分别选中端口A,端口B,端口C和控制口。
1.I/O输入输出实验:
利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示
2.流水灯实验:
利用8255的A口,B口循环点亮发光二极管。
5、实验步骤
1.实验连线
2.汇编、连接、运行程序
3.观察运行结果
1.若把实验内容1的发光二极管换成七段数码管,根据开关设置的数据(‘0’~‘9’,‘A’~‘Z’的ASCII码)分别显示相应的字符‘0’~‘9’和‘A’~‘Z’。
电路及程序应如何修改?
2.若利用8255的A口模拟交通信号灯,内容2电路及程序如何修改?
1.画出硬件原理图,说明各部分功能
2.画出程序框图,完成程序设计
3.分析调试运行结果
4.回答思考题
实验六、串行接口8251扩展
一.实验目的
1.掌握8251芯片的结构及工作方式各应用。
2.学习有关串行通讯的知识。
3.学习PC机串口的操作方法。
4.掌握使用8251实验双机通讯的软件编制和硬件连接技术。
二.实验设备
1.PC机一台;
2.QTH-2008PCI32位微机教学实验仪一套。
三.实验说明
微机系统使用Intel8251串行接口芯片构成其串行通讯实验单元,其连接线路如图所示。
8251A是Intel公司的产品,具有同步、异步接收或发送的功能,使用单+5V电源的单相时钟,其功能是:
1.同步或异步方式下,字符位数5-8个;
2.同步传输率0-64K,异步传输率0-19.2K;
3.异步传输时,自动产生1个起始位,编程可产生1个或1个半或2个停止位;
4.具有奇偶错、数据丢失和帧错误检测能力;
5.同步方式时,可自动检测,插入同步字符
四.实验内容
在本实验中,要求使用8251做异步方式串行传输。
数据帧格式规定为:
每一帧数据包括一个逻辑“0”的起始位,7位ASCII码数据位,1位逻辑“1”的停止位,传输波特率为2400baut,其波形如图2所示。
低位高位
起始位“0”7位字符奇偶停止位“1”间歇起始位“0”
图2串行传输的数据格式
1.数据信号的串行输出
按图3所示连接示波器,以观察串行输出的数据波形。
程序的功能是连续发送字符“7”到8251串口输出。
TXD
GND
图3系统的串口与示波器的连接
2.自发自收实验:
使8251工作在异步方式下,8253计数器用于产生发送和接收时钟,TxD和RxD连在一起构成自发自收的实验环境。
五.实验步骤:
1.实验连线。
2.连接示波器。
3.输入程序并运行,在示波器上观察数据波形并作记录。
4.改变发送的字符,运行程序,观察相应的波形并作记录。
5.在自发自收程序中,观察收发数据是否一致
六.思考题
6.分析实验程序,写出相应的流程图。
7.8251有几种工作方式,其数据格式如何?
8.8251对收发时钟有何特殊要求?
七.实验报告:
1.画出硬件原理图,说明各部分功能
2.画出程序框图,完成程序设计
3.分析调试运行结果
4.回答思考题
附录
附录一输入输出功能调用
1、带回显的单字符输入(1号功能)
功能:
等待键盘输入,直到按下一个字符,将字符的ASCII码送AL,并在屏幕上显示该字符。
若按下的是Ctrl-C(Break),则停止运行程序。
调用格式:
MOVAH,1
INT21H
2.单字符显示(2号功能--又称屏幕显示字符)
功能:
将字符送至屏幕上显示。
调用格式:
DL←待显示字符的ASCII码;
MOVAH,2
INT21H
例:
在屏幕上显示“$”。
MOVDL,‘$’
MOVAH,2
INT21H
3、字符串显示(9号功能--输出字符串)
在屏幕上显示一个字符串。
该字符串必须存放在内存的数据区中,并是以$为结尾的ASCII玛字符串。
调用前必须将字符串的首址送DS:
DX。
如:
BLOCKDB‘Thisisanexample.$’
…………
LEADX,BLOCK
MOVAH,9
4、字符串输入(0AH号功能)
从键盘接收一串字符,并将它们的ASCII码送入用户指定的缓冲区。
在调用0AH功能前,必须定义一个输入缓冲区。
调用时,DS:
DX必须指向输入缓冲区
DATASEGMENT
BUFFERDB100
DB?
DB100DUP(?
)
DATAENDS
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETBUFFER
MOVAH,0AH
附录二输出例程
;
*************ProceduretoGetaCharacter***********************************
Given:
Nothing
Process:
InputacharacterbyusingDOSfunction#1andinterrupt21h
:
Notethatnoregistersareprotectedinthisproceduresinceit
returnsthecharacterintheALregister.
Return:
TheinputcharacterinALregister
******************************************************************************
GETCHARPROC;
Defineprocedure
MOVAH,01H;
DOSprintcharacterfunction#1
INT21H;
Getthecharacter
RET;
Returntocallingprocedure
GETCHARENDP;
Endofprocedure
*********************Nearproceduretogetachar***************************
ThecharactertoprintinDLregister
PrintacharacterbyusingDOSfunction#2andinterrupt21h
PUTCHARPROC;
MOVAH,02H;
PUTCHARENDP
**********************ProceduretoInputtheNumber*************************
AcceptastringofASCIIdigitsandconvertthemtoaninteger
ReturntheintegerinAXregister
GETNUMPROC
PUSHBX;
Savethecontentsofallregisters
PUSHCX;
exceptforAX,whichwillcontainthe
PUSHDX;
numberwhichwasread
MOVBX,0H;
ZerotheBXregister
NEXTDIGIT:
MOVAH,1H;
DOSinputcharacterfunction#1hex
Getacharacter
CMPAL,'
0'
;
Ifthecharacterislessthan0,then
JLDONE;
wehaveallthenumberandareDone
9'
Ifthecharacterismorethan9,then
JGDONE;
SUBAL,30H;
ConvertASCIItointegervalue
XORAH,AH;
ZerothehighbyteofAX
PUSHAX;
Savethedigitonthestack
MOVAX,10D;
Place10decimalinAXtomultiplyby
MULBX;
Multiplythenumberby10
MOVBX,AX;
GetnumberfromAXandputinBX
POPAX;
Getthedigitbackfromthestack
ADDBX,AX;
Addthedigittothenumber
JMPNEXTDIGIT;
Getthenextdigit
DONE:
MOVAX,BX;
ReturntheNUMBERinAXregister
POPDX;
Restoretheregistersinreverseorder
POPCX;
POPBX;
ReturntoCallingprocedure
GETNUMENDP
**********************ProceduretoPrinttheNumber*************************
TheintegertobeprintedintheAXregister
ConverttheintegertoastringofASCIIdigitsandprintthem
oneatthetime,untilallareprinted
****************************