步进电机角度控制设计教程.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
步进电机角度控制设计教程

目录 摘要 1 1设计任务与要求 2 1.1设计目的 2 1.2设计要求和设计指标 2 2方案分析 3 3系统硬件部分 4 3.1主控模块 4 3.2键盘输入模块 7 3.3电机模块 8 3.4显示模块 11 4系统软件部分 13 4.1整体流程图及主程序 13 4.2按键流程图及程序 14 4.3显示模块程序 19 4.4电动机模块流程图及程序 20 4.5中断程序 22 5仿真运行 24 6心得体会 25 参考文献 26 附录一:Protues硬件仿真图 27 附录二:系统程序 28 摘要 步进电机在控制系统中具有很广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器或角位移发生器等。 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 此次设计使用C语言作为编程语言。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发。 硬件部分使用89C51作为主控芯片,并使用ULN2003A将单片机的信号放大以控制步进电机,同时使用4位数码管显示转动角度及次数。 关键词:步进电机 C语言 AT89C51 ULN2003A 转动角度 1设计任务与要求 1.1设计目的 设计制作和调试一个由8086组成步进电机角度测控系统。通过这个过程学习熟悉键盘控制和七段数码管的使用,掌握步进电机的角度控制和角度显示方法。 1.2设计要求和设计指标 1.在显示器上显示任意四位十进制数 2.将8个键定义键值为0~7,按任意键在显示器上显示对应键值 3.实现: (1)定义键盘按键:5个为数字键1~5;3个功能键:设置SET、清零 CLR、开始START; (2)显示器上第一位显示次数,后三位显示每次行走的角度; (3)通过键盘的按键,设置步进电机各次的角度值;第一位设置次数,后三位设置角度值。 (4)按START键启动步进电机开始转动,按SET键停止;按CLR键清零。 2方案分析 课程设计要求设计一个直流电机微型计算机角度控制系统,定义8个键盘按键:5个为数字键1~5;3个功能键:设置SET、清零 CLR、开始START;显示器上的四位可显示转动次数和每次转动角度;通过键盘的按键,设置步进电机转动次数和每次转动角度;按START键启动电机开始转动,按SET键停止;按CLR键清零。 综合分析之后,我们应该将电路实现。 我们可以将整体电路设计成几个相对独立而又有机结合的模块,来逐一进行分析。 通过分析我们可以画出系统图,如图。 3系统硬件部分 3.1主控模块 3.1.1 AT89C51芯片 本次设计是使用AT89C51作为主控芯片,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51的40个引脚主要有一下几种 (1)VCC:供电电压。 (2)GND:接地。 (3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 (4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 (5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输

文档评论(0)

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

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

1亿VIP精品文档

相关文档