微机原理实验指导Word格式文档下载.docx
- 文档编号:18354278
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:29
- 大小:390.69KB
微机原理实验指导Word格式文档下载.docx
《微机原理实验指导Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
可与PLX公司的开发软件PlxMon联合使用,用户可重新定义总线宽度,IO、MEMORY地址空间,中断方式等。
CPLD中集成了相当简单的逻辑,便于用户重新设计和升级,板上留有烧写CPLD的插座。
与QTH-2008PCI-C实验仪相连可实现硬件接口实验,包括8255、8253、8259等常用芯片的实验。
二软件说明
本实验的驱动所采用的软件有三种,分别是Microsoft的VisualC++6.0、VTOOLSD。
所用的驱动程序调试工具是DriverMonitor。
使用这些软件,可以在短期内快速准确的构成驱动程序的框架,便于驱动的编写。
同时调试工具能准确的地了解驱动的运行情况,对驱动进行跟踪,便于修改。
第三部分 实验简介
实验一系统认知
一、实验目的:
学习掌握利用QTH-2008PCI连机软件调试汇编程序。
二、实验内容:
程序1:
在数据段中定义5个数,求这5个数的和,并将结果存放到AX寄存器中(或内存SUM中)。
程序2:
从键盘接受任意字符,若是小写则转换为大写输出,否则原样输出。
三、程序清单:
DATASSEGMENT
BUFDB3,4,5,6,7
SUMDB2DUP(?
)
DATASENDS
CODESSEGMENT
ASSUMEDS:
DATAS,CS:
CODES
START:
MOVAX,DATAS
MOVDS,AX;
MOVSI,0
MOVCX,5
MOVAX,0
CLC
AGAIN:
ADDAL,BUF[SI]
ADCAH,0
INCSI
LOOPAGAIN;
MOVSUM,AX
MOVAX,4C00H;
INT21H
CODESENDS
ENDSTART
;
-------------------------------------------------------------------------------------
ASSUMECS:
NOP
MOVAH,01H
INT21H;
从键盘接收任意字符放在AL
……
PRINT:
MOVDL,AL
MOVAH,02H
INT21H;
将DL中ASCII码输出至屏幕
JMPSTART
CODESENDS
ENDSTART
四、实验要求:
1、利用实验箱开发软件调试程序。
编辑(EDIT)、宏汇编(MASM)、链接(LINK)、调试执行(Debug)
2、分析功能。
分析说明例子程序的功能:
完成什么功能?
执行结果是什么?
并对源程序进行标注以及画出源程序流程框图。
3、调试执行。
(具体可参看“Debug命令介绍”文件)
利用DEBUG调试命令进行调试,要求用到:
U(反汇编),R(显示寄存器的内容),R(修改寄存器的内容),D(显示内存单元),E(修改内存单元)命令。
T(单步执行),G(设断点执行)和G(连须执行)。
记录下每执行一条T命令
后的运行结果,写在实验报告“调试步骤及结果分析”中。
4、上级操作要熟练。
五、思考:
1、软件调试“四部曲“是什么?
2、执行程序有哪三种方法?
3、该程序完成什么功能?
如何察看原始数据?
如何显示最终结果?
4、MOVAX,DATAS和MOVDS,AX指令执行完后,在DS里送了个什么东西?
具体值是多少?
5、最后两条指令MOVAX,4C00H和INT21H的功能是什么?
6、如何看内存结果单元?
六、特别注意:
1、保存文件:
A、文件新建
在右边的工作区里输入编辑源程序。
比如,先输入数据段。
B、文件另存为在D盘建立目录test在文件名框输入test1.asm回车。
(不要用汉字,要用西文字母)
C、继续输入编辑源程序。
第B步特别重要。
比如编辑、宏汇编、链接都做了,那么EXE文件就应该生成了。
进入Debug后,一反汇编,却不是你的程序。
就是这个原因。
因为开发工具有记忆功能。
看一看左边的项目栏,就知道原来还是别人的项目。
2、工具栏图标:
工具栏没有调试用的五个图标,怎么办?
查看工具栏调试工具这样就可以了。
3、评价依据:
A、上课前点名+下课前签到。
B、老师来检查你的操作运行:
U+R+R+D+E+T+G
C、回答三个问题。
实验二分支程序设计
掌握分支程序设计的方法。
程序1:
符号函数SGN(X)的实现。
从键盘输入一个数字(0--9),并在屏幕显示它。
如非数字,则显示字母E。
DATASSEGMENT
XVARDW3A2BH
SGNDW?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVDS,AX
MOVAX,XVAR
CMPAX,0;
JGENEXT1
MINUS:
MOVAX,0FFFFH;
JMPDONE
NEXT1:
JGNEXT2
ZERO:
MOVAX,0;
NEXT2:
MOVAX,1;
--------------------------------------------------------
DONE:
MOVSGN,AX
MOVAX,4C00H
INT21H
ENDSTART
给变量X一个负数、0或正数,看运算结果。
;
--------------------------------------------------------------------------------------------------
4、利用实验箱连机软件调试程序。
5、对源程序进行标注,并画出流程图。
6、利用DEBUG调试方法进行调试,要求用到,U(反汇编),T(单步),G(断点执行),G(连须执行),D(显示内存单元),E(修改内存单元)命令,R(显示寄存器的内容)。
记录下每执行一条T命令后的运行结果,写在实验报告“调试步骤及结果分析”中。
7、用TurboDebugger界面,进行程序的调试。
8、编写程序2的代码,并调试出结果。
五、思考:
1、XVAR是多少位数?
2、MOVAX,XVAR指令中的源操作数和目的操作数分别是什么寻址方式?
可以到Debug中找到这条指令,并分析之。
3、本程序里有几个条件转移指令?
实现了几个分支?
4、每个分支后为什么必须有一条无条件转移指令?
5、如何察看原始数据?
如何显示计算结果?
6、根据数据段具体数据,从CMPAX,0指令开始,指出往下执行哪五条指令?
实验三循环程序设计
掌握循环程序设计的方法。
在数据段以NUMBER为首地址,存放有10个无符号数,求其最大数放到MAX单元中。
数据段的十个数:
01H,11H,22H,33H,44H,55H,66H,77H,88H,99H
两个多字节二进制数分别存放在数据段NUMB1和NUMB2为首地址的存储单元中。
求其和,相加的结果存放在以SUM为首址的单元中。
(教材P)
NUMBERDB01H,11H,22H,33H,44H,55H,66H,77H,88H,99H
MAXDB?
ASSUMECS:
CODES,DS:
MOVAX,DATAS
MOVDS,AX;
LEASI,NUMBER
LEADI,MAX
MOVCX,10
------------------------------------------------------------------
MOVAL,[SI]
INCSI
DECCX
CMPAL,[SI]
JANEXT
MOVAL,[SI]
NEXT:
INCSI
LOOPAGAIN
RESULT:
NOP
MOV[DI],AL;
存结果
MOVDL,AL
ADDDL,30H
MOVAH,02H
INT21H;
MOVAX,4C00H;
INT21H
CODESENDS
ENDSTART
并对源程序进行标注。
求出结果,并记录。
4、程序调试通过后,进行变化。
1、循环程序的3+1结构是什么?
2、初始化都做哪些工作?
3、改成求无符号数最小值,如何实现?
结果是多少?
改成求带符号数最大值、最小值呢?
4、初始化指令段能够被执行几次?
善后存结果段呢?
5、程序2有三组数据,用那几个寄存器做数据指针?
实验四基本IO口扩展实验
一实验目的
了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。
二实验内容说明
74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。
74LS273是一种8D触发器,当CLR为高电平且CLK端电平正跳变时,D0——D7端数据被锁存到8D触发器中。
本实验利用74LS244作为输入口,读取开关状态,并将此状态通过74LS273驱动发光二极管显示出来。
三实验原理图
四实验步骤
做硬件实验特别注意:
不允许带电插拔!
!
带电插线或者拔线会造成烧芯片、烧板子的严重后果。
1、必须确保在试验箱没有插扁平电缆和没有插电源线的情况下,才能进行连线。
2、线连好后,首先要关掉主机。
并在试验箱没有接电源线的情况下去连接扁平电缆。
3、硬件测试没有通过。
仍然是先关掉主机,再关掉试验箱电源。
在认真检查无误以后,才能改线。
这是实验4和以后的硬件实验必须遵守的三原则。
切记!
(1)实验连线:
Ø
74LS244的CS——ISA总线接口模块的IOY0。
Y7—Y0——开关K8—K1。
74LS273的CS——ISA总线接口模块的IOY2。
Q7—Q0——发光二极管L8—L1。
该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
该模块的数据线(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LAD0~LAD7)、地址线(LA0~LA7)。
(2)运行程序:
IO.ASM
(3)拨动开关,观察发光二极管的变化。
扩展I/O口连线图
五源程序IO.ASM
CODESSEGMENT
ASSUMECS:
CODES
MOVDX,分配给74LS244的端口地址
INAL,DX
MOVDX,分配给74LS273的端口地址
OUTDX,AL
JMPSTART
EXIT:
MOVAX,4C00H
INT21H
CODESENDS
六实验要求
1.希望达到开关拨上、对应灯亮,开关拨下、对应灯灭的效果,应怎样修改软件。
2.实验报告中要求对源程序进行注释。
七关于端口地址的获得
1、获得的方法
方法1:
控制面板→系统→硬件→设备管理器→QTH-2008PCI实验仪→
双击QTH-2008PCI-C→资源→输入/输出范围第二组I/O地址。
方法2:
在开发环境下,WINXP实验程序目录→获取PNP设备配置资源→第二组I/O地址。
(比如C400H)
2、说明:
则IOY0代表的端口地址为=C400H
同时IOY2代表的端口地址为=C440H。
其余类推。
例:
第二组输入/输出范围为C400-C4FF,意味
IOY0的地址从0C400H开始,对应0C400H~0C41FH。
以此类推:
IOY2的地址从0C440H开始,对应0C440H~0C45FH。
3、硬件测试:
硬件连接好了以后,可以利用开发软件自带的程序测试硬件连好没有。
方法见下图。
4、自己软件:
一旦硬件测试没有通过,立刻想起硬件实验三原则。
若硬件测试通过了,使用自己编写的软件继续调试。
实验五可编程并行接口8255的应用
(一)
一、实验目的:
了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。
二、实验内容:
流水灯实验(利用8255的A口和B口,循环点亮发光二极管L1~L8以及L9~L16)
(1)实验连线
●该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
●该模块的数据线(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据线(LAD0~LAD7)、地址线(LA0~LA7)。
●8255模块选通线CE连到ISA总线接口模块的IOY0。
●8255的PA0~PA7连到发光二极管的L1~L8。
●8255的PB0~PB7连到发光二极管的L9~L16。
(2)实验初步要求:
●分析注释源程序。
●总结出实验步骤。
●描述实验现象。
●若让灯的显示速度放慢,应修改程序的那个地方。
三、源程序:
;
数据段的定义
MY_DATASEGMENT
P8255_ADW0dc00H;
8255的PA口地址
P8255_BDW0dc01H;
8255的PB口地址
P8255_CDW0dc02H;
8255的PC口地址
P8255_MODEDW0dc03H;
8255的控制字口地址
MY_DATAENDS
代码段的定义
MY_CODESEGMENT
MY_CODE,DS:
MY_DATA
MOVAX,MY_DATA
MOVDS,AX
MOVDX,P8255_MODE
MOVAL,80H
OUTDX,AL
MOVDX,P8255_A
MOVAL,7FH
A1:
RORAL,1
MOVDX,P8255_A
OUTDX,AL
-------------------------------------延时子程序-------------------
DELAY:
MOVSI,13FFH
D11:
MOVCX,9000H
D22:
LOOPD22
DECSI
JNZD11;
延时结束
JMPA1
MOVAX,4C00H;
MY_CODEENDS
注意:
5255的端口地址具体机子不一样。
这是因为WINXP的设备是PNP的。
(1)可以到WINXP目录里查看PNP资源。
(2)或者到设备管理器里,察看资源页。
记录第二个IO地址项。
并修改源程序。
(3)得到的即为IOY0的地址,如0dc00H。
(4)IOY2的地址就为0dc40H。
(5)PA口、PB口、PC口、CW口端口地址连续。
既分别对应0dc00H、0dc01H、0dc02H、0dc03H。
四实验要求:
1、如何改变循环灯的显示速度?
2、如何加上PB口的代码段?
(提示:
用BL控制)
3、如何实现顺时针循环?
如何实现逆时针循环?
4、AL的初值为7FH,起什么做作用?
RORAL,01H指令的功能是什么?
5、给出实现顺时针循环的完整源程序段。
实验六可编程并行接口8255的应用
(二)
进一步掌握8255芯片的工作方式及编程应用。
二实验内容:
利用开关K01~K08控制发光二极管L1-L8。
具体要求:
开关拨上、对应灯亮,开关拨下、对应灯灭。
三硬件连线
●该模块的数据线(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据线(LAD0~LAD7)、地址线(LA0~LA7)。
●8255的PA0~PA7连到发光二极管的L1~L8。
●
8255的PB0~PB7连到开关K01~K08。
四程序流程图
五实验要求
1.根据流程图写出源程序,并调试通过。
2.总结实验步骤。
3.描述实验现象。
实验七可编程定时器/计数器8254实验-1
了解计数器的硬件连接方法及时序关系,掌握8254的各种模式的编程及其原理,用示波器观察各信号之间的时序关系。
二实验内容
将32Hz的晶振频率作为8254的时钟输入,利用定时器8254产生1Hz的方波,发光二极管不停闪烁,用示波器可看到输出的方波。
三实验步骤
(1)实验连线:
信号源模块短路32.0Hz,CLK1连到8254模块的CLK0。
8254模块选通线CS连到ISA总线接口模块的IOY0。
8254模块GATE0接开关K1。
K1拨到+5V;
OUT0接发光二极管L1。
该模块该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LAD0~LAD7)、地址线(LA0~LA7)。
8254.ASM。
(3)观察发光二极管,用示波器可看到输出的方波。
图3.18254定时器/计数器实验
四参考程序
MY_CODESEGMENT
MY_CODE
MOVDX,控制口地址;
写入方式控制字
MOVAL,37H;
计数器0,先读写低位,后读写高位,
OUTDX,AL;
方式3,BCD码计数
MOVDX,计数器0地址
MOVAL,20H;
初值低8位
OUTDX,AL
MOVAL,00H;
初值高8位
MOVAX,4C00H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 指导