微机原理实验指导书学生4.docx
《微机原理实验指导书学生4.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书学生4.docx(21页珍藏版)》请在冰豆网上搜索。
![微机原理实验指导书学生4.docx](https://file1.bdocx.com/fileroot1/2022-11/25/59951dcd-71c7-4a5c-8532-52ce772fc71e/59951dcd-71c7-4a5c-8532-52ce772fc71e1.gif)
微机原理实验指导书学生4
《微机原理与应用》实验指导书
网络与接口实验室
2012年1月
目录
第一部分实验环境介绍3
第二部分实验内容14
实验一顺序程序设计与调试14
实验二分支程序设计17
实验三循环程序设计18
实验四子程序设计19
实验五并行接口芯片8255的应用20
实验六中断控制器8259的应用21
实验七定时/计数器8253的应用22
实验八接口综合应用23
第一部分实验环境介绍
《微机原理与应用》实验分为两部分,一部分是软件上机部分,在PC机上完成,主要训练学生的汇编语言程序设计与调试能力;另一部分为硬件实验部分,在TDN-MD实验箱上完成,主要训练学生对接口电路的选择、应用和编程控制能力。
1.1软件上机环境
汇编语言上机可用两种环境来实现,一种是命令行方式,在DOS环境下进行;另一种是集成环境方式,可运行在WINDOWS环境下。
1.1.1命令行方式
命令行方式使用的软件有编辑软件、宏汇编软件、连接软件和DEBUG软件,将包含这些文件的系统盘复制到某个目录下即可。
上机过程如图1-1所示。
在这个过程中,任何一步出错,都要回到编辑过程修改程序,然后重新进行这些过程,直至程序运行正确。
1.编辑
编辑过程是输入和修改源程序的过程,可用系统盘上的编辑软件EDLIN.COM,也可用DOS环境下的edit.exe或WINDOW下的记事本等进行,保存的文件后缀名应为.Asm。
2.汇编
汇编过程是将已输入的源程序转换为目标程序,用宏汇编软件MASM5.0完成,目标程序的后缀名为.obj,汇编方法为:
Masmpath\file.asm
汇编命令输入后,汇编软件提示产生的文件,当回答完汇编程序的提示后,若无出错信息则显示:
0WarningErros
0SevereErrors
若有错误,显示出错信息。
出错信息包含程序中出错的行号和出错类型,根据这些信息修改源程序,重新汇编,直至无错误,这时已形成目标程序。
3.连接
连接是将目标文件连接形成可执行文件,连接软件为link.exe,连接方法为:
linkpath\file.obj[,efile.exe]
其中后面括号内为可执行文件名称,如果命令中无此项,则形成与目标文件名同名的可执行文件。
输入连接命令后,回答提示信息,连接完成后,若无错误,显示连接成功,若出现错误,显示出错数量和错误类型。
根据错误信息修改源程序,重新汇编、连接,直至无错误,这时才形成可执行文件。
在连接结束后,如果显示的错误信息为:
Warning:
NoSTACKsegment
这个错误不影响可执行文件的形成。
要将多个目标文件连接成可执行文件,可用加号把多个文件连接起来,其格式为:
linkpath\file1.obj+path\file2.obj+…,file.exe[,efile.exe]
多个文件连接时,如果没有给出可执行文件名,则可执行文件与第一个文件同名。
4.执行文件
在建立了可执行文件后,就可以直接在DOS中运行程序,格式为:
path\efile1
5.调试
有些程序运行过程中出现逻辑上的错误,或者有些程序无显示结果部分,这时就需要进行调试。
Debug是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式可以对程序执行的过程进行跟踪,以便了解程序执行过程中寄存器、存储单元内容的变化情况,发现程序执行过程中逻辑错误。
具体格式为:
DEBUGpath\file.exe
进入如DEBUG后,出现的提示符为“-”,在该提示符下,可以使用DEBUG的各种命令。
要退出DEBUG,在“-”提示符下输入Q,按回车键即可。
6.DEBUG的常用命令
说明:
●DEBUG的命令有很多,这里只介绍部分常用命令,其它命令可参考汇编语言教材。
●存储单元的地址应写成逻辑地址的形式,例如:
1234:
1000,CS:
100,ES:
6700
在进行与存储单元的数据有关的操作时,如果不写段地址,默认为数据段,所用段寄存器为DS。
在进行与程序有关的操作时,如果不写段地址,默认为代码段,所用段寄存器为CS。
●DEBUG只能看到指令语句,不能使用伪指令语句。
●DEBUG下的数据默认为十六进制。
●DEBUG下不区分大小写。
(1)显示存储单元命令D,格式为:
-D[地址]
或D[范围]
例如:
显示从2000H:
1000H开始的存储单元内容的方法为:
-D2000:
1000
显示数据段1000到1005存储单元内容的方法为:
-D10001005
(2)修改存储单元内容命令E,该命令有两种格式。
第一种格式可以用给定的内容来替代指定范围的存储单元内容,格式为:
-E地址[列表]
例如:
用F3,’X’,,’Y’,’Z’,8D来替换DS:
0100到0104单元的内容,可写为:
-EDS:
100100’XYZ’D8
第二中格式是逐个单元的修改,格式为:
-E地址
例如,修改3100:
100单元及以后各单元的内容,可写为:
-E3100:
100
则可能的显示为:
3100:
010089.-
如果要修改该单元内容,用户可直接输入数据,按空格键可显示下一单元内容,用同样的方法进行修改。
(3)检查和修改寄存器的命令R
●显示CPU内所有寄存器的内容和状态寄存器的值,格式为
-R
●显示和修改某个寄存器的内容
-R寄存器名
例如,显示和修改寄存器AX的值,可写为:
-RAX
系统响应如下:
AXF100
-
即AX寄存器的当前值为F100。
如不修改,按回车键;如需修改,直接输入要修改的内容。
●显示程序状态字,格式为:
-RF
系统响应如下:
OVDNEINGZRACPECY–
如不修改,按回车键;如需修改,直接输入要修改的内容,修改时顺序可任意,也可只修改某些标志。
(4)运行程序命令G,其格式为:
-G[=起始地址][断点地址1][断点地址2…]
起始地址是指将要执行的程序的第一条指令的地址,如果不给出起始地址,则从当前CS:
IP处开始执行程序。
断点地址是程序执行时的停止地址,程序执行到断点时,停止并显示所有寄存器和程序状态字的当前值。
如果无断点地址,程序执行到结束为止。
(5)跟踪命令T,该命令有两种格式。
第一种格式是从指定地址起执行一条指令停下来,显示所有寄存器和程序状态字的当前值。
如未给出起始地址,则从当前CS:
IP起执行一条指令。
指令格式为:
-T[=起始地址]
第一种格式是从指定地址起执行n条指令停下来,显示所有寄存器和程序状态字的当前值。
如未给出起始地址,则从当前CS:
IP起执行n条指令。
指令格式为:
-T[=起始地址][n]
(6)汇编命令A,其格式为:
-A[地址]
该命令允许输入汇编语言语句,并能把它们汇编成机器代码,相继存放在指定地址开始的的存储区中。
(7)反汇编命令,该命令有两种格式。
第二种格式是从指定地址开始将32个字节的机器代码反汇编为汇编语言语句,如未给出起始地址,则从当前CS:
IP起开始反汇编,其格式为:
-U[地址]
第一种格式是对指定范围的机器代码反汇编汇编语言语句,其格式为:
-U[起始地址][结束地址]
1.1.2集成环境方式
集成环境运行在WINDOWS环境下,学生很容易熟悉,因此,本课程的汇编语言编程部分选用“未来汇编”集成环境。
“未来汇编”是集编辑、汇编、调试和执行于一体的汇编语言上机环境,该软件可在网上直接下载,然后点击setup进行安装,安装后可在“程序”菜单中找到未来汇编,运行后界面如图1-2所示。
上机时先在“文件”菜单中选择新建,就可以输入程序。
程序输入完成后进行保存,通过“编辑”菜单中的相关命令完成复制、剪切、粘贴等操作。
程序输入完成后,利用“程序”菜单中的相关选项完成编译、单步运行、连续运行等操作。
运行程序时,可通过各类窗口观察寄存器和存储单元变化情况。
硬件实验环境
硬件实验是在TDN-MD实验箱上完成的,主要是针对接口的的应用和外设的控制,TDN-MD实验箱是由西安唐都科教仪器公司提供的,该实验箱上可完成《微机原理与应用》实验和《单片机原理与应用》实验,实验箱主要元器件布局如图1-3所示。
实验箱上配备标准的PC机键盘和液晶显示器,用于输入和调试程序。
1.2.1实验箱上主要电路
实验箱上元件的部分线路已连接,未连接部分在下面图中用圈点表示,做实验时应自行连接。
1.CPU及基本电路
实验箱上使用的CPU型号为8088,工作模式为最小模式,主频为5MHZ,复位电路位于CPU的右下方,当系统上电复位不正常时,可按复位按钮进行手动复位。
2.存储器
实验箱上的存储器分为ROM和RAM两部分。
(1)ROM
实验箱上有两个ROM插槽,一个已安装了2764EPROM,用于存放系统监控程序;另一个插槽用作扩展。
(2)实验箱上两个RAM插槽,一个已安装了6264SRAM,地址从00000H开始,前1KB为中断矢量表,其余部分作为用户区,用户程序和数据可写在用户区。
另一个插槽用作扩展。
3.系统中的8259中断控制电路
实验箱上有2片8259芯片,靠近CPU的一片已与系统总线相连,地址为20H~21H,该芯片可工作于单片方式或与另一片级连工作于级连方式,该芯片称为主8259。
系统启动时,该8259已初始化,IR0~IR7的类型号为08H~0FH,此时,只有IR1的中断被开放,其余中断均被屏蔽。
主8259的电路如图1-4所示。
在实验箱中部的8259用于8259级连实验,该芯片称为从8259。
所有引脚全部以排针形式引出,供用户实验时使用,从8259的电路如图1-5所示。
4.8255并行I/O接口电路
实验箱的左侧装有一片8255芯片,连线如图1-6所示,8255与系统总线已连接,A口、B口和C口引脚全部以排针引出,供实验使用。
8255的地址为60H~63H。
5.8253定时/计数器电路
实验箱的8253已与系统总线相连,0#通道与8259的IRQ0中断源相连,作为实时钟中断请求,1#通道的输出接8251串行接口电路的收发时钟,2#通道以排针引出,供实验使用。
8253的地址为40H~43H,8253的连线如图1-7所示。
6.8251串行接口电路
8251已与系统总线相连,并经1488和1489形成标准的RS-232信号,引脚以排针引出,供串行接口实验使用。
8251的地址为C0H~C1H,连线如图1-8所示。
7.8155实验单元电路
8155的所有引脚以排针引出,供串行接口实验使用,对外引脚如图1-9所示。
8.8237DMA实验电路
8237的所有引脚以排针引出,供串行接口实验使用,其线路如图1-10所示。
9.ADC0809实验单元电路
A/D转换实验单元由ADC0809芯片及电位器电路组成,其线路如图1-11所示。
10.单脉冲触发器实验单元
单脉冲触发器实验单元由74LS00芯片和两组微动开关构成两个R-S触发器,其线路如图1-12所示,单脉冲输出分为正脉冲和负脉冲,分别以“+”和“-”表示。
11.电子发声部件电路
实验箱上的发声部件为蜂鸣器,只要在SPK端接上高点平,即可发声,常用于系统报警,电路如图1-13所示。
12.开关及发二极管实验单元
由8个开关和8个发光二极管组成,电路如图1-14所示。
14.键盘及LED显示实验单元
2行4列键盘和4个共阴极七段发光二极管电路如图1-14所示。
1.2.2实验箱上程序调试
实验箱电源打开后,先显示Welcomtoyou,稍等片刻,出现提示符C>,这时就可以输入和调试程序。
实验箱上使用的命令是DEBUG命令。
实验箱上调试程序时,应注意对存储单元的类型表示:
(1)MOVB[2000H],05;表示将数据段字节型数据传送到2000H单元。
(2)MOVW[2000H],1000;表示将数据段字型数据传送到2000H单元。
第二部分实验内容
《微机原理与应用》包括6个实验,其中前3个是软件编程,在PC机上完成,后3个是硬件实验,在TDN-MD实验箱上完成。
实验一顺序程序设计与调试
一、实验目的
1.熟悉汇编语言上机过程和上机步骤。
2.掌握汇编语言程序书写格式。
3.掌握顺序程序的设计与调试方法。
4.掌握汇编语言程序运行结果的观察方法。
二、实验设备
PC机一台(安装汇编软件)。
三、实验内容
分析并对比以下各程序段运行的结果。
1.两种加法指令比较
(1)STC
MOVAL,50H
MOVBL,60H
ADDAL,BL
(2)STC
MOVAL,50H
MOVBL,60H
ADCAL,BL
2.两种加1指令比较
(1)MOVAL,0FFH
INCAL
(2)MOVAL,0FFH
ADDAL,1
3.两种乘法指令比较
(1)MOVAL,0FFH
MOVBL,0FFH
MULBL
(2)MOVAL,0FFH
MOVBL,0FFH
IMULBL
4.逻辑指令比较
(1)MOVAL,55H
ANDAL,0FH
(2)MOVAL,55H
ORAL,0FH
(3)MOVAL,55H
XORAL,0FH
(4)MOVAL,55H
TESTAL,0FH
5.移位指令比较
(1)MOVAL,55H
SHLAL,1
(2)MOVAL,55H
SHRAL,1
(3)MOVAL,55H
SARAL,1
(4)STC
MOVAL,55H
ROLAL,1
(5)STC
MOVAL,55H
RORAL,1
(6)STC
MOVAL,55H
RCLAL,1
(7)STC
MOVAL,55H
RCRAL,1
四、选作题
在数据段中定义变量X、Y、Z、RESULT,计算X+Y-Z,结果存入数据段中的单元中。
其中X、Y、Z均为32位带符号数。
五、实验要求
1.按汇编语言格式书写程序,在debug下进行调试、记录每组指令的运行情况,并进行分析与对比。
2.理解源程序与目标程序之间的关系与区别。
3.分析程序、记录数据,进行对比以增强理解。
4.提交实验报告。
实验二分支程序设计
一、实验目的
1.掌握转移指令的应用方法。
2.掌握分支程序的结构和设计方法。
二、实验设备
PC机一台(安装汇编软件)。
三、实验内容
1.编写程序完成下列算式:
2.在数据段定义无符号变量X、Y和MAX,编程将X和Y中的最大数存入MAX单元中。
四、选作题
假设一个变量中存储的是一个带符号数的原码,编程求其补码。
五、实验要求
1.理解符号地址与实际地址的关系。
2.给出不同的变量值,在debug下跟踪程序运行过程。
3.提交实验报告。
实验三循环程序设计
一、实验目的
1.掌握循环指令的应用方法。
2.掌握循环程序的结构和设计方法。
二、实验设备
PC机一台(安装汇编软件)。
三、实验内容
1.统计BX寄存器中二进制1的个数。
2.定义10个字型带符号数,求其最大值并存于max单元中。
四、实验要求
1.理解符号地址与实际地址的关系。
2.给出不同的变量值,在debug下跟踪程序运行过程。
3.提交实验报告。
实验四子程序设计
一、实验目的
1.掌握子程序的定义和调用方法。
2.掌握DOS调用方法。
3.掌握子程序调用与返回语句执行时堆栈变换情况。
4.掌握DOS调用程序的调试方法。
二、实验设备
PC机一台(安装汇编软件)。
三、实验内容(二选一)
1.将BX中的十六进制数转换成4个ASCII码数据,要求代码转换部分用子程序实现。
注:
子程序入口、出口参数用AL。
2.从键盘接收4位十进制数,将其转换为十六进制数并显示。
注:
转换结果存放在BX中。
四、选作题
1.从键盘接收一个字符,然后显示其对应的前导、本身和后继字符。
2.在屏幕上显示26个大写英文字母A~Z。
五、实验要求
1.在debug下跟踪程序运行过程,对与堆栈有关的指令观察堆栈指针变化情况和堆栈内容的变化情况。
2.理解用户编写的子程序和DOS调用的异同点。
3.提交实验报告。
实验五并行接口芯片8255的应用
一、实验目的
1.认识TDN86/51系统的结构特点和应用方法。
2.掌握8255的各种工作方式及其应用。
3.掌握8255的初始化方法和各端口的特点。
4.掌握8255与外设的连接方法。
二、实验设备
TDN86/51实验教学系统一台。
三、实验内容
1.在8255的A口接8个开关,B口接8个灯,拨动开关时,对应灯的状态发生变化。
2.8255的A口接8个灯,实现彩灯功能,彩灯显示效果自行设置。
四、实验要求
1.按要求设计电路图。
2.理解8255的工作过程和初始化过程。
3.掌握不同外设的编程控制方法。
4.提交实验报告。
五、思考题
1.说出能否用一片8255实现12个开关控制12个发光二极管?
如果能,如何实现?
2.延时子程序中,循环次数与显示效果有什么关系?
3.如果8255的开关输入采用方式1,发光二极管输出用方式0,重做第一题。
实验六中断控制器8259的应用
一、实验目的
1.认识TDN86/51系统的中断系统结构。
2.掌握8259中断控制器的工作原理。
3.掌握8259的各种工作方式及其应用。
二、实验设备
TDN86/51实验教学系统一台。
三、实验内容
1.在8259的IR7上接一个中断源,发生一次中断显示7。
2.在8259的IR7和IR6上各接一个中断源,IR7上发生一次中断显示7,IR6上发生一次中断显示6。
注:
在液晶屏上显示的7的程序为:
MOVAH,01
MOVAL,37;7的ASCII码为37H
INT10
四、实验要求
1.按要求设计电路图。
2.了解实验板上8259的地址和中断类型号。
3.理解中断响应过程和中断服务程序的编写方法。
4.掌握8259的初始化过程和等待中断的方法。
5.设计中断服务程序,正确反映中断的嵌套关系。
6.提交实验报告。
五、思考题
1.若中断服务程序中无以下两句,运行结果会怎样?
MOVAL,20
OUT20,AL
2.中断服务程序的开始无开中断指令,会出现什么现象?
3.中断服务程序中的现场保护的作用是什么?
如何体现?
实验七定时/计数器8253的应用
一、实验目的
1.掌握8253中断控制器的工作原理。
2.掌握8253的各种工作方式及其应用。
二、实验设备
TDN86/51实验教学系统一台。
三、实验内容(二选一)
1.在8253的2#通道工作于计数方式,当计数5次时,显示一个字符“M”。
2.用8253控制连续显示字符“M”。
四、实验要求
1.按要求设计电路图。
2.了解8253、8259的关系。
3.理解中断响应过程和中断服务程序的编写方法。
4.提交实验报告。
五、思考题
1.如何选择8253的工作方式?
2.8253不同工作方式计数值如何计算?
实验八接口综合应用
一、实验目的
1.掌握常用接口芯片的工作原理和应用方法。
2.掌握动态显示的原理和显示程序编写方法。
二、实验设备
TDN86/51实验教学系统一台,七段显示数码管。
三、实验内容
电子表设计
四、实验要求
1.按要求设计电子表电路图。
2.根据具体应用合理选择接口芯片进行系统设计。
3.确定芯片工作方式,编写芯片初始化程序和应用程序,是电子表能正确显示时间。
4.提交实验报告。
五、思考题
1.电子表时间如何计算?
2.静态显示与动态显示有何区别?