基于单片机步进电机控制设计-课程设计_第1页
基于单片机步进电机控制设计-课程设计_第2页
基于单片机步进电机控制设计-课程设计_第3页
基于单片机步进电机控制设计-课程设计_第4页
基于单片机步进电机控制设计-课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计(论文) 题 目 名 称 基于单片机步进电机控制设计 课 程 名 称 单片机原理及应在电气测控学科中的使用 学 生 姓 名 学 号 系 、专 业 指 导 教 师 2010 年 6 月 30 日 目录 摘摘 要要 .IIII 1 1单片机控制步进电机的原理及意义单片机控制步进电机的原理及意义 .1 1 1.1 原理 .1 1.2 意义 .2 2 2控制系统的硬件设备控制系统的硬件设备 .2 2 2.1 总方框图及具体硬件连线图的设计 .2 2.2 步进电机控制电路 .3 2.3 最小系统 .4 2.4 驱动电路 .4 2.5 显示电路 .5 3.3.控制系统的软件设计控制系统的软件设计 .6 6 3.1 主程序设计 .6 3.2 定时中断设计 .7 3.4 源程序 .8 4.4.仿真调试仿真调试 .1212 4.1PROTEUS 简介 .12 4.2 仿真结果.13 5.5.结束语结束语 .1515 6.6.参考文献参考文献 .1515 摘摘 要要 本设计是采用单片机 AT89C51(12MHZ)对步进电机进行控制,通过 I/O 口输出的具 有时序的方波作为步进电机的控制信号,用 4 个按钮来对电机的状态进行控制,单片机 根据电机的状态信号将写入的程序通过 CPU 进行处理,发出脉冲控制信号,脉冲控制信 号经过芯片 ULN2003A 驱动步进电机,步进电机将脉冲控制信号转换为电机的角位移,使 电机的转子根据脉冲数来实现电机准确的转速控制。在显示电路中,主要是利用了单 片机的 P0 口和 P2 口。采用两个共阳数码管作显示。CPU 根据发送过来的指令进行相应 的动作,从而使数码管能够显示出相应的转速的等级, 其中电机转速的等级分为五级。 同时电机也可以正反转,第一个数码管接的 a、b、c、d、e、f、g、h 分别接 P0.0P0.7 口,用于显示电机正反转状态,正转时显示“1”,反转时显示“一”,不 转时显示“0”。 关键词:关键词:AT89C51 单片机;ULN2003A;20BY-0 型步进电机;WAVE 软;30PF 的电 容;12M 晶体振荡器件; 1 1 单片机控制步进电机的原理及意义单片机控制步进电机的原理及意义 1.11.1 原理原理 1. 步进电机 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步 进电机就转动一个角度,因此非常适合于单片机控制。步进电机区别于其他控制电机 的最大特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉 冲数决定,而电机的转速由脉冲信号频率决定。步进电机分三种:永磁式(PM),反 应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种 能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直 线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛使用。 步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量和脉冲数成正比,每 个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。步进电机旋转 的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。 2.原理 根据控制系统功能要求及步进电机使用环境,确定了设计系统硬件和软件的功能 划分,从而实现了基于 8051 单片机的四相步进电机的开环控制系统。控制系统通过单 片机存储器、I/O 接口、中断、键盘、LED 显示器的扩展、步进电机的环形分频器、驱 动及保护电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电 机的正反转,急停等功能。为实现单片机控制步进电机系统在数控机床上的使用,系 统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控 机床的刀架自动进给运动。选定的曲线比较符合步进电机升降过程的运行规律,能充 分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和 过冲现象。步进电机能响应而不失步的最高步进频率称为“启动频率”。 步进电机换 向时,一定要在电机降速停止或降到突跳频率范围之内在换向,以免产生较大的冲击 而损坏电机。换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的 第一个脉冲前发出。对于脉冲的设计主要要求其有一定的脉冲宽度、脉冲序列的均匀 度及高低电平方式。在某一高速下的正、反向切换实质包含了降速换向加速 3 个 过程。 1.2 意义 随着数字化技术地发展,数字控制技术得到了广泛而升入的使用。步进电机是 一种将数字信号直接转换成角位移或线位移的控制元件,具有快速启动和停止的特点。 因为步进电机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要 求,所以广泛的使用于手工业自动控制、数控机床、组合机床、机器人、计算机外围 设备、照相机、投影仪、数码摄像机、大型望远镜、卫星天线定位系统、医疗器件以 及各种可控机械工具等等。此外作为执行元件,步进电机是机电一体化的关键产品之 一,被广泛使用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需 要量和日俱增,在各个国民经济领域都有使用。步进电机是机电数字控制系统中常用 的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中 得到了广泛的使用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能 强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。 2 2、控制系统的硬件设备、控制系统的硬件设备 2.1 总方框图及具体硬件连线图的设计 1.该设计的总方案图 图如 2.1 所示,是由一个 AT89C51(12MHZ)、两个共阳极数码显示管、芯片 ULN2003A、步进电机,还有晶振和按钮复位电路以及开关控制器件连接而成。 89C51 单片机 复位电路 键盘控制电路 ULN2803 启动 电路 电源及时钟电路 图 2.1 总体设计方框图 状态显示电路 步进 电机 2.设计一个单片机四相步进电机控制系统要求系统具有如下功能 (1).用 K1、K2 状态变化来实现电机的启动和换向功能。 (2).第一个数码管用于显示电机正反转,正转显示“1”,反转显示“-”,不转 时显示“0”。 (3).通过 S2、S3 的断开和闭合。 (4).复位电路采用手动复位。 根据设计要求用 PROTUES 所做的硬件连线如图 2.2 所示: 图 2.2 总体电路图 2.2. 步进电机控制电路 1. 正反转控制 根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减 速控制按钮,分别是 K1、K2、S2、S3,控制电路如图 2.3 所示。通过 K1、K2 状态变 化来实现电机的启动和换向功能。当 K1、K2 的状态变化时,内部程序检测 P1.0 和 P1.1 的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。 2.转速控制 根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入 电机的脉冲频率,从而控制电机的转速。对于单片机而言,转速控制的方法主要有: 软件延时和定时中断,在此电路中电机的转速控制主要是通过定时器的中断来实现的, 该电路控制电机加速度主要是通过 S2、S3 的断开和闭合,从而控制外部中断根据按键 次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步 进电机的输出脉冲频率,从而改变了电机的转速。 图 2.3 控制电路原理图 2.3 最小系统 对于没有内部没有晶振的单片机,接上电源和晶振就是该单片机的最小系统。 对于这个设计的单片机来说,还有一个按钮复位电路。电路如图 2.4 所示: 图 2.4 复位及时钟振荡电路 2.4. .驱动电路 通过 ULN2003 构成比较多的驱动电路,电路图如图 3.3 所示。通过单片机的 P1.0P1.3 输出脉冲到 ULN2003 的 1B4B 口,经信号放大后从 1C4C 口分别输出到电 机的 A、B、C、D 相。 图 2.5 步进电机驱动电路 2.5显示电路 在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的 等级分为五级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机 转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的 P0 口和 P2 口。采用两个共阳数码管作显示。第一个数码管用于显示电机正反转状态,正转时 显示“1”,反转时显示“一”,不转时显示“0”。第二个数码管用于显示电机的转 速级别,共五级,即从 15 转速依次递增,“0”表示转速为零。电路如图 2.6 所示。 图 2.6 显示电路 3.控制系统的软件设计 3.1.主程序设计 主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种 开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化 定时器、外部中断;对 P1 口送初值以决定脉冲分配方式,速度值存储区送初值决定步 进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。主程序流 程图如图 3.1 所示: 初 始 化 速度值为 0? 启动开关为 0? 停止计时器 显 示 启动计时器 延 时 停止计时器 图 3.1 主程序流程 图 Y N Y N 开始 Y Y 3.23.2 定时中断设计定时中断设计 步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通 入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间 间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次 数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉 冲,以及保存当前的各种状态。程序流程图如 3.2 所示: 中断返回 T0 中断入口 发速度脉冲 读方向指示 重送相关状态 恢复现场 保护现场 中断次数-1=0? N Y 图 3.2 定时中断程序流 程图 .外部中断设计外部中断设计 外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该 数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变 了电机的转速。速度增加按钮 S2 为 INT0 中断,其程序流程为原数据,当值等于 5 时,不改变原数值返回,小于 5 时,数据加 1 后返回;速度减少按钮 S3,当原数据 不为 0,减 1 保存数据,原数据为 0 则保持不变。程序流程图 3.3 所示: 外部中断入口 保护现场 延时去抖 中断返回 速度值1 恢复现场 速度=上或限值? 按钮是否弹起? N N Y Y 图 3.3 外部中断程序流 程图 3.4 源程序 汇编程序如下: SPEED EQU 10H ;SPEED 为转速等级标志,共 5 级,即 15 FX EQU 11H ;FX 为方向标志 COUNT EQU 12H ;COUNT 中断次数标志 ORG 0000H LJMP MAIN ORG 0003H ;外部中断 0 入口地址,加速子程序 LJMP UP ORG 0013H ;外部中断 1 入口地址,减速子程序 LJMP DOWN ORG 000BH ;定时器 0 中断入口地址,控制中断次数来达到控制转速 LJMP ZDT0 ORG 0030H MAIN: OV SP,#60H MOV TMOD,#01H;工作于定时、软件置位启动!模式 1(16 位计时器) MOV TH0,#0EFH MOV TL0,#0FAH MOV COUNT,#01H SETB ET0 ;定时/计数器允许中断 CLR IT0 ;外部中断为电平触发方式,低电平有效 CLR IT1 SETB EX0 ;外部允许中断 SETB EX1 SETB EA ;开总中断 MOV R1,#11H;四相单四拍运行,共阳数码管方向显示 8,速度值显示 0 MOV SPEED,#00H ; MOV FX,#00H ; XIANS: MOV A,SPEED ; MOV DPTR,#LED ; MOVC A,A+DPTR ;查表获取等级对应数码管代码 MOV P2,A ;第二个数码管显示转速等级 MOV A,FX ;准备判断转向 CJNE A,#11H,ELS ; MOV P0, #0F9H ;第一个数码管显示 1,表示正转 LJMP QD ELS: CJNE A,#00H,ZHENG; MOV P0,#0C0H ;第一个数码管显示 0,表示不转 LJMP QD ZHENG: MOV P0,#0BFH ;第一个数码管显示-,表示反转 QD: JB P3.1,DD ;P3.1 接启动开关 K1,P3.1 =1 时启动 CLR TR0 ;停止定时/计数器 MOV P0,#0FFH ;第一个数码管显示 0,表示不转 MOV P2,#0FFH ;第二个数码管显示 0,表示转速为 0 MOV SPEED,#00H ;重新赋初值 MOV FX,#00H ; LJMP QD DD: MOV A,SPEED ; JNZ GO ;A 不等于 0,即初始速度不为零,则转移到 GO CLR TR0 ;停止定时/计数器 LJMP QD GO: SETB TR0 ;开启定时/计数器 ACALL DELAY LJMP XIANS DELAY: MOV R6,#10 ;延时子程序 DEL1: MOV R7,#250 ; HERE1:DJNZ R7, HERE1 ; DJNZ R6,DEL1 ; RET 以下 ZDT0 为定时器中断程序 ZDT0: PUSH ACC PUSH DPH PUSH DPL MOV TH0,#0EFH ; MOV TL0,#0FAH; DJNZ COUNT,EXIT ; JB P3.0,NIZHUAN ;查询方向标志,P3.0 接换向开关 K2 MOV FX,#11H ; NIZHUAN:MOV A,FX ; CJNE A,#11H,FZ ;若 A 不等于 11,即正转,则转移到 FZ MOV A,R1 ;R1 记录上一次电机脉冲状态 MOV P1,A ; RR A ;循环右一位 MOV R1,A ; MOV P1,A ; LJMP RE FZ: MOV A,R1 ; MOV P1,A ; RL A ;循环左移一位 MOV P1,A ; MOV R1,A ; RE: MOV A,SPEED ; MOV DPTR,#TAB ; MOVC A,A+DPTR ; MOV COUNT,A ;把转速级别赋给 COUNT JB P3.0 ,FFX ; P3.0 接换向开关 K2, 即换向位,若 P3.0=1,则跳到 FFX MOV FX,#11H ; LJMP EXIT FFX: MOV FX,#0FEH ;只要 FX 不等于 11H,就可以通过循环左移或右移进行换向 EXIT:POP DPL POP DPH POP ACC RETI 以下 UP 为加速中断程序 UP: PUSH ACC ACALL DELAY ;延时防抖动 JB P3.2,UPEX ;接开关 S2,低电平有效,若 P3.2=1,则退出 MOV A,SPEED ; CJNE A,#5,SZ ;最大等级为 5,若 A 不等于 5,则转移到 SZ LJMP UPEX ;若 A=5,则退出 SZ: INC SPEED ; SPEED= SPEED+1 UPEX:POP ACC HERE2: JNB P3.2,HERE2;本指令为防止开关 S2 按下去后弹不起,导致一直产生中 断 RETI 以下以下 DOWNDOWN 为减速中断程序为减速中断程序 DOWN: PUSH ACC ACALL DELAY JB P3.3,DEX;接开关 S3,低电平有效,若 P3.3=1,则退出 MOV A,SPEED ; CJNE A,#0,SJ ; LJMP DEX SJ: DEC PEED ; SPEED= SPEED-1 DEX: POP ACC HERE3:JNB P3.3,HERE3 ; RETI TAB:DB 0,50,46,39,33,28;经仿真,小于 21 时,由于脉冲太快,会出现失步 LED:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H END 4.仿真调试 4.1.proteus 简介 Proteus 是英国 Labcenter 公司开发的电路分析和实物仿真软件。它运行于 Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。 proteus6.5 是目前最好的模拟单片机外围器件的工具,真的很不错。可以仿真 51 系列、AVR,PIC 等常用的 MCU 及其外围电路(如 LCD,RAM,ROM,键盘,马达, LED,AD/DA,部分 SPI 器件,部分 IIC 器件,.) 该软件的特点是: 1.实现了单片机仿真和 SPICE 电路仿真相结合。具有模拟电路仿真、数字电路 仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、 信号发生器等。 2.支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52 系列、AVR 系列、HC11 系列以及多种外围芯片。 3.提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功 能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也 必须具有这些功能;同时支持第三方的软件编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论