课程设计报告 第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-