微机原理步进电机控制课程设计报告

合集下载

微机原理步进电机课程设计

微机原理步进电机课程设计

微机原理步进电机课程设计一、课程目标知识目标:1. 让学生掌握微机原理在步进电机控制中的应用,理解步进电机的结构、原理及其特点。

2. 使学生了解步进电机与微控制器之间的接口技术,掌握步进电机的驱动程序编写方法。

3. 让学生掌握步进电机速度和位置控制的基本算法,并运用到实际项目中。

技能目标:1. 培养学生运用微机原理解决实际问题的能力,学会编写和调试步进电机控制程序。

2. 培养学生的动手实践能力,能独立完成步进电机的组装、调试和故障排查。

3. 培养学生团队协作能力,通过分组合作完成课程设计任务。

情感态度价值观目标:1. 激发学生对微机原理和步进电机控制技术的兴趣,培养其探索精神和创新意识。

2. 培养学生严谨、认真的学习态度,养成良好的实验操作习惯。

3. 增强学生的环保意识,关注步进电机在节能环保领域的应用。

本课程针对高年级学生,课程性质为理论与实践相结合。

在分析课程性质、学生特点和教学要求的基础上,将课程目标分解为具体的学习成果。

教学过程中,注重培养学生的实际操作能力和团队协作精神,使学生在完成课程设计任务的过程中,达到知识、技能和情感态度价值观的全面提升。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 微机原理基础:回顾微控制器的基本原理,重点讲解微控制器与步进电机的接口技术,涉及课本第3章相关内容。

2. 步进电机原理与结构:介绍步进电机的种类、结构、原理及特点,对应课本第5章内容。

3. 步进电机驱动技术:讲解步进电机的驱动电路设计,包括驱动芯片的选型、接口电路设计等,参考课本第6章相关内容。

4. 步进电机控制算法:学习步进电机的速度和位置控制算法,如PID控制、闭环控制等,结合课本第7章内容。

5. 实践操作:分组进行步进电机的组装、调试及控制程序编写,巩固理论知识,培养实际操作能力。

教学大纲安排如下:第1周:微机原理基础回顾,了解步进电机接口技术;第2周:学习步进电机原理与结构,选型及参数了解;第3周:步进电机驱动技术学习,驱动电路设计;第4周:步进电机控制算法学习,编写控制程序;第5周:实践操作,步进电机组装、调试及故障排查;第6周:课程设计总结,成果展示及评价。

步进电机控制课程设计

步进电机控制课程设计

步进电机控制 课程设计一、课程目标知识目标:1. 让学生理解步进电机的原理与结构,掌握其工作方式;2. 使学生掌握步进电机控制的基础知识,包括驱动电路的设计与控制算法;3. 引导学生了解步进电机在自动化设备中的应用。

技能目标:1. 培养学生能够运用所学知识进行步进电机的选型与安装;2. 培养学生具备编写步进电机控制程序的能力,实现电机的精确控制;3. 提高学生动手实践能力,能够独立完成步进电机控制系统的搭建与调试。

情感态度价值观目标:1. 培养学生对步进电机控制技术的兴趣,激发学生学习热情;2. 培养学生具备团队协作精神,能够在小组合作中发挥个人优势;3. 引导学生认识到步进电机控制技术在工业自动化中的重要性,树立科技创新意识。

分析课程性质、学生特点和教学要求:本课程为电子技术及应用领域的一门实用课程,针对高年级学生,他们在前期已经掌握了电子技术基础知识,具备一定的实践能力。

本课程旨在进一步提高学生的实际操作能力,培养他们解决实际问题的能力。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果。

通过本课程的学习,学生能够将理论知识与实际应用相结合,具备步进电机控制系统的设计与实施能力,为将来的职业生涯打下坚实基础。

二、教学内容1. 步进电机原理与结构:- 步进电机的工作原理- 步进电机的分类及结构特点- 步进电机的性能参数2. 步进电机控制系统基础:- 驱动电路设计与原理- 控制算法原理及应用- 步进电机与控制器接口技术3. 步进电机控制程序编写:- 控制程序设计流程- 编程语言及开发环境选择- 步进电机控制程序实例4. 步进电机控制系统实践:- 步进电机选型与安装- 控制系统硬件连接与调试- 控制程序下载与运行5. 步进电机应用案例分析:- 步进电机在自动化设备中的应用案例- 案例分析与讨论- 创新设计与实践教学内容安排与进度:第一周:步进电机原理与结构学习第二周:步进电机控制系统基础学习第三周:步进电机控制程序编写学习第四周:步进电机控制系统实践操作第五周:步进电机应用案例分析及创新设计教材章节关联:《电子技术与应用》第四章:电机控制技术《自动化控制系统》第三章:步进电机及其控制系统教学内容确保科学性和系统性,结合课程目标,按照教学大纲安排和进度,使学生能够循序渐进地掌握步进电机控制相关知识。

步进电机控制课程设计报告

步进电机控制课程设计报告

(封面)XXXXXXX学院微机原理课程设计实验报告题目:院(系):专业班级:学生姓名:指导老师:时间:年月日课题名:步进电机控制一、课题内容和提示:编程提示:(1)步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机做步进式旋转。

调节输入脉冲的频率可改变步进电机的转速。

(2)编写程序使步进电机按正转10圈,反转5圈,再正转10圈,再反转5圈的规律旋转。

(3)调整延时参数,使步进电机的转动速度为每秒5转。

二、报告要求:每秒5转对应的延时参数是多少?,这个数字与微机的速度有什么关系?为什么?三、设计思路:(1)前言:步进电机具有控制简便、定位准确等特点。

随着科学技术的发展,在许多领域将得到广泛的应用。

鉴于传统的脉冲系统移植性不好,本文提出微机控制系统代替脉冲发生器和脉冲分配器,用软件的方法产生控制脉冲,通过软件编程可以任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。

以简化控制电路,降低生产成本,提高系统的运行效率和灵活性。

在此基础上提出了双三拍步进电机程序控制的硬件接口电路、程序流程图和汇编程序。

