微机原理实验指导书通信.docx
《微机原理实验指导书通信.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书通信.docx(24页珍藏版)》请在冰豆网上搜索。
微机原理实验指导书通信
微机原理实验指导书
───────通信专业
江苏科技大学电子信息学院
2006-8-23
前言
课程名称:
微机原理
适用对象:
通信专业本科
学时学分:
共56学时,3.5学分,其中实验时数12学时。
随着微型计算机应用的日益广泛和深入,接口技术有了迅速的发展,并已经成为直接影响微机系统功能和推广应用的关键。
从硬件的角度来看,微机的开发与应用,在很大程度上就是微机原理电路的开发与应用,因而微机原理技术成为涉及本专业的大学生必不可少的基本技能。
微机原理是建立在模拟电子线路、数字电路、计算机组成原理、微机原理、汇编语言程序设计和操作系统原理基础之上的一门综合性理论与实践相结合的课程。
要求学生在熟练掌握这些先导课程知识的基础之上,采用理论与实践相结合的方法,在理论的指导下,加强动手实验,在实践中巩固理论,进而达到全面掌握微机接口理论并具有一点实际应用开发能力。
微机原理是通信专业的必修课程,该课程3.5学分,总学时为56学时,根据教学大纲的要求以及现有实验设备条件,对本课程的实验部分安排了12学时的上机操作,具体分为6次进行,其安排如下:
实验一:
数据传送与算术运算(设计)
实验二:
代码转换(设计)
实验三:
程序的基本结构练习(设计)
实验四:
存储器扩展(设计)
实验五:
并行接口(8255)扩展(设计)
实验六:
串行接口(8251)扩展(设计)
为了让学生能够比较好的完成实验,在做实验前需要做下述准备:
1.实验前的准备工作
①认真复习理论教学内容及相关资料。
②认真查询相关实验资料,做好预习准备。
2.实验时应注意的事项
①按时参加上机实习,不得无故迟到、早退。
②遵守机房管理制度和实验操作规则。
③上机者在上机规定的时间内,不能从事与实验无关的内容。
④独立完成实验,严禁抄袭他人成果。
⑤按时提交实验报告。
3.实验报告要求
①实验课题
②实验设备及工具
③实验目的
④实验过程和结果分析
通过实验,学生应达到以下几点目的:
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.PC机一台;
2.QTH-2008PCI32位微机教学实验仪一套。
三.实验内容:
在数据段中定义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、实验目的:
1、熟悉微机接口实验装置的结构及使用方法
2、了解微机存储器系统的组成结构
3、掌握对微机存储器扩充的方法
2、实验器材:
1.PC机一台;
2.QTH-2008PCI32位微机教学实验仪一套。
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
L
H
输出
写
L
╳
L
输入
非选
H
╳
╳
高阻态
2、访问地址超过1M的地址空间
由于实验装置中映射的存储器地址空间大于DOS应用程序可以访问的1M地址空间,因此必须进入保护模式才可以访问大于1MB的存储器空间地址。
在32位微机原理中已经学习了保护模式下程序的编写,本实验要求编写保护模式的程序,访问高于1MB的存储空间,实现对61256的读写访问
为了实现对61256的读/写,实验中需要安排两个数据段描述符,第一个描述源数据段,为1MB以内空间的某个存储区域;第二个描述目标数据段,指向实验系统中某个61256扩展的存储区域。
实验程序可以在保护模式下将源数据段中的内容写入目标数据段,传输结束后可以在把源数据段内容清为0,再把目标数据段的内容写入源数据段,然后在显示这个内容看是否实现了正确的数据写和读。
4、实验内容
编写一个保护模式下的实验程序,对实验装置上的1片的61256芯片内写入一些数据,然后读出显示在屏幕上以验证正确与否。
5、实验步骤:
1.存储器连线
2.输入给定程序,分析模块程序结构,编译、连接产生可执行文件。
3.断点调试程序段的工作过程。
4.更改数据区中的数据,考察程序的正确性。
6、思考题:
保护模式下访问内存与实模式相比有什么不同?
7、实验报告:
1.写明本次实验内容和实验步骤。
2.整里出实验任务的源程序和运行结果,并对源程序进行注释说明。
3.对调试过程中的问题进行分析,对运行结果进行分析。
4.写出上机调试各步骤及中间过程。
5.回答思考题。
实验五并行接口(8255)扩展
1、实验目的
了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。
2、实验设备
1.PC机一台;
2.QTH-2008PCI32位微机教学实验仪一套。
3、实验说明
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和控制口。
4、实验内容
1.I/O输入输出实验:
利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示
2.流水灯实验:
利用8255的A口,B口循环点亮发光二极管。
5、实验步骤
1.实验连线
2.汇编、连接、运行程序
3.观察运行结果
6、思考题:
1.若把实验内容1的发光二极管换成七段数码管,根据开关设置的数据(‘0’~‘9’,‘A’~‘Z’的ASCII码)分别显示相应的字符‘0’~‘9’和‘A’~‘Z’。
电路及程序应如何修改?
2.若利用8255的A口模拟交通信号灯,内容2电路及程序如何修改?
7、实验报告:
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
INT21H
4、字符串输入(0AH号功能)
功能:
从键盘接收一串字符,并将它们的ASCII码送入用户指定的缓冲区。
在调用0AH功能前,必须定义一个输入缓冲区。
调用时,DS:
DX必须指向输入缓冲区
DATASEGMENT
BUFFERDB100
DB?
DB100DUP(?
)
DATAENDS
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETBUFFER
MOVAH,0AH
INT21H
附录二输出例程
;*************ProceduretoGetaCharacter***********************************
;Given:
Nothing
;Process:
InputacharacterbyusingDOSfunction#1andinterrupt21h
;:
Notethatnoregistersareprotectedinthisproceduresinceit
;:
returnsthecharacterintheALregister.
;Return:
TheinputcharacterinALregister
;******************************************************************************
GETCHARPROC;Defineprocedure
MOVAH,01H;DOSprintcharacterfunction#1
INT21H;Getthecharacter
RET;Returntocallingprocedure
GETCHARENDP;Endofprocedure
;*********************Nearproceduretogetachar***************************
;Given:
ThecharactertoprintinDLregister
;Process:
PrintacharacterbyusingDOSfunction#2andinterrupt21h
;Return:
Nothing
;******************************************************************************
PUTCHARPROC;Defineprocedure
MOVAH,02H;DOSprintcharacterfunction#1
INT21H;Getthecharacter
RET;Returntocallingprocedure
PUTCHARENDP
;**********************ProceduretoInputtheNumber*************************
;Given:
Nothing
;Process:
AcceptastringofASCIIdigitsandconvertthemtoaninteger
;Return:
ReturntheintegerinAXregister
;******************************************************************************
GETNUMPROC
PUSHBX;Savethecontentsofallregisters
PUSHCX;exceptforAX,whichwillcontainthe
PUSHDX;numberwhichwasread
MOVBX,0H;ZerotheBXregister
NEXTDIGIT:
MOVAH,1H;DOSinputcharacterfunction#1hex
INT21H;Getacharacter
CMPAL,'0';Ifthecharacterislessthan0,then
JLDONE;wehaveallthenumberandareDone
CMPAL,'9';Ifthecharacterismorethan9,then
JGDONE;wehaveallthenumberandareDone
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;
RET;ReturntoCallingprocedure
GETNUMENDP
;**********************ProceduretoPrinttheNumber*************************
;Given:
TheintegertobeprintedintheAXregister
;Process:
ConverttheintegertoastringofASCIIdigitsandprintthem
;oneatthetime,untilallareprinted
;Return:
Nothing
;****************************