




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术硬件实验报告目录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学习使用debug命令,并用I、O命令直接对端口进行读写操作,1.2.2用汇编语言编写跑马灯程序。(可以使用EDIT编辑工具。)要求实现以下两个功能:A通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等);B通过输出端口控制灯的工作状态(低电平灯亮)。1.2.3使用时要注意,电源打开时不得插拔电缆及各种器件,一定要在断电的情况下连接电路,否则可能会烧坏整个实验系统。1.3. 实验环境及背景我们使用PCI_IDE50扁平电缆将PC机与实验扩展模块连接起来。在扩展实验平台上,有八个发光二极管、八个拨码开关。读取拨码开关和写发光二极管的端口地址已经被做成了0E8E0h。连接的PC机上安装有DOS操作系统,并有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 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首先让我们来分析和设计一下这个程序。这个程序“走马灯”需要速度可调、灯的移位方向可调、灯型可调,具有暂停功能,可以在用户需要的情况下结束程序(返回DOS)。我们将这些控制端口设置在端口为0E8E0的拨码开关上。具体开关的用途如下表:表1拨码开关用途表开关号端口的第几位向上拨(1)的意义向下拨(0)的意义S00退出程序,返回DOS程序正常进行S11走马灯向右循环移位走马灯向左循环移位S22走马灯暂停走马灯正在运动S33走马灯慢速运动走马灯快速运动S44三个灯同时亮只有一个灯亮程序流程图:图2走马灯流程图程序代码:CODE (marquee.asm); FILENAME : marquee.asm; AUTHOR : XIAO, Zhiqing ( 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 ( mode ) :UP three lightsDOWN one lightDataSEGMENTSwStateDB 0LdStateDB 0FEHBufferDB 0DataENDSStackSEGMENT STACK STACKDB 100H DUP (0)StackENDSCodeSEGMENTASSUME DS : Data , SS : Stack ,CS : CodeMainPROCPUSHDSXORAX , AXPUSHAXMOVAX, DataMOVDS, AXMOVldState , 0FEh ; initializeCALLEndlessRepeatRET ; unreachable instructionMainENDP; procedure EndlessRepeat is a procedure that do procedure; ProcToRepeat endless times.EndlessRepeatPROCEndlessLoop :CALLProcToRepeatJMPEndlessLoopRET ; unreachable instructionEndlessRepeatENDPProcToRepeatPROCCALLreadSwCALLexcuteDirectionCALLexcuteModeCALLexcutePause ; 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 CXJNZMyLoopPOP 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 switcher is up, quit the program and return to dos.excuteReturnToDosPROCTESTSWSTATE , 01HJZexitexcuteReturnToDosCALLreturnToDosexitexcuteReturnToDos :RETexcuteReturnToDosENDPReturnToDOSPROCMOVAX , 4C00HINT21HReturnToDOSENDPexcuteDirectionPROCTESTSWSTATE , 02HJZshiftLeftRORLDSTATE , 01HRORLDState , 01HshiftLeft :ROLLDSTATE , 01HexitexcuteDirection :RETexcuteDirectionENDP; wait until S2 is downexcutePausePROCbeginexcutePause :CALL readSwTESTswState , 04HJNZbeginexcutePauseRETexcutePauseENDP; slow mode delays about three times as that of fast modeexcuteSpeedPROCCALLdivFreqTESTswState , 08HJZexitexcuteSpeedCALLdivFreqCALLdivFreqexitexcuteSpeed :RETexcuteSpeedENDPexcuteModePROCPUSHWORD PTR ldStateTESTswState , 10HJZsimpleMode; continuous 3 led lights onPUSHAXPUSHBXPUSHCXMOVAL , ldStateMOVBL , ALROLBL , 1ANDBL , ALMOVCL , BLROLCL , 1ANDAL , CLMOVldState , ALPOPCXPOPBXPOPAXsimpleMode :CALLwriteLDexitexcuteMode :POPWORD PTR ldStateRETexcuteModeENDPCodeENDSENDMain运行结果:编译、连接并运行后,程序运转正常。所有选项都可以按照预期方式控制,且可以正确返回DOS。例如,当S4往下拨后,同一时刻有且只有一个灯亮;图3单灯模式当S4往上拨时,同一时刻有且只有三个灯亮。图4三灯模式本实验达到要求,通过了验收。1.5. 思考题通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。在debug模式下,语句的读写本来就是按照16进制的,没必要像写汇编源代码(*.asm文件)一样用h将16进制数与10进制数区别开来。1.6. 心得体会这次试验是我第一次微机原理试验。在这次试验中,令我印象最深的是文本编辑器edit的使用。在以前的学习生活中,在Windows下我一般用Notepad+,在Linux下我一般用vim,编程时还会用到一些IDE配套的文本编辑器。这次,我第一次使用了文本编辑器edit。这个文本编辑器和绝大多数图形用户界面的文本编辑器不是很相同。例如,Windows下的Ctrl+C和Ctrl+V不能使用。熟悉一个文本编辑器确实是不易的。图5文本编辑器edit第二个印象最深的地方是当程序进入死循环时,没有找到办法退出了。这个特性对我的开发造成了一定的负面影响。当我们用图形界面IDE进行开发时,当程序进入死循环时,可以强制关闭程序。Linux下可以把这个进程kill掉。而DOS下尚未发现解决办法。这使得返回DOS的功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 私立幼儿园股权出售与幼儿教育质量监督及评估合同
- 天津市安全员及答案
- 农村会议考试试题及答案
- 学院奖榄菊获奖营销方案
- 2025年微电网群储能系统与新能源发电协同优化配置研究报告
- 温岭活动策划方案收费标准
- 2025年皮革涂饰考试题目及答案
- 2025年山西英语中考真题及答案
- 5.18 轮轴的秘密(教学设计)2023-2024学年五年级下册科学冀人版
- 开学说课稿-2025-2026学年中职基础课-数学工具与数学建模专题-高教版(2021)-(数学)-51
- DB6501∕T 035-2022 乌鲁木齐市海绵城市建设标准图集
- 智力障碍教学课件
- 颌下淋巴结肿大的护理
- 温州市乐清市文化旅游投资集团有限公司招聘笔试真题2024
- 铁路行车安全培训课件
- 中文版儿童睡眠习惯问卷CSHQ 含评分维度
- 机长给小学生讲课课件
- 英语教学案例范文(6篇)
- 2025年多媒体与网络技术专业考试试题及答案
- 高中英语译林版必修第一册课文语法填空知识点
- DZ/T 0254-2014页岩气资源/储量计算与评价技术规范
评论
0/150
提交评论