步进电机是自动控制系统中常用的执行部件。

步进电机的输入信号为脉冲电流,它能将输入的脉冲信号转换为阶跃型的角位移或直线位移,因而步进电机可看作是一个串行的数/模转换器。

由于步进电机能够直接接受数字信号,而不需数/模转换,所以使用微机控制步进电机显得非常方便。

(2)步进电机有以下优点:(1)通常不需要反馈就能对位置和速度进行控制;(2)位置误差不会积累;(3)与数组设备兼容,能够直接接收数字信号;(4)可以快速启停。

(3)步进电机的工作原理:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

控制步进电机实验报告(3篇)

控制步进电机实验报告(3篇)

第1篇一、实验目的1. 理解步进电机的工作原理及控制方法。

2. 掌握单片机与步进电机驱动模块的接口连接方法。

3. 学习使用C语言编写程序,实现对步进电机的正反转、转速和定位控制。

4. 通过实验,加深对单片机控制系统的理解。

二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是控制精度高、响应速度快、定位准确。

步进电机控制实验主要涉及以下几个方面:1. 步进电机驱动模块:常用的驱动模块有ULN2003、A4988等,它们可以将单片机的数字信号转换为步进电机的控制信号。

2. 单片机:单片机是整个控制系统的核心,负责接收按键输入、处理数据、控制步进电机驱动模块等。

3. 步进电机:步进电机分为单相、双相和三相等类型,本实验使用的是双相四线步进电机。

三、实验设备1. 单片机开发板:例如STC89C52、STM32等。

2. 步进电机驱动模块:例如ULN2003、A4988等。

3. 双相四线步进电机。

4. 按键。

5. 数码管。

6. 电阻、电容等元件。

7. 电源。

四、实验步骤1. 硬件连接(1)将步进电机驱动模块的输入端(IN1、IN2、IN3、IN4)分别连接到单片机的P1.0、P1.1、P1.2、P1.3口。

(2)将按键的输入端连接到单片机的P3.0口。

(3)将数码管的段选端连接到单片机的P2口。

(4)将步进电机驱动模块的电源端连接到电源。

(5)将步进电机连接到驱动模块的输出端。

2. 编写程序(1)初始化单片机I/O端口,设置P1口为输出端口,P3.0口为输入端口,P2口为输出端口。

(2)编写按键扫描函数,用于读取按键状态。

(3)编写步进电机控制函数,实现正反转、转速和定位控制。

(4)编写主函数,实现以下功能:a. 初始化数码管显示;b. 读取按键状态;c. 根据按键状态调用步进电机控制函数;d. 更新数码管显示。

3. 调试程序(1)将程序烧写到单片机中;(2)打开电源,观察数码管显示和步进电机运行状态;(3)根据需要调整程序,实现不同的控制效果。

步进电机微机实验报告

步进电机微机实验报告

步进电机微机实验报告步进电机微机实验报告引言:步进电机是一种特殊的电动机,它可以根据输入的电脉冲信号精确地控制转动角度和速度。

在本次实验中,我们使用了微机控制步进电机的转动,通过编写程序和控制电路,实现了步进电机的正转、反转和定位功能。

本报告将详细介绍实验的目的、原理、实验过程和结果,并对实验中遇到的问题进行分析和解决。

一、实验目的本次实验的目的是通过微机控制步进电机的转动,掌握步进电机的工作原理和控制方法。

具体目标包括:1. 理解步进电机的工作原理和结构特点;2. 掌握步进电机的控制方式和驱动电路设计;3. 通过编写程序实现步进电机的正转、反转和定位功能;4. 分析实验中可能遇到的问题,并提出解决方案。

二、实验原理步进电机是一种将电脉冲信号转化为机械转动的电动机。

它由定子、转子和驱动电路组成。

定子上有多个绕组,每个绕组上有若干个磁极。

转子上有多个磁极,与定子的磁极相对应。

通过改变绕组的通电顺序,可以使转子按一定的步距转动。

步进电机有两种常见的控制方式:全步进和半步进。

全步进模式下,每个步进脉冲使电机转动一个步距角度;半步进模式下,每个步进脉冲使电机转动半个步距角度。

在实验中,我们将使用全步进模式进行控制。

三、实验过程1. 设计驱动电路:根据步进电机的额定电流和电压,设计合适的驱动电路。

选择合适的功率晶体管和电流限制电阻,确保电机能够正常工作。

2. 连接电路:按照驱动电路的设计连接步进电机和微机。

注意接线的正确性和稳定性。

3. 编写控制程序:使用合适的编程语言编写步进电机的控制程序。

程序需要实现电机的正转、反转和定位功能。

4. 调试程序:通过调试程序,确保电机能够按照预期的方式工作。

可以通过改变电脉冲的频率和脉冲数来调整电机的转速和转动角度。

5. 实验结果记录:记录电机的转动角度、转速和实际运行情况。

分析实验结果,验证实验的准确性和可行性。

四、实验结果与分析经过实验,我们成功实现了步进电机的正转、反转和定位功能。

步进电机微机实验报告

步进电机微机实验报告

一、实验目的1. 熟悉步进电机的工作原理和特性。

2. 掌握通过微机控制步进电机的基本方法。

3. 了解步进电机在微机控制下的应用。

二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是步进角固定,控制精度高,响应速度快。

步进电机的工作原理是:当给步进电机输入一定频率的脉冲信号时,电机就会以一定的步进角进行旋转。

步进电机的控制方式主要有以下几种:1. 单相控制:将步进电机绕组分为A、B、C、D四相,每相依次通电,实现电机的旋转。

2. 双相控制:将步进电机绕组分为A、B两相,通过改变A、B两相的通电顺序,实现电机的旋转。

3. 四相控制:将步进电机绕组分为A、B、C、D四相,通过改变A、B、C、D四相的通电顺序,实现电机的旋转。

三、实验设备1. 微机:一台2. 步进电机驱动器:一台3. 步进电机:一台4. 编程软件:例如Keil、IAR等5. 连接线:若干四、实验内容1. 步进电机基本特性测试(1)观察步进电机在不同脉冲频率下的转动情况。

