已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称:单片机原理及应用课程设计设计题目: 基于单片机的步进电机控制系统 系 别: 通信与控制工程系 专 业: 电子信息工程 班 级: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 2指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日摘要基于步进电机原理和单片机控制技术,进行了步进电机控制系统的硬件和软件设计。单片机采用STC89C52。在单片机与步进电机之间选用ULN2003型号步进电机驱动器。本控制步进电机控制系统主要由按键电路、单片机最小系统、STC89C52单片机、步进电机状态显示电路、驱动电路以及步进电机等几部分组成。可以通过按键控制实现电机的正、反转、加速和减速以及LED状态显示功能电路设计可靠且易于实现,程序设计简单易懂。 关键词:步进电机 单片机 单片机最小系统 子程序 目录设计要求11 方案论证与对比11.1 方案一11.2 方案二21.3 方案对比21.4 方案二设计思路22 硬件电路设计32.1 步进电机驱动电路32.2步进电机加减速控制42.3单片机外扩可编程并行I/O接口芯片8255A52.4步进电机状态显示52.5速度控制程序流程图与分析63总程序流程图与分析74调试小结85使用的仪器及元件86总结与致谢9参考文献10附录一:软件编程11基于单片机的步进电机控制系统步进电机控制系统设计要求本课题以单片机为核心,设计并制作出步进电机控制系统,具有以下功能:1)、按下不同的键,分别使步进电机实现顺时针和逆时针旋转;2)、电机运转状态可以是正反转,加速减速,五种不同速度的各种组合;3)、通过LED数码管显示电机运行状态。1 方案论证与对比1.1方案一图1、 方案一设计思路图此方案系统包括了开关控制电路,复位电路,时钟电路,显示电路,光电耦合电路,功率放大电路的选择。 1.2 方案二步进电机驱动电路STC89C52单片机加/减速控制电路可编程并行I/O接口芯片8255A步进电机运行状显示态显示电路步进电机运行控制图2、方案二设计思路图 方案二主要由按键电路、单片机最小系统、STC89C52单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。1.3方案对比综上所述,方案一运用了复位电路,时钟电路,显示电路,光电耦合电路等电路,二方案二只运用了驱动电路相对比较简单,所以选方案二进行设计。1.4方案二设计思路本系统主要由按键电路、单片机最小系统、STC89C52单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。驱动电路用ULN2003,因为它是高耐压、大电流达林顿陈列,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。它工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。步进电机的控制主要通过6个按键来实现,这6个按键分别表示“正转”、“反转”、“加速”、“减速”、“暂停”和“停止”。单片机输出四路脉冲信号触发驱动电路的四个PNP型三极管,其中触发导通的三极管可通过ULN2003使步进电机的相应绕组获得信号,即步进电机获得脉冲信号,从而产生一定的角位移。单片机循序不断的输出时序脉冲,就可以实现步进电机的旋转了。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-),八拍(A-AB-B-BC-C-CD-D-DA-A)。本设计采用28BYJ48型四相八拍步进电机,电压为DC5V。2 硬件电路设计2.1步进电机驱动电路图3、步进电机驱动电路驱动电路原理分析:如图1所示,要使PNP三极管正常工作,则单片机的P13、P14、P15、P16四个引脚必须为低电平,否则三极管截止发射极为高电平,从而使得与三极管发射极相接ULN2003的引脚输入的是高电平,对应输出为低电平将不能驱动步进电机转动。由于ULN2003的工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。当三极管正常工作时,经ULN2003驱动器可使步进电机获的较大的电流以驱动步进电机。当三极管按某种方式周期性的导通或截止时,步进电机获得相应的励磁激励信号,从而转动。然而激励信号按逆顺序送时步进电机逆向转动。以达到控制步进电机正传或者反转的目的。2.2步进电机加减速控制图4、步进电机速度控制如图2所示,图中加速与减速按键开关分别接单片机的外部事件中断0、1引脚。单片机外部事件中断设置为低电平触发方式,每按一次加速或减速键盘时单片机CPU将响应中断,在中断程序中使控制励磁激励频率的变量增大或者减小,从而使步进电机的转速变大或者减小。图5、单片机外扩8255A芯片2.3单片机外扩可编程并行I/O接口芯片8255A本设计中用到了可编程并行口8255A芯片,它具有3个8位并行口PA、PB和PC,可编程设定为输入口或输出口等。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。如图3所示,为单片机外扩可编程并行I/O接口芯片8255A的原理图。8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式。2.4步进电机状态显示图6、 步进电机状态显示如图4所示,图中用到了矩阵键盘中的4个按键“正转”、“反转”、“暂停”、“停止”,分别实现对步进电机的正向转动反向转动、暂停以及停止转动。其中“暂停”按键按下时步进电机停止转动,释放该按键时步进电机继续转动,而按下“停止”后需重新按正转或反转按键步进电机才工作。图中可编程并行I/O接口芯片8255A的PB口为数码管段选,PA口为低6位为数码管位选。本设计中采用的是共阳极数码管,用来显示步进电机的运行状态。数码管位选通过PNP三极管接8255A的PA口低6位,当PA口位选控制引脚为低电平时PNP三极管导通(此时三极管集电极电压在4V左右),PB口送入段选信号时数码管显示,否则数码管不显示。2.5速度控制程序流程图与分析速度控制外部事件中断0外部事件中断1中断程序:加速(加速到上限不能再加速)中断程序:减速(减速到下限不能再减速)按加速键按减速键未按加减速键电机匀速转动图7、速度控制流程图速度控制程序流程分析:如图6所示,步进电机的速度由单片机的两个外部事件中断控制,外部事件中断0触发时允许步进电机加速,外部事件中断0每触发一次,步进电机加速一次。外部事件中断1触发时允许步进电机减速,外部事件中断1每触发一次,步进电机减速一次。另外,在中断程序中限制了控制对步进电机转速起决定性作用的变量(也就是程序的rate)的变化范围,从而使得步进电机在加速过程中转速有上限,达到该上限时转速不能再增大,步进电机在减速过程中转速有下限,达到此下限时转速不能再减小。通过中断的方式对步进电机转速控制易于实现而且对转速的控制非常的灵活。3 总程序流程图与分析开始初始化扫描键盘计算键值未按键是正转键是反转键扫描键盘计算键值是暂停键是停止键扫描按键按键释放显示状态按键未释放转速为0电机反转电机正转暂停停止图8、主程序流程 主程序流程分析:如图7所示,首先对对步进电机转速控制有关的变量初始化,使得步进电机在启动后的转速是一个常量。然而未启动时,循环通过按键子程序扫描是否有键盘按下。如果步进电机“正转”键按下一次,步进电机就开始正向转动。若是“反转”键盘按下一次,则步进电机进入反向转动的状态。同时在正或反转时通过“显示子程序”对步进电机的转向和大致的转速显示出来使我们对步进电机的转速有所了解。在电机转动过程中,无论它是正转还是反转,只要按下“暂停”键盘它就停止转动,而释放该键时步进电机仍然以暂停前的工作状态继续工作。但是当“停止”键盘按下一次步进电机则会停止转动,直到我们再次启动它,它才会转动。4 调试与分析电路设计完后就进入了对系统进行调试这一环节了。调试是设计中最为重要的一步,在调试过程中,程序并没有一步到位,而是出现了一些问题。开始我初步了解到步进电机转速与励磁激励频率是成正比关系的,于是我编写程序并没有限制励磁激励的频率的范围,以致在测试时我不断的按加速键使它加速可是励磁激励频率达到某个值再按加速键时步进电机就停止转动了。我当时很纳闷为什么会那样,后来再查阅了一些与步进电机相关的资料,于是对它又有了更进一步的了解。原来励磁激励频率太大电机由于自身原因就不会转动了。我便修改了程序使送的励磁激励频率被限制在一定的范围之内,于是就解决了加速到极限值后就停止的问题。在调试中我的体会是我们观察到的实验现象直接体现了程序的流程与程序语句的功能,根据那些现象我们大抵可以想象是哪里出了问题哪里没有问题。总之,调试实验中能让我们通过现象看到事物本质非常有利于设计。5 使用的仪器及元件名称(符号)型号(参数)数量 单位(个)备注单片机STC89C521I/O接口扩展芯片NEC8255A1电阻1K48晶振12MHZ1步进电机28BYJ48 DC5V1驱动芯片ULN2003 1陶瓷电容332陶瓷电容1041三极管PNP901512按键开关197段数码管共阳极(三位)2排针若干USB母1拨码开关1连接器DB91配1套包括下载线表一、使用器件清单6 总结与致谢电子设计所涉及的东西非常的多,同学们的设计课题五花八门,设计中所要用到的知识很多是我们课本上所没有的,因此在课程设计期间我通过不断的学习不但学到了许多新的知识,开阔了自己的视野,而且提高了自己的设计能力。这让我体会到刚学好课本中的知识是远远不够的,要想拓展自己的知识面就必须做一些项目,在项目的设计中去积累经验提升自己的专业素质。因为如果你不去实验你就不会知道你所想的是不是对的,有的东西看上去好像是对的,但是它可能错了。比如说写完一个程序你去编译它没有错误,如果你认为它说对的,那就不然了,可能你写的程序没有语法等错误,但很可能并没能实现你想要的那个功能。所以说通过了实验检验的才是真正靠得住的东西。转眼接近课程设计就快到了截止期限,课程设计的完成也随之进入了尾声。在此我再次感谢老师的指导和同学们提供的帮助,同时也感谢学校给了我们这一次实践的机会。参考文献【1】 单片机原理及应用(第2版).张鑫主编.-北京:电子工业出版社,2010.10.【2】 单片机原理与应用实例仿真.李泉溪主编.-北京:北京航空航天大学出版社,2009.8.【3】单片机课程设计指导.楼然苗,李光飞编著.-北京:北京航空航天大学出版社,2007.7.【4】新概念51单片机C语言教程:入门、提高、开发、拓展全攻略.郭天祥编著.-北京:电子工业出版社,2009.1.【5】单片机典型系统设计实例精讲.彭为,黄科,雷道仲编著.-北京:电子工业出版社,2006.5.【6】单片机原理与应用设计.张毅刚编著.-北京:电子工业出版社,2008.附录一:软件程序#include#include #define a8255_PA XBYTE0xD1FF /PA口地址#define a8255_PB XBYTE0xD2FF /PB口地址#define a8255_PC XBYTE0xD5FF /PC口地址#define a8255_CON XBYTE0xD7FF /控制字地址 #define uchar unsigned char#define uint unsigned intsbit int_P0=P32;sbit int_P1=P33 ;uchar code table10=0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28;/*上叙数组10个16进制数元数分别对应十进制数0至9 */ uchar code FFW8=0x38,0x30,0x70,0x60,0x68,0x48,0x58,0x18; /正转 uchar code REV8=0x18,0x58,0x48,0x68,0x60,0x70,0x30,0x38;/反转 uchar rate,wan,qian,bai,shi,ge,num;uchar wanwei,qianwei,baiwei,shiwei,gewei;uint v; /*/void delays(void) /数码管每位显示间隔的时间 uchar mm=10;while(mm-);/*/void display() /数码管显示执行时间为 0.00100450 S /*计算步进电机的每小时大约转的圈数:v */ v=3600*5.625*8/(64*360)/(8*(rate*0.000403+0.002261);wan=v/10000;qian=v%10000/1000;bai=v%10000%1000/100;shi=v%10000%1000%100/10;ge=v%10;for(num=0;num0;i-);/*/uchar inkey() /按键扫描仿真得约延时0.00125650 S uchar i,j=0x10,k;uchar keytab16=0x18,0x28,0x48,0x88,0x14,0x24,0x44,0x84,0x12,0x22,0x42,0x82,0x11,0x21,0x41,0x81 ; /按键编码 a8255_CON=0x81; /PA,PB输出PC高四位输出低四位输入 a8255_PC=0x00;a8255_PA=0xff;a8255_PB=0xff; for(i=0;i4;i+)a8255_PC=j; a8255_PA=0xff;k=a8255_PC; /读键盘状态 k=k&0x0f;if(k!=0) delay(); /延时消除抖动 k=a8255_PC; /重新读PC口状态 k=k&0x0f;/屏蔽高四位 ,存低四位状态 if(k!=0) /k不为0有键按下则跳出循环 break;j=j1; delay();k=k+j; /将按键状态赋给k for(i=0;i16;i+)if(keytabi=k) break;return i; /返回按键编号值 /*/ void delaym()/送励磁激励间隔时间 uchar k; uint s; k = rate; do for(s = 0 ; s 100 ; s+) ; /循环一次约0.00040300S while(-k);/延时约为t=rate*0.000403S /*/void motor_ffw() /步进电机正转 uchar i;/*对于八拍一个周期步进电机电机转45度,(28BYJ-48型进电机步距角为5.625度,电机转64圈输出轴转一圈 )*/ for (i=0; i8; i+) P1 = FFWi;/取数据,送励磁激励 delaym(); /调节转速 /*/void motor_rev() /步进电机反转 uchar i; for (i=0; i8; i+)/一个周期转45度 P1 = REVi; /取数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 首饰加工协议书
- 2025网络营销从业者的劳动合同
- 物业管理委托协议书范本
- 招聘销售协议书
- 委托代付协议书范本
- 委托协议书终止
- 2025汽车租赁定金合同模板下载
- 2025劳动合同的审理特点
- 历年全国高考英语完形填空试题及答案
- 2025餐饮企业劳动合同样本
- 2025年北京高考英语作文深度解析及写作备考指导
- 2025年汽车后市场零部件发展分析报告
- 大学生交通安全教育要点
- 2025年6月新《中华人民共和国治安管理处罚法》全文+修订宣贯解读课件(原创内容丰富且全)
- 护理理论知识试题+答案
- 2025安全考试题及答案
- 种植基地防疫管理制度
- 2025上半年浙江杭州市萧山区国有企业招聘85人笔试参考题库附带答案详解析集合
- (2025)发展对象培训考试题和答案
- 车检站员工管理制度
- T/CCSAS 023-2022危险化学品企业紧急切断阀设置和使用规范
评论
0/150
提交评论