ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:1.34MB ,
资源ID:22577739      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22577739.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机三相单三拍步进电机Word格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机三相单三拍步进电机Word格式.docx

1、 1.1 步进电机是用电脉冲信号控制,以实现对生产过程或设备的数字控制,它是过程控制中一种十分重要和常用的功率执行器件,它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器或角位移发生器等,近年来由于计算机应用技术的迅速发展,步进电机常常和计算机一起组成高精度的数字控制系统。由于它是由数字脉冲控制,因此非常适合于用单片机控制,本设计便是在此基础上,AT89C51型单片机为核心,并结合外围电路以步进电机为控制对象的控制系统。1.2单片机控制步进电机原理步进电机的不同驱动方式,都是在工作时,脉冲信号按一定顺序轮流加到三相绕组上,从而实现不同的工作状态。由于通电顺序不同,其运行方式有三相单

2、三相拍、三相双三拍和三相单、双六拍三种(注意:上面“三相单三拍”中的“三相”指定子有三相绕组;“拍”是指定子绕组改变一次通电方式;“三拍”表示通电三次完成一个循环。“三相双三拍”中的“双”是指同时有两相绕组通电)。1.2.1三相单三拍运行方式:下页图所示为反应式步进电动机工作原理图,若通过脉冲分配器输出的第一个脉冲使A相绕组通电,B,C相绕组不通电,在A相绕组通电后产生的磁场将使转子 上产生反应转矩,转子的1、3齿将与定子磁极对齐,如果图(a)所示。第二个脉冲到来,使B相绕组通电,而A、C相绕组不通电;B相绕组产生的磁场将 使转子的2、4齿与B相磁极对齐,如图(b)所示,与图(a)相比,转子逆

3、时针方向转动了一个角度。第三个脉冲到来后,是C相绕组通电,而 A、B相不通电,这时转子的1、3齿会与C组对齐,转子的位置如图(c)所示,与图(b)比较,又逆时针转过了一个角度。图1.1 反应式步进电机工作原理图当脉冲不断到来时,通过分配器使定子的绕组按着A相-B相-C相-A相的规律不断地接通与断开,这时步进电动机的转子就连续不停地一步步的逆时 针方向转动。如果改变步进电动机的转动方向,只要将定子各绕组通电的顺序改为A相-C相-B相-A相,转子转动方向即改为顺时针方向。 单三拍分配方式时,步进电动机由A相通电转换到B相通电,步进电动机的转子转过一个角度,称为一步。这时转子转过的角度是30度。步进

4、电动机每一步转过的角度称为步距角。1.2.2三相双三拍运行方式三相双三拍运行方式:每次都有两个绕组通电,通电方式是AB-BC-CA-AB,如果通电顺序改为AB-CA-BC-AB则步进电机反转。双三拍分配方式时,步进电动机的步距角也是30度 1.2.3三相单,双六拍运行方式:三相六拍分配方式就是每个周期内有六个通电状态。这六中通电状态的顺序可以使A-AB-B-BC-C-CA-A或者A- CA-C-BC-B-AB-A六拍通电方式中,有一个时刻两个绕组同时通电,这时转子齿的位置将位于通电的两相的中间位置。在三相六拍分配 方式下,转子每一步转过的角度只是三相三拍方式下的一半,步距角是15度。单三拍运行

5、的突出问题是每次只有一相绕组通电,在转换过程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震荡,故用的较少。 双三拍运行的特点是每次都有两相绕组通电,且在转换过程中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单三拍相同。 六拍运行方式转换时始终有一相绕组通电,且步距角较小,故工作稳定性好,但电源较复杂,实际应用较多。2.方案论证2.1本设计由于需要实现9个不同部数的输入以及其他功能的输入,所以可以采用键盘输入,实现步进电机的步数由键盘输入且具有键盘锁功能。而本实验单片机的端口数量充足,最后决定直接采用键盘输入。2.2在步进电

6、机方面由于此次设计的软件采用proteus,在此软件中只有一个四相步进电机的模型,然后考虑到步进电机控制方法的难易度最后决定采用四相八拍控制法,由于单片机不能直接驱动步进电机,通过芯片放大控制电压。2.3在测量温度方面一开始打算用一个温度传感器开关去实现监测电机的温度,当温度过高的时候就断开开关;但考虑到系统的可操作性,准确性,编程的难以度及仿真软件的限制,最后决定用DS18B20代替电机的测量系统,实现电机在运动过程中,如果过热,则电机停止运转,同时红色指示灯亮,同时报警。而转向方面用不同的指示灯指示正转和反转。当温度超过安全温度时,报警灯会亮和报警铃会鸣响,并让电机停止运转同时锁住键盘。

