步进电机课程设计报告.docx
- 文档编号:11482878
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:24
- 大小:1.42MB
步进电机课程设计报告.docx
《步进电机课程设计报告.docx》由会员分享,可在线阅读,更多相关《步进电机课程设计报告.docx(24页珍藏版)》请在冰豆网上搜索。
步进电机课程设计报告
湖南工程学院
课程设计
课程名称微机原理与应用
课题名称步进电机控制系统设计
专业***
班级***
学号****
姓名***
指导教师***
2011年6月27日
湖南工程学院
课程设计任务书
课程名称微机原理与应用
课题步进电机控制系统设计
专业班级***
学生姓名***
学号***
指导老师***
审批
任务书下达日期2011年6月27日
任务完成日期2011年7月8日
设计内容与设计要求
设计内容:
以单片机为核心设计一个步进电机控制系统,要求能够通过键盘设置步进电机的转向和转速,并在4位LED显示器上显示步进电机转速或工作状态。
设计要求:
1)确定系统设计方案;
2)进行系统的硬件设计;
3)完成应用程序设计;
4)硬件电路及应用程序的调试。
主要设计条件
本课题以单片机为核心,设计并制作出步进电机控制系统,设计要求:
1.按下不同的键,分别使步进电机实现顺时针和逆时针旋转;
2.步进电机可实现正、反转,加速、减速等工作状态;
3.通过LED数码管显示步进电机运行速度或工作状态;
说明书格式
1课程设计任务书
2目录
3总体方案确定
4各单元硬件电路设计说明及计算方法
5软件设计与说明(包括流程图)
6调试结果与必要的调试说明
7使用说明
8总结
9参考文献
附录
附录A系统原理图
附录B程序清单
进度安排
设计时间为两周
第一周
星期一、上午:
布置课题任务,讲课及课题介绍
下午:
借阅有关资料,总体方案讨论
星期二、系统总体方案
星期四、设计及调试
星期五、设计及调试
第二周
星期一、设计及调试
星期二、设计及调试
星期三、设计及调试
星期四、写说明书
星期五、上午:
写说明书,整理资料
下午:
交设计资料,答辩
参考文献
参考文献
[1]王迎旭.单片机原理与应用.北京:
机械工业出版社,2004.7
目录
第1章概述1
1.1单片机概述1
1.2步进电机概述2
第2章系统总体方案设计3
2.1系统总体设计思路3
2.2系统总体设计方案方框图3
第3章硬件介绍与说明4
3.1开发板按键硬件连接及实物说明4
3.2开发板数码管硬件连接及实物说明
5
3.3开发板步进电机硬件连接及实物图6
第4章软件设计流程7
4.1系统整体流程概述7
4.2系统整体流程图8
第5章调试结果与说明9
5.1系统调试9
5.2调试说明9
5.3调试结果10
第6章总结12
参考文献13
附录14
附录A系统原理图14
附录B程序清单15
第1章概述
1.1单片机概述
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
AT89系列单片机。
他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的STC90C52RC就是其中典型的代表。
STC单片机是以51内核为主的单片机:
●高速:
1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍
●宽电压:
5.5~4.1V/3.7V,3.6V~2.4V/2.1V(STC11/10L系列)
●低功耗设计:
空闲模式(可由任意一个中断唤醒)
●低功耗设计:
掉电模式(可由任意一个外部中断唤醒,可支持下降沿/低电平和远程唤醒,STC11xx系列还可通过内部专用掉电唤醒定时器唤醒)
●工作频率:
0~35MHz,相当于普通8051:
0~420MHz。
1.2步进电机概述
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器
感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。
因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。
感应子式步进电机某种程度上可以看作是低速同步电机。
一个四相电机可以作四相运行,也可以作二相运行。
(必须采用双极电压驱动),而反应式电机则不能如此。
例如:
四相,八相运行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式。
一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。
完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相拍运行方式即AB-BC-CD-DA-AB,四相八拍运动方式即A-AB-B-BC-C-CD-D-DA-A。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
第2章系统总体方案设计
2.1系统总体设计思路
本系统,通过选取单片机的四个独立键盘作为信号控制的按键输入,并连接到单片机的P3口,通过单片机内部的处理将键盘的输入信号读入并执行相应的动作,并从P,0,P2口分别接数码管的段选端和位选端,从而使得四位数码管能按指定要求显示指点的档位加减,和步进电机运行状态的效果。
同时利用程序对步进电机(本方案中采取四项四拍的方式)实施与数码管同步的相应运转状态,从而使得整个步进电机控制系统得以准确的实现。
具体设计方框图如下。
2.2系统总体设计方案方框图
图2.1总体总体设计方案方框图
第3章硬件介绍与说明
本系统采用自备的STC89C54RD+系列的单片机开发板进行硬件搭接与调试,并利用C语言编程来实现硬件的既定功能。
下面就对此些列开发板的硬件电路原理图进行相应的说明。
3.1开发板按键硬件连接及实物说明
图3.1按键硬件连接及实物图
图中S1~S4可以配置成独立按键,即通过一个眺冒J11切换,在独立键盘配置中,应该把眺冒跳到左端,此时独立键盘才有效,由于,此个步进电机控制系统中所用的按键刚好四个即可满足要求,因此,系统中采用独立键盘。
本系统设计通过四个独立按键S1,S2,S3,S4接入单片机P3口前四位,当S1键按下时,步进电机正转,当S2键按下时,步进电机反转,当S3键按下时,步进电机通过按键的次数来增大步进电机的脉冲频率从而在原有的转速上进行加速,当S4键按下时,步进电机通过按键的次数来减小步进电机的脉冲频率从而在原有的转速上进行减速。
由此,通过四个按键的控制即可实现步进电机的准确控制。
3.2开发板数码管硬件连接及实物说明
图3.2数码管硬件连接及实物图
图中74HC57311脚接VCC,锁存不起作用,相当于直通,相应的段赋值为1,A,B,C赋值0~7,则输出端分别是Y0~Y7置0,从而选通七个数码管,在此步进电机控制系统中仅使用三个数码管,一个用来显示电机运转状态,另外两个用来显示电机转速的不同档位。
本系统设计通过P0口控制数码管的段选,P2口控制数码管的八位数码管的位选,利用数码管的动态扫描选通数码管的1,4,5位数码管,其中第1位为电机的转动状态,4,5位显示一个十位数以用来表示电机转动速度及档位的显示。
3.3开发板步进电机硬件连接及实物图
图3.3步进电机硬件连接及实物图
图中ABCD为4相信号输入端,此端默认为悬空,需要用4根杜邦线连接至单片机I/O口,在此系统中,在软件中定义ABCD4相分别为P1.0,P1.1,P1.2,P1.3,即可利用4根杜邦线将其连接即可。
本系统设计接的是四项的步进电机,每项分别接到P1.0,P1.1,P1.2,P1.3端口上,并通过程序来控制P1高低电平的循环输出。
由于此电机利用的是四项四拍方式来驱动电机,因此,通过程序中的设置从而选择合适的脉冲输出频率从P1口的转换成高低电平信号输出,从而可以有效的驱动电机。
第4章软件设计流程
4.1系统整体流程概述
本系统通过C语言编程,其中包括数码管显示部分,键盘扫描部分,步进电机控制部分三个主要部分,
进入程序先给数码管初始化然后设置中断的工作状态同时开启总中断,然后进入键盘扫描程序部分,首先判断S1键的状态,并通过按键的去抖程序后,给档位进行初始设置,同时设置标志位为1。
然后在保证S2键没有按下的前提下进入转速控制子模块并开始检测S3,S4键的状态,并分别在相应的键按下时对档位进行相应的加减,并同步修改电机的转速参数。
之后,再对中断装入初值,S1键按下的程序中开启中断,从而程序进入中断并通过标志位的选择从而进入电机正反转的程序,并最后进入数码管的动态扫描。
同理可以对S2键进行扫描,流程与上相似。
4.2系统整体流程图
数码管,中断初始化
键盘扫描
N
Y
四号键按下,启动中断
三号键按下,启动中断
二号键按下,启动中断
一号键按下,启动中断
正反转符号不变,档位减一
正反转符号不变,档位加一
数码管显示反转符号和档位
数码管显示正转符号和档位
图4.1系统工作流程图
第5章调试结果与说明
5.1系统调试
本系统调试过程中采用直接硬件调试的方法,对整体的系统程序进行分解排故,首先对八段显像管进行数字显示测试,然后对键盘进行按键响应测试,当测试都得到正确结果时,将键盘与显示结合起来,并给予恰当的字型码,最后加入定时器中断程序,给出正确的脉冲信号和频率。
5.2调试说明
在调试过程中出现了不少问题,通过不同方法得到了解决,在此逐一进行说明:
(1)显示管出现不停闪烁,不能清晰显示的问题,后查出由于延时程序过长没有小于眼镜分辨频率所致,缩短定时器定时后解决。
(2)按键出现按下一键响应多次的情况,后查出由于键位抬起子程序书写不当,造成键盘多次响应,并加上了松手去抖程序后问题得以顺利解决。
(3)在设计中断初值重装的时候,发现要适时的修改步进电机的脉冲频率,可以直接将控制电机转速参数的量直接赋到初值里面,这样的效果比通过固定初值再去计数的效果要好
5.3调试结果
图5.1电机正转显示效果图
图5.2电机反转显示效果图
图5.3电机最高档位显示效果图
图5.4电机最低档位显示效果图
第6章总结
这次单片机课程设计让我获益很多,由于先前我自己已经对单片机的基本功能都有个比较具体的了解,因此,对于这个课程设计我并不是很担心,因此,对于选题我也并不是很在意,那天老师给我们布置了课题后,我接到的是步进电机控制的课题,由于平时我对步进电机控制上并没有下太大的功夫,因此,对于这个课题还是比较陌生的,但是,我并不担心,接到课题后我就开始准备程序。
其实,我做的还是比较顺利,由于先前一些基本的程序我自己都有编过,因此很多基本的模块就可以直接调用,像键盘扫描模块就可以直接调用,由于先前我的程序都是用C语言编的,因此,我也就没有打算用汇编语言编程,将这些外面的控制模块都编好了后,我就开始查资料了解步进电机的工作原理及程序控制方法,了解完后,我也很顺利的编好了电机驱动程序,接下来就剩下了最后一个功能部分,也算是最关键的部分,那就是电机的加速减速,一开始,我是利用按键的按下次数来控制步进电机的延时程度,从而达到电机转速控制的效果。
弄好了这个程序后,我后来就去拿给老师检查,但是老师说我的档位设置的不够,同时最好利用中断来控制步进电机的脉冲频率,要我回家继续修改,因此,我拿回程序后继续改进方案,最后,终于,按照老师的要求完成了目标同时也有了个比较好的硬件显示效果。
至此,我的程序编译调试阶段算是结束了,剩下的就是报告的书写,我们老师对我们要求很严格,报告一定要按照老师指定的规范书写,因此,在报告的书写上我们也获益匪浅,也理解到了做事情一定要细致。
通过这次单片机课程设计,我不仅又重温了一下单片机的操作,同时也让我加深了对单片机的了解,尤其是对步进电机的工作原理及运转状态的控制有了个比较形象的认知,让我,在单片机上又有了更进一步的提升。
最后,也得感谢我们的指导老师,由于她的严格要求让我们学到了更多。
参考文献
1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.
2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.
3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社
4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.
5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.
附录
附录A系统原理图
图A系统整体原理图
附录B程序清单
#include
sbitkey1=P3^0;//定义按键位置
sbitkey2=P3^1;
sbitkey3=P3^2;
sbitkey4=P3^3;
unsignedintsudu,dang,flag,a,b,c,num,num1;
unsignedchari=0;
unsignedcharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x7C,0x77,0x6d};
unsignedcharcodeseg[]={0,1,2,3,4,5,6,7};
unsignedcharcodeF_Rotation[4]={0xf1,0xf2,0xf4,0xf8};//正转表格
unsignedcharcodeB_Rotation[4]={0xf8,0xf4,0xf2,0xf1};//反转表格
voiddelay(unsignedintcnt)//延时子程序
{
while(--cnt);
}
voidadd()
{
if(!
key3){
delay(1000);
if(!
key3){
dang++;
if(dang>=19)
dang=19;}
while(!
key3);}
if(!
key4){
delay(1000);
if(!
key4){
dang--;
sudu=sudu+50;
if(dang<=1)
dang=1;}
while(!
key4);}
switch(dang){
case1:
sudu=1800;break;
case2:
sudu=1700;break;
case3:
sudu=1600;break;
case4:
sudu=1500;break;
case5:
sudu=1400;break;
case6:
sudu=1300;break;
case7:
sudu=1200;break;
case8:
sudu=1100;break;
case9:
sudu=900;break;
case11:
sudu=800;break;
case12:
sudu=700;break;
case13:
sudu=600;break;
case14:
sudu=500;break;
case15:
sudu=400;break;
case16:
sudu=300;break;
case17:
sudu=200;break;
case18:
sudu=100;break;
case19:
sudu=10;break;}}
main()
{
TMOD=0X01;
EA=1;
ET0=1;
sudu=500;
while
(1)
{
if(!
key1)
{
delay(1000);
if(!
key1)
{
dang=10;
while
(1)
{
if(key2==1){
add();
sub();
TH0=(65536-sudu)/256;
TH1=(65536-sudu)%256;
a=10;//显示F标示正转
b=dang/10;
c=dang%10;
flag=1;
TR0=1;}
elsebreak;
}}}
if(!
key2)
{
delay(1000);//去抖动
if(!
key2)
{
dang=10;
while
(1)
{
if(key1==1)
{
add();
sub();
TH0=(65536-sudu)/256;
TH1=(65536-sudu)%256;
a=11;//显示b标示反转
b=dang/10;
c=dang%10;
flag=2;
TR0=1;
}
elsebreak;
}}}}}
voidtime_T0()interrupt1
{
TH0=(65536-sudu)/256;
TH1=(65536-sudu)%256;
num1++;
num++;
if(num1==1)
{num1=0;
if(flag==1)
{P1=F_Rotation[i];
i++;
if(i>=4)
i=0;}
if(flag==2)
{P1=B_Rotation[i];
i++;
if(i>=4)
i=0;}}
if(num==1)
{P2=seg[0];
P0=tab[a];
delay(80);
P2=seg[4];
P0=tab[b];
delay(80);
P2=seg[5];
P0=tab[c];
delay
(1);
num=0;
TR0=0;
}
TR0=0;
}
电气信息学院课程设计评分表
项目
评价
设计方案的合理性与创造性
开发板焊接及其调试完成情况
硬件设计或软件编程完成情况*
硬件测试及软件调试结果*
设计说明书质量
设计图纸质量
答辩汇报的条理性和独特见解
答辩中对所提问题的回答情况
完成任务情况
独立工作能力
组织纪律性(出勤率)
综合评分
指导教师签名:
________________
日期:
________________
注:
表中标*号项目是硬件制作或软件编程类课题必填内容;
此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:
封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 课程设计 报告