- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
北邮微机原理硬件实验-实验报告
PAGE20
微机原理与接口技术
硬件实验报告
姓名:曹爽
学号:2013210640
班级:2013211124
2016年1月10日
目录
实验一:熟悉实验环境及IO的使用
实验目的
通过实验了解和熟悉实验台的结构、功能及使用方法。
通过实验掌握直接使用Debug的I、O命令来读写IO端口。
学会Debug的使用及编写汇编程序。
实验内容及要求
学习使用Debug命令,并用I、O命令直接对端口进行读写操作。
用汇编语言编写跑马灯程序。(使用EDIT编辑工具)实现功能。
A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮)。
注意:电源打开时不得插拔电缆及各种器件。
连接电路时一定要在断电的情况下连接,否则可能会烧坏整个实验系统。
实验步骤
这里仅简要叙述利用EDIT工具编写汇编写跑马灯程序的步骤。
编写:C>EDIT文件名.asm
编译:C>MASM文件名.asm
连接:C>LINK文件名.obj
运行:C>文件名.exe
或用Debug进行调试。
程序流程图
图1.4.1程序流程图
源代码
CODESEGMENT
ASSUMECS:CODE
START:MOVAH,0FEH ;将初始灯设为右起第1灯亮
LOOP0:MOVDX,0EEE0H ;将I/O端口地址设为EEE0
INAL,DX ;从端口读入数据,提取拨码开关右起第3位状态
ANDAL,20H
CMPAL,20H
JNZSTOP ;若状态为‘0’,则保持位置不变,暂停
INAL,DX ;提取拨码开关右起第2位状态
ANDAL,40H
CMPAL,40H
JNZFAN ;若状态为‘0’,则右移亮灯位置
ROLAH,1 ;左移亮灯位置
STOP:JMPDISP
FAN:RORAH,1
DISP:MOVAL,AH
OUTDX,AL ;输出到端口,亮灯
MOVCX,8000H ;外循环次数
MOVBX,8000H ;内循环次数
LOOP1:DECBX
JNZLOOP1 ;内循环,BX减少到0
MOVBH,80H ;重设内循环次数80H次
INAL,DX
ANDAL,10H
CMPAL,10H ;提取拨码开关右起第4位状态
JNZS ;若为‘1’,则设置内循环次数为10H次
MOVBH,10H
S:LOOPLOOP1 ;外循环,CX减少到0
INAL,DX
ANDAL,80H
CMPAL,80H ;提取拨码开关右起第1位状态
JNZLOOP0 ;若为‘0’,则继续显示,否则结束程序
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
思考题
通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。
答:主要是出于数据辨认的角度。凡是十六进制数据都是要加H的,而地址则不用。这是由于编译时所能识别的数据有很多种,为了保证编译正常进行,必须要告诉编译器数据的类型。地址只有默认的16进制形式,不需指定类型就能完成正确的编译,所以无须加H。而在DEBUG环境下,它的默认数据格式就是十六进制的,所以就不需要写出“H”字符;否则通不过编译。
实验结果和心得体会
这次实验是我们第一次微原硬件实验,之前的一次软件实验让我们熟悉了DOS界面下的操作,由于间隔时间较长,这次我们又重新熟悉了一遍。并且,与软件实验不同,硬件实验是通过编程的方式作用于硬件实验板上,为此,我们首先熟悉了一下实验板,编写了一些简单的小程序控制实验板。在熟悉了I/O端口之后,我们开始编写跑马灯程序。并且能够通过拨码开关的选择,控制工作模式、速度、反向、暂停等功能。
这次实验的要点是对I/O接口译码电路的理解以及使用,我们通过测试,理解了地址与端口的对应情况,进而才能编写出跑马灯程序。
通过本次实验,我们掌握了地址译码电路的设计方法和实现原理,加深了对硬件的I/O接口技术的理解。实验中出现的一些问题,也成为我们调试程序的宝贵经验,为后续的实验打下了基础。
实验二:8255A并行接口应用
实验目的
掌握8255A的功能及方式0、1的实现。
熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。
了解七段数码管显示数字的原理。
掌握同时显示多位数字的技术。
实验内容及要求
在实验一的基础上学习PIO芯片(8255)编程应用,熟悉平台的主要内容。CS用Y0(EE00H)。
(一)简要说明:
在方式0(输入/输出)下,以A口为输出口,B口为输出口,A
文档评论(0)