- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)