微机原理与接口技术硬件实验报告
- 格式:doc
- 大小:803.00 KB
- 文档页数:30
微原硬件实验报告
班级:07118 班
学号:070547
班内序号:26
姓名:杨帆
实验一熟悉实验环境及IO的使用
一,实验目的
1. 通过实验了解和熟悉实验台的结构,功能及使用方法。
2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。
3. 学会Debug 的使用及编写汇编程序
二,实验内容
1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,
2.用汇编语言编写跑马灯程序。(使用EDIT 编辑工具)实现功能
A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度
等)。
B.通过输出端口控制灯的工作状态(低电平灯亮)
三,实验步骤
1.实验板的IO 端口地址为EEE0H
在Debug 下,
I 是读命令。(即读输入端口的状态---拨码开关的状态)
O 是写命令。(即向端口输出数据---通过发光管来查看)
进入Debug 后,
读端口拨动实验台上八位拨码开关
输入I 端口地址回车
屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口
输入O 端口地址xx (xx 表示要向端口输出的内容)回车
查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。
2. 在Debug 环境下,用a 命令录入程序,用g 命令运行
C>Debug -a
mov dx, 端口地址
mov al,输出内容
out dx, al
mov ah, 0bh
int 21h
or al, al
jz 0100
int 20h
-g
运行查看结果,修改输出内容
再运行查看结果
分析
mov ah, 0bh
int 21h
or al, al
jz 0100
int 20h
该段程序的作用
3.利用EDIT 工具编写汇编写跑马灯程序程序
实现功能
A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm
录入程序
按Alt 键打开菜单进行存盘或退出
编译文件
C>MASM 文件名.asm
连接文件
C>LINK 文件名.obj
运行文件或用Debug 进行调试。
四,程序流程图
图表1:实验1的程序流程图
五,源程序代码
DATA SEGMENT ;数据段
BB DB 0FFH ;
DATA ENDS
STACK SEGMENT PARA STACK 'STACK' ;堆栈段DB 100 DUP(?)
STACK ENDS
CODE SEGMENT ;代码段ASSUME CS:CODE, SS:STACK ,DS:DATA BEGIN:MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV BL,7FH
BEG:MOV DX,0EEE0H
MOV AL,BL
OUT DX,AL ;点亮第8盏灯
CALL COUNT ;延时
MOV BL,AL
IN AL,DX
TEST AL,01H ;最低位拨码被按下?方向选择MOV AL,BL
JZ RL
RR: ROR AL,1 ;未按键,则向右点亮
JMP R1
RL:ROL AL,1 ;按下则向左点亮
R1:MOV BL,AL
MOV AH,0BH
INT 21H ;检查键盘缓冲区
OR AL,AL
JZ BEG
MOV AX,4C00H
INT 21H
COUNT PROC NEAR ;延时子程序
PUSH AX
MOV DX,0EEE0H
IN AL,DX ;检测拨码状态
MOV AH,0
MOV BX,0
ADD BX,AX
POP AX
COU1: MOV CX,0FFFFH
COU2: LOOP COU2
COU3: DEC BX ;调速
JNZ COU1
RET
COUNT ENDP
CODE ENDS
END BEGIN
六,思考题
通过实验说明用debug 中的 a 命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。
通过观察可以发现,编码时,凡是十六进制数据都是要加H的,而地址则不用。这是因为编译时所能识别的数据有多种,为了保证编译正常进行,必须要告诉编译器数据的类型。而地址只有默认的16进制形式,所以不需指定类型就能完成正确的编译,所以无须加H。而在DEBUG环境下,它的默认数据格式就是十六进制的,所以就不需要写出“H”字符;否则通不过编译。
七,实验收获和体会
在这次实验中,我们初步熟悉了在Debug环境下使用I/O命令,实现了对拨码开关状态的读取以及对发光二极管亮灭的控制,即初步尝试了对于微机接口的控制。通过控制发光二极管的亮与灭,结合相关程序的设计,我们实现了一个简单的跑马灯程序。结合查询拨码开关的状态,能够实现点亮发光二极管的方向、模式和速度的调整。这个跑马灯实验的程序使用的是简单的分支结构。
这次实验的要点是对I/O接口译码电路的理解以及使用,通过在Debug环境下的I/O命令,我们测试了外设功能,这使我们了解了地址与端口的对应情况,从而明确了跑马灯程序编写的流程和注意事项。通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的认识。这次实验也为以后的实验打下了基础,特别是,应先理解了译码电路的工作原理,然后才能进行编程。