




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工程经济投资项目实例试题及答案
- 2024年水利水电工程优化技术试题及答案
- 工程项目管理团队协作案例试题及答案
- 2025年工程经济独特解题方法试题及答案
- 高难度工程经济问题试题及答案
- 2025年长租公寓市场运营成本控制与盈利空间分析报告
- 工程项目中的变更流程管理试题及答案
- 工程经济策略分析师试题及答案
- 市政学学科交叉试题及答案探讨
- 行政管理学复习技巧试题及答案
- 2024年成都市城市管理委员会所属事业单位招聘真题
- 警犬培训授课课件
- 2025年四川绵阳交通发展集团有限责任公司招聘笔试参考题库附带答案详解
- 成本控制在质量管理中的策略试题及答案
- 人工智能在药物研发中的辅助作用与潜力
- 作风建设学习教育查摆问题清单及整改措施
- 2025届河北省石家庄第一中学高三下学期二模地理试题及答案
- 2024年山东开放大学招聘考试真题
- PSP问题解决流程分析
- 生活生命安全试题及答案
- 语文-华大新高考联盟2025届高三3月教学质量测评试题+答案
评论
0/150
提交评论