(2)观察步进电机在不同脉冲数下的转动角度。

2. 步进电机单相控制(1)编写程序,实现步进电机单相控制。

(2)测试步进电机单相控制下的转动情况。

3. 步进电机双相控制(1)编写程序,实现步进电机双相控制。

(2)测试步进电机双相控制下的转动情况。

4. 步进电机四相控制(1)编写程序,实现步进电机四相控制。

(2)测试步进电机四相控制下的转动情况。

5. 步进电机转速控制(1)编写程序,实现步进电机转速控制。

(2)测试步进电机在不同转速下的转动情况。

6. 步进电机转向控制(1)编写程序,实现步进电机转向控制。

(2)测试步进电机正转和反转的情况。

五、实验步骤1. 连接步进电机驱动器和步进电机。

2. 在微机上编写程序,实现步进电机的基本控制。

3. 编写程序,实现步进电机单相、双相、四相控制。

4. 编写程序,实现步进电机转速和转向控制。

5. 运行程序,观察步进电机的转动情况。

微机步进电机实验报告

微机步进电机实验报告

一、实验目的1. 了解步进电机的工作原理,掌握其控制方式和调速方法。

2. 学习使用微机对步进电机进行控制,提高微机应用能力。

3. 培养实验操作和数据分析能力。

二、实验设备及器件1. 微机一台2. 步进电机驱动器一台3. 步进电机一台4. 电源一个5. 连接导线若干三、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,具有定位精度高、响应速度快、控制简单等优点。

步进电机的工作原理是利用电机的磁极与定子磁极之间的磁力相互作用,通过控制脉冲信号的输入,使电机产生相应的角位移。

步进电机的控制方式主要有以下几种:1. 单拍控制:每输入一个脉冲信号,电机转动一个步距角。

2. 双拍控制:每输入两个脉冲信号,电机转动一个步距角。

3. 四拍控制:每输入四个脉冲信号,电机转动一个步距角。

步进电机的调速方法主要有以下几种:1. 脉冲频率调速:通过改变脉冲信号的频率,实现电机转速的调节。

2. 脉冲宽度调速:通过改变脉冲信号的宽度,实现电机转速的调节。

3. 脉冲分配调速:通过改变脉冲信号的分配方式,实现电机转速的调节。

四、实验步骤1. 将步进电机驱动器连接到微机,确保连接正确。

2. 将步进电机连接到驱动器,确保连接牢固。

3. 将电源连接到驱动器,确保电源电压符合要求。

4. 编写程序,实现步进电机的控制功能。

5. 调试程序,观察步进电机的转动情况。

6. 分析实验结果,总结实验经验。

五、实验程序以下是一个简单的步进电机控制程序,实现单拍控制方式:```c#include <reg51.h>#define STEP_PIN P2 // 定义步进电机控制端口void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 123; j++);}void main() {while (1) {STEP_PIN = 0x01; // 输入第一个脉冲信号delay(100); // 延时STEP_PIN = 0x00; // 清除脉冲信号delay(100); // 延时}}```六、实验结果与分析1. 在实验过程中,通过改变脉冲信号的频率,实现了步进电机的调速。

微机课程设计报告 小型步进电机控制系统设计(附程序清单)

微机课程设计报告  小型步进电机控制系统设计(附程序清单)

微机应用系统设计与综合实验设计报告设计题目小型步进电机控制系统设计指导老师设计者专业班级学号设计日期目录摘要 (3)一. 课程设计目的 (4)二. 设计题目名称及要求 (4)三. 实验设备 (4)四. 设计的思想和实施方案 (5)五. 硬件原理图 (11)六. 典型程序模块及典型编程技巧 (13)七. 课程设计中遇到的问题及解决方法 (16)八. 程序流程图 (19)九. 汇编程序清单及程序注释 (23)十. C语言程序清单及注释 (30)十一. 收获体会 (37)十二. 参考文献 (38)摘要在现代电子产品中,步进电机广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业控制系统、办公自动化、机器人等领域。

所以步进电机的控制是一门很实用的技术。

本实验主要是基于唐都——PIT试验箱的步进电机控制的设计。

主要使用到了并行接口电路8255、LED 七段数码管电路、8086cpu、步进电机等元件。

主要是通过按键的不同来设置直流电机的转速、运行状态和方向。

软件部分采用了汇编语言编写程序代码和C语言编写的步进电机控制程序,通过判断、跳转、循环、延时等基本技术实现。

此系统可以通过键盘输入相关数据, 并根据需要, 实时对步进电机工作方式进行设置, 具有实时性和交互性的特点。

该设计可应用于步进电机控制的大多数场合关键词: 步进电动机调速方向控制并行接口七段数码管小型步进电机控制系统一、课程设计目的课程设计是本科教学全过程中的重要环节。

《微机应用系统设计与综合实验(实践)》课程设计主要培养我们自动化专业学生,运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生运用计算机编程语言综合编程能力、程序调试技能和微机系统接口综合应用及电路设计能力。

1、学习在PC系统中扩展简单的I/O接口的方法。

2、熟练掌握和运用汇编和C语言编写程序控制8255各口的输入输出,并正确带动数码管及步进电机;能熟练运用汇编和C语言实现8254的定时功能,以确保8255输出的脉冲频率稳定。

微机原理步进电机控制课程设计报告

微机原理步进电机控制课程设计报告

