欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于51单片机控制步进电机.docx

    • 资源ID:15407409       资源大小:129.18KB        全文页数:12页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机控制步进电机.docx

    1、基于51单片机控制步进电机单片机原理及系统课程设计1 引言步进电机又称为脉冲电动机或阶跃电动机.它是基于最基本的电磁感应作用.将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机.大型望远镜.卫星天线定位系统等等。随着经济的发展.技术的进步和电子技术的发展.步进电机的应用领域更加广阔.同时也对步进电机的运行性能提出了更高的要求。步进电机的原始模型起源于1830年至1860年.1870年前后开始以控制为目的的尝试.应用于氩弧灯的电极输送机构中.这被认为最早的步进电机。1950年后期晶体管的发明也逐渐应用在

    2、步进电机上.对于数字化的控制变得更为容易。到20世纪60年代后期.在步进电机本体方面随着永磁材料的发展.各种实用性步进电机应运而生。步进电机往后经过不断改良.使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中.我们很容易发现步进电机的踪迹.尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。2 设计方案与原理4.1 设计方案设计一个51单片机四相步进电机控制系统要求系统具有如下功能:(1)由I/O口产生的时序方波作为电机控制信号;(2)信号经过驱动芯片驱动电机的运转;(

    3、3)电机的状态通过键盘控制.包括正转.反转.加速.减速.停止和单步运行。4.2 设计原理步进电机实际上是一个数字角度转换器.也是一个串行的数模转换器。步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面。从结构上看,步进电机分为三相、四相、五相等类型,本次设计的是四相电机。四相步进电机的工作方式有单四拍、双四拍和单双八拍三种。在本次设计中.我们使用的是四相单八拍的工作方式。通过P1口给A,B,C,D四相依次输出高电平即可实现步进电机的旋转.通过控制两次输出的间隔.即可实现对步进电机的速度控制。图 2.1 步进电机内部结构截图根据步进电机的相关相序表我们可以正常的控制电机的步进运

    4、行。3 硬件设计根据设计要求和设计原理.我们可以绘制出基本的功能方框图.以便之后我们连接实际电路时的方便和可靠。用键盘控制具体的功能模块.这样更能直观方便的控制整体的系统.使其达到我们预期的操作效果。图3.1中简单描述了整个单片机系统的控制模式和控制流程.包括通过时钟电路和键盘电路.来控制UNL2803驱动电机动作。图 3.1 硬件电路功能方框图图3.2截图中是UNL2803中的细节电路.用前四个输入输出口连接步进电机的四个输入口。图3.3截图是单片机的键盘控制电路.对系统的控制功能模块的选择和控制。包括正转启动按钮、反转启动按钮、停止位按钮、加速按钮、减速按钮和单步运行按钮。 图 3.2 步

    5、进电机及其驱动电路截图 图 3.3 按键设置及其连接引脚截图 以上电路功能截图均出自于proteus仿真软件。4 软件设计软件设计中.我们查询键盘按钮控制方式来选择步进电机运行的工作状态。在程序里面对按钮分配的I/O地址分别为正转启动位是P3.0.反转启动为是P3.1.停止位是P3.4.加速位是P3.2.减速位是P3.3.单步执行位是P3.5。通过外部中断INT0和INT1来实现加速减速的外部输入。图4.1 主程序流程图 程序里面加上了防止正常运行过程中电机的突然转向的阻断。防止电机的意外损坏。在转向之前.必须按下停止按钮.然后再发出电机的下一条控制命令。当然.我们的加速减速通过外中断可以在电

    6、机正常运行过程中进行操作。增加了我们系统的可操作性和高可控性。总结在本次课程设计中.首次接触到单片机的应用.接到题目时.对步进电机一无所知.并对如何使用单片机也不甚了解.仅仅知道一些生硬的指令和符号.并不知道它们到底如何使用以及其意义.通过老师指导.然后自己在课后翻阅书籍和上网.搜集到了不少有关步进电动机的知识。通过钻研这些知识.总算对步进电机有了认识.但是这离课程设计需要掌握的知识相差甚远.为了缩短这种差距.只能不断地查阅资料.仔细揣摩。在这次课程设计中.通过用单片机控制步进电机的起动、停止.正、反转.加、减速.也对单片机的知识也进行了复习和巩固。设计仿真电路的过程中.必须要有耐心.在整个电

    7、路的设计过程中.花费时间最多的是各个单元电路的连接及电路的细节设计上.如在多种方案的选择中.仔细比较分析其原理以及可行的原因。这就要求对硬件系统中各组件部分有充分透彻的理解和研究.并能对之灵活应用。同时在本次设计过程中.还学会了高效率的查阅资料、运用工具书、利用网络查找资料。发现.在所使用的书籍上有一些知识在实际应用中其实并不是十分理想.各种参数都需要自己去调整.这就要求应更加注重实践环节。那时候觉得学习单片机是那么的枯燥乏味.整天只是学习这个指令做什么.那个指令做什么.觉得学了一点用都没有。现在知道.原来一些生硬的指令组合起来竟然可以实现如此多的实用功能。俗话说的好.实践是检验真理的唯一标准

    8、.学习再多的理论也只能纸上谈兵.只有把理论应用到实践中.才能检验出理论的真伪。所以.虽然一周的时间不长.时间过得也很快.但是在这一周过去后.明白了学习与实践相结合的重要性.指引我在以后的学习中应该把理论和实践联系起来。参 考 文 献1 李华,王思明,张金敏.单片机原理及应用M.兰州:兰州大学出版社,2001.4(1):75-89.2 黄勤.单片机原理及应用M.北京:清华大学出版社,2010.4(2):110-120.附录A 仿真界面截图图 3.4 Proteus仿真截图附录B 步进电机相序表 表 2.2 四相八拍步进电机相序表ABCD000100110010011001001100100010

    9、01附录C 主程序#include /51芯片管脚定义头文件#include /内部包含延时函数 _nop_();#define uchar unsigned char#define uint unsigned intuchar code FFW8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;uchar code REV8=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;sbit K1 = P30; /正转sbit K2 = P31; /反转sbit K3 = P32; /停止sbit K4 = P33; /正向单步运行sbi

    10、t K5 = P34; /加速sbit K6 = P35; /减速int num=2000;void motor_ffw(); void motor_rev();void motor_ffw2();/*/* 延时t毫秒 /* 11.0592MHz时钟.延时约1ms /*/void delay(int t) uint k; while(t-) for(k=0; k20; k+) /*/*步进电机正转单步执行/*/void motor_single() uchar i; for (i=0; i8; i+) /一个周期转45度 P1 = FFWi; /取数据 delay(num); /调节转速 /*

    11、/*步进电机正转/*/void motor_ffw() uchar i; for (i=0; i8; i+) /一个周期转45度 P1 = FFWi; /取数据 if(K5=0) break; /退出此循环程序 delay(num); /调节转速 /*/*步进电机反转/*/void motor_rev() uchar i; for (i=0; i8; i+) /一个周期转45度 P1 = REVi; /取数据 if(K5=0) break; /退出此循环程序 delay(num); /调节转速 /* 主程序 */void main(void) EA=1; /开放总中断 EX0=1; /允许使用

    12、外中断0 IT0=1; /选择负跳变来触发外中断 EX1=1; /允许使用外中断1 IT1=1; /选择负跳变来触发外中断 while(1) if(K1=0) for(;) motor_ffw(); /电机正转 if(K5=0) break; /退出此循环程序 else if(K2=0) for(;) motor_rev(); /电机反转 if(K5=0) break; /退出此循环程序 else if(K6=0) motor_single(); /电机正转单步执行 else P1 = 0xf0; /*/ void int0() interrupt 0 /外中断0的中断编号为0 num=num+100; /每产生一次中断请求.x+80。void int1() interrupt 2 /外中断0的中断编号为1 num=num-100; /每产生一次中断请求.x-80。


    注意事项

    本文(基于51单片机控制步进电机.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开