1、课 程 设 计 报 告课程名称:单片机原理及应用课程设计设计题目: 基于单片机的步进电机控制系统 系 别: 通信与控制工程系 专 业: 电子信息工程 班 级: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 指导教师评语:指导教师签名: 年 月 日成绩项 目 权重1、设计过程中出勤、学习态度等方面 0.22、课程设计质量与答辩 0.53、设计报告书写及图纸规范程度 0.3成绩评定总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见:主任签字: 年 月 日摘要基于步进电机原理和单片机控制技术,进行了步进电机控制系统的硬件和软件设计。单片机采用 STC89C52。在单
2、片机与步进电机之间选用 ULN2003 型号步进电机驱动器。本控制步进电机控制系统主要由按键电路、单片机最小系统、STC89C52 单片机、步进电机状态显示电路、驱动电路以及步进电机等几部分组成。可以通过按键控制实现电机的正、反转、加速和减速以及 LED 状态显示功能电路设计可靠且易于实现,程序设计简单易懂。 关键词:步进电机 单片机 单片机最小系统 子程序 目录设计要求.11 方案论证与对比.11.1 方案一.11.2 方案二.21.3 方案对比.21.4 方案二设计思路.22 硬件电路设计.32.1 步进电机驱动电路.32.2 步进电机加减速控制.42.3 单片机外扩可编程并行 I/O 接
3、口芯片 8255A.52.4 步进电机状态显示.52.5 速度控制程序流程图与分析.63 总程序流程图与分析.74 调试小结.85 使用的仪器及元件.86 总结与致谢.9参考文献.10附录一:软件编程.11基于单片机的步进电机控制系统步进电机控制系统设计要求本课题以单片机为核心,设计并制作出步进电机控制系统,具有以下功能:1)、按下不同的键,分别使步进电机实现顺时针和逆时针旋转;2)、电机运转状态可以是正反转,加速减速,五种不同速度的各种组合;3)、通过 LED 数码管显示电机运行状态。1 方案论证与对比1.1 方案一时钟电路复位电路开关控制电路A T 8 9 C 5 2显示电路光电耦合电路功
4、率放大电路步进电机图 1、 方案一设计思路图此方案系统包括了开关控制电路,复位电路,时钟电路,显示电路,光电耦合电路,功率放大电路的选择。1.2 方案二步进电机驱动电路STC89C52单片机加/减速控制电路可编程并行 I/O 接口芯片 8255A步进电机运行状显示态显示电路步进电机运行控制图 2、方案二设计思路图方案二主要由按键电路、单片机最小系统、STC89C52 单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。1.3方案对比综上所述,方案一运用了复位电路,时钟电路,显示电路,光电耦合电路等电路,二方案二只运用了驱动电路相对比较简单,所以选方案二进行设计。1.4方案二设计思路本系
5、统主要由按键电路、单片机最小系统、STC89C52 单片机、步进电机电机电路、驱动电路以及步进电机等几部分组成。驱动电路用 ULN2003,因为它是高耐压、大电流达林顿陈列,在 5V 的工作电压下它能与 TTL 和 CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。它工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。步进电机的控制主要通过 6 个按键来实现,这 6 个按键分别表示“正转” 、 “反转” 、 “加速” 、“减速” 、 “暂停”和“停止” 。单片机输出四路脉冲信号触发驱动电路的四个 PNP 型三
6、极管,其中触发导通的三极管可通过 ULN2003 使步进电机的相应绕组获得信号,即步进电机获得脉冲信号,从而产生一定的角位移。单片机循序不断的输出时序脉冲,就可以实现步进电机的旋转了。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角) 。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A) ,双(双相绕组通电)四拍(AB-BC-CD-DA-AB-) ,八拍(A-AB-B-BC-C
7、-CD-D-DA-A) 。本设计采用 28BYJ48 型四相八拍步进电机,电压为 DC5V。2 硬件电路设计2.1 步进电机驱动电路图 3、步进电机驱动电路驱动电路原理分析:如图 1 所示,要使 PNP 三极管正常工作,则单片机的P13、P14、P15、P16 四个引脚必须为低电平,否则三极管截止发射极为高电平,从而使得与三极管发射极相接 ULN2003 的引脚输入的是高电平,对应输出为低电平将不能驱动步进电机转动。由于 ULN2003 的工作电流大,灌电流可达 500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。当三极管正常工作时,经 ULN2003驱动器可使步
8、进电机获的较大的电流以驱动步进电机。当三极管按某种方式周期性的导通或截止时,步进电机获得相应的励磁激励信号,从而转动。然而激励信号按逆顺序送时步进电机逆向转动。以达到控制步进电机正传或者反转的目的。2.2 步进电机加减速控制图 4、步进电机速度控制如图 2 所示,图中加速与减速按键开关分别接单片机的外部事件中断 0、1 引脚。单片机外部事件中断设置为低电平触发方式,每按一次加速或减速键盘时单片机 CPU 将响应中断,在中断程序中使控制励磁激励频率的变量增大或者减小,从而使步进电机的转速变大或者减小。图 5、单片机外扩 8255A 芯片2.3 单片机外扩可编程并行 I/O接口芯片 8255A本设
9、计中用到了可编程并行口 8255A 芯片,它具有 3 个 8 位并行口 PA、PB 和 PC,可编程设定为输入口或输出口等。8 255A 的 通 用 性 强 , 使 用 灵 活 , 通 过 它 CPU 可 直 接 与 外设 相 连 接 。 如图 3 所示,为单片机外扩可编程并行 I/O 接口芯片 8255A 的原理图。8255A 在使用前要写入一个方式控制字,选择 A、B、C 三个端口各自的工作方式。2.4 步进电机状态显示图 6、 步进电机状态显示如图 4 所示,图中用到了矩阵键盘中的 4 个按键“正转” 、 “反转” 、 “暂停” 、 “停止”,分别实现对步进电机的正向转动反向转动、暂停以
10、及停止转动。其中“暂停”按键按下时步进电机停止转动,释放该按键时步进电机继续转动,而按下“停止”后需重新按正转或反转按键步进电机才工作。图中可编程并行 I/O 接口芯片 8255A 的 PB 口为数码管段选,PA 口为低 6 位为数码管位选。本设计中采用的是共阳极数码管,用来显示步进电机的运行状态。数码管位选通过 PNP 三极管接 8255A 的 PA 口低 6 位,当 PA 口位选控制引脚为低电平时 PNP 三极管导通(此时三极管集电极电压在 4V 左右) ,PB 口送入段选信号时数码管显示,否则数码管不显示。2.5 速度控制程序流程图与分析速度控制外部事件中断 0 外部事件中断 1中断程序
11、:加速(加速到上限不能再加速)中断程序:减速(减速到下限不能再减速)按加速键 按减速键未按加减速键电机匀速转动图 7、速度控制流程图速度控制程序流程分析:如图 6 所示,步进电机的速度由单片机的两个外部事件中断控制,外部事件中断 0 触发时允许步进电机加速,外部事件中断 0 每触发一次,步进电机加速一次。外部事件中断 1 触发时允许步进电机减速,外部事件中断 1 每触发一次,步进电机减速一次。另外,在中断程序中限制了控制对步进电机转速起决定性作用的变量(也就是程序的 rate)的变化范围,从而使得步进电机在加速过程中转速有上限,达到该上限时转速不能再增大,步进电机在减速过程中转速有下限,达到此下限时转速不能再减小。通过中断的方式对步进电机转速控制易于实现而且对转速的控制非常的灵活。