单片机控制步进电机
单片机控制步进电机

步进电机相关说明(1) 作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。
为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。
(2) 圆弧插补改进算法逐点比较插补算法因其算法简单、易实现且最大误差不超过一个脉冲当量,在步进电机的位置控制中应用的相当广泛[1>。
圆弧插补中,为了确定一条圆弧的轨迹,可采用:给出圆心坐标、起点坐标和终点坐标;给出半径、起点和终点坐标;给出圆弧的三点坐标等。
在算法实现时这些参数若要存放在单片机内部资源有限的数据存储器(RAM)中,如果要经过复杂的运算才能确定一段圆弧,不但给微处理器带来负担,而且要经过多步运算,往往会影响到算法的精确度。
因此选取一种简单且精确度高的插补算法是非常必要的。
本文提出了一种改进算法:在圆弧插补中,无论圆弧在任何位置,是顺圆或是逆圆,都以此圆弧的圆心作为原点来确定其他坐标。
因此只须给出圆弧的起点坐标和圆弧角度就可以确定该圆弧。
如果一个轴坐标用4个字节存储(如12.36),而角度用2个字节存储(如45°),则只需要10个字节即可确定一段二维的圆弧。
较之起其他方法,最多可节省14个存储单元。
现以第I象限逆圆弧为例,计算其终点坐标。
如图1所示,(X0,Y0)为圆弧的起点坐标,(Xe,Ye)为圆弧的终点坐标,θ为圆弧的角度。
圆弧半径:终点坐标:终点坐标相对X轴的角度:(3)步进电机的变频调速虽然步进电机具有快速启停能力强、精度高、转速容易控制的特点,但是在实际运行过程中由于启动和停止控制不当,步进电机仍会出现启动时抖动和停止时过冲的现象,从面影响系统的控制精度。
尤其是步进电机工作在频繁启动和停止时,这种现象就更为明显[2>。
为此本文提出了一种基于单片机控制的步进电机加减速离散控制方法。
单片机控制步进电机程序设计

单片机控制步进电机程序设计1.引言步进电机是一种常用的电机类型,其特点是精度高、稳定性好、速度可调。
在很多自动控制系统中,步进电机被广泛应用于位置控制、定位、打印机等领域。
本文将介绍如何使用单片机来控制步进电机,并给出一个简单的步进电机程序设计示例。
2.步进电机简介步进电机是一种将电脉冲信号转换为角位移或线位移的电机。
其优点包括:-分辨率高:每个步进电机的旋转角度可以非常小,可实现较高的位置精度。
-可控制性强:通过控制电压脉冲的频率和顺序,可以精确控制步进电机的转动方向和步数。
-响应快速:步进电机的响应速度较快,可达数千转每分钟。
3.单片机选型与连接在实现步进电机的控制过程中,我们选择了一款适用于步进电机控制的单片机。
这款单片机具有以下特点:-高效的运算能力和大容量存储空间,适用于复杂的控制算法。
-可编程性强,支持多种开发环境,开发过程相对简便。
-丰富的外设接口,方便与步进电机的连接和控制。
连接单片机与步进电机的基本电路如下所示:步进电机驱动引脚1--单片机引脚A步进电机驱动引脚2--单片机引脚B步进电机驱动引脚3--单片机引脚C步进电机驱动引脚4--单片机引脚D4.步进电机控制原理步进电机控制原理基于对步进电机驱动引脚输入电压脉冲信号的控制。
针对不同的步进电机类型,控制方式可以有所不同,常见的控制方式包括全步进控制和半步进控制。
4.1全步进控制全步进控制方式是将电流依次施加到步进电机的每个驱动相,使其按照一定顺序正转或反转。
控制步骤如下:1.给引脚A和引脚B施加电压,使电机顺时针转动一个步距。
2.给引脚B和引脚C施加电压,使电机顺时针转动一个步距。
3.给引脚C和引脚D施加电压,使电机顺时针转动一个步距。
4.给引脚D和引脚A施加电压,使电机顺时针转动一个步距。
4.2半步进控制半步进控制方式是在全步进控制的基础上,通过控制相邻两个相的电流互补关系,实现更细微的步距调整。
控制步骤如下:1.给引脚A施加电压,使电机顺时针转动半个步距。
c语言实现单片机控制步进电机加减速源程序

C 语言实现单片机控制步进电机加减速源程序1. 引言在现代工业控制系统中,步进电机作为一种常见的执行元件,广泛应用于各种自动化设备中。
而作为一种常见的嵌入式软件开发语言,C 语言在单片机控制步进电机的加减速过程中具有重要的作用。
本文将从单片机控制步进电机的加减速原理入手,结合 C 语言的编程技巧,介绍如何实现单片机控制步进电机的加减速源程序。
2. 单片机控制步进电机的加减速原理步进电机是一种能够精确控制角度的电机,它通过控制每个步骤的脉冲数来实现旋转。
在单片机控制步进电机的加减速过程中,需要考虑步进电机的加速阶段、匀速阶段和减速阶段。
在加速阶段,需要逐渐增加脉冲的频率,使步进电机的转速逐渐增加;在匀速阶段,需要保持恒定的脉冲频率,使步进电机以匀速旋转;在减速阶段,需要逐渐减小脉冲的频率,使步进电机的转速逐渐减小。
这一过程需要通过单片机的定时器和输出控制来实现。
3. C 语言实现步进电机加减速的源程序在 C 语言中,可以通过操作单片机的 GPIO 来控制步进电机的旋转。
在编写源程序时,需要使用单片机的定时器模块来生成脉冲信号,以控制步进电机的旋转角度和速度。
以下是一个简单的 C 语言源程序,用于实现步进电机的加减速控制:```c#include <reg52.h>void main() {// 初始化定时器// 设置脉冲频率,控制步进电机的加减速过程// 控制步进电机的方向// 控制步进电机的启停}```4. 总结与回顾通过本文的介绍,我们了解了单片机控制步进电机的加减速原理和 C 语言实现步进电机加减速源程序的基本思路。
掌握这些知识之后,我们可以更灵活地应用在实际的嵌入式系统开发中。
在实际项目中,我们还可以根据具体的步进电机型号和控制要求,进一步优化 C 语言源程序,实现更加精准和稳定的步进电机控制。
希望本文能为读者在单片机控制步进电机方面的学习和应用提供一定的帮助。
5. 个人观点与理解在我看来,掌握 C 语言实现单片机控制步进电机加减速源程序的技术是非常重要的。
单片机pwm控制步进电机原理

单片机pwm控制步进电机原理单片机(Microcontroller)是一种集成了处理器、存储器和输入输出接口的微型计算机系统,它在现代电子技术中有着广泛的应用。
而步进电机(Stepper Motor)是一种特殊的电机,通过控制电流的方向和大小,可以使电机按照一定的步进角度进行旋转。
那么,如何利用单片机的PWM(Pulse Width Modulation)功能来控制步进电机呢?本文将从基本原理、控制方法以及相关应用方面进行介绍和分析。
我们来了解一下PWM的基本原理。
PWM是一种用脉冲信号来模拟模拟量的技术,通过改变脉冲信号的占空比(High电平的时间占整个周期的比例),可以实现对电压、电流等模拟量的精确控制。
在单片机中,PWM信号一般通过定时器/计数器模块来生成,通过改变定时器的计数值和比较值,可以控制PWM信号的频率和占空比。
接下来,我们介绍如何利用单片机的PWM功能来控制步进电机。
步进电机一般需要控制电流的方向和大小,以实现旋转。
通过控制步进电机的控制信号,我们可以实现电机的正转、反转、停止等动作。
而单片机的PWM功能可以通过改变输出的脉冲信号的频率和占空比,来控制步进电机的转速和转向。
在具体的控制步骤中,首先需要通过单片机的IO口来控制步进电机的驱动器。
驱动器一般包括多个MOS管和电流检测电阻,通过控制MOS管的导通和断开,可以实现电机的正转和反转。
而电流检测电阻可以用于检测步进电机的电流,以保护电机不被过载。
我们需要配置单片机的定时器/计数器模块,来生成PWM信号。
定时器/计数器模块一般有多个通道,每个通道可以独立生成一个PWM信号。
通过改变定时器的计数值和比较值,可以调整PWM 信号的频率和占空比。
需要注意的是,步进电机的驱动器一般有两个输入端口,一个用于控制正转,一个用于控制反转。
因此,我们需要至少两个PWM信号来控制步进电机的转向。
我们需要在单片机的程序中编写相应的控制算法。
通过改变PWM 信号的频率和占空比,可以实现步进电机的转速和转向控制。
单片机步进电机控制程序代码

单片机步进电机控制程序代码引言:步进电机是一种常见的电机类型,它具有准确的位置控制和高速运动的特点,在许多应用中被广泛使用。
为了实现步进电机的精确控制,我们需要编写相应的单片机控制程序代码。
本文将介绍一种常见的单片机步进电机控制程序代码,并详细解析其实现原理和使用方法。
一、控制原理:步进电机通过控制电流的方向和大小来控制转子的运动,常见的步进电机控制方式有两相和四相控制。
本文将以四相控制为例进行介绍。
四相控制是指通过控制四个线圈的电流状态来控制步进电机的运动。
具体控制方式有全步进和半步进两种。
全步进模式下,每一步都是四个线圈中的两个同时激活;半步进模式下,每一步都是四个线圈中的一个或两个同时激活。
在本文中,我们将介绍半步进模式的控制程序代码。
二、程序代码:下面是一段常见的单片机步进电机控制程序代码:```c#include <reg51.h>sbit A1 = P1^0;sbit A2 = P1^1;sbit B1 = P1^2;sbit B2 = P1^3;void delay(unsigned int t){unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 120; j++);}void main(){unsigned int i;unsigned char step[8] = {0x01, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x09};while (1){for (i = 0; i < 8; i++){P1 = step[i];delay(1000);}}}```三、代码解析:1. 引用头文件reg51.h,该头文件定义了单片机51的寄存器等相关信息。
2. 定义了四个IO口A1、A2、B1、B2,分别对应步进电机的四个线圈。
3. 定义了一个延时函数delay,用于控制电机转动的速度。
单片机步进电机控制程序代码

单片机步进电机控制程序代码近年来,随着科技的不断发展,单片机步进电机控制技术在各个领域得到了广泛应用。
单片机步进电机控制程序代码是实现步进电机控制的关键,本文将介绍该代码的基本原理和实现方法。
一、步进电机控制基本原理步进电机是一种将电脉冲信号转换为角位移的电机。
它具有精准定位、高转矩、低噪音等优点,因此被广泛应用于各种设备中。
步进电机控制的基本原理是通过给步进电机提供一系列的脉冲信号,使其按照一定的步进角度旋转。
而单片机则是控制步进电机的核心部件,通过编写控制程序代码来实现对步进电机的控制。
二、单片机步进电机控制程序代码实现方法1. 硬件连接在编写单片机步进电机控制程序代码之前,我们首先需要完成硬件的连接。
一般来说,步进电机的控制需要使用到驱动模块,如ULN2003或者A4988等。
我们需要将单片机的输出引脚与驱动模块的输入引脚相连接,同时将驱动模块的输出引脚与步进电机的控制引脚相连接。
2. 编写控制程序代码接下来,我们可以开始编写单片机步进电机控制程序代码了。
以C 语言为例,下面是一个简单的步进电机正转程序代码示例:```c#include <reg52.h>sbit IN1 = P1^0;sbit IN2 = P1^1;sbit IN3 = P1^2;sbit IN4 = P1^3;void delay(unsigned int t) {unsigned int i, j;for(i = 0; i < t; i++)for(j = 0; j < 120; j++);}void main() {while(1) {IN1 = 1;IN2 = 0;IN3 = 1;IN4 = 0;delay(50);IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0;delay(50);IN1 = 0;IN2 = 1;IN3 = 0;IN4 = 1;delay(50);IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1;delay(50);}}```上述代码中,我们通过控制P1口的四个引脚来控制步进电机的旋转方向。
单片机控制步进电机原理

单片机控制步进电机原理1.步进电机的工作原理:步进电机是一种可以通过电脉冲控制转动的电机。
它由定子和转子组成,定子上包含两个或多个电磁线圈,转子上则有若干个磁极。
当电流通过定子线圈时,会在电磁线圈周围产生磁场,这个磁场会与转子上的磁极相互作用,从而使转子发生运动。
2.单片机的工作原理:单片机是一种集成电路,具有微处理器的功能。
它能够执行预先编程好的指令集,通过控制输入输出口、时钟等来与外部设备进行交互,并实现各种控制功能。
3.单片机控制步进电机的原理:单片机通过输出脉冲来控制步进电机的转动。
具体原理如下:3.1电流控制:步进电机的线圈需要传输一定的电流才能发生磁场,从而使转子运动。
单片机通过控制电流驱动电路,可以控制步进电机的电流大小和方向。
常用的电流驱动电路包括恒流驱动和恒压驱动两种。
3.2相序控制:步进电机的转子上有若干个磁极,定子上有若干个线圈。
通过改变线圈的电流方向和大小,可以改变和转子磁极的相互作用,从而使转子以一定的步进角度转动。
单片机可以通过输出信号控制线圈的开关,实现相序的控制。
常用的相序控制方法有全步进控制和半步进控制两种。
全步进控制是指每个电流线圈都只有两种状态:通电和断电。
通过改变线圈的通电组合,可以控制步进电机的转动方向和步进角度。
半步进控制是指每个电流线圈可以有更多的状态,通电组合包括正流、反流和断电三种。
通过改变线圈的通电组合,可以控制步进电机的转动方式,使其能够实现更小的步进角度。
单片机可以根据需要选择相应的控制方式,将相应的控制信号输出给步进电机,从而实现步进电机的转动控制。
4.单片机控制步进电机的具体步骤:4.1初始化:设置单片机的工作模式、时钟和引脚功能等。
4.2设置相序和电流:根据步进电机的类型和要求,设置相应的相序和电流。
常用的方法是通过编写相序表格,并将其存储到单片机内部的存储器中。
4.3通过输出脉冲生成程序:编写控制程序,在程序中定义脉冲个数、频率和方向等参数,并生成相应的输出信号。
基于51单片机的步进电机控制系统设计与实现

步进电机工作原理
步进电机是一种基于磁场的控制系统,工作原理是当电流通过定子绕组时,会 产生一个磁场,该磁场会吸引转子铁芯到相应的位置,从而产生一定的角位移。 步进电机的角位移量与输入的脉冲数量成正比,因此,通过控制输入的脉冲数 量和频率,可以实现精确的角位移和速度控制。同时,步进电机具有较高的分 辨率和灵敏度,可以满足各种高精度应用场景的需求。
二、系统设计
1、硬件设计
本系统主要包括51单片机、步进电机、驱动器、按键和LED显示等部分。其中, 51单片机负责接收按键输入并控制步进电机的运动;步进电机用于驱动负载运 动;驱动器负责将51单片机的输出信号放大,以驱动步进电机。LED显示用于 显示当前步进电机的状态。
2、软件设计
软件部分主要包括按键处理、步进电机控制和LED显示等模块。按键处理模块 负责接收用户输入,并根据输入控制步进电机的运动;步进电机控制模块根据 按键输入和当前步进电机的状态,计算出步进电机下一步的运动状态;LED显 示模块则负责实时更新LED显示。
三、系统实现
1、按键输入的实现
为了实现按键输入,我们需要在主程序中定义按键处理函数。当按键被按下时, 函数将读取按键的值,并将其存储在全局变量中。这样,主程序可以根据按键 的值来控制步进电机的转动。
2、显示输出的实现
为了实现显示输出,我们需要使用单片机的输出口来控制显示模块的输入。在 中断服务程序中,我们根据设定的值来更新显示模块的输出,以反映步进电机 的实时转动状态。
基于单片机的步进电机控制系统需要硬件部分主要包括单片机、步进电机、驱 动器、按键和显示模块等。其中,单片机作为系统的核心,负责处理按键输入、 控制步进电机转动以及显示输出等功能。步进电机选用四相八拍步进电机,驱 动器选择适合该电机的驱动器,按键用于输入设定值,显示模块用于显示当前 步进电机的转动状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012~2013学年第一学期《单片机原理与应用》课程设计报告题目:单片机控制步进电机专业:通信工程班级:10通信(2)班姓名:卢大卫、徐磊、吴冬冬付文涛、贾少华指导教师:周珍艮、崔雪英电气工程系2012年10月27日《单片机控制步进电机》任务书步进电机是用电脉冲信号控制,以实现对生产过程或设备的数字控制,它是过程控制中一种十分重要和常用的功率执行器件,它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器或角位移发生器等,近年来由于计算机应用技术的迅速发展,步进电机常常和计算机一起组成高精度的数字控制系统。
由于它是由数字脉冲控制,因此非常适合于用单片机控制,本设计便是在此基础上,AT89C51型单片机为核心,并结合外围电路以步进电机为控制对象的控制系统。
关键词:A T89C51;步进电机《单片机原理与应用》任务书 (Ⅰ)摘要 (Ⅱ)目录 (Ⅲ)第1章单片机控制步进电机原理 (1)第2章详细设计方案 (2)2.1 实现方法 (2)2.2 模块设计 (4)2.2.1 步进电机的驱动 (4)2.2.2 按键电路设计 (4)2.2.3 时钟产生及复位电路 (5)2.3 主程序流程图图 (6)第3章调试 (7)3.1 Proteus仿真软件 (7)3.2 调试步骤及方法 (7)3.3 仿真图 (8)3.4 实验结果及分析 (8)总结 (9)参考文献 (10)附录1(源程序) (11)附录2(系统原理图) (18)附录3(器件清单) (19)第1章单片机控制步进电机原理步进电机的不同驱动方式,都是在工作时,脉冲信号按一定顺序轮流加到三相绕组上,从而实现不同的工作状态。
由于通电顺序不同,其运行方式有三相单三相拍、三相双三拍和三相单、双六拍三种(注意:上面“三相单三拍”中的“三相”指定子有三相绕组;“拍”是指定子绕组改变一次通电方式;“三拍”表示通电三次完成一个循环。
“三相双三拍”中的“双”是指同时有两相绕组通电)。
(1)三相单三拍运行方式:下页图所示为反应式步进电动机工作原理图,若通过脉冲分配器输出的第一个脉冲使A相绕组通电,B,C相绕组不通电,在A 相绕组通电后产生的磁场将使转子上产生反应转矩,转子的1、3齿将与定子磁极对齐,如果图(a)所示。
第二个脉冲到来,使B相绕组通电,而A、C相绕组不通电;B相绕组产生的磁场将使转子的2、4齿与B相磁极对齐,如图(b)所示,与图(a)相比,转子逆时针方向转动了一个角度。
第三个脉冲到来后,是C相绕组通电,而A、B相不通电,这时转子的1、3齿会与C组对齐,转子的位置如图(c)所示,与图(b)比较,又逆时针转过了一个角度。
图1.1 反应式步进电机工作原理图当脉冲不断到来时,通过分配器使定子的绕组按着A相--B相--C相--A 相……的规律不断地接通与断开,这时步进电动机的转子就连续不停地一步步的逆时针方向转动。
如果改变步进电动机的转动方向,只要将定子各绕组通电的顺序改为A相--C相--B相--A相,转子转动方向即改为顺时针方向。
单三拍分配方式时,步进电动机由A相通电转换到B相同点,步进电动机的转子转过一个角度,称为一步。
这时转子转过的角度是30度。
步进电动机每一步转过的角度称为步距角。
(2)三相双三拍运行方式三相双三拍运行方式:每次都有两个绕组通电,通电方式是AB--BC--CA--AB……,如果通电顺序改为AB--CA--BC--AB……则步进电机反转。
双三拍分配方式时,步进电动机的步距角也是30度(3)三相单,双六拍运行方式:三相六拍分配方式就是每个周期内有六个通电状态。
这六中通电状态的顺序可以使A--AB--B--BC--C--CA--A……或者A-- CA--C--BC--B--AB--A……六拍通电方式中,有一个时刻两个绕组同时通电,这是转子齿的位置将位于通电的两相的中间位置。
在三相六拍分配方式下,转子每一步转过的角度只是三相三拍方式下的一半,步距角是15度。
单三拍运行的突出问题是每次只有一相绕组通电,在转换过程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震荡,故用的较少。
双三拍运行的特点是每次都有两相绕组通电,且在转换过程中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单三拍相同。
六拍运行方式转换时始终有一相绕组通电,且步距角较小,故工作稳定性好,但电源较复杂,实际应用较多。
第2章详细设计方案2.1 实现方法步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。
即步进电机是将电脉冲信号转换为机械角位移的执行元件。
步进电机的控制可以用硬件,也可以用软件通过单片机实现。
硬件方法是采用脉冲分配器芯片进行通用换相控制;而软件方法是用单片机产生控制脉冲来控制步进电机的运行状态,这种方法可简化电路,降低成本。
在用软件控制时,主要设计要点如下:●判断旋转方向;●按相序确定控制字;●按顺序输入控制字;●确定控制步数和每一步的延时时间。
由于单片机的驱动电流一般都比较小,不能直接驱动电机工作,所以单片机的I/O口输出必须接驱动电路,即功率驱动,才得以控制电机正常工作。
控制框图如下图所示:开始启动时点击处于停止转动状态,当按下启动按键时,点击开始转动并以单四拍作为默认启动方式,用两个开关按键用于节拍控制,用键盘按键控制停止、启动、正转、反转。
用8051作为总控制芯片。
ULN2003用于步进电机的驱动控制。
其中在键盘控制时用键盘扫描程序。
如图2.1总方案图。
图2.1 总方案图2.2模块设计2.2.1 步进电机的驱动步进电机的驱动采用ULN2003,接到单片机的P1.0~P1.3,如图2.1步进电机驱动和单片机连线图。
图2.1 步进电机驱动和单片机连线图2.2.2 按键电路设计键盘接口按不同标准有不同分类方法,按键盘排布,可以分为独立方式(一组相互独立的键盘)和矩阵(一行列组成矩阵)方式。
此次设计只用到了六个按键,故可采用独立按键,P3.0~P3.5分别接到K1~K6。
其原理图如图2.2 按键连线图。
图2.2 按键连线图2.2.3正反转电路控制闭合SW10控制步进电机的正反转,闭合SW11断开SW12步进电机正转;闭合SW12断开SW11步进电机反转。
图2.3 时钟产生及复位连线图总原理图见附录二2.3主程序流程图图进入主程序,首先是对键盘扫描,调用步进电机相关数据控制电机转动,若检测到有键按下,则进行相应的处理。
流程图如下图2.4主程序流程图。
图2.4 主程序流程图主程序见附录一第3章调试3.1 Proteus仿真软件Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
3.2 调试步骤及方法本电路经调试符合题目要求,各项技术指标均达到设计的目的。
具体操作控制方法如下:1、当电机启动按钮时,步进电机根据制定默认状态开始转动;2、当电机停止按钮时,步进电机停止转动;3、当电机正转按钮时,步进电机正转;4、当电机反转按钮时,步进电机反转;5、当电机按钮K1K0为00时,步进电机单四拍工作;6、当电机按钮K1K0为01时,步进电机双四拍工作;7、当电机按钮K1K0为11时,步进电机单双八拍工作。
3.3 仿真图3.4 实验结果及分析故障一:首先在设计总体方案时,思路上出现了一些问题,我首先是想在中断里完成许多应在中断之外完成的事,经过老师的指点,后来想清楚了。
只需在主函数调用就行了,并设定了一个参数对电机的转动节拍进行调控。
故障二:由于编写程序的经验不多,在计算电机节拍,并将其控制电机时,遇到了一些问题,节拍转换公式是找出来了,但怎样将其节拍表示出来,困惑了好久,最后还查阅资料才解决。
故障三:在键盘扫描时不太懂怎么进行扫描,总是不懂地址的扫描和读数据,我以为是程序方面出了问题,后来又仔细看了关于键盘扫描这些知识才弄明白了,最后扫描正。
总结为期一周的单片机课程设计在忙碌中已接近尾声,经过这么多天的努力,终于完成了这次课程设计基本设计要求,在充实中也学到了很多知识,是真正将所学知识运用于实践中的一次很好的体验,使人受益匪浅。
由于此次控制要求不是很高,选用51系列80C51。
接下来就是硬件接口分配问题和如何去驱动电机。
对于步进电机之前没有什么接触,所以我上网查了许多关于步进电机的资料,知道了其基本工作原理以及怎么去实现其控制运转和驱动。
接下来的主要问题就是如何编程去实现控制它了,这次程序的编写和调试对我来说是个不小的挑战,因为之前只编写过一些简短的小程序,对较大的程序总体性方面还不能很好的把握。
经过反复的尝试和调试,用发现一个问题,解决一个问题的方法,还参考了一些别人的经验方法,完成了程序的编写。
这对我以后编写程序是一次很好的经验积累。
通过这次课程设计,我也了解到了自己的不足,以前自己学习单片机的时候,往往只去看懂别人写的程序,以为看懂了自己就知道写了,但事实并不是这样,虽然这次课程设计程序是完成了,但棘手的地方很多,编程并不像以前认为的简单。
所以在以后的学习中,不能手高眼低,一定要脚踏实地,一步步地走,自己动手去做,这样才能将知识真正学到手。
这次课程设计能得以顺利完成,还要感谢毛老师的指导,感受很深,是一次很好的经验积累和设计经历。
参考文献1.张毅刚编著,《单片机原理及应用》高等教育出版社,2010。
2.楼然苗等编著,《51系列单片机设计实例》北京航空航天大学出版社,2006。
3.汪道辉编著,《单片机系统设计与实践》电子工业出版社2005。
4.谭浩强编著,《C程序设计(第三版)》清华大学出版社2005。
5.王港元编著,《电工电子实践指导》江西科学技术出版社2008。
6.周润景编著,《PROTEUS入门实用教程》机械工业出版社2011。
7.林立编著,《单片机原理及应用:基于Proteus和Keil C》电子工业出版社2011。