基于51单片机的步进电机课程设计报告毕业论文.docx
- 文档编号:28950168
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:28
- 大小:772.77KB
基于51单片机的步进电机课程设计报告毕业论文.docx
《基于51单片机的步进电机课程设计报告毕业论文.docx》由会员分享,可在线阅读,更多相关《基于51单片机的步进电机课程设计报告毕业论文.docx(28页珍藏版)》请在冰豆网上搜索。
基于51单片机的步进电机课程设计报告毕业论文
绪论…………………………………………………………………………2
一、选题背景………………………………………………………………3
1.1课题背景……………………………………………………………3
1.2研究的目的和意义…………………………………………………3
1.3课题研究的容……………………………………………………4
二、方案的论证………………………………………………………………4
2.1单片机简介…………………………………………………………4
2.2步进电机简介………………………………………………………5
2.3仿真软件的介绍……………………………………………………6
2.4驱动电路的选择……………………………………………………6
三、设计或实验过程的论述…………………………………………………7
3.1硬件电路的设计…………………………………………………8
3.2软件部分…………………………………………………………9
四、基于AT89S52步进电机控制系统的实现………………………………15
4.1系统的故障与调试…………………………………………………15
4.2设计结果……………………………………………………………16
五、总结与展望…………………………………………………………………16
5.1总结…………………………………………………………………16
5.2展望…………………………………………………………………16
5.3心得…………………………………………………………………16
六、致………………………………………………………………………17
附录一:
参考文献……………………………………………………………18
附录二:
电路原理总图…………………………………………………………19
附录三:
元器件清单……………………………………………………………20
附录四:
产品实物图……………………………………………………………21
步进电机的控制设计
绪论
单片机具有体积小、功耗小、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用与仪表仪器中,结合不同类型的传感器,可以实现诸如电压、功率、频率、温度、湿度、流量、速度、厚度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更强大。
例如精密的测量设备(功率表,示波器,各种分析仪)。
同时用单片机还可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
现在的单片机普遍具备通信接口,可以很方便的与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本都实现了单片机智能控制,从手机,机,小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动,集群移动通信,无线电对讲机等。
此外,单片机在工商,金融,科研,教育,国防航空航天等领域都有着十分广泛的用途。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、大容量、低价格和外围电路装化等几个方面发展。
综合所述,单片机已成为计算机发展和应用的一个重要方面。
另一方面,单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法实现了。
这种软件代替硬件的控制技术也成为微控控制技术,是传统控制技术的一次革命。
步进电机作为执行元件,是机电一体化的关键产品之一,随着工业自动化的发展,步进电机的应用也越来越广泛,广泛应用与各种控制自动化控制系统中。
步进电机是一种用于开环控制的驱动元件。
它使用电脉冲信号进行控制,将电脉冲信号转换成的角位移或线位移的微电动机。
步进电机作为电机的一种,可以靠开路控制做精确的定位,因此普遍应用于电脑的外设与工业生产的自动化机具设备中,此外机器人的各个关节也是用了大量的步进电机。
近些年来,由于步进电机的控制精度不断提高,越来越多有较高控制精度要求的系统也开始采用步进电机。
对于小功率步进电机,一般采用单片机与步进电机驱动器联合工作方式,单片机产生脉冲,控制停启、正反转、变速等,专用步进电机驱动器则进行脉冲环形分配与功率驱动。
步进电机突出的优点是它可以在宽广的频率围通过改变脉冲频率来实现调速,快速停止、正反转控制与制动,并且用其组成的开环系统既简单、廉价,又非常可靠,步进电机的转速取决于脉冲频率、转子数和拍数。
其角速度与脉冲频率成正比,而且在时间上与脉冲同步。
因而在转子齿数与运行拍数一定的情况下,只要控制脉冲频率即可所需的速度,因此在众多领域具有重要意义。
此设计选用的步进电机是两相步进电机,通过软件与硬件结合,使用按键控制电机的正传、反转、停止与不同速度切换功能。
主要通过两大块来设计,包括驱动电路设计、按键部分设计,可以通过控制脉冲个数来控制角位移量,从而控制转动的角度;同时可以通过控制脉冲频率来控制电机转动的速度。
一、选题背景
1.1课题背景
步进电机是自动控制系统中常用的执行元件。
步进电机的输入信号为脉冲电流,它能将输入的脉冲信号转换为阶跃性的角位移或直线位移,因而步进电机可以看成是串行的数模转换器。
由于步进电机能够直接接收数字信号,而不需要数模转换,所以使用微机控制步进电机显得很方便。
步进电机有以下优点:
(1)通常不用反馈就能对位置和速度进行可控制;
(2)位置误差不会积累;
(3)与数组设备兼容,能够直接接收数字信号;
(4)可以快速停起。
步进电机品种规格很多,按照它们的结构和工作原理可以划分为磁阻式,混合式、永磁式和特种电机四种主要类型。
步进电机不需要传感器就可以精准定位,所以在精确定位系统中应用广泛。
目前打字机、计算机外设、数控机床等设备都使用了步进电机。
随着电子技术的发展,步进电机必将发挥它的控制方便控制准确的特点,在工业控制领域取得更为广泛的应用。
1.2研究的目的和意义
1.21、研究的目的
综合运用所学的《单片机应用设计》的理论知识,通过实践加强对所学知识的理解,具备设计单片机系统的能力,以单片机为核心设计一个步进电机控制系统,要求能够通过安检控制步进电机的转速,设计多种速度模式。
在设计的过程中,熟悉并掌握单片机的结构和使用方法,了解步进电机的部结构与工作过程,将二者结合起来并实现预期结果,锻炼自己实践动手和软件编程能力。
1.2.2、研究的意义
步进电机是用脉冲进行控制的,将电脉冲信号转换成和相应的角位移或线位移的电机,它突出的优点是可以在宽广的频率围通过改变脉冲频率来实现调速,快速启停、正反转控制与制动等,并且用其组成的开环工作既简单又实用,因此在打印机等办公设备以与控制装置等众多领域有着极其广泛的应用。
随着电力电子技术的发展,步进电机的需求与日俱增,研制步进电机驱动器与其控制系统具有重要意义。
1.3、国外的研究现状与研究成果
小功率电机产业经过40多年的发展,特别是改革开放20多年以来的快速发展,取得了长足进步。
目前,国小功率电机生产与配套厂家在1000家以上,从业人员超过10万人,工业总产值超过150亿元,并且以每年18%的速度递增,产量已占世界产量的60%以上,已成为国民经济和国防建设中不可缺少的基础性工业。
国民经济与科学技术的发展,为电机传统产业提供了无限的发展空间。
目前,小功率电机在国的生产厂家主要集中在东南沿海的江、浙、沪、闽、粤等五省市和华北地区,全国小功率电机企业约1000多家,经过多年的发展和技术改造,企业的整体实力得到了增强,生产技术水平有较大提高,质量管理体系比较健全,产品质量明显提高,在国外市场上具有较强的竞争力,发展势头强劲。
小功率电机产业在我国的发展分两个阶段。
第一阶段,顺应国家电业发展的需要,应用于风扇、空调器、冰箱、洗衣机、排油烟机、小家电、保健器具等产品的小功率电机,国企业通过技术引进、设备引进吸收,已缩小了同发达国家的差距,部分产品的技术水平已达到国际先进水平,企业具有了很强的自主研发能力、自主知识产权,也形成了一些具有广泛市场知名度的产品品牌。
第二阶段,随着汽车工业的快速发展,车用小功率电机的需求也迅速增长,带动了以永磁直流和无刷直流电机为主体的车用功能型小功率电机的兴起。
小功率电机兼有技术密集型和劳动密集型的双重特点,日本、欧美等工业发达国家将产品转移到国外生产,我国因具有巨大的市场潜力和丰富廉价的劳动力优势,已经成为欧、美、日等发达国家产业转移的主要接受地区,使小功率电机产业的发展在今后相当长时间具有良好的发展前景,可以充分利用先进的技术、管理手段、原材料与劳动力等有利条件,逐步发展成为全球小功率电机制造中心。
国小功率电机的发展现状呈现如下的特点:
1.一批具有一定规模和实力的企业已经涌现。
2.新产品开发能力不断提升,拥有一大批自主知识产权。
3.零部件专业化生产水平不断上升。
4.专用设备制造水平有较大提高。
1.3、课题研究容
本课题所选的步进电机是两相四线步进电机,采用的方法是利用单片机控制步进电机的驱动。
步进电机是一种将电脉冲转化为角位移的执行机构。
当步进电机驱动器受到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步进行的。
可以通过脉冲个数来控制来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来调节步进电机的速度和加速度,从而达到调速的目的。
本次设计就是通过改变脉冲频率来调节电机速度的。
另外通过单片机实现它的正反转,变速,步进电机可以作为一种控制用的特种电机,利用其没有积累误差的特点,广泛应用于宏开环控制。
二、方案论证
2.1单片机简介
单片机就是在一块硅片上集成微处理器,存储器和各种输入输出接口,具有一台计算机的属性,因而单片微型计算机,简称单片机。
单片机自20世纪70年代问世以来,以其极高的性价比受到人们的极大关注,所以应用广泛,发展很快。
单片机的优点是体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
本设计采用的是AT89S52,其管脚图如图2-1
图2-1
2.2.1步进电机简介
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加载一个脉冲信号,电机则转过一定的步进角。
这一线性关系的存在,加上步进电机只有周期性误差而无累积误差的特点,使得在速度,位置等控制领域用步进电机来控制变得非常简单。
正常情况下,步进电机转过的总角度与输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
图2.2步进电机实物图
2.2.2步进电机驱动原理
步进电机有三线制、五线制、六线制三种,但其控制方式均一样,以脉冲电流来驱动。
步进电机的励磁方式又分为全部励磁与半励磁,其中全部励磁又有1相励磁与2相励磁之分。
本设计采用的是两相励磁方式,在每一瞬间会有两个线圈同时导通,每送一励磁信号1.8度。
步进电机的励磁顺序如表2-2.2所示。
正励磁顺序:
A--AB--B--A’B--A--A’B’—B’—AB’
STEP
A
A’
B
B’
SETP
A
A’
B
B’
1
1
0
0
0
5
0
1
0
0
2
1
0
1
0
6
0
1
0
1
3
0
0
1
0
7
0
0
0
1
4
0
1
1
0
8
1
0
0
1
当电机定子绕组通电时序为A—AB—B—A’B—A—A’B’—B’—AB’时为正传,通电时序为AB’—B’—A’B’—A—A’B—B—AB--A时为反转。
单片机作为核心部件,向步进电机输入端传送1或0信息,则可实现上述操作。
2.3、仿真软件的介绍
2.3.1Keil
Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。
Keil公司由两家私人公司联合运营,分别是德国慕尼黑的KeilElektronikGmbH和美国德克萨斯的KeilSoftwareInc。
Keil公司制造和销售种类广泛的开发工具,包括ANSIC编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-timekernel)。
Keil的两大优点
1.KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
2.3.2AltiumDesigner软件
澳大利亚啊Atium公司于2006年推出的AltiumDesigner6.0是一个一体化的电子产品开发系统,它将设计流程、集成化PCB设计、可编程器件设计和基于处理器设计的嵌入式软件开发功能整合在一起,为用户提供了一套完整的电子设计解决方案。
AltiumDesigner6.0的主要功能包括电路原理图设计,印刷电路板设计,电路模拟仿真,FPGA与逻辑器件设计与高级信号完整性分析,该软件支持多国语言,完全兼容Protel99SE、ProtelDXP等优点。
2.4驱动电路的选择
本设计采用芯片L293B,L293B为H桥驱动芯片,可以负载提供双向电流,适合驱动2相步进电机,也可以驱动2台普通的有刷直流电机。
L293B模块具有以下特点:
1、电机驱动电压高,最高可达36V;2、输出驱动电流大,峰值可达2A,稳定工作达1A;3、两路带滞放二极管全桥电路驱动电路,,可驱动一个两相步进电机或两个速度、方向都可调的直流电机,或四个速度可调的直流电机。
芯片管脚如图2-4
图2-4
参数如下:
逻辑电源VDD:
4.5—36V
逻辑电源电流IDD:
0—24Ma
电机驱动电源VH:
VDD—36V
输入低电平电压VIL:
0—1.5V
输入高电平电压VIH:
2.3—VDD
泄放二极管导通压降VF:
典型值为0.7V
反向恢复时间trr:
典型值4Ns
输入到输出延时Td:
最大值为1Us
最大PWM频率PWMHZ:
5KHZ
综合本设计需求,在满足设计要求前提下,选用L293B十分经济合适。
三、设计或实验过程论述
3.1硬件电路的设计
3.1.1硬件设计的总体方案
因为步进电机的控制是通过脉冲信号来控制的,将电脉冲转变为角位移或线位移的开环控制元件。
所以怎样产生这个脉冲信号和产生怎样的信号是电机控制的关键。
用单片机来产生这个脉冲信号,通过单片机的P1口输出脉冲信号,因为所选的电机是两相的,所以只需P1口的低六位接到电机上即可。
按键接在P2口的低五位,通过改变脉冲频率实现变速,而蜂鸣器接在P3.6口用来提示速度切换报警,具体电路结构图如下:
图3-1-1系统具体结构图
3.1.2单片机的最小系统
单片机最小系统包括振荡电路和复位电路,器电路图如下:
图3-1-2单片机的最小系统
3.1.3按键部分(如图3-1-3)
图3-1-3
本次设计选用的是单片机的P2口来控制信号的输入,所以把按键开关和P2口连接起来另一端接地。
当按下其中一个开关时,P2.0~P2.4中的某一个I/O口的电位被拉低,则单片机进行相应的动作。
3.1.4步进电机
本设计使用的是两相四线电机,电压为DC5V,本设计中步进电机工作在二相励磁方式。
当对步进电机施加一系列连续的控制脉冲时,它可以不断的转动,本电机采用八拍(A-AB-B-BC-C-CD-D-DA-A),电机如图:
图3-1-4电机实物图
3.1.5硬件的焊接
整体硬件仿真图如下:
图3-1-5系统整体仿真图
3.2、软件部分
3.2.1、主程序
主程序由正反转速度模式程序、变速程序、延时程序、报警程序四部分组成。
其程序流程如下:
图3-2-1主程序框图
3.2.2程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeFFW[8]={0xe3,0xeb,0xe9,0xed,0xf5,0xf1,0xf3,0xff};
ucharcodeREV[8]={0xff,0xf3,0xf1,0xf5,0xed,0xe9,0xeb,0xe3};
sbitK1=P2^0;//正转
sbitK2=P2^1;//反转
sbitK3=P2^2;//停止
sbitK4=P2^3;//正变速
sbitK5=P2^4;//反变速
sbitBEEP=P3^6;//蜂鸣器
sbitEN1=P1^0;
sbitEN2=P1^1;
sbitAA=P1^2;
sbitAB=P1^3;
sbitBB=P1^4;
/********************************/
/*
/*延时t毫秒
/*延时约1ms
/*
/*****************************/
voiddelay(uintt)
{
uintk;
while(t--)
{
for(k=0;k<125;k++)
{}
}
}
voiddelayB(ucharx)
{
uchari;
while(x--)
{
for(i=0;i<13;i++)
{}
}
}
voidbeep()
{
uchari;
for(i=0;i<100;i++)
{
delayB(8);
BEEP=!
BEEP;//BEEP取反
}
BEEP=1;//关闭蜂鸣器
}
/*******************************/
/*
/*步进电机正转
/*
/*******************************/
voidmotor_ffw()
{
uchari;
while
(1)//一直转
{
if(K3==0)
{break;}//退出此循环程序
for(i=0;i<8;i++)//一个周期转14.4度
{
P1=FFW[i];//取数据
delay
(1);//调节转速
}
if(K2==0)
{beep();}
if(K4==0)
{beep();}
if(K5==0)
{beep();}
}
}
voidmotor_ffw1()
{
uchari;
while
(1)//一直转
{
if(K3==0)
{break;}//退出此循环程序
for(i=0;i<8;i++)//一个周期转14.4度
{
P1=FFW[i];//取数据
delay(5);//调节转速
}
if(K2==0)
{beep();}
if(K1==0)
{beep();}
if(K5==0)
{beep();}
}
}
/*********************/
/*
/*步进电机反转
/*
/********************/
voidmotor_rev()
{
uchari;
while
(1)//一直转
{
if(K3==0)
{break;}//退出此循环程序
for(i=0;i<8;i++)//一个周期转14.4度
{
P1=REV[i];//取数据
delay
(1);//调节转速
}
if(K1==0)
{beep();}
if(K5==0)
{beep();}
if(K4==0)
{beep();}
}
}
voidmotor_rev1()
{
uchari;
while
(1)//一直转
{
if(K3==0)
{break;}//退出此循环程序
for(i=0;i<8;i++)//一个周期转14.4度
{
P1=REV[i];//取数据
delay(5);//调节转速
}
if(K1==0)
{beep();}
if(K2==0)
{beep();}
if(K4==0)
{beep();}
}
}
/****************************/
/*
/*主函数
/*
/****************************/
main()
{
while
(1)
{
if(K1==0)
{
motor_ffw();//电机正转
if(K3==0)
{break;}//退出此循环程序
}
elseif(K4==0)
{
motor_ffw1();
if(K3==0)
{break;}}
elseif(K2==0)
{
motor_rev();//电机反转
if(K3==0)
{break;}//退出此循环程序
}
elseif(K5==0)
{
motor_rev1();
if(K3==0)
{break;}}
else
P1=0xf0;
}
}
四、基于AT89S52的步进电机控制系统的实现
4.1、系统的故障与调试
4.1.1、软件部分
(1)调试:
按总的流程图,在Keil软件上,用C语言编程,具体步骤如下:
1)定义各个变量#include
#defineuintunsignedint
2)定义正反转速度端口sbitK1=P2^0;sbitK2=P2^1;sbitK3=P2^2;sbitK4=P2^3;sbitK5=P2^4;sbitBEEP=P3^6;sbitEN1=P1^0;sbitEN2=P1^1;sbitAA=P1^2;sbitAB=P1^3;sbitBB=P1^4;
3)调用各子程序;
4)执行主程序
(2)故障解决:
在编程完成后,运行程序,在仿真图上并不能按要求转动,最初以为是电路连接错误,经仔细检查程序中少些某些关键语句,加上后电机正常运行,故障得到解决。
4.1.2、硬件部分
(1)调试:
根据原理图将应该焊接好,用AltiumDesigner6.9软件下载Keil生成的HEX文件到单片机中,再给单片机上电,程序开始运行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 步进 电机 课程设计 报告 毕业论文