7、3.方案说明步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。即步进电机是将电脉冲信号转换为机械角位移的执行元件。步进电机的控制可以用硬件,也可以用软件通过单片机实现。硬件方法是采用脉冲分配器芯片进行通用换相控制;而软件方法是用单片机产生控制脉冲来控制步进电机的运行状态,这种方法可简化电路,降低成本。在用软件控制时,主要设计要点如下:判断旋转方向;按相序确定控制字;按顺序输入控制字;确定控制步数和每一步的延时时间。由于单片机的驱动电流一般都比较小,不能直接驱动电机工作,所以单片机的I/O口输出必须接驱动电路,即功率驱动,才得以控制电机正常工作。控制框图如下图所示:开始启动时点击处于停止

8、转动状态,用键盘按键控制键盘锁、步数、正转、反转。用80c51作为总控制芯片。ULN2003用于步进电机的驱动控制。其中在键盘控制时用键盘扫描程序。图3.1 总方案图4.硬件方案设计系统硬件设计4.1最小单片机系统5V电源:给系统供电。复位电路:程序跑飞时复位电路可以使程序从新执行,相当于电脑的重启。晶振:给单片机运行提供时钟。EA接高电平:表示运行内部程序存储器下载的程序。P0接排阻:P0口开漏结构,使用时一般接排阻拉高电平。4.2键盘设计 该电路中采用独立键盘工作方式,共设有十二个按键,分别是3,6,9,12,15,18,21,24,27布局选择功能,键盘锁功能以及步进电机转动方向选择功能

9、。其中有程序决定起作用。4.3步进电机步进电机的驱动采用ULN2003,接到单片机的P1.0P1.3,如图步进电机驱动和单片机连线图。4.4正反转显示灯和报警灯铃45温度传感器模块5.软件设计主程序流程图所示如下:6. 调 试6.1 Proteus仿真软件Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、A

10、RM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。6.2 调试步骤及方法本电路经调试符合题目要求,各项技术指标均达到设计的目的。具体操作控制方法如下:1、当电机按下启动按钮时,步进电机根据制定默认状态开始转动;2、当电机按下停止按钮时,步进电机停止转动;3、当电机按下正转按钮时,步进电机正转;4、当电机按下反转按钮时,步进电机反转; 5当电机按下步数按钮时,步进电机根据步数实现转动7技术小结为期一周的单片机课程设计在忙碌中已接近尾声,经过这么多天的努力,终于完成了这次课程

11、设计基本设计要求,在充实中也学到了很多知识,是真正将所学知识运用于实践中的一次很好的体验,使人受益匪浅。由于此次控制要求不是很高,选用51系列80C51。接下来就是硬件接口分配问题和如何去驱动电机。对于步进电机之前没有什么接触,所以我上网查了许多关于步进电机的资料,知道了其基本工作原理以及怎么去实现其控制运转和驱动。接下来的主要问题就是如何编程去实现控制它了,这次程序的编写和调试对我来说是个不小的挑战,因为之前只编写过一些简短的小程序,对较大的程序总体性方面还不能很好的把握。经过反复的尝试和调试,用发现一个问题,解决一个问题的方法,还参考了一些别人的经验方法,完成了程序的编写。这对我以后编写程

12、序是一次很好的经验积累。通过这次课程设计,我也了解到了自己的不足,以前自己学习单片机的时候,往往只去看懂别人写的程序,以为看懂了自己就知道写了,但事实并不是这样,虽然这次课程设计程序是完成了,但棘手的地方很多,编程并不像以前认为的简单。所以在以后的学习中,不能手高眼低,一定要脚踏实地,一步步地走,自己动手去做,这样才能将知识真正学到手。这次课程设计能得以顺利完成,还要感谢毛老师的指导,感受很深,是一次很好的经验积累和设计经历。 8 参 考 文 献1.张毅刚编著,单片机原理及应用高等教育出版社,2010。2.楼然苗等编著,51系列单片机设计实例北京航空航天大学出版社,2006。3.汪道辉编著,单

