基于单片机和proteus的步进电机控制.docx
《基于单片机和proteus的步进电机控制.docx》由会员分享,可在线阅读,更多相关《基于单片机和proteus的步进电机控制.docx(14页珍藏版)》请在冰豆网上搜索。
基于单片机和proteus的步进电机控制
课程设计
题目:
基于单片机和proteus的步进电机控制
课程设计题目基于单片机和Proteus的步进电机控制
课程设计时间年月日至年月日
课程设计内容及要求:
利用Proteus仿真环境和C51编程软件,绘制基于51单片机的步进电机控制系统硬件原理电路、编制基于C51的步进电机控制软件,实现步进电机速度、方向、及旋转角度的计算机控制。
本设计主要内容有:
1)了解51系列单片机及外围相关芯片、电路的工作原理和接口技术,学会进行控制系统软件程序设计。
2)编制程序完成步进电机速度、方向、及旋转角度的控制。
3)设计相关的硬件电路,软硬调试实现步进电机速度、方向、及旋转角度的控制,分析结果。
4)学会运用“自动控制原理”、“现代控制理论”和“计算机控制技术”所学理论知识进行控制器的设计和计算机控制的算法实现。
为今后毕业设计、将来工作做必要的知识储备。
课程设计主要要求有:
1)掌握步进电机工作原理和51单片机的工作原理、控制方式设置方法,给出完整硬件原理图。
2)学会利用C或C++等高级语言编程,实现步进电机速度、方向、及旋转角度的控制功能。
3)整理程序设计文档、按照课程设计要求撰写课程设计报告,字数不少于8000字。
指导教师年月日
负责教师年月日
学生签字年月日
目录
0.前言1
1.电路基本理论1
2.方案设计2
3.硬件电路的工作原理2
3.1步进电机模块3
3.2控制模块3
3.3LCD显示模块3
4.软件编程4
4.1程序流程图4
4.2MCS-51单片机引脚功能5
4.3源程序6
5.系统调试和结果分析9
5.1电机正转运行9
5.2电机反转运行10
5.3电机停止转动10
6.结论及进一步设想11
参考文献12
附录1元件清单13
课设体会14
基于单片机和proteus的步进电机控制
***沈阳航空航天大学自动化学院
摘要:
单片机以其较小的体积、低成本、高可靠性、高附加值等优点实现了过去一个很复杂的电路所能实现的功能,因而被广泛的应用,也取代了经典的控制系统;步进电机是一种将电脉冲转变为角位移的执行机构,可通过控制脉冲数来控制角位移量,从而达到准确的定位目的,也可通过控制脉冲的频率来控制电机的转速和加速度;本文通过proteus的单片机仿真来实现其功能,并且能够在仿真中看见十分近似于真实的结果。
关键词:
单片机;proteus;步进电机
0.前言
步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。
可通过控制脉冲数来控制角位移量,从而达到准确的定位目的,也可通过控制脉冲的频率来控制电机的转速和加速度;从而达到调速的目的。
本文通过对步进电机的软件设计和硬件设计包括步进电机的结构、原理及应用,根据原理和硬件的设计利用c语言编写程序,经过反复运行和调试,实现单片机对步进电机的控制。
1.电路基本理论
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。
通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。
控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。
同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
2.方案设计
基于单片机和proteus的步进电机控制电路的基本组成如图1所示。
图1基于单片机和proteus的步进电机控制电路的原理框图
根据设计要求,采用的方案如下。
硬件部分实现电机转动和速度显示功能,包括控制开关模块;电机转动模块和速度显示模块。
软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动,由电机反馈回来的数据经单片机控制显示器显示数据.。
3.硬件电路的工作原理
3.1步进电机模块(如图2所示)
图2步进电机
功能:
单片机输出的程序通过转换器和电机驱动器给步进电机一个脉冲信号,使步进电机实现正转与反转。
3.2控制模块(如图3所示)
图3控制模块
功能:
通过控制台实现对单片机程序的开与关。
3.3LCD显示模块(如图4所示)
图4LCD显示器
功能:
通过单片机输出的电机反馈信号使LCD显示器显示出步进电机的转动状态。
4.软件编程
4.1程序流程图:
(如图5所示)
图5:
程序流程图
4.2MCS-51单片机引脚功能:
(如图6所示)
图6:
单片机引脚图
1 电源线:
VCC:
+5V电源。
VSS:
地线。
2 RST:
复位信号线。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
3 信号引脚介绍
P0.0~P0.7:
P0口8位双向口线。
P1.0~P1.7:
P1口8位双向口线。
P2.0~P2.7:
P2口8位双向口线。
P3.0~P3.7:
P3口8位双向口线。
4 XTAL1和XTAL2:
外接晶振引脚。
当使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
5 控制引脚:
ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。
(1)-EA/Vpp(31脚):
外部程序存储器地址允许输入端。
第二功能:
固化编程电压输入端。
(2)ALE/-PROG(30脚):
地址锁存允许信号端。
第二功能:
编程脉冲输入端。
(3)-PSEN(29脚):
程序存储允许输出信号端。
4.3源程序:
#include
#defineucunsignedchar
#defineuiunsignedint
sbitKEY=P3^3;
sbitP1_0=P1^0;
sbitP3_0=P3^0;
sbitP3_1=P3^1;
sbitP3_5=P3^5;
sbitP3_6=P3^6;
sbitP3_7=P3^7;
ucFlag;
uccodefan[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
uccodezheng[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uispeed=1000,time;
voiddelay(uit)
{
while(t--);
}
voidxianshi(ucf)//显示转向
{
P1_0=0;P0=f;
delay(5);
}
voidSpeedup()//加速
{
time=speed;
time=time-100;
if(time<100)
time=100;
}
voidSpeeddown()//减速
{
time=speed;
time=time+100;
if(time>2000)
time=2000;
}
voidmain()
{
uci;
EX1=1;//外部中断1开
IT1=1;//边沿触发
EA=1;//全局中断开
P0=0xff;
while
(1)
{
while(Flag==0)
{
for(i=0;i<7;i++)
{
xianshi(0x5b);//显示Z标示正转
P2=zheng[i];
delay(speed);
}
}
while(Flag==1)
{
for(i=0;i<7;i++)
{
xianshi(0x71);//显示F标示反转
P2=fan[i];
delay(speed);
}
}
while(Flag==2)//停止
{
P2=0;
xianshi(0x6D);//显示S
}
}
}
voidISR_Key()interrupt2
{
delay(500);
if(!
KEY)
{
if(P3_5==0)
Flag=0;
if(P3_6==0)
Flag=1;
if(P3_7==0)
Flag=2;
if(P3_0==0)
Speedup();
if(P3_1==0)
Speeddown();
}
}
5.系统调试和结果分析
5.1电机正转运行(如图7所示)
图7:
电机正转结果图
电机正转显示Z
5.2电机反转运行(如图8所示)
图8:
电机反转结果图
电机反转显示F
5.3电机停止转动(如图9所示)
图9:
电机停止转动图
电机停止转动显示S
6.结论及进一步设想
本设计采用51单片机AT89C51(晶振频率为12MHZ)对四相六线制步进电机(内阻33欧,步进1.8度,额定电压12V)进行控制。
通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
通过ULN2003构成步进电机的驱动电路,电路图如图1所示。
51的25-28口接ULN2003的1-4输入端。
另外,用键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为2位单个数码管的显示驱动。
74LS164带锁存,使用串行接法可以节约I/O口资源。
其电路图如图2所示。
通过51的TXD和RXD口对CLK和DATA发送数据参考文献
设计的步进电机基本能实现预期目标,经过调试和修改,但还是存在问题,比如按开关的时候会出现不稳定情况,转速有时比较乱,显示有时也有些不理想,后面的工作就是在软件和硬件等方面进行修改,以完全达到预期目标。
参考文献
[1]刘复华.单片机及其应用系统.北京:
清华大学出版社,1992
[2]李斌,董慧颖.可重组机器人研究和发展现状.沈阳工业学院学报,2000,19(4):
23-27
[3]李朝清,单片机原理及接口技术[M].北京:
北京航空航空航天大学出版社,1999
[4]刘文涛,MCS-51单片机培训教程[M].北京:
北京工业出版社,2005:
141-145
[5]李仁定.电机的微机控制.机械工业出版社,1999
[6]李铁才,杜坤梅.电机控制技术.哈尔滨工业大学出版社,2000
[7]宁爱华.步进电机的微机控制方法与高速特性分析.西南民族大学学报(自然科学版),2003
附录1元件清单
元件名称
型号
数量
单片机
DIL40
1
LED显示器
7SEGCOMK
1
上拉电阻
RESPACK-8
1
电阻
ANALOG
2
逻辑与
AND_5
1
按键
6
电容器
30pF
2
驱动器
ULN2803
1
晶振
CRYSTAL
1
直流电源
VCC
3
课设体会
本论文是在***老师的悉心指导下完成,在整个过程中,*老师投入了大量的精力,给我很多的指导和帮助,使得我顺利完成任务,特此,对*老师表示由衷的感谢。
本次课程设计虽然结束了,但是它留给我的印象是不可磨灭的。
无论我以后是否涉及到此方面的研究,我想,至少我掌握了一种系统的研究方法,学习的目的就在于运用。
万事相通,本次课程设计必将为我以后的学习与工作奠定坚实的基础,课程设计中锻炼出来的能力是终身受益的。
我真心的感谢本次课程设计,它教会我很多。
[年月日完成]
.