基于单片机的步进电机控制课设报告

更新时间:2024-04-28 01:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大学

课 程 设 计 报 告

课程设计名称:单片机系统综合课程设计 课程设计题目:基于51单片机的步进电机控制

院(系):计算机学院 专 业: 班 级: 学 号: 姓 名: 指导教师: 完成日期:

课程设计报告

目 录

第1章 总体设计方案 .................................................................................................. 1 1.1 设计原理 .............................................................................................................. 1 1.2 设计思路 .............................................................................................................. 1 1.3 实验环境 .............................................................................................................. 1 第2章 详细设计方案 .................................................................................................. 2 2.1 硬件电路设计 ...................................................................................................... 2 2.2 主程序设计 .......................................................................................................... 2 2.3 功能模块的设计与实现 ...................................................................................... 3 第3章 结果测试及分析 .............................................................................................. 6 3.1 结果测试 .............................................................................................................. 6 3.2 结果分析 .............................................................................................................. 6 参考文献 .......................................................................................................................... 7 附 录A ........................................................................................................................ 8 附 录B(电路原理图) ........................................................................................... 11 附 录C (元件列表) ............................................................................................ 12

-I-

课程设计报告 第1章 总体设计方案

第1章 总体设计方案

1.1 设计原理

根据课程设计任务书的内容与要求,实现步进电机的工作控制过程。通过将电脉冲信号转换成步进电机相应得角位移或线位移,从而使步进电机转动或停止。步进电机是一种能把输出位移增量和输入数字脉冲对应的驱动器件。要实现步进电机的正反转控制,需要给步进电机送入脉冲信号来启动,然后在已经设定好的步进电机的正反转及三种节拍工作方式中切换,步进电机的三种节拍工作方式分别为单四拍、双四拍、单双八拍。改变各脉冲的先后顺序,可以改变电机的旋转方向和工作方式。步进电机工作方式的转换则通过按键开关控制,可以进行正转、反转、停止及三种节拍工作方式的选择。

1.2 设计思路

利用Lab6000实验箱上已有芯片,通过C语言程序编程并结合试验箱来实现步进电机的正转、反转,以及在其上两种转动情况下的单四拍、双四拍、单双八拍的节拍工作方式。

1.2.1 提出方案

首先,实现步进电机停止、正反转;其次,实现在三种不同节拍时的正转和反转。

1.3 实验环境

·硬件环境:Lab6000实验箱,PC机。 ·软件环境:Wave应用软件。

-1-

课程设计报告 第2章 详细设计方案

第2章 详细设计方案

2.1 硬件电路设计

步进电机A,B,C,DP1口 8051

图2.1 硬件电路连线图

步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转,而电流的改变是通过改变单片机P1口输出脉冲信号来实现的。改变各脉冲的先后顺序,可以改变电机的旋转方向和工作方式。本设计的电机的驱动方式为单四拍、双四拍和单双八拍。

8051的P1口作为准双向口,当它作输出作用时与一般的双向口使用方法相同。只需将P1口中的P1.0-P1.3口与步进电机四个接口连接,同时将脉冲信号送给步进电机,从而使步进电机能够工作。

没有开关开启时电机处于待机状态,此时P1.0-P1.3四个口全部输出低电平,电机并不转动。电机转动时,单片机需从开关处读入数据,判断当前步进电机的工作方式。一共8个开关的前3个负责电机的正转,反转和停止的工作方式;后3个开关负责电机的单四拍,双四拍和单双八拍的转动方式。步进电机转动时需要同时开启任一种工作方式和转动方式,才能实现步进电机的控制转动。

2.2 主程序设计

主程序流程图如图2.2所示。

-2-

课程设计报告 第2章 详细设计方案

开始停止开关N正转开关N反转开关Y电机反向转动Y电机停止转动Y电机正向转动结束 图2.2 主程序流程图

KEY1—进入反转模块;KEY2—进入正转模块;KEY3—停止转动。

本流程图主要表示的是程序开始运行时,如没有选择工作方式P1口默认输出低电平保持电机停止状态,同时继续扫描开关,直到某一工作方式开启,步进电机按照此工作方式工作。启动后,程序则不停的扫描开关判断是否有其他开关置高电平,若有则程序进入相应的模块,通过开关来控制步进电机不同的工作方式。

2.3 功能模块的设计与实现

开关上后3个键KEY5-KEY7为其设置相应的转动方式,每当有相应的开关开启,程序则调用预设完成的转动方式,执行不同的功能,与此同时P1口被赋予不同的脉冲信号,则步进电机的ABCD端接收到相应的信号,产生不同的转动方式(高电平有效)。