13、片机系统设计与实践 电子工业出版社 2005。4谭浩强编著,C程序设计(第三版)清华大学出版社 2005。5王港元编著,电工电子实践指导江西科学技术出版社 2008。6周润景编著,PROTEUS入门实用教程机械工业出版社 2011。7林立编著,单片机原理及应用:基于Proteus和Keil C电子工业出版社 2011。8.阎石编著,数字电子技术基础高等教育出版社,2006。 9 附 录实验器材 名称型号数量备注单片机AT89C511单片机底座微动开关9自锁开关3发光二级管LED驱动芯片ULN2003A步进电机28BYJ42电源温度传感器18B20蜂鸣器三极管NPN晶振12MHZ电容各种大小若干

14、电阻排阻仿真图程序#include#define uchar unsigned char#define uint unsigned int#define led P0/数码管段选#define haha P2sbit s1 = P01;sbit s2 = P02;/按键定义,s1正转,s2反转sbit s3 = P03;/按键定义,停止sbit speaker = P04;sbit LED1 = P05;sbit LED2 = P06;sbit LED3 = P07;sbit a = P23;sbit b = P22;sbit c = P21;sbit d = P20;/脉冲信号输入端定义sb

15、it _key3 =P10; /3步sbit _key6 =P11; /6步sbit _key9 =P12; /9步sbit _key12 =P13; /12步sbit _key15 =P14; /15步sbit _key18 =P15; /18步sbit _key21 =P16; /21步sbit _key24 =P17; /24步sbit _key27 =P00; /27步unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned char cod

16、e dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分别对应相应的数码管点亮,即位码unsigned char TempData8; /存储显示值的全局变量/*-DS18B20 端口定义-*/sbit DQ=P27;/ds18b20 端口bit ReadTempFlag;/定义读时间标志 函数声明unsigned int ReadTemperature(void);bit Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char

17、dat);void DelayUs2x(unsigned char t);void DelayMs(unsigned char t);void _18b20(void);/DS18B20定义/*-*/uchar code display11=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/共阳数码管驱动信号0-9,不显示uchar code time_counter102=0xda,0x1c,0xde,0xe4,0xe1,0xec,0xe5,0xd4,0xe9,0xbc, /9.7 -1ms 0xed,0xa4,0xf1,0x8c

18、,0xf5,0x74,0xf9,0x5c,0xfc,0x18;uchar num1 = 0;/控制取励磁信号变量 uchar num2 = 8;uchar bushu = 0;uchar k=1;/加减档位控制,1为最小档bit flag1 = 0;/初始正转,正反转标志uchar buf4=0,10,10,1;/数码管显示缓存,正转,不显示,不显示,显示1档位,高-低(不能去掉) void key(void);void keyscan(void);/=定时器0/1初始化函数=void T0_T1_init() TMOD = 0x11;/定时器0/1均工作于方式1,16位计时方式 TH0 =

19、(65536 - 4000)/256; TL0 = (65536 - 4000)%256;/定时器0,定时4ms用于数码管扫描显示 TH1 = time_counterk-10; TL1 = time_counterk-11;/定时器1,定时10ms用于步进电机转速控制 TR0 = 1; TR1 = 1; ET0 = 1; ET1= 1;/开定时器中断 EA = 1;/开总中断/=ms级延时函数=void delay1m(uint x) uint i,j; for(i=0;ix;i+) /连数x次,约 x ms for(j=0;j 0; m-) if(flag1 = 0)/正转 LED3 =

20、1;speaker =1; LED1 = 0; LED2 = 1; switch(num1) case 0:a = 1;b = 0;c = 0;d = 0;break; case 1:b = 1; case 2:a = 0; case 3:c = 1; case 4: case 5:d = 1; case 6: case 7: num1+; if(num1 = 8)num1 = 0; else /反转 LED1 = 1; LED2 = 0; switch(num2) num2+; if(num2 = 8)num2 = 0; void key() if(s3 = 1) /这里开关闭合,表示键盘锁打开。如果开关不闭合,表示上锁,电机不转 delay1m(100); if(s3 = 1) if(_key27=0) bushu=27; /步数高的优先,即多个步数开关同时打上,运行高步数 else if(_key24=0) bushu=24; else if(_key21=0) bushu=21; else if(_key18=0) bushu=18; else if(_key15=0) bushu=15; else if(_key12=0) bushu=12; else if(_key9=0) bushu=9; else if(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1