汇编实验5-输入输出程序设计-实验报告.doc

汇编实验5-输入输出程序设计-实验报告

昆明理工大学信息工程与自动化学院学生实验报告 ( 2011 — 2012 学年 第 1 学期 ) 课程名称: 汇编与微机接口 开课实验室:信自楼机房445 2011年12月06日 年级、专业、班 学号 姓名 成绩 实验项目名称 输入输出程序设计 指导教师 教师评语 该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□ 该同学的实验能力: A.强 □ B.中等 □ C.差 □ 该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□ 实验报告是否规范: A.规范□ B.基本规范□ C.不规范□ 实验过程是否详细记录: A.详细□ B.一般 □ C.没有 □ 教师签名: 年 月 日 一、实验目的和内容 1. 掌握输入输出指令的使用; 2. 上网查3相步进电机的工作原理; 3. 用emu8086工具运行步进电机程序; 4. 对步进电机程序进行改进,精确控制其转速。 二、实验原理及基本技术路线图(方框原理图) 步进电机的工作原理: 三、所用仪器、材料(设备名称、型号、规格等) 1. 操作系统平台:Windows 7。 2. 汇编环境:emu8086。 四、实验方法、步骤 1. 打开emu8086汇编开发环境; 2. 打开emu8086例子程序中的步进电机的源程序: D:\emu8086\examples\stepper_motor.asm 3. 运行该程序,观察运行情况,并结合步进电机的工作原理,阅读并理解程序的执行逻辑,读懂程序中的注释; 4. 尝试修改该程序,以精确控制步进电机的转速; 5. 运行修改后的程序,观察运行结果,并分析; 6. 记录实验过程,并完成实验报告。 五、实验过程原始记录(数据、图表、计算等) 1. 打开步进电机的控制程序: 2. 运行调试该程序,观察结果: 3. 阅读该程序,并添加注释(下面为了保存原版程序,打开程序的一个副本进行修改): 添加注释后的源代码如下: ; 这是一个输出控制的例子 ; 它向虚拟的I/O端口输出值 ; 以控制步进电机 ; d:\emu8086\devices\stepper_motor.exe 在7号端口 #start=stepper_motor.exe# name stepper #make_bin# steps_before_direction_change = 20h ; 十进制的32 jmp start ; ========= 数据 =============== ; 二进制的数据用以控制步进电机 ; 顺时针以半步循环方式(半个步距角)转动: datcw db 0000_0110b ;BC--C--AB--B--BC db 0000_0100b db 0000_0011b db 0000_0010b ; 二进制的数据用以控制步进电机 ; 逆时针以半步循环方式(半个步距角)转动: datccw db 0000_0011b ;AB--A--BC--B--AB db 0000_0001b db 0000_0110b db 0000_0010b ; 二进制的数据用以控制步进电机 ; 顺时针以整步循环方式(一个步距角)转动: datcw_fs db 0000_0001b ;A--AB--BC--0--A db 0000_0011b db 0000_0110b db 0000_0000b ; 二进制的数据用以控制步进电机 ; 逆时针以整步循环方式(一个步距角)转动: datccw_fs db 0000_0100b ;C--BC--AB--0--C db 0000_0110b db 0000_0011b db 0000_0000b start: mov bx, offset datcw ; 开始以顺时针半步循环方式执行 mov si, 0 mov cx, 0 ; 初始化计数器 next_step: ; 获取步进电机控制信号最高位, 若为1, 则表示就绪 wait: in al, 7 test al, jz wait mov al, [bx][si] out

文档评论(0)

1亿VIP精品文档

相关文档