单片机课设步进电机.docx
《单片机课设步进电机.docx》由会员分享,可在线阅读,更多相关《单片机课设步进电机.docx(14页珍藏版)》请在冰豆网上搜索。
![单片机课设步进电机.docx](https://file1.bdocx.com/fileroot1/2023-2/9/63192e5d-0b92-4b01-867e-f89a2e13a6d4/63192e5d-0b92-4b01-867e-f89a2e13a6d41.gif)
单片机课设步进电机
编号0217
课程设计(论文)
相关资料
题目:
基于单片机的步进电机设计
学院专业
学号
学生
指导教师
二0一二年六月
第一章概述
1.1单片机简介
单片机是单片微型计算机的简称,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
1.2步进电机简介
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
第二章设计容的介绍
2.1步进电机原理
步进电机在控制系统中具有广泛的应用。
它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。
本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。
该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.1所示:
a.单四拍 b.双四拍 c八拍
图2.1
步进电机的驱动电路根据控制信号工作,控制信号由单片机产生,其基本原理作用如下:
(1)控制换相顺序
通电换相这一过程称为脉冲分配。
对于一四相步进电机,采用单极性直流电源供电,只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
下图是四相反应式步进电机工作原理示意图。
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
(2)控制步进电机的转向
如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
(3)控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
2.2设计目标
通过具体小型测试系统设计,实践单片机系统设计及调试的全过程,以加深对单片机部结构、功能和指令系统的理解,并进一步学习单片机开发系统的应用及一些外围芯片的接口和编程方法,初步掌握单片机系统的硬件、软件设计技术及调试技巧。
(1)一个正反转开关控制正转和反转;
(2)一个速度开关控制高速和低速(高速和低速只要有明显差别);
(3)一个半圈按钮,按一下时转半圈;
(4)一个一圈按钮,按一下时转一圈;
(5)一个连续转动按钮,按一下时连续转动,再按一下时停止转动;
(6)整个步进电机控制程序要求用C语言编写。
(7)用protel画出系统原理图,要一个完整的单片机控制系统,电源为220V交流电
第3章设计思路与具体容
3.1设计思路
本系统主要由按键电路、单片机最小系统、AT89c52单片机、步进电机状态显示电路、驱动电路以及步进电机等几部分组成。
本系统采用两个独立开关两个独立按钮,分别进行启动、停止、正反转以及加减速的控制。
驱动电路采用集成驱动元件。
步进电机的供电采用独立12V供电。
3.2单片机及其最小系统
最小系统主要是为了单片机的正常工作。
51单片机是一种低功耗/低电压、高性能的8位单片机,它采用CMOS和高密度非易失性存储器技术,而且其输出引脚和指令系统都与MCS-51兼容;片的FlashROM允许在系统改编程序或用常规的非易失性编程器来编程,部除CPU外,还包括256字节RAM,4K字节的ROM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器。
89S51单片机是一种功能强、灵活性高且价格合理的单片机,且支持在线编程,完全满足本系统设计需要。
单片机最小系统包括单片机和复位电路,振荡电路。
3.3总体设计框图及电路原理图
3.4硬件电路原理图
单片机控制步进电机部分
电源变换部分
第四章程序设计
4.1程序设计思路
根据单片机外围电路的设计,单片机的P32、P33、P34、P35为按键输入。
P0、P2口为LED输出显示。
51单片机采用T0进行定时扫描键盘子程序,主程序根据键盘扫描的结果进行相应的操作。
步进电机的正反转利用给步进电机送入与原来相反的脉冲即可,步进电机的加减速控制是主要控制步进电机送脉冲的时间。
4.2程序设计流程图
图4.1程序流程图
4.3主程序设计
#include"reg52.h"
staticunsignedintcount;//计数
staticintstep_index;//步进索引数,值为0-7
staticbitstop_flag;//步进电机停止标志
staticintspcount;//步进电机转速参数计数
sbitturn=P0^4;//步进电机转动方向
sbitspeedlevel=P0^5;//步进电机转速参数
sbitgo_stop=P0^3;
sbitHalf=P0^2;
sbitA=P2^0;
sbitB1=P2^1;
sbitC=P2^2;
sbitD=P2^3;
sbitWhole=P0^1;
voiddelay(unsignedintendcount);
voidgorun();
voidmain(void)
{
count=0;
step_index=0;
spcount=0;
stop_flag=1;
P2=0X00;
EA=1;//允许CPU中断
TMOD=0x11;//设定时器0和1为16位模式1
ET0=1;//定时器0中断允许
TH0=0xFC;
TL0=0x18;//设定时每隔1ms中断一次
TR0=1;//开始计数
do
{
if(!
go_stop)//低电平表示按键按下
{
delay(10);
if(!
go_stop)//再次确认按键是否按下
{
while(!
go_stop);//等待按键释放
stop_flag=!
stop_flag;
}//实现功能
}
elseif(!
Half)
{
delay(10);
if(!
Half)//再次确认按键是否按下
{
while(!
Half)//等待按键释放
{
stop_flag=0;
if(speedlevel)
delay(600);
elsedelay(200);
stop_flag=1;
}
//实现功能
}
}
elseif(!
Whole)
{
delay(10);//延时去抖,10ms
if(!
Whole)//再次确认按键是否按下
{
while(!
Whole)//等待按键释放
{stop_flag=0;
if(speedlevel)
delay(1200);
elsedelay(120);
stop_flag=1;
}//实现功能
}
}
else
stop_flag=stop_flag;
}
while
(1);
}
4.4子程序设计
定时器中断程序
voidT0_ISR(void)interrupt1
{
TH0=0xFC;
TL0=0x18;//设定时每隔1ms中断一次
count++;
spcount--;
if(spcount<=0)
{if(speedlevel)
spcount=30;
elsespcount=10;
gorun();
}
}
延时程序
voiddelay(unsignedintendcount)
{
count=0;
do{}while(count}
步进程序
voidgorun()
{
if(stop_flag==1)
{
P2=0X00;
return;
}
switch(step_index)
{
case0:
//0
P2=OX01;break;
case1:
//0、1
P2=0X03;break;
case2:
//1
P2=0X02;break;
case3:
//1、2
P2=0X06;break;
case4:
//2
P2=0X04;break;
case5:
//2、3
P2=0X0C;break;
case6:
//3
P2=0X08;break;
case7:
//3、0
P2=0X09;break;
}
if(turn==0)
{
step_index++;
if(step_index>7)
step_index=0;
}
else
{
step_index--;
if(step_index<0)
step_index=7;
}
}
第五章总结
通过本次的单片机课程设计,我对单片机有了更深乘此的了解,特别是对步进电机的控制有了更彻底的了解,不管是步进电机的工作原理,还是步进电机的应用场合,还是步进电机运转的控制,我都弄清楚了。
同时通过这次课程设计我逐渐的意识到其中的乐趣,当自己独自完成任务实现自己想要的结果时,是很有成就感的。
在整个实验过程中,我学习到了课本上学不到的知识--在理论基础上的动手实践能力。
这为我们以后的学习生活打下了坚实的基础。
步进电机主要用于数字控制系统中,精度高,运行可靠。
如采用位置检测和速度反馈,亦可实现闭环控制。
步进电动机已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。
步进电机实现了运动的数字化,精确化。
在机电自动化中起到相当重要的作用,所以机自专业机电方向的我将会更深的学习,并尝试自己去焊接一些电路,锻炼自己的动手能力,提高自己的素质。
参考文献
[1] 丁元杰著.单片微机原理及应用[M].机械工业,2010年1月
[2]华成英童诗白.模拟电子技术基础[M](第三版).:
高等教育,2008
[3] 阎石.数字电子技术基础[M](第三版).:
高等教育,2008
[4]秀霞PROTELdxp2004电路设计与仿真教程[M].:
航空航天大学,2007年11月
[5] 朱承高.电工及电子技术手册[M].:
高等教育,2005
[6]王修才主编.单片机接口技术.第一版.复旦大学..1995年10月
[7]广第主编.单片机基础.第一版.航空航天大学..1994年6月