河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期: 2 0 —2 0 学年第学期指导教师:2 0 年月课程设计成绩评定表目录一、设计题目……………………………………………………………….二、设计目的……………………………………………………………….三、设计原理及方案……………………………………………………….四、实现方法……………………………………………………………….五、实施结果……………………………………………………………….六、改进意见及建议……………………………………………………….七、设计体会……………………………………………………………….、一、设计题目编程实现步进电机的控制二、设计目的1.了解步进电机控制的基本原理2.掌握控制步进电机转动的编程方法3.了解8086控制外部设备的常用电路4.掌握8255的使用方法三、设计原理及方案设计原理步进电机驱动原理是通过对每相线圈中的电流的顺序切换实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化,来使电机作步进式旋转;驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速;利用 8255对四相步进电机进行控制;当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动;每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度一个步距角;当通电状态的改变完成一个循环时,转子转过一个齿距;四相步进电机可以在不同的通电方式下运行,常见的通电方式有单单相绕组通电四拍A-B-C-D-A…,双双相绕组通电四拍AB-BC-CD-DA-AB…,八拍A-AB-B-BC-C-CD-D-DA-A…等;通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动;硬件连接图四.实现方法.步进电机控制程序流图.程序代码ASTEPEQU01H BSTEPEQU02H CSTEPEQU04H DSTEPEQU08H CODESEGMENT ASSUMECS:CODESTART:MOVDX,8003H;8255控制口地址MOVAL,82H;PA口输出,B口输入OUTDX,AL;写控制字K0:MOVDX,8000H;PA口地址MOVAL,0;输出低电平OUTDX,AL;电机停止转动MOVDX,8001H;PB口地址INAL,DX;读开关状态TESTAL,01H;PB0位K0=0吗JNZK1;不是零转K1JMPSTEP8;是零转单/双八拍工作方式K1:INAL,DX;读开关状态TESTAL,02H;PB1位K1=0吗JNZK2;不是零转K2JMPSTEP4;是零转双四拍工作方式K2:INAL,DX;读开关状态TESTAL,04H;PB2位K2=0吗JZSTEP41;是零转单四拍反转工作方式JMPK0;循环;单/双八拍工作方式:A→AB→B→BC→C→CD→D→DA→A STEP8:MOVBX,9000H;设置初始延时时间MOVDX,8000H;PA口地址MOVAL,ASTEPOUTDX,ALCALLDELAYMOVAL,ASTEP+BSTEPOUTDX,ALCALLDELAYMOVAL,BSTEPOUTDX,ALCALLDELAYMOVAL,BSTEP+CSTEPOUTDX,ALCALLDELAYMOVAL,CSTEPOUTDX,ALCALLDELAYMOVAL,CSTEP+DSTEPOUTDX,ALCALLDELAYMOVAL,DSTEPOUTDX,ALCALLDELAYMOVAL,DSTEP+ASTEPOUTDX,ALCALLDELAYJMPK0;双四拍工作方式:AB→BC→CD→DA→AB STEP4:MOVBX,5000H;设置延时时间MOVDX,8000H;PA口地址MOVAL,ASTEP+BSTEP;PA0PA1AB相输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,BSTEP+CSTEP;BC输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,CSTEP+DSTEP;CD输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,DSTEP+ASTEP;DA输出高电平OUTDX,ALCALLDELAY;调延时JMPK0;单四拍反转工作方式:D→C→B→A→D STEP41:MOVBX,1000H;设置延时时间MOVDX,8000H;PA口地址MOVAL,DSTEP;D输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,CSTEP;C输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,BSTEP;B;输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,ASTEP;A输出高电平OUTDX,ALCALLDELAY;调延时JMPK0DELAYPROCNEAR;延时子程序PUSHCXMOVCX,BXDD1:NOPLOOPDD1POPCXRETDELAYENDP;延时子程序结束CODEENDS;代码段结束ENDSTART五.实施结果.操作步骤1、硬件测试WINXP步进电机2、在硬件测试通过后,要注意三个相一致1PNP地址和数据段中的端口地址;2控制字和接线;3代码段中的端口地址和接线;3、把程序代码烧进写实验箱中.运行结果1K0扳下表示启动,步进电机转动;K0扳下表示停止,步进电机停止;2K1扳下表示顺时针转,速度慢;3K2扳下表示逆时针,即倒转,速度快;六.改进意见及建议程序设计没有实现加速和减速,在步进电机的转动函数里,每次循环都改变延时的大小即可实现变速;延时时间依次变长则步进电机减速,延时时间依次变短则步进电机加速;再配合开关即可实现加速减速的任意控制;七.设计体会这次做的实验是一个比较综合的实验,实验中主要是微机原理的编程,但还涉及到步进电机的有关知识以及一些专业基础课的知识,所以要做好这次实验我们需要做的有很多;首先,在查找资料的过程中,我更加理解了8255在微型计算机中的重要作用,理解了8255的基本的编程结构和基本控制字的设计方法,也锻炼了自己的动手能力和创新意识;其次,在编写汇编程序过程中,由于早先对汇编语言学习的不扎实,我们遇到了很大的困难,但是随着对问题理解的逐渐深入,这些问题最终都一一化解了;通过这次步进电机控制代码的编写,让我有了一个更深刻的认识:要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的;在这个过程中,不仅提高了实际动手操作能力,培养了治学严谨的态度,激发了我学习此专业课程的兴趣,而且让我们深刻的体验到理论知识与实践经验的密切联系,要成为一个高技术人才,必须理论与实践两手都要硬;在设计时,对不同方案的构思、分析、比较到最后的方案确定,这些工作,可以增强了我们分析、解决问题的能力,培养了我们的创新意识;。

微机原理课设 步进电机设计

微机原理课设 步进电机设计

学号:0120911360218课程设计题目步进电机学院自动化学院专业自动化班级自动化0902班姓名指导教师徐小强2012 年 1 月12 日课程设计任务书学生姓名:专业班级:自动化0902指导教师:徐小强工作单位:自动化学院题目:步进电机初始条件:用汇编语言设计一个步进电机的控制,在Proteus仿真环境下完成,功能上实现步进电机的基本功能。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 通过键盘控制步进电机的启动和停止,正转和反转;2. 编制完整的程序并调试;3.撰写符合学校要求的课程设计说明书,内容包括:摘要、目录、正文、参考文献、附录(程序清单)。

正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

时间安排:1. 1月04日----1月05日查阅资料及方案设计2.1月06日----1月08日编程3.1月09日----1月10日调试程序4.1月11日----1月12日撰写课程设计报告5.1月13日上午准备答辩,下午正式答辩指导教师签名:年月日系主任(或责任教师)签名:年月日摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

