- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微硬12班28号王哲
信息与通信工程专业
微原硬件实验报告
班 级: 2008211112
学 号: 班内序号: 28
姓 名: 王哲
实验一 熟悉实验环境及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表示要向端口输出的内容)回车
2.在Debug环境下,用a命令录入程序,用g命令运行
CDebug
-a
mov dx, 端口地址
mov al,输出内容
out dx, al
mov ah, 0bh
int 21h
or al, al
jz 0100
int 20h
-g
运行查看结果
修改输出内容
再运行查看结果
该程序段的作用是用out指令,将数据送入外设,当检测到按键输入,程序结束。
分析
mov ah, 0bh
int 21h
or al, al
jz 0100
int 20h
该段程序的作用
该段程序的作用是调用DOS的0b号中断,检测是否有按键输入。如果有按键,al返回0ffh;否则,返回0。or al, al 的结果是al,因此,如果没有按键,程序跳转到“mov dx, 端口地址”;否则,顺序执行“int 20h”,返回DOS。
3.利用EDIT工具编写汇编写跑马灯程序程序
实现功能
A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮)
四、思考题
通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。
答:在debug下向内存环境中写汇编程序时,系统默认为16进制,可以不加“H”;而当使用edit命令时,必须加“H”。
五、程序流程图
六、源程序
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 B
文档评论(0)