昆明理工大学 汇编 实验五 输入输出程序设计
- 格式:doc
- 大小:557.50 KB
- 文档页数:9
-1- 昆明理工大学信息工程与自动化学院学生实验报告
( 2011 —2012 学年 第 1 学期 )
课程名称:汇编与微机接口 开课实验室:信自楼机房445 2011 年12月 13日
年级、专业、班 计科093 学号 200910405310 姓名 孙浩川 成绩
实验项目名称 实验五:输入输出程序设计 指导教师 袁梅宇
教师评语
该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□
该同学的实验能力: A.强 □ B.中等 □ C.差 □
该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□
实验报告是否规范: A.规范□ B.基本规范□ C.不规范□
实验过程是否详细记录: A.详细□ B.一般 □ C.没有 □
教师签名:
年 月 日
一、上机目的及内容
1) 掌握输入输出指令的使用;
2) 上网查3相步进电机的工作原理;
3) 用emu8086工具运行步进电机程序;
4) 对步进电机程序进行改进,精确控制其转速;
5) 观察并记录运行结果。
二、实验原理及基本技术路线图(方框原理图或程序流程图)
-2- 三、所用仪器、材料(设备名称、型号、规格等或使用软件)
1台PC及masm5.0
四、实验方法、步骤(或:程序代码或操作过程)
; this is an example of out instruction.
; it writes values to virtual i/o port
; that controls the stepper-motor.
; c:\emu8086\devices\stepper_motor.exe is on port 7
#start=stepper_motor.exe#
name "stepper"
#make_bin#
steps_before_direction_change = 20h ; 32 (decimal)
jmp start
; ========= data ===============
; bin data for clock-wise
; half-step rotation:
datcw db 0000_0110b
db 0000_0100b
db 0000_0011b
db 0000_0010b
; bin data for counter-clock-wise
; half-step rotation:
datccw db 0000_0011b
db 0000_0001b
db 0000_0110b
db 0000_0010b
; bin data for clock-wise
; full-step rotation:
datcw_fs db 0000_0001b
db 0000_0011b
db 0000_0110b
db 0000_0000b
-3-
; bin data for counter-clock-wise
; full-step rotation:
datccw_fs db 0000_0100b
db 0000_0110b
db 0000_0011b
db 0000_0000b
start:
mov bx, offset datcw ; start from clock-wise half-step.
mov si, 0
mov cx, 0 ; step counter
next_step:
; motor sets top bit when it's ready to accept new command
wait: in al, 7
test al, 10000000b
jz wait
mov al, [bx][si]
out 7, al
inc si
cmp si, 4
jb next_step
mov si, 0
inc cx
cmp cx, steps_before_direction_change
jb next_step
mov cx, 0
add bx, 4 ; next bin data
cmp bx, offset datccw_fs
jbe next_step
mov bx, offset datcw ; return to clock-wise half-step.
jmp next_step
-4- 五、实验过程原始记录( 测试数据、图表、计算等)
1.从7号端口读取数据到AL
2.测试电机是否准备好
-5-
3.如果没准备好就跳回第一步,继续从7号端口读取数据
4.状态初始化
-6-
5.把AL输出给7号端口,电机准备好
6.AL被置为6,即2号、1号通电,电机向右旋转一下。同时,计数器SI加1
-7-
7.比较SI是否等于4
-8-
8.若SI小于4则跳回next_step
9.此时SI=1,跳转到next_step,并说明此时电机已经准备好
10.判断此时电机已经准备好,继续循环
-9-
六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)
通过这次的上机实验,了解了汇编语言emu8006模拟器的使用方法,以及三项模拟电机程序的原理。而且在这次实验中我也更加深刻的体会到了理论与实践的比一致性,有时候我们是懂得了理论知识,但是在具体的运用之中,我们会发现很难实施,这就是理论和实践有时候的不一致性吧,但是只要我们多进行实践操作,这样很有利于我们以后的学习,提高我们的实际操作能力。
注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。