其种类比较多,分为机电式、磁电式及直线式三种基本类型。

磁电式步进电动机主要有永磁式、反应式和永磁感应子式3种形式。

它主要用于数字控制系统中,精度高,且运行可靠。

步进电动机目前已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。

因此可知,步进电机在现代控制领域中起着非常重要的作用。

本次设计中,要求使用8086CPU作为主控制器,通过与外部接口芯片的配合工作,以实现控制步进电机的启动、停止、正转、反转等功能。

设计要求为,通过编写正确的汇编程序,并使用仿真软件PROTEUS进行该控制系统的仿真。

微机原理步进电机控制

微机原理步进电机控制

微机原理步进电机控制微机原理步进电机控制实验报告实验步进电机控制⼀、实验内容l、⽤8255的PA0,PA3输出脉冲信号,驱动步进电机转动,通过键盘设定来控制步进电机正转、反转、停⽌。

2、实验预备知识,步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,⽤微电脑控制步进电机最适合。

⼆、实验步骤1、在系统处于命令提⽰符“P.”态下,按SCAL键。

2、按图6,9连好实验线路图,8255的PA0,PA3依次连到HA-HD插孔。

3、运⾏实验程序。

在系统处于命令提⽰符“P.”态下,输⼊1630,按EXEC键,显⽰BJ?,按“1”键正转;按“2”键反转;按“3”停⽌。

4、观察步进电机转动情况。

三、实验原理图, 实验接线图:四(实验程序清单CODE SEGMENT ;BJ.ASM ASSUME CS: CODE IOCONPT EQU 0FF2BH IOBPT EQU 0FF29H IOAPT EQU 0FF28HPA EQU 0FF20H ;字位⼝PB EQU 0FF21H ;字形⼝PC EQU 0FF22H ;键⼊⼝ORG 1630HSTART: JMP START0 BUF DB ?,?,?,?,?,? KZ DB ?ltime db ?lkey db ?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F1HSTART0: CALL BUF1 ;写显⽰缓冲区初值MOV AL,88H ;MOV DX,IOCONPTOUT DX,AL ;写命令字redikey: call dispkey ;调⽤显⽰键扫cmp KZ,01h ;是1键正转JZ ZZcmp KZ,02h ;是2键反转JZ STXJMP REDIKEY ;继续读键JMP ST ;转停⽌ STX:ZZ: CALL BUFZ ;显⽰正转值ZZ1: MOV DX,IOAPT ;PA⼝MOV AL,03H ;MOV DX,IOAPTOUT DX,AL ;驱动步进电机,A.B两相CALL DELPZ ;延时,读键MOV AL,06HMOV DX,IOAPTOUT DX,AL ;驱动步进电机,A.d两相CALL DELPZ MOV AL,0CHMOV DX,IOAPTOUT DX,AL ;驱动步进电机,C.D两相CALL DELPZ MOV AL,09H ;驱动步进电机,B.C两相MOV DX,IOAPT OUT DX,ALCALL DELPZMOV AL,03HMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,0CHMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,09HMOV DX,IOAPTOUT DX,AL;------------------------- FZ: CALL BUFF ;反转⼊⼝FZ1: MOV DX,IOAPTMOV AL,0CHOUT DX,ALCALL DELPFMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV DX,IOAPTMOV AL,03HOUT DX,ALCALL DELPFMOV AL,09HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,0CHMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,03HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,09HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,00HOUT DX,ALST1: call dispkey cmp KZ,01hJZ ZZMONcmp KZ,02hJZ FZMONJMP ST1delpZ: mov cx,02h con1: push cx CALL dispkey pop cxcmp KZ,02hJZ FZMONcmp KZ,03hJZ STMONloop con1RETdelpF: mov cx,02h con2: push cx CALL dispkey pop cxcmp KZ,01hJZ ZZMONcmp KZ,03hJZ STMONloop con2RETZZMON: POP CXJMP ZZFZMON: POP CXJMP FZSTMON: POP CXJMP ST;-------------------------dispkey: call disp ;键盘显⽰⼦程序,见前注释call key mov ah,al ;newkeymov bl,ltime ;ltimemov dx,PA ;0ff21hout dx,alcmp ah,bhmov bh,ah ;bh=new keymov ah,bl ;al=timejz disk4mov bl,88hmov ah,88hdisk4: dec ahcmp ah,82hjz disk6cmp ah,0ehjz disk6cmp ah,00hjz disk5mov ah,20hdec bljmp disk7disk5: mov ah,0fhdisk6: mov bl,ahmov ah,bhdisk7: mov ltime,blmov lkey,bhmov KZ,bhmov al,ahretkey: mov al,0ffh ;键扫⼦程序mov dx,PB out dx,almov bl,00hmov ah,0fehmov cx,08hkey1: mov al,ahmov dx,PAmov ah,alnopnopnopnopnopnopmov dx,PCin al,dxnot alnopnopand al,0fhjnz key2inc blloop key1jmp nkeykey2: test al,01h je key3 mov al,00hjmp key6key3: test al,02h je key4 mov al,08hjmp key6key4: test al,04h je key5 mov al,10hjmp key6key5: test al,08hje nkeymov al,18hkey6: add al,blcmp al,10hjnc fkeymov bl,almov al,[bx+si]retnkey: mov al,20h fkey: retdata2: db 07h,04h,08h,05h,09h,06h,0ah,0bh DB 01h,00h,02h,0fh,03h,0eh,0ch,0dh DISP: MOV AL,0FFH ;显⽰⼦程序 ,5ms MOV DX,PAOUT DX,ALMOV CL,0DFH ;20HMOV BX,OFFSET BUF DIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,0a0HLOOP $POP CXCMP CL,0FEHJZ LX1INC BXROR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,0BH ;写”BJ----” MOV BUF+1,019HMOV BUF+4,17HMOV BUF+5,17HRETBUFZ: MOV BUF,0BH ;写”BJ---F” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,0FHRETBUFF: MOV BUF,0BH ;写”BJ---r” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,18HRETBUFS: MOV BUF,0BH ;写”BJ---S” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,05HRETCODE ENDSEND START五、实验总结1、通过实验进⼀步了解8086的使⽤,学习汇编语⾔编程⽅法及调试技巧。

微机原理课程设计步进电机的正反转与调速控制

微机原理课程设计步进电机的正反转与调速控制

课程设计报告题目步进电机正反转与调速控制系统的设计课程名称微机原理与应用院部名称机电工程学院专业电气工程与其自动化班级10电气1班学生姓名管志成学号 1004103027课程设计地点 C304课程设计学时 20指导教师国利金陵科技学院教务处制摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。

本设计基于Proteus 7.8设计环境,运用了8086 CPU芯片以与74273芯片、74244芯片和步进电机以与7位小功率驱动芯片ULN2003A、按钮、指示灯等辅助硬件电路,设计了步进电机正反转与调速系统。

绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。

该步进电机的正反转与调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速,不同的按钮对应不同的速度,并且在没有速度按钮按下的时候,步进电机自动切换到停止状态。

关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统目录一、概述1.1课程设计的目的 (4)1.2课程设计的要求 (4)二、总体设计方案与说明2.1 系统总体设计方案 (5)2.2系统工作框图 (5)三、系统硬件电路设计3.1 Intel 8086 微处理器的简介 (6)3.2 步进电机的原理 (7)3.3 ULN2003A的简介 (8)3.4 74154芯片简介 (9)3.5 74LS273芯片简介 (10)3.6 8086最小系统的设计 (11)3.7 步进电机与其驱动电路的设计 (12)3.8 电机状态显示电路的设计 (12)3.9 输入采样电路的设计 (13)3.10系统总电路图 (14)四、系统软件部分设计4.1 系统流程图 (15)4.2 系统软件源程序 (16)4.2.1电机绕组通电顺序设定 (16)4.2.2 延时子程序设计 (16)4.2.3 汇编源程序与说明 (16)五、总结5.1 系统软硬件的联合调试 (21)5.2 问题分析和解决方案 (23)5.3 心得与体会 (23)六、参考文献 (23)附录:总电路图 (25)一、概述1.1 课程设计的目的通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。

大连理工微机原理实验步进电机报告

大连理工微机原理实验步进电机报告

大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:步进电机控制系统设计课程名称:计算机原理实验学院(系):电信学院专业:电子信息工程班级:学号:学生姓名:成绩:2015 年月日题目:步进电机控制系统设计1 设计要求利用实验台上的电位器,实现步进电机的转速、转向控制。

具体要求如下:1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作(使用四个LED监视步进电机的相序信号),相序之间的时间决定着步进电机的转速,而间隔时间由延时程序中的CX寄存器的值决定。

2.利用电位器做输入,将电位器与ADC0809的IN0口相连,通过ADC0809将读取到的电压值转化为8位二进制值,根据这个8位二进制值的不同来实现对步进电机的转速、转向控制3.利用8254做秒脉冲发生器,产生约10Hz方波信号。

其中CNT0做分频器:将1MHz信号分频为100Hz;CNT1做秒脉冲输出(10Hz);4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机的转速、转向实时控制。

方法如下:在ISR中,读取ADC0809转换得到的8位二进制值,并根据此值做如下处理:1)当转换值为00h~7fh时,逆时针旋转,00h时转速最大;2)当转换值为81h~0ffh时,顺时针旋转,0ffh时转速最大;3)当转换值为80h时,停止旋转。

