当前位置:文档之家› 北邮—微机原理与接口技术(1)

北邮—微机原理与接口技术(1)

微机原理与接口技术硬件实验报告
目录
1.实验一微机实验平台介绍及IO的使用 (3)
1.1.实验目的 (3)
1.2.实验内容及要求 (3)
1.3.实验环境及背景 (3)
1.4.实验步骤 (4)
1.4.1.使用debug的I、O命令读写端口 (4)
1.4.2.使用文本编辑器edit和编译器masm (5)
1.5.思考题 (11)
1.6.心得体会 (11)
参考资料 (12)
声明与致谢 (12)
1.实验一微机实验平台介绍及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)
MOV DX, E8E0
MOV AL, FE
OUT DX, AL
MOV AH, 0B
INT 21
OR AL, AL
JZ 0100
INT 20
输入结束后,直接输入回车即可推出-a。

然后,用-g选项运行程序,查看结果。

发现最右边的LED亮,其他不亮。

修改输出内容,再运行查看结果,可以发现:当输出位对应为1时,灯灭;输出为0时,灯亮。

下面,我们来分析一下以下这段程序的作用。

第一句是设置功能调用号,第二句是进行DOS功能调用,检测是否有键盘输入。

如果有键盘输入,则AL为00h,将由JZ 0100H跳转;如果有键盘输入,则AL为0FFh,程序继续执行。

程序执行到20H中断时,结束程序。

值得一提的是,在有些语句中,16进制数并不需要以’h’结尾。

这个是因为在debug模式下,语句的读写本来就是按照16进制的,没必要像写汇编源代码(*.asm文件)一样用’h’将16进制数与10进制数区别开来。

1.4.
2.使用文本编辑器edit和编译器masm
首先让我们来分析和设计一下这个程序。

这个程序“走马灯”需要速度可调、灯的移位方向可调、灯型可调,具有暂停功能,可以在用户需要的情况下结束程序(返回DOS)。

我们将这些控制端口设置在端口为0E8E0的拨码开关上。

具体开关的用途如下表:
表1拨码开关用途表
程序流程图:
图2走马灯流程图程序代码:
运行结果:
编译、连接并运行后,程序运转正常。

所有选项都可以按照预期方式控制,且可以正确返回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] 徐惠民. 微机原理与接口技术. 北京:高等教育出版社,2007.
[2] 田辉,甘勇. 微型计算机技术——系统、接口与通信. 北京:北京航空航天大学出版社,2001.
[3] 王玉良. 微机原理与接口技术. 北京:北京邮电大学出版社,2006.
[4] ftp://. 访问时间:2009年12月.
声明与致谢
本报告涉及所有源代码均属原创作品。

感谢电信工程学院实验中心和纪辉老师及其助教们的大力支持。

相关主题