资源描述:
《北邮微原硬件实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息与通信工程学院微原硬件实验报告姓名:班级:20122111262014.12.21实验一熟悉实验环境及IO的使用一,实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。2.通过实验掌握直接使用Debug的I、O命令来读写IO端口。3.学会Debug的使用及编写汇编程序二,实验内容1.学习使用Debug命令,并用I、O命令直接对端口进行读写操作,2.用汇编语言编写跑马灯程序。(使用EDIT编辑工具)实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的IO端口地址为EEE0H在
2、Debug下,I是读命令。(即读输入端口的状态---拨码开关的状态)O是写命令。(即向端口输出数据---通过发光管来查看)进入Debug后,读端口拨动实验台上八位拨码开关输入I端口地址回车屏幕显示xx表示从端口读出的内容,即八位开关的状态ON是0,OFF是1写端口输入O端口地址xx(xx表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0是灯亮,1是灯灭。2.在Debug环境下,用a命令录入程序,用g命令运行C>Debug-amovdx,端口地址moval,输出内容outdx,almovah,0bhint21horal,aljz0100int20h-g运行查看结果,修改输出内容
3、再运行查看结果分析movah,0bhint21horal,aljz0100int20h该段程序的作用:检测键盘有没有按键,有则返回DOS。没有继续执行3.利用EDIT工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT文件名.asm录入程序按Alt键打开菜单进行存盘或退出编译文件C>MASM文件名.asm连接文件C>LINK文件名.obj运行文件或用Debug进行调试。四,程序流程图开始D7=0?结束左移CX赋值 亮LED 调用延时D6=0?右移硬件连线图:五,源程序代
4、码datasegmentleddb0cfhdataendsstacksegment'stack'stackdb100dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstartprocfarpushdsxorax,axpushaxmovax,datamovds,axmovdx,0eee0hloop0:inal,dxmovah,alandal,80hxoral,80hjzloop4moval,ahandal,40hxoral,40hjzloop2movah,alandal,20hxoral,20hjzstoprolled,1j
5、mploop3loop2:rorled,1loop3:andah,3fhmovcl,ahmovch,0moval,ledoutdx,alinccxloop1:calldelaylooploop1jmploop0loop4:retfstop:movled,0ffhmoval,ledoutdx,aljmploop0startendpdelayprocpushcxmovcx,1500hdelay1:pushcxmovcx,800hdelay2:loopdelay2popcxloopdelay1popcxretdelayendpcodeendsendstart六,思考题通过实验说明用debug
6、中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。答:在DEBUG环境下,地址都是默认以16进制显示的,所以当语句中的数据是地址时,可以不加H,如果输入的不是地址而是数据时,就要加上H以表示为十六进制数七,实验收获和体会在这次试验中,我主要学会使用debug环境下的I/O命令,利用该命令点亮了LED灯,并且读取了拨码开关的状态,并知道了如何利用键盘检测返回DOS,在跑马灯实验中,我学会了写延时子程序,在一开始只用了一层循环,导致速度过快而无法观察到跑马灯的效果,在同学的帮助下我编写了二层循环才达到了应有的效果。同时,自己也整体的练习了汇编语言程序的编写,包括段声明
7、,子程序编写等等。除了软件部分,也学习了实验板上的电路连接,初步了解了CPU是如何通过总线读写数据和地址的,为以后的学习奠定了基础。实验二8255A并行接口应用一、实验目的1.掌握8255A的功能及方式0、1的实现2.熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。3.了解七段数码管显示数字的原理。4.掌握同时显示多位数字的技术。二、实验要求在实验一的基础上学习PIO芯片(8255)编程应用,熟悉平台的主要内容。CS用Y0(EE