2 设计分析及系统方案设计整个设计是在使用8255输出相序控制步进电机转动的基础上,利用中断实时调整输出相序的时间间隔以及顺序,起到控制步进电机转速和转向的效果。

程序的结构类型属于循环结构。

基础程序部分:该部分是利用8255 A口循环输出8个相序,在循环体中条用子程序delay控制时间间隔,延迟量由CX值决定。

中断程序部分:先安装中断向量,由于386EXCPU的8259初始化的程序已经固化在系统的ROM BIOS中,所以只要把中断类型码35H对应的内存位置上装上中断服务程序的段地址和偏移地址。

步进电机控制设计课设报告

步进电机控制设计课设报告

步进电机控制设计课设报告引言步进电机是一种电动机根据控制信号的脉冲数进行角度移动的设备。

它具有精准的位置控制、高转矩和低功耗等优点,被广泛应用于各个领域。

本次课设旨在设计一套步进电机控制系统,通过编程控制步进电机的转动角度,实现不同工作环境下步进电机的精确控制。

设计方案我们基于`Arduino`开发板和`EasyDriver`驱动板来搭建步进电机控制系统。

材料准备1. Arduino开发板2. EasyDriver驱动板3. 步进电机4. 电源5. 连接线硬件连接1. 首先,将Arduino开发板与EasyDriver驱动板通过引脚连接线连接好。

其中,Arduino的数字引脚9、10、11分别连接到EasyDriver驱动板的Step、Dir、EN引脚,GND与GND相连,以及VCC与5V相连。

2. 将EasyDriver驱动板与步进电机连接。

EasyDriver的A和B引脚分别与步进电机的两个相连接。

软件编写1. 首先,在Arduino开发环境中创建一个新的项目。

然后,导入`AccelStepper`库,该库提供了进行步进电机控制的相关功能。

2. 在代码中初始化步进电机对象,并设置电机类型为`FULL3WIRE`,也就是设置步进电机的引脚数为3。

3. 设置步进电机的速度和加速度等参数。

这些参数可以根据实际需求进行调整。

4. 在主循环中,通过调用步进电机对象的`runSpeedToPosition`函数来控制电机的转动角度。

参数为目标位置的步数。

如果希望电机一直转动,则可以将参数设置为`NAN`。

5. 最后,上传代码到Arduino开发板中运行。

实验过程及结果我们将步进电机控制系统连接好后,通过编写相应的代码进行控制。

首先,我们进行了简单的步进电机测试,调整电机的速度和加速度参数,分别观察电机的转动情况。

通过调整参数,我们成功实现了不同速度和加速度下电机的转动控制。

接着,我们设计了一个简单的应用场景来测试步进电机的精确控制能力。

