工业用微型计算机实验及答案.docx
《工业用微型计算机实验及答案.docx》由会员分享,可在线阅读,更多相关《工业用微型计算机实验及答案.docx(14页珍藏版)》请在冰豆网上搜索。
工业用微型计算机实验及答案
一、实验目的:
1、联系掌握DEBUG调试程序的使用
2、加深对汇编语言指令、机器码、寻址方式等基本内容的理解
二、实验设备:
计算机
三、实验内容:
1、DEBUG调试程序的启动
2、练习D、E、F、R、A、U、T、G、N、L、W、I、O、Q等指令的使用,观察其运行结果,掌握这些命令的使用方法
3、通过DEBUG程序输入一汇编语言程序段,单步跟踪调试,观察寄存器的变化和指令执行的结果,加深对指令的理解。
四、DEBUG调试程序的使用
一)、DEBUG的启动在DOS系统提示符下,运行DEBUG命令即可启动。
命令格式:
DEBUG[文件名全称]功能:
启动DEBUG调试程序,并把指定名字的文件装载入内存,以供调试。
说明:
启动DEBUG,实际就是让计算机执行DEBUG.EXE这个调试程序。
若该程序不在当前目录下,需要在命令中指定该程序所在的位置路径(包括(包括其所在磁盘和文件夹)。
文件名全称指定要调试的文件名及其所在的位置路径。
若指定该选项,则在启动DEBUG时把该文件装载入内存,以供调试,该文件一般是EXE文件或COM文件。
若不指定该选项,则只启动DEBUG,不装载文件。
二)、DEBUG常用命令1、D——显示内存单元内容的命令。
2、E——输入内容(修改内存单元内容)命令。
3、F——填充内容(修改内存单元内容)命令
4、R——显示和修改寄存器内容命令
5、A——汇编命令
6、U——反汇编命令
7、T——逐条指令跟踪执行命令
8、G——程序运行命令
9、N——命名命令
10、L——装入内存命令
11、W——存盘命令。
12、I——端口输入命令
13、O——端口输出命令
14、Q——退出DEBUG命令
五、DEBUG操作步骤:
1、DEBUG的进入与退出
2、观察及修改CPU内部各寄存器
3、观察及修改内存单元的内容
4、输入程序
5、单步执行程序
6、反汇编程序
7、执行一段程序
六、利用DEBUG学习寻址方式
P80例2-16
七、利用DEBUG学习程序段
P81例2-182-20
8、实验总结
实验二8255并行接口应用实验
一.实验目的
1.掌握8255工作方式的编程设计。
2.8255与外部设备进行连接的应用。
二.实验设备与材料:
TDN86/88教学实验系统一台,扁平插线若干。
三.实验原理:
INTEL8255是一种通用的可编程并行I/O接口芯片,是专为INTEL公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A口和B口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。
8255能与许多外部设备连接,例如:
键盘、显示器、打印机等。
(a)工作方式控制字(b)C口按位置位/复位控制字
四.实验内容及步骤
1.8255的一般输入输、出方式
本系统中的8255芯片8255的数据线、地址线、读写控制线等分别与系统总线相连,其A、B、C三个端口以排针形式引出,供8255实验使用,其线路如图1所示。
图18255接口实验中端口地址如表1所示
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
接口实验单元中的开关和发光二极管电路
按图所示实验线路,8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,通过对8255编程来实现输入输出功能。
实验步骤
●图28255输入输出方式实验接线图
注:
圆圈处是要求接的连线。
(1)按图2接线。
用扁平线(8头)分别插在8255的A口和发光二极管的插针上。
用扁平线分别插在8255的B口和拨动开关的插针上。
(2)输入源程序,汇编、连接后装入系统。
●参考程序1
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,82H;设8255方式字10000010A位输出,B口位输入。
OUT63H,AL
A1:
INAL,61H
OUT60H,AL
JMPA1
CODEENDS
ENDSTART
(3)执行程序后,拨动开关组K0-K7,观察发光二极管LED0-LED7变化,它应是与开关组K0-K7的值是一一对应的变化。
2.8255的选通输入、输出方式
按图3所示实验线路,8255端口A工作在方式0并作为输出口,端口B工作在方式1并作为输入口。
从端口C的PC2成为选通信号输入,端STBb,PC0成为中断请求信号输出端INTRb。
当B口数据就绪后,通过发口STBb信号来请求CPU读取端口B数据并送A口输出显示。
实验步骤
●图38255选通方式实验接线图
(KK1-初态为“1”)
注:
圆圈处是要求接的连线。
(1)按图3接线。
用扁平线(8头)分别插在8255的A口和发光二极管的插针上。
用扁平线分别插在8255的B口和拨动开关的插针上。
8255的PC0插针接8259的IRQ7插针上,8255的PC1插针接KK1-插针上。
(2)输入源程序,汇编、连接后装入系统。
●参考程序2
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
CLI
MOVAL,0A6H
OUT63H,AL
MOVAL,05H
OUT63H,AL
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ7
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVAX,0000H
MOVSI,003EH
MOV[SI],AX
POPDS
INAL,21H;读IMR
ANDAL,7FH;开IRQ7中断
OUT21H,AL
A1:
STI
HLT;等待中断请求信号
JMPA1
IRQ7:
INAL,61H;读开关信息
OUT60H,AL;输出开关信息
MOVAL,20H
OUT20H,AL
IRET
CODEENDS
ENDSTART
(3)执行程序后,拨动开关组K0-K7(即设定一输入值),按一下拨动开关KK1,观察发光二极管LED0-LED7变化,它应是与开关组K0-K7D的设定值一一对应。
五、实验总结
实验三:
利用MASM宏汇编软件进行汇编语言程序实验
一、实验目的
掌握汇编软件MASM的使用,熟悉汇编语言的上机过程。
二、实验设备、计算机
三、实验相关基础知识:
1.汇编语言程序设计上机步骤
汇编语言源程序的上机步骤包括编辑、汇编、链接、调试等几个过程,如图1-1所示。
图1.1汇编语言源程序上机步骤
源程序文件的编辑就是编写一个汇编语言源程序,它可以使用任何一个文件编辑器实现。
例如,Windows2000操作系统附件中的记事本。
编辑形成的文件最后一定要以.ASM后缀保存。
在编辑源程序的时候一定要将输入法切换到英文环境下,否则会出错。
2.汇编
汇编是把用汇编语言编写的源代码程序翻译成计算机能够识别的二进制机器语言程序。
目前常用的汇编程序是MASM,称为宏汇编程序。
3.链接
链接程序的功能就是把一个或多个目标文件合并成一个可执行文件,其后缀为.EXE。
其实在链接过程中一共形成两个文件:
第一个是可执行文件(.EXE)
4.运行
通过汇编和链接,最终形成的可执行文件已经排出了程序中的语法错误,可以直接执行。
但是可能还存在一些算法错误,这样的错误则要通过调试过程来修正。
常用的调试工具软件有DEBUG等。
四、实验步骤
例编写一个名字为ABCD.ASM的源程序,该程序的功能是在计算机屏幕上显示一个字符串“HELLO!
”。
1)编辑源程序
利用Windows2000操作系统附件中的“记事本”编辑如下源程序。
DATASEGMENT
S1DB'HELLO!
','$'
DATAENDS
STACKSEGMENTPARASTACK
DB64DUP(?
)
STACKENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAH,09H
MOVDX,OFFSETS1
INT21H
RET
MAINENDP
CODEENDS
ENDSTART
2)汇编
在MASM5.0中的汇编程序是MASM.EXE。
其命令格式为:
C:
〉MASMABCD.ASM
执行上述操作命令之后将在屏幕上显示如下信息:
Microsoft(R)MacroAssemblerVersion5.00
Copyright(C)MicrosoftCorp1981-1985,1987.Allrightsreserved
Objectfilename[ABCD.OBJ]:
Sourcelisting[NUL.LST]:
Crossreference[NUL.CRF]:
50678+410090Bytessymbolspacefree
0warningErrors
0SevereErrors
在汇编过程中产生了三个文件,其默认的文件名显示在屏幕上,如果不需要做任何改变就直接按Enter键。
通过屏幕上的显示,可以了解到在本次汇编过程中没有发生错误和警告,因此可以继续进行链接操作。
3)链接
在MASM5.0中的汇编程序是LINK.EXE。
其命令格式为:
C:
〉LINKABCD
执行上述命令后将在屏幕上显示如下信息:
Microsoft(R)OverlayLinkerVersion3.6
Copyright(C)MirosoftCorp1983-1987.Allrightsreserved
RunFile[ABCD.EXE]
ListFile[NUL.MAP]:
Libraries[.LIB]:
在链接过程中产生了两个文件,其默认的文件名显示在屏幕上,如果不需要做任何改变就直接按Enter键。
对于库文件一栏,如果不需要使用库文件,可以直接按Enter键;如果需要使用库文件,则要求输入所使用的库文件名字。
4)运行
其命令格式为:
C:
〉ABCD
在屏幕上就可以看到“HELLO!
”的字样了。
五、实验总结
通过本次实验基本掌握了汇编语言程序设计的上机步骤,(再自己写点)
实验四:
D/A和A/D转换
一、实验目的
1、掌握A/D转换芯片ADC0809将模拟量转换成数字量的过程与基本原理;
2、掌握ADC0809芯片的使用方法及对应的硬件电路;
3、掌握D/A转换芯片DAC0832将数字量转换成模拟量的过程与基本原理;
4、掌握DAC0832芯片的使用方法及对应的硬件电路;
5、掌握A/D转换或D/A转换程序的设计方法。
二、实验内容
1、利用实验机上的ADC0809做一通道A/D转换器,实验机上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,并用发光二极管显示(采用查询、延时或中断方式转换);若在LED数码管显示ADC0809转换结果,程序如何编写。
2、利用DAC0832将任意1字节数字量转换成电压模拟量,用电压表测量输出电压。
3、内容1改为三通道同时或轮流采集,在LED数码管显示,程序如何编写。
三、实验相关说明
计算机的信息为数字量信息,而对现场进行采样时,被测量一般是连续变化的物理量,物理量必须进行转换,变为数字量之后计算机才能进行处理,将模拟量转换成数字量的过程称为A/D转换。
在单片机控制系统中,模拟量被控参数通过A/D芯片转换成数字量送计算机。
计算机所处理的信息为数字量,而被控对象往往是一些连续变化的物理量,因此在计算机输出和被控对象之间必须设置D/A转换器。
在单片机控制系统中,计算机执行控制算法,求出控制量后,通过D/A芯片转换成模拟输出,控制被控对象。
一)A/D转换器
1、A/D转换器大致有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
2、本实验用的ADC0809属第二类,是八位A/D转换器。
每采集一次一般需100μs,A/D转换结束后会自动产生EOC信号。
本程序实例是以查询方式读入A/D转换结果。
实验系统具有8路A/D通道(模拟量输入端为IN0、IN1……IN7),地址分别为CFA0~CFA7H,当有EOC信号,A/D转换器转换完毕,可以读入转换好的数据了。
实现转换的过程是:
先向某一路通道写入任意数从而启动转换,然后对EOC状态进行判断,若转换完成,则读入数据即可。
A/D转换部分的参考程序如下:
MOVDPTR,#0CFA0H;选中通道0(D2D1D0=000)
MOVX@DPTR,A;启动转换
TEST:
MOVA,P1;EOC与P1相接
MOVXA,@DPTR;读入状态
JNBACC.7,TEST;判断EOC状态,EOC=0继续查询
MOVDPTR,#0CFA0H;EOC=1,转换完毕
MOVXA,@DPTR;读入数据
3.转换得到的二进制数字量通过P1口送到发光二极管显示。
二)D/A转换器
1、D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。
取值范围为一个周期,采样点越多,精度就越高。
本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。
两个寄存器均对数据独立进行锁存。
因而要把一个数据通过0832输出,要经两次锁存。
典型程序段如下:
MOVDPTR,#PORT
MOVA,#DATA
MOVX@DPTR,A
INCDPTR
MOVX@DPTR,A
其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。
启动D/A。
2、D/A转换取值范围为一个周期,在一个周期数据点越多,精度越高些。
本例采用的数据点为256点/周期,即最小数字量为0,最大为255(FFH)。
3、8位D/A转换器的输入数据N与输出电压Vo1的关系为
Vo1=-Vref*N/256(Vref为参考电压,Vref=-5V)
四、实验电路
五、实验仪器和设备
PC机、WAVE软件、E6000/L仿真器+POD-51仿真头、单片机应用与仿真
开发实验台、开关电源等。
六、实验步骤:
内容1
1、实验接线
0809CS«CS0(CFA0-CFA7H);IN0«定位器;0809EOC«PC7;PB0~PB7«发光二极管的输入LED1~LED8(查询方式连线)。
2、编程并全速运行。
3、旋转定位器,观察发光二极管或LED数码管的变化。
内容2
1、实验接线
0832CS«CS1(CFA8-CFAFH);电压表接AOUT孔。
2、编程并全速运行。
3、每输出一个数据,用电压表测量一次0832out的电压值,记录测量值,按任一键输出下一个数据。
七、程序(内容1):
ORG0000H
LJMPSTART
ORG0030H
START:
MOVDPTR,#0CFA0H
MOVX@DPTR,A
WAIT:
MOVA,P1
JBACC.0,NEXT;EOC接P1口
SJMPWAIT
NEXT:
MOVDPTR,#0CFA0H
MOVXA,@DPTR
MOVDPTR,#0CFB0H
MOVX@DPTR,A
MOVDPTR,#0CFA0H
MOVX@DPTR,A
JMPWAIT
END
八、实验体会
通过本次试验掌握了ADC0809将模拟量转换成数字量的过程与基本原理,芯片的使用方法及对应的硬件电路以及D/A转换芯片DAC0832将数字量转换成模拟量的过程与基本原理和A/D转换或D/A转换程序的设计方法。