版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术硬件实验报告目录1.实验一 微机实验平台介绍及IO的使用31.1.实验目的31.2.实验内容及要求31.3.实验环境及背景31.4.实验步骤41.4.1.使用debug的I、O命令读写端口41.4.2.使用文本编辑器edit和编译器masm51.5.思考题111.6.心得体会11参考资料12声明与致谢121. 实验一 微机实验平台介绍及IO的使用1.1. 实验目的1.1.1通过实验了解和熟悉实验台的结构,功能及使用方法;1.1.2通过实验掌握直接使用debug的I、O命令来读写IO端口;1.1.3学会debug的使用及编写汇编程序。1.2. 实验内容及要求1.2.1学习使用d
2、ebug命令,并用I、O命令直接对端口进行读写操作,1.2.2用汇编语言编写跑马灯程序。(可以使用EDIT编辑工具。)要求实现以下两个功能:A通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等);B通过输出端口控制灯的工作状态(低电平灯亮)。1.2.3使用时要注意,电源打开时不得插拔电缆及各种器件,一定要在断电的情况下连接电路,否则可能会烧坏整个实验系统。1.3. 实验环境及背景我们使用PCI_IDE50扁平电缆将PC机与实验扩展模块连接起来。在扩展实验平台上,有八个发光二极管、八个拨码开关。读取拨码开关和写发光二极管的端口地址已经被做成了0E8E0h。连接的PC机上安装有D
3、OS操作系统,并有MASM5开发工具。图1扩展实验模块1.4. 实验步骤1.4.1. 使用debug的I、O命令读写端口进入DOS,在命令行模式下输入命令debug,用-a选项写入下列程序:CODE (debug mode)MOVDX, E8E0MOVAL, FEOUTDX, ALMOVAH, 0BINT21ORAL, ALJZ0100INT20输入结束后,直接输入回车即可推出-a。然后,用-g选项运行程序,查看结果。发现最右边的LED亮,其他不亮。修改输出内容,再运行查看结果,可以发现:当输出位对应为1时,灯灭;输出为0时,灯亮。下面,我们来分析一下以下这段程序的作用。CODE (debug
4、 mode)MOVAH, 0BINT21 ORAL, ALJZ0100 INT20第一句是设置功能调用号,第二句是进行DOS功能调用,检测是否有键盘输入。如果有键盘输入,则AL为00h,将由JZ 0100H跳转;如果有键盘输入,则AL为0FFh,程序继续执行。程序执行到20H中断时,结束程序。值得一提的是,在有些语句中,16进制数并不需要以h结尾。这个是因为在debug模式下,语句的读写本来就是按照16进制的,没必要像写汇编源代码(*.asm文件)一样用h将16进制数与10进制数区别开来。1.4.2. 使用文本编辑器edit和编译器masm首先让我们来分析和设计一下这个程序。这个程序“走马灯”
5、需要速度可调、灯的移位方向可调、灯型可调,具有暂停功能,可以在用户需要的情况下结束程序(返回DOS)。我们将这些控制端口设置在端口为0E8E0的拨码开关上。具体开关的用途如下表:表1拨码开关用途表开关号端口的第几位向上拨(1)的意义向下拨(0)的意义S00退出程序,返回DOS程序正常进行S11走马灯向右循环移位走马灯向左循环移位S22走马灯暂停走马灯正在运动S33走马灯慢速运动走马灯快速运动S44三个灯同时亮只有一个灯亮程序流程图:图2走马灯流程图程序代码:CODE (marquee.asm); FILENAME : marquee.asm; AUTHOR : XIAO, Zhiqing (
6、No. 13 , Cl. 07105 ); DATE : 20091209; DESCRIPTION : revolving scenic lamps which shift in either direction; USAGE : switchers - ( SW0 is the most left one );SW0 ( play ) : UP exitDOWN play;SW1 ( direction ): UP rightDOWN left;SW2 ( pause ) :UP pauseDOWN play;SW3 ( speed ) :UP slowDOWN fast;SW4 ( mo
7、de ) :UP three lightsDOWN one lightDataSEGMENTSwStateDB 0LdStateDB 0FEHBufferDB 0DataENDSStackSEGMENT STACK 'STACK'DB 100H DUP (0)StackENDSCodeSEGMENTASSUME DS : Data , SS : Stack ,CS : CodeMainPROCPUSHDSXORAX , AXPUSHAXMOVAX, DataMOVDS, AXMOVldState , 0FEh ; initializeCALLEndlessRepeatRET ;
8、 unreachable instructionMainENDP; procedure EndlessRepeat is a procedure that do procedure; ProcToRepeat endless times.EndlessRepeatPROCEndlessLoop :CALLProcToRepeatJMPEndlessLoopRET ; unreachable instructionEndlessRepeatENDPProcToRepeatPROCCALLreadSwCALLexcuteDirectionCALLexcuteModeCALLexcutePause
9、; during this procedure, sws are read.CALLexcuteReturnToDosCALLexcuteSpeedRETProcToRepeatENDP; procedure DivFreq provide clock whose frequency is divided; by 1000H * 8000H = 134.2M timesDivFreq PROCPUSHCXMOV CX , 1000HMyLoop :PUSHCX MOV CX , 8000HMyNestedLoop :DEC CXJNZMyNestedLoopPOP CXDEC CXJNZMyL
10、oopPOP CXRETDivFreq ENDP; read the states of switchers from Input PortReadSw PROCPUSHAXPUSHDXMOVDX , 0E8E0HINAL , DXMOVSwState , ALPOPDXPOPAXRETReadSw ENDP; turn on and off the leds by Output PortWriteLd PROCPUSHDXPUSHAXMOVAL , LdStateMOVDX , 0E8E0HOUTDX , ALPOPAXPOPDXRETWriteLd ENDP; if first switc
11、her is up, quit the program and return to dos.excuteReturnToDosPROCTESTSWSTATE , 01HJZexitexcuteReturnToDosCALLreturnToDosexitexcuteReturnToDos :RETexcuteReturnToDosENDPReturnToDOSPROCMOVAX , 4C00HINT21HReturnToDOSENDPexcuteDirectionPROCTESTSWSTATE , 02HJZshiftLeftRORLDSTATE , 01HRORLDState , 01Hshi
12、ftLeft :ROLLDSTATE , 01HexitexcuteDirection :RETexcuteDirectionENDP; wait until S2 is downexcutePausePROCbeginexcutePause :CALL readSwTESTswState , 04HJNZbeginexcutePauseRETexcutePauseENDP; slow mode delays about three times as that of fast modeexcuteSpeedPROCCALLdivFreqTESTswState , 08HJZexitexcute
13、SpeedCALLdivFreqCALLdivFreqexitexcuteSpeed :RETexcuteSpeedENDPexcuteModePROCPUSHWORD PTR ldStateTESTswState , 10HJZsimpleMode; continuous 3 led lights onPUSHAXPUSHBXPUSHCXMOVAL , ldStateMOVBL , ALROLBL , 1ANDBL , ALMOVCL , BLROLCL , 1ANDAL , CLMOVldState , ALPOPCXPOPBXPOPAXsimpleMode :CALLwriteLDexi
14、texcuteMode :POPWORD PTR ldStateRETexcuteModeENDPCodeENDSENDMain运行结果:编译、连接并运行后,程序运转正常。所有选项都可以按照预期方式控制,且可以正确返回DOS。例如,当S4往下拨后,同一时刻有且只有一个灯亮;图3单灯模式当S4往上拨时,同一时刻有且只有三个灯亮。图4三灯模式本实验达到要求,通过了验收。1.5. 思考题通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。在debug模式下,语句的读写本来就是按照16进制的,没必要像写汇编源代码(*.asm文件)一样用h将16进制数与10进
15、制数区别开来。1.6. 心得体会这次试验是我第一次微机原理试验。在这次试验中,令我印象最深的是文本编辑器edit的使用。在以前的学习生活中,在Windows下我一般用Notepad+,在Linux下我一般用vim,编程时还会用到一些IDE配套的文本编辑器。这次,我第一次使用了文本编辑器edit。这个文本编辑器和绝大多数图形用户界面的文本编辑器不是很相同。例如,Windows下的Ctrl+C和Ctrl+V不能使用。熟悉一个文本编辑器确实是不易的。图5文本编辑器edit第二个印象最深的地方是当程序进入死循环时,没有找到办法退出了。这个特性对我的开发造成了一定的负面影响。当我们用图形界面IDE进行开发时,当程序进入死循环时,可以强制关闭程序。Linux下可以把这个进程kill掉。而DOS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线上健康传播内容承诺书6篇范文
- 2025年区块链金融行业金融科技创新与区块链应用研究报告及未来发展趋势预测
- 医生考试从业资格证及答案解析
- 2025年药物分析选择题库及答案
- 小区文明建设责任与义务承诺书(3篇)
- 2025年服装行业可穿戴智能服装发展研究报告及未来发展趋势预测
- 项目质量管理工具
- 轨道管理安全员考试题库及答案解析
- 2025年人工智能行业AI应用与技术发展研究报告及未来发展趋势预测
- 2025年区块链数字资产发展策略报告
- 上海购房合同(标准版)
- 2025年青海省公务员申论考试真题试卷(含答案)
- 文旅产业知识培训课件
- 浙江省浙南名校联盟2025-2026学年高三上学期10月联考英语试题
- 2026届新高考英语冲刺热点复习 2025年新高考1卷阅读理解D篇说题
- 新能源公交安全培训内容课件
- 企业人力资源数字化管理平台方案
- 2025年广东铁投集团校园招聘笔试参考题库附带答案详解
- 工作快乐生活演讲稿
- 建筑施工安全检查评分表(完整自动计算版)
- 自动喷水灭火系统施工验收规范与条文详细解读
评论
0/150
提交评论