课程设计-- 微机步进电机控制系统设计

课程设计-- 微机步进电机控制系统设计

课程设计报告课程名称:微机原理与接口技术课程设计设计题目:微机步进电机控制系统设计系别XXXXXXXX专业: XXXXXXXX班级: XXX学生姓名XXX学号: XXXXXXXXXXX起止日期: XXXXXXX指导教师: XXXXXXX目录第一章绪论 (2)第二章分析 (2)2.1 课程设计题目 (2)2.2 课程设计任务及要求 (2)2.2.1 任务 (2)2.2.2 课程设计的要求 (3)2.3 运行环境及开发工具 (3)2.3.1 运行环境 (3)2.3.2 开发工具 (3)第三章设计 (3)3.1 基本原理 (3)3.2 设计方法 (4)3.2.1 硬件设计方法 (5)3.2.2 软件设计方法 (7)3.3 程序流程图 (14)第四章调试与操作说明 (25)4.1 综合调试步骤 (25)4.2 操作说明 (25)第五章课程设计心得与体会 (26)参考文献 (27)附录步进电机控制程序 (29)第一章绪论课程设计是培养和锻炼在校学生综合应用所学理论知识解决实际问题能力、进行工程实训的重要教学环节,它具有动手、动脑,理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。

微机原理及接口技术应用是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。

通过设计实践,培养学生查阅专业资料、工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。

通过设计,不但要培养和提高学生解决工程具体问题、动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。

第二章分析2.1 课程设计题目微机步进电机启动与停止控制微机步进电机的速度控制微机步进电机的方向控制2.2 课程设计任务及要求2.2.1 任务1)微机步进电机起动与停止控制;实现方法:设置硬开关或软开关。

微机步进电机实验报告

微机步进电机实验报告

微机步进电机实验报告微机步进电机实验报告引言:微机步进电机是一种常见的电动机,其特点是精准的定位和控制能力。

本实验旨在通过对微机步进电机的实际操作和观察,了解其工作原理和应用。

一、实验目的本实验的主要目的是:1. 了解微机步进电机的基本工作原理;2. 学习使用微机控制器对步进电机进行控制;3. 掌握步进电机的定位和旋转控制技术。

二、实验器材和原理1. 实验器材:- 微机步进电机;- 微机控制器;- 电源;- 连接线。

2. 实验原理:微机步进电机是一种定位精度高、控制简单的电动机。

它通过控制电流的方式,使电机按一定步进角度旋转。

步进电机的转子由若干个磁极组成,通过逐个激励磁极,可以实现转子的精确定位和旋转。

三、实验步骤1. 连接电路:将微机步进电机与微机控制器连接,并接通电源。

2. 编写控制程序:使用编程软件编写控制程序,设定步进电机的旋转角度和速度。

3. 运行程序:将编写好的程序下载到微机控制器中,并运行程序,观察步进电机的运动。

四、实验结果与分析在实验中,我们成功地控制了微机步进电机的旋转。

通过调整程序中的参数,我们可以控制步进电机的旋转角度和速度。

实验结果表明,微机步进电机具有较高的定位精度和控制能力。

五、实验总结通过本次实验,我们深入了解了微机步进电机的工作原理和控制技术。

步进电机作为一种常见的电动机,广泛应用于各种自动化设备中。

掌握步进电机的原理和控制方法,对于我们今后的工程实践具有重要意义。

六、实验心得本次实验让我对微机步进电机有了更深入的认识。

通过亲自操作和观察,我对步进电机的工作原理和控制方法有了更直观的理解。

同时,实验过程中也遇到了一些问题,但通过自己的努力和与同学的讨论,最终取得了良好的实验结果。

七、改进方向在今后的实验中,我们可以进一步探索微机步进电机的应用领域,尝试更复杂的控制方法和算法,提高步进电机的运动精度和效率。

同时,我们也应加强对电机控制技术的学习,为今后的工程实践做好准备。

微机原理课程设计说明书---步进电机控制

微机原理课程设计说明书---步进电机控制

微机接口技术课程设计说明书课题名称:步进电机控制目录1.课程设计任务书…………………………………………………2.说明书正文…………………………………………………………2.1 前言………………………………………2.2 现状…………………………………………………2.3 任务分析与方案设计…………………………………………2.4 系统电路原理图……………………………………………2.5元器件参数选择及清单……………………………………2.6 电路的调试………………………………………………3. 心得体会……………………………………………4. 参考文献………………5. 附录…………………………………1.课程设计任务书一、任务要求在Dais实验台基础上设计并调试一个外接口电路,能够显示所对应的电机状态。

且具有一定的控制功能,编程并调试完成整个开发系统。

二、主要技术要求实现步进电机转速和正反转控制。

控制四相步进电机是采用编程方法实现四相八拍环形分配运行方式,改变激励脉冲频率的大小来实现调制。

变换步进电机的其中两相相序,就能实现步进电机的正反转。

扩展一:用三个发光二极管亮灭表示三个速度开关的状态。

再用一个发光二极管亮灭表示正反转状态。

扩展二:用数码管显示速度状态。

三、主要完成任务1、查找相关资料,确定课程设计方案;2、微机接口电路硬件的焊接、装配、逐步排除故障及调试:3、用Protel2004绘制微机最小系统配置原理图;4、用Protel2004绘制相关项目的接口原理图;5、编写相关项目的程序,并进行调试;6、按照相关项目内容要求,上级进行调试;7、编写课程设计报告。

四、提交成果1)课程设计说明书一本(电子文档和打印稿各一份)要求:内容完整,图表完备,条理清晰,分析有据。

所附电路图布局合理,清晰完备,图形和符号要规范。

2)所用元器件清单3)电路实体一套。

要求:该电路实体必须是经过自己安装调试通过并达到性能指标要求的电路实体。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

