课程设计报告课程名称:单片机原理及应用课程设计设计题目:基于单片机的步进电机控制系统系别:通信与控制工程系专业:电子信息工程班级:学生姓名:学号:起止日期:指导教师:教研室主任:指导教师评语:指导教师签名:年月日成绩评定项目权重成绩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接口芯片8255A.............................................................52.4步进电机状态显示........................................................................................................52.5速度控制程序流程图与分析........................................................................................63总程序流程图与分析..............................................................................................................74调试小结..................................................................................................................................85使用的仪器及元件..................................................................................................................86总结与致谢..............................................................................................................................9参考文献...................................................................................................................................10附录一:软件编程...................................................................................................................11基于单片机的步进电机控制系统步进电机控制系统设计要求本课题以单片机为核心,设计并制作出步进电机控制系统,具有以下功能:1)、按下不同的键,分别使步进电机实现顺时针和逆时针旋转;2)、电机运转状态可以是正反转,加速减速,五种不同速度的各种组合;3)、通过LED数码管显示电机运行状态。1方案论证与对比1.1方案一时钟电路复位电路开关控制电路AT89C52显示电路光电耦合电路功率放大电路步进电机图1、方案一设计思路图此方案系统包括了开关控制电路,复位电路,时钟电路,显示电路,光电耦合电路,功率放大电路的选择。1.2方案二图2、方案二设计思路图方案二主要由按键电路、单片机最小系统、STC89C52单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。1.3方案对比综上所述,方案一运用了复位电路,时钟电路,显示电路,光电耦合电路等电路,二方案二只运用了驱动电路相对比较简单,所以选方案二进行设计。1.4方案二设计思路本系统主要由按键电路、单片机最小系统、STC89C52单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。驱动电路用ULN2003,因为它是高耐压、大电流达林顿陈列,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。它工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。步进电机的控制主要通过6个按键来实现,这6个按键分别表示“正转”、“反转”、“加速”、“减速”、“暂停”和“停止”。单片机输出四路脉冲信号触发驱动电路的四个PNP型三极管,其中触发导通的三极管可通过ULN2003使步进电机的相应绕组获得信号,即步进电机获得脉冲信步进电机驱动电路STC89C52单片机加/减速控制电路可编程并行I/O接口芯片8255A步进电机运行状显示态显示电路步进电机运行控制号,从而产生一定的角位移。单片机循序不断的输出时序脉冲,就可以实现步进电机的旋转了。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(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速度控制程序流程图与分析图7、速度控制流程图速度控制程序流程分析:如图6所示,步进电机的速度由单片机的两个外部事件中断控制,外部事件中断0触发时允许步进电机加速,外部事件中断0每触发一次,步进电机加速一次。外部事件中断1触发时允许步进电机减速,外部事件中断1每触发一次,步进电机减速一次。另外,在中断程序中限制了控制对步进电机转速起决定性作用的变量(也就是程序的rate)的变化范围,从而使得步进电机在加速过程中转速有上限,达到该上限时转速不能再增大,步进电机在减速过程中转速有下限,达到此下限时转速不能再减小。通过