-3-

课程设计报告 第2章 详细设计方案

单四拍: 双四拍:

正转A->B->C->D ->A 正转AB->BC->CD->DA->AB 反转D->C->B->A->D 反转DA->CD->BC->AB->DA 单双八拍:

正转DA->A->AB->B->BC->C->CD->D->DA 反转D->CD->C->BC->B->AB->A->DA->D

2.3.1 步进电机正转模块的设计与实现

在启动步进电机后选择正转模式,则程序进入正转模块,下面是步进电机正转模块的流程图:

开始Key2开启Y单四拍转动YKey5开启N双四拍转动YKey6开启N单双八拍转动YKey7开启NN结束

图2.3 正转模式流程图

KEY5—进入单四拍工作方式;KEY6—进入双四拍工作方式;KEY7—进入单双八拍工作方式;

-4-

课程设计报告 第2章 详细设计方案

开启开关KEY2,进入正转模式,步进电机正转,此时在步进电机正转的情况下为其选择不同的节拍工作方式。拨下KEY2键,退出正转模式,可以重新选择电机是正转还是反转。

2.3.2步进电机反转模块的设计与实现

在步进电机启动后选择反转模式,则程序进入反转模块,下面是步进电机反转模块的流程图:

开始Key1开启Y单四拍转动YKey5开启N双四拍转动YKey6开启N单双八拍转动YKey7开启NN结束

图2.4 反转模式流程图

KEY5—进入单四拍工作方式;KEY6—进入双四拍工作方式;KEY7—进入单双八拍工作方式;

开启KEY1键,进入反转模式,步进电机反转,此时在步进电机反转的情况下为其选择不同的节拍工作方式。

-5-

课程设计报告 第3章 结果测试及分析

第3章 结果测试及分析

3.1 结果测试

选择正转的工作方式,开启KEY2开关,步进电机开始转动,开启KEY3键,步进电机停止转动。

待机模式下开启KEY2键,步进电机进入正转模式,在正转模式下,按下选择开启KEY5,步进电机按照单四拍的方式进行转动;选择KEY6,步进电机按照双四拍方式进行转动;选择KEY7步进电机按照单双八拍的方式进行转动;拨下KEY2键,步进电机退出正转模式,回到待机模式。

回到待机模式后,可以重新选择正反转模式,开启KEY1,步进电机进入反转模式下,此时选择KEY5-7的功能与正转模式时相同。

3.2 结果分析

对于上述的运行结果,达到了课程设计任务书中的要求。启动步进电机,某一个开关开启时步进电机正转,某一个开关开启时步进电机反转,并且步进电机有三种节拍工作方式。

-6-

课程设计报告 参考文献

参考文献

[1]王晓明.电动机的单片机控制 [M]. 北京:北京航空航天大学出版社,2002 [2]张迎新.单片机初级教程 [M]. 北京:北京航空航天大学出版社,1996 [3]谢宜仁.单片机实用技术问答 [M]. 北京:人民邮电出版社,2003

[4]刘湘涛,江世明.单片机原理与应用 [M]. 西安:西安电子科技大学出版社,2003 [5]张毅刚,刘杰.MCS-51单片机原理及应用 [M]. 哈尔滨:哈尔滨工业大学出版社,2008

-7-

课程设计报告 附 录

附 录A(源程序)

#include

#define uchar unsigned char #define uint unsigned int

uchar code zz1[4]={0x01,0x02,0x04,0x08}; uchar code fz1[4]={0x08,0x04,0x02,0x01}; uchar code zz2[4]={0x03,0x06,0x0c,0x09}; uchar code fz2[4]={0x09,0x0c,0x06,0x03};

uchar code zz3[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; uchar code fz3[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};

sbit K1 = P3^0; //正转 sbit K2 = P3^1; //反转 sbit K3 = P3^2; //停止 sbit K5 = P3^5; //单三拍 sbit K6 = P3^6; //双三拍 sbit K7 = P3^7; //单双六拍 void delay(uint t) {

uint i,k;

for(i=t;i>0;i--)

for(k=0; k<125; k++); }

void zhengzhuan( ) {

uchar i,j; uint k;

for (j=0; j<5; j++) { if(K5==1) k=0;

else if(K6==1) k=1;

else if(K7==1) k=2; switch(k) {

case 0: for (i=0; i<4; i++) {

if(K3==1) break;

-8-

本文来源:https://www.bwwdw.com/article/tk9g.html

Top