基于单片机的步进电机设计.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
专业综合课程设计报告 题 目: 基于单片机的步进电机驱动 班 级: 学 号: 姓 名: 完成日期: 2013年7月16日 目 录 1. 课程设计目的 3 2. 课程设计要求 3 3. 课程设计报告内容 4 4. 电路图及仿真设计 10 5. 总结 15 6. 程序源代码 15 基于单片机的步进电机驱动 1. 课程设计目的 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 2. 课程设计要求 2.1 设计目的 一、进一步熟悉和掌握单片机的结构和工作原理。 二、掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 三、通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了 解有关电路参数的计算方法。 四、通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 五、通过完成一个包括电路设计和程序开发的完整过程,为以后的工作打下良好的基础。 2.2 设计要求 一、能控制电机正反转,有正转和反转按钮 二、在一定范围内可控制转速,有加速和加速按钮。 三、可在不断电源的情况下暂停,有一个暂停按钮。 四、在停止、正转、反转的时候,分别有指示灯指示工作状态。? 五、有状态观察指示灯,可观察电动机A、B、C、D相的状态以观察电动机的旋转状态。 六、通过改变程序而改变电动机的驱动方式:单四拍、双四拍、单双八拍。 3. 课程设计报告内容 3.1 电机驱动方式 本次试验采用的步进电机内部结构为: 采用型号20BY-0型,它使用+5V直流电源,步距角为18度。电机线圈由四相组成,即A、B、C、D四相,驱动方式为二相激磁方式,引 脚颜色 绿色:GND 黄色:A 红色:B 蓝色:C 白色:D 驱动方法: 单四拍:A→B→C→D 双四拍:AB→BC→CD→DA 单双八拍: A→AB→B→BC→C→CD→D→DA 双四拍驱动: 相顺序从0到1称为一步,电机轴将转过18度,0→1→ 2→3→0则称为通电一周,转轴将转过72度,若循环进行这种通电一周的操作,电机便连续的转动起来,而进行相反的通电顺序如0→3→2→1→0将使电机同速反转。通电一周的周期越短,即驱动频率越高,则电机转速越快,但步进电机的转速也不可能太快,因为它每走一步需要一定的时间,若信号频率过高,可能导致电机失步,甚至只在原步颤动。 3.2 按键控制 P1口接六个按钮,包括正转,反转,停止,低速,中速,高速,分别实现对应的功能来控制电机。 正转和反转按钮功能实现代码: void mykey() { if(K1==0)//判断K1键有无按下即正转按钮有无按下 {DelayMS(5) ;//延时再次判断,消除抖动。 if(K1==0)motordirect=0; } if(K2==0) //判断K2键有无按下即反转按钮有无按下 {DelayMS(5);/延时再次判断,消除抖动 if(K2==0) motordirect=1; }} 停止按钮功能实现代码: if(K3==0)//判断K3键有无按下即停止按钮有无按下 { MOTER_flg=0;P2=0xFE;//P2.0停止指示 } else {MOTER_flg=1;} 3.3 流程图 1、控制流程图 2、程序流程图 3.4 数码管显示 用数码管显示当前电机速度处于低、中、高档哪一档。0代表速度为原始转速,1为低速档,2为中速档,3为高速档。 void myshow() { X=0; if(N==200) {P0=LED

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档