微控综合系统设计课程设计基于51单片机的步进电机微控系统设计.docx
- 文档编号:15676204
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:15
- 大小:122.59KB
微控综合系统设计课程设计基于51单片机的步进电机微控系统设计.docx
《微控综合系统设计课程设计基于51单片机的步进电机微控系统设计.docx》由会员分享,可在线阅读,更多相关《微控综合系统设计课程设计基于51单片机的步进电机微控系统设计.docx(15页珍藏版)》请在冰点文库上搜索。
微控综合系统设计课程设计基于51单片机的步进电机微控系统设计
微控综合系统设计课程设计
评语:
考勤(10)
守纪(10)
过程(40)
设计报告(30)
答辩(10)
总成绩(100)
专业:
电气工程及其自动化
班级:
电气1301班
姓名:
学号:
指导教师:
兰州交通大学自动化与电气工程学院
2016年1月9日
1摘要
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。
采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。
软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。
本设计是采用STC89C52单片机对步进电机的控制,通过IO口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机;同时,用4个按键来对电机的状态进行控制,并用4个LED发光二极管显示电机的转速。
系统由硬件设计和软件设计两部分组成。
其中,硬件设计包括STC89C52单片机的最小系统、电源模块、键盘控制模块、步进电机驱动(集成达林顿ULN2003)模块、LED指示灯模块。
软件采用在Keil软件环境下编辑。
2引言
用单片机设计的步进电机控制系统应具有以下功能:
1.步进电机的按键启停控制
2.步进电机的按键正反转控制
3.步进电机的按键加速控制
4.步进电机的按键减速控制
5.步进电机的LED灯速度显示
3设计方案及原理
本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。
本系统采用AT89C51作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,通过led显示速度等级。
下面图1是系统的组成的结构图,大致规划系统的组成,以及控制的原理。
图1总体设计框图
4硬件设计
步进电机控制系统共分为六个模块:
单片机最小系统模块、键盘控制模块、数码显示模块、测速模块、步进电机驱动模块和电源模块。
1.单片机最小系统主要由复位电路和时钟电路组成。
复位电路为单片机系统提供可靠复位,使单片机能正常启动。
时钟电路采用外部时钟方式,保证单片机个功能部件都是以时钟频率为基准,有条不紊地一拍一拍地工作。
2.键盘控制模块包括方向控制键、加速键和减速键、启停键,分别与单片机的P2.0、p2.1、p2.2和P2.3相连。
实现对步进电机的控制。
并且键盘上连接有发光二极管,以指示键盘状态。
3.数码显示模块采用共阴极数码管来动态显示步进电机的实际转动速度。
利用I/O口为数码管的com端提供低电平。
二号单片机的P1口提供数码管的段选信号,P2.6和P2.7控制数码管的位选信号。
4.测速模块采用开关霍尔片对安放在步进电机转盘上的小磁片的磁信号进行检测,步进电机转盘每次带动小磁片经过霍尔片时,其都将有脉冲信号从霍尔片输出。
单片机外部中断口对信号进行采集。
5.步进电机驱动模块选用七个NPN达林顿连接晶体管ULN2003为步进电机提供脉冲信号,驱动步进电机转动。
该模块与单片机的P1.0—P1.3相连。
6.电源模块是通过将市电220V转变为直流12V和直流5V分别供给驱动模块和单片机模块。
在本设计以常用的永磁式步进电机为例,用单片机控制步进电机。
以下是CZ-2801型永磁步进电机的外形图,如图2所示。
图2CZ-2801型永磁步进电机外形图
不难设计出控制电路,因其工作电压为12V,因此用一块开路输出达林顿驱动器(这里用ULN2003,关于ULN2003将在后面介绍)作为驱动,通过P1.0、P1.3来控制各线圈的接通与切断。
开机时,P1.0、P1.3均为高电平,依次将P1.0、P1.2(或P1.1、P1.3反向)切换为低电平即可驱动步进电机运行。
如果要改变电机的转动速度只要改变两次接通之间的时间。
改变转速,只要改变P1.0、P1.2(或P1.1、P1.3反向)轮流变低电平的时间即可达到要求,因为不会影响到其他功能的实现,这个时间可以用延时来实现,。
这里以定时的方式来实现。
下面首先计算一下定时时间。
按要求,最低转速为20转/分,而上述步进电机的步距角为7.5,即每48个脉冲为1周,即在最低转速时,要求为960脉冲/分,相当于62.5ms/脉冲。
而在最高转速时,要求为100转/分,即48000脉冲/分,相当于12.5ms/脉冲。
可以列出下表1:
表1步进电机转速与定时器定时常数关系
转速
单步时间(ms)
TH0
TL0
20
62.5
1F
0
21
59.52380952
29
B6
22
56.81818182
33
74
23
54.34782609
3C
59
24
52.08333333
44
80
25
50
4C
0
26
48.07692308
52
EC
27
46.2962963
59
55
28
44.64285714
5F
49
…
…
…
…
93
13.44086022
CF
9C
94
13.29787234
D0
20
95
13.15789474
D0
A1
96
13.02083333
D1
20
97
12.88659794
D1
9B
98
12.75510204
D2
14
99
12.62626263
D2
8B
100
12.5
D3
0
表中不仅计算出了TH0和TL0,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。
表中TH0和TL0是根据定时时间算出来的定时初值,这里用到的晶振是12.000M。
有了上述表格,程序就不难实现了,使用定时/计数器T0为定时器,定时时间到后切换输出脚即可。
在本设计中所采用的是共阴极LED数码显示器,其内部结构如图4所示:
图3LED数码管结构图
5软件设计
5.1程序设计思路
步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动、控制数码管动态显示等任务,这就必须通过中断技术来实现。
在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按键值修改相应参数值,实现键盘的实时处理功能。
定时器0中断服务程序控制步进电机的转动:
根据当前显示的速度进行键盘手动改变T0定时时间常数,设置TH0和TL0的值,达到对转速精确控制的目的;根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。
说明如下:
1.单片机接受键盘信息,改变系统内部变量值。
2.单片机输出脉冲信号,控制步进电机转动。
3.单片机根据步进电机实际转动值,控制数码管显示。
5.2程序流程图
步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图3-2所示:
图4步进电机控制系统主程序流程图
系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。
初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。
然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。
首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。
延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;如果相等则表明确实有键按下。
执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。
按键处理子程序流程图如图3-3所示:
图5键盘处理子程序流程图
步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。
定时器中断0服务程序的中断时间由当前的转速决定。
进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。
然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。
最后恢复现场,返回,等待下次中断。
通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。
5.3源程序与电路仿真
各模块控制的详细源程序附于最后,以下为仿真接线图,如图6。
图6电路仿真图与接线图
6系统仿真及实际调试
根据设计利用proteus仿真软件进行仿真并根据结果进行修改,在得到合适结果后,进行电子制作,利用电路板来进行焊接,在一开始的焊接中,电路布线总是杂乱,焊接了主要电路后将辅助电路再一一焊接好,最后调试发现功能不全,原来是在主要电路的基础上把一些引脚位置焊接错误了,导致运行结果不符合预期,之后发现整改了,调通。
7总结
经过老师耐心细致的指导,经过自己的努力,本次设计步进电机控制系统告一段落。
步进电机控制系统主要分为硬件设计和软件设计两个部分:
硬件设计主要是把单片机最小系统、键盘控制模块、步进电机驱动模块、数码显示模块、测速模块各个硬件功能模块及其它元件合理搭配并连接起来使其能够为软件运行提供一个硬件平台。
软件设计主要是通过编写程序代码,实现对整个系统的控制。
在系统上电复位后程序自动运行,通过接受外部的键盘操作修改系统参数值,控制步进电机的启停,以及转速的增减和转动方向的改变;定时器T0根据系统参数控制步进电机的转动;实现步进电机转动速度的动态显示。
本系统具有相当的实用功能,两片单片机分别实现步进电机控制和测速,能基本符合实际应用需求,本次设计由于设计时间较短,个人能力以及精力等因素的限制,加之设计经验的不足,该系统还有许多不尽如人意的地方。
该系统未能完全的实现设计的所有功能。
如:
利用键盘输入转速值实现转速的控制,动态设置最低转速和最高转速等。
在把理论设计转换成实物的整个过程,如:
电路设计、分析计算、画电路图、焊接电路、检查调试、软件流程控制设计分析、编写调试软件、烧写软件到整个软硬件系统的调试,最后直到系统完成。
其中整个系统的前期准备是首先必须做到位的,如控制什么、用什么控制、得到什么结果,进而对各部分应选择具体的芯片作进一步的考虑,以使系统得到最优的表现。
通过本课题,一方面我在查阅资料的基础上,了解单片机控制的一些基本技术,掌握其控制系统的分析方法与实现方法,能对单片机外围电路设计进行系统学习与掌握;另一方面,在设计步进电机控制系统的硬件电路,控制程序和相应的电路图时,应充分运用说学知识,善于思考,琢磨,分析。
8参考文献
[1]张迎新.单片机初级教程.北京航天航空大学出版社2000年.
[2]康华光.电子技术基础(模拟部分).第四版高等教育出版社1999年.
[3]喻宗泉.单片机原理与应用技术.西安电子科技大学出版社2005年.
[4]万光毅.单片机实验与实践教程.北京航天航空大学出版社2003年.
[5]张俊谟.单片机初级教程.北京航天航空大学出版社2000年.
附录源程序
#include
#defineucharunsignedchar//无符号字符型宏定义变量范围0~255
#defineuintunsignedint//无符号整型宏定义变量范围0~65535
unsignedcharcodezheng[4]={0x08,0x04,0x02,0x01};//正转表格
unsignedcharcodefan[4]={0x01,0x02,0x04,0x08};//反转表格
ucharflag_start;//启动标志位1为起动步进电机否则关闭电机
ucharflag_z_f;//正反标志位0为顺时钟1为逆时史上转
ucharflag_shudu;//4种速度0,1,2,3,
uintflag_shudu_value=400;
voidDelay(unsignedinti)//延时
{
while(--i);
}
ucharkey_can;
/********************独立按键程序*****************/
voidkey()
{
staticucharkey_new;
key_can=20;//按键值还原
if((P3&0xf0)!
=0xf0)//按键按下
{
Delay(5);//按键消抖动
if(((P3&0xf0)!
=0xf0)&&(key_new==1))
{//确认是按键按下
key_new=0;
switch(P3&0xf0)
{
case0xe0:
key_can=1;break;//得到按键值
case0xd0:
key_can=2;break;//得到按键值
case0xb0:
key_can=3;break;//得到按键值
case0x70:
key_can=4;break;//得到按键值
}
}
}
else//按键松开
key_new=1;
}
/******************主程序**********************/
voidmain()
{
unsignedchari;
while
(1)
{
key();
if(key_can<10)
{
if(key_can==1)//启动键
{
if(flag_start==0)//启动
{
flag_start=1;
switch(flag_shudu)
{
case0:
flag_shudu_value=500;P2=0xf0;break;
//速度1最快
case1:
flag_shudu_value=800;P2=0xf9;break;
case2:
flag_shudu_value=1000;P2=0xfc;break;
case3:
flag_shudu_value=1500;P2=0xfe;break;
//速度4最慢
}
}
else//停止
{
flag_start=0;
P2=0XFF;//关闭指示灯
}
}if(key_can==2)//正反转键
{
flag_z_f=~flag_z_f;//
}if(key_can==3)//减速
{
flag_shudu++;
if(flag_shudu>=4)
flag_shudu=0;
switch(flag_shudu)
{
case0:
flag_shudu_value=500;P2=0xf0;break;
//速度1最快
case1:
flag_shudu_value=800;P2=0xf9;break;
case2:
flag_shudu_value=1000;P2=0xfc;break;
case3:
flag_shudu_value=1500;P2=0xfe;break;
//速度4最慢
}
}if(key_can==4)//加速
{
if(flag_shudu==0)
flag_shudu=4;
flag_shudu--;
switch(flag_shudu)
{
case0:
flag_shudu_value=500;P2=0xf0;break;
//速度1最快
case1:
flag_shudu_value=800;P2=0xf8;break;
case2:
flag_shudu_value=1000;P2=0xfc;break;
case3:
flag_shudu_value=1500;P2=0xfe;break;
//速度4最慢
}
}
}
if(flag_start==1)
{
for(i=0;i<4;i++)//4相
{
if(flag_z_f==0)
P1=zheng[i];//电机正转
else
P1=fan[i];//电机反转
Delay(flag_shudu_value);
//改变这个参数可以调整电机转速
}
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 系统 设计 课程设计 基于 51 单片机 步进 电机
![提示](https://static.bingdoc.com/images/bang_tan.gif)