科技大学
课程设计报告
学生:学号:
专业班级:
课程名称:
学年学期:2 0 —2 0 学年第学期
指导教师:
20 年月
课程设计成绩评定表
目录
一、设计题目……………………………………………………………….
二、设计目的……………………………………………………………….
三、设计原理及方案……………………………………………………….
四、实现方法……………………………………………………………….
五、实施结果……………………………………………………………….
六、改进意见及建议……………………………………………………….
七、设计体会……………………………………………………………….

一、设计题目
编程实现步进电机的控制
二、设计目的
1.了解步进电机控制的基本原理
2.掌握控制步进电机转动的编程方法
3.了解8086控制外部设备的常用电路
4.掌握8255的使用方法
三、设计原理及方案
3.1设计原理
步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

利用8255对四相步进电机进行控制。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。

当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(AB-BC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…)等。

通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入
也和相序表一致,这样步进电机就可以正向转动或反向转动。

3.2硬件连接图
四.实现方法
4.1.步进电机控制程序流图
4.2.程序代码ASTEP EQU01H BSTEP EQU02H CSTEP EQU04H DSTEP EQU08H CODE SEGMENT
ASSUME CS:CODE START:
MOV DX,8003H;8255控制口地址
MOV AL,82H;PA口输出,B口输入
OUT DX,AL;写控制字
K0:
MOV DX,8000H;PA口地址
MOV AL,0;输出低电平
OUT DX,AL;电机停止转动
MOV DX,8001H;PB口地址
IN AL,DX;读开关状态
TEST AL,01H;PB0位(K0=0吗?)
JNZ K1;不是零转K1
JMP STEP8;是零转单/双八拍工作方式
K1:
IN AL,DX;读开关状态
TEST AL,02H;PB1位(K1=0吗?)
JNZ K2;不是零转K2
JMP STEP4;是零转双四拍工作方式
K2:
IN AL,DX;读开关状态
TEST AL,04H;PB2位(K2=0吗?)
JZ STEP41;是零转单四拍反转工作方式
JMP K0;循环
;单/双八拍工作方式:A→AB→B→BC→C→CD→D→DA→A
STEP8:
MOV BX,9000H;设置初始延时时间MOV DX,8000H;PA口地址MOV AL,ASTEP
OUT DX,AL
CALL DELAY
MOV AL,ASTEP+BSTEP
OUT DX,AL
CALL DELAY
MOV AL,BSTEP
OUT DX,AL
CALL DELAY
MOV AL,BSTEP+CSTEP
OUT DX,AL
CALL DELAY
MOV AL,CSTEP
OUT DX,AL
CALL DELAY
MOV AL,CSTEP+DSTEP
OUT DX,AL
CALL DELAY
MOV AL,DSTEP
OUT DX,AL
CALL DELAY
MOV AL,DSTEP+ASTEP
OUT DX,AL
CALL DELAY
JMP K0
;双四拍工作方式:AB→BC→CD→DA→AB
STEP4:
MOV BX,5000H;设置延时时间
MOV DX,8000H;PA口地址
MOV AL,ASTEP+BSTEP;PA0PA1(AB相)输出高电平OUT DX,AL
CALL DELAY;调延时
MOV AL,BSTEP+CSTEP;BC输出高电平
OUT DX,AL
CALL DELAY;调延时
MOV AL,CSTEP+DSTEP;CD输出高电平
OUT DX,AL
CALL DELAY;调延时
MOV AL,DSTEP+ASTEP;DA输出高电平
OUT DX,AL
CALL DELAY;调延时
JMP K0
;单四拍反转工作方式:D→C→B→A→D
STEP41:
MOV BX,1000H;设置延时时间MOV DX,8000H;PA口地址
MOV AL,DSTEP;D输出高电平
OUT DX,AL
CALL DELAY;调延时
MOV AL,CSTEP;C输出高电平
OUT DX,AL
CALL DELAY;调延时
MOV AL,BSTEP;B;输出高电平
OUT DX,AL
CALL DELAY;调延时
MOV AL,ASTEP;A输出高电平
OUT DX,AL
CALL DELAY;调延时
JMP K0
DELAY PROC NEAR;延时子程序PUSH CX
MOV CX,BX
DD1:
NOP
LOOP DD1
POP CX
RET
DELAY ENDP;延时子程序结束
CODE ENDS;代码段结束
END START
五.实施结果
5.1.操作步骤
1、硬件测试
【WINXP】 【步进电机】
2、在硬件测试通过后,要注意三个相一致
(1)PNP地址和数据段中的端口地址。

(2)控制字和接线。

(3)代码段中的端口地址和接线。

3、把程序代码烧进写实验箱中
5.2.运行结果
(1)K0扳下表示启动,步进电机转动。

K0扳下表示停止,步进电机停止。

(2)K1扳下表示顺时针转,速度慢。

(3)K2扳下表示逆时针,即倒转,速度快。

六.改进意见及建议
程序设计没有实现加速和减速,在步进电机的转动函数里,每次循环都改变延时的大小即可实现变速。

延时时间依次变长则步进电机减速,延时时间依次变短则步进电机加速。

再配合开关即可实现加速减速的任意控制。

七.设计体会
这次做的实验是一个比较综合的实验,实验中主要是微机原理的编程,但还涉及到步进电机的有关知识以及一些专业基础课的知识,所以要做好这次实验我们需要做的有很多。

首先,在查找资料的过程中,我更加理解了8255在微型计算机中的重要作用,理解了8255的基本的编程结构和基本控制字的设计方法,也锻炼了自己的动手能力和创新意识。

其次,在编写汇编程序过程中,由于早先对汇编语言学习的不扎实,我们遇到了很大的困难,但是随着对问题理解的逐渐深入,这些问题最终都一一化解了。

通过这次步进电机控制代码的编写,让我有了一个更深刻的认识:要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。

在这个过程中,不仅提高了实际动手操作能力,培养了治学严谨的态度,激发了我学习此专业课程的兴趣,而且让我们深刻的体验到理论知识与实践经验的密切联系,要成为一个高技术人才,必须理论与实践两手都要硬。

在设计时,对不同方案的构思、分析、比较到最后的方案确定,这些工作,可以增强了我们分析、解决问题的能力,培养了我们的创新意识。

相关文档
最新文档