单片机课程设计--步进电机驱动器_第1页
单片机课程设计--步进电机驱动器_第2页
单片机课程设计--步进电机驱动器_第3页
单片机课程设计--步进电机驱动器_第4页
单片机课程设计--步进电机驱动器_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理实训说明书题 目: 步进电机控制器 学 院: 专 业: 学生姓名: 学 号: 指导教师: 2011 年 12 月 29 日桂林电子科技大学实训说明书用纸1摘 要步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,具有快速起动和停止的特点。其驱动速度和指令脉冲能严格同步,具有较高的重复定位精度, 并能实现正反转和平滑速度调节。它的运行速度和步距不受电源电压波动及负载的影响, 因而被广泛应用于数模转换、速度控制和位置控制系统。本文在分析了步进电机的驱动特性、斩波恒流细分驱动原理和混合式步进电机驱动芯片 ULN2003AN 的性能、结构的基础上,结合 AT89C52 单片机,设计出了混合式步进电机驱动电路。关键词:步进电机;AT89C52 单片机;ULN2003AN 驱动。桂林电子科技大学实训说明书用纸2AbstractStepping motors is a kind of will convert angular displacement or electrical impulses signal line displacement of precision actuator, have fast start and stop characteristics. The driving speed and instructions pulse can strictly synchronization, which has high repositioning precision, and can realize the positive AT89C52 single chip computer; ULN2003AN driver.桂林电子科技大学实训说明书用纸3目 录第 1章 步进电机的原理介绍 .22.1 步进电机的工作原理 .32.2 步进电机 24BYJ48 的相关电气参数 .32.3 步进电机的基本术语 .42.3.1 相数 .42.3.2 拍数 .42.3.3 步距角 .42.3.4 信号分配 .4第 2章 总体设计思路 .53.1 方案与设计思路 .53.2 总框图 .5第 3章 程序设计 .54.1 主程序 .54.2 LCD 及档位显示程序 .64.3 正反转流程图 .74.4 启动与停止流程图 .8第 4章 硬件设计 .95.1 硬件的设计与选取 .95.1.1 步进电机的驱动 95.1.2 单片机的选取 105.1.3 液晶 LCD1602 显示模块 .105.1.4 按键电路设计 115.1.5 时针产生电路 115.2 硬件的总体电路连接 12第 5章 调试与故障分析 .136.1 软件编写及调试 136.2 调试过程及相关显示结果 146.3 故障分析及解决方法 .15第 6章 心得体会 .15第 7章 参考文献 17附件 18系统原理图 19开发板实物图: 19元器件清单 19源程序清单 28桂林电子科技大学实训说明书用纸4第 1章 步进电机的原理介绍2.1 步进电机的工作原理本次设计是采用步进电机 28BYJ48 型四相八拍电机,电压为 DC5V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)步进电机 28BYJ48 的相关电气参数1.额定电压:5V2.相数:43.减速比:1/644.步距角:5.625/645.驱动方式:4 相 8 拍6.直流电阻:2007%(25)7.空载牵入频率:600Hz8.空载牵出频率:1000Hz9.牵入转矩:34.3mN.m(120Hz)10.自定位转矩:34.3mN.m11.绝缘电阻:10M(500V)12.绝缘介电强度:600VAC/1mA/1S13.绝缘等级:A14.温升:50K(120Hz)15.噪音:40dB(120Hz)16.重量:大约 40g17.未注公差按:GB1804-m18.转向:CCW2.3 步进电机的基本术语2.3.1 相数产生不同对极 N、S 磁场的激磁线圈对数,常用 m 表示。2.3.2 拍数完成一个磁场周期性变化所需脉冲数或导电状态用 n 表示,或指电机转过一个齿距角所需脉冲数,比如说本次设计中使用的 24BYJ48 有单(单相绕组通电)四拍(A-B-桂林电子科技大学实训说明书用纸5C-D-A。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)2.3.3 步距角对应一个脉冲信号,电机转子转过的角位移用 表示。=360 度(转子齿数 J*运行拍数),以常规二相,转子齿为 50 齿电机为例。四拍运行时步距角为 =360 度/(50*4)=1.8 度(俗称整步),八拍运行时步距角为 =360 度/(50*8)=0.9 度(俗称半步)。2.3.4 信号分配四相步进电机按照其通电方式的不同,可以分为单四拍,双四拍和双八拍三种工作方式。单四拍与双四拍的步距角相等,均为 11.25 度,而八拍的步距角则是单四拍与双四拍的一半,5.625 度。单(单相绕组通电)四拍(A-B-C-D-A。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍 (A-AB-B-BC-C-CD-D-DA-A。)。这里选取的是双相八拍的工作方式。第 3 章 总体设计思路3.1 方案与设计思路因为步进电机的控制是通过脉冲信号来控制的,将电脉冲信号转变为角位移或线位移的开环控制元件。所以怎样产生这个脉冲信号和产生怎样的信号是电机控制的关键。用单片机来产生这个脉冲信号,通过单片机的 P1 口输出脉冲信号,因为所选电机是四相的,所以只需要 P1 口的低四位 P1.0P1.3 分别接到电机的四根电线上。定时器定时来调整电机的转速,通过键盘的按钮,就可以改变定时初值从而改变了电机的转速,单片机上 P3.2P3.5 连的是按键,这里键盘上的 K1 键为启动与停止键,K2 键为减速键,K3 键为加速键,K4 键为方向转换键。P0 以及 P2.0P2.2 口接 LCD1602,可以显示当前的电机转速、运行状态、运行方向和档位。具体结构见 3-1 框图。桂林电子科技大学实训说明书用纸63.2 总框图LCD 显示P0AT89S52数据传送P2.0P2.3 显示控制口SS1S2S3RSTP3.0P3.1P3.2ULN2003 P1.0P1.3步进电机晶振电路复位电路报警图 3-1 总体设计方框图第 4 章 程序设计4.1 主程序进入主程序,首先是对 LCD 进行初始化,然后依次进行键盘扫描,调用步进电机相关数据显示子函数,若检测到有键按下,则进去相应的处理。流程图如下图 4-1:桂林电子科技大学实训说明书用纸7开始L C D 初始化按键扫描K 1 = = 0 K 2 = = 0 K 3 = = 0 K 4 = = 0运行或停止 减速 加速 方向转换是否为 1 0 档保持显示 1 0 档减一档YN是否为 1 档加一档保持显示 1 档NY结束4-1 图 主程序流程图4.2 LCD 及档位显示程序此次设计使用 1602 液晶显示步进电机运行状态,其效果比用数码管显示要更加明了,也更容易读取相关状态和数据。液晶上显示有电机运行的状态(RUNNING 或STOP)、当前档位(DW)、运行方向(“)以及其运转速度(r/min)。其显示原理如下图 4-2:桂林电子科技大学实训说明书用纸8图 4-2 液晶显示流程图4.4 启动与停止流程图启动与停止是用 K1 键来控制的,初始化标志位 on_off=0,档按下 K1,即将on_off 置 1,每当按下 k1,都将在启动与停止间切换,具体流程图如下图 4-4:桂林电子科技大学实训说明书用纸9图 4-4 启动与停止流程图第 5 章 硬件设计5.1 硬件的设计与选取5.1.1 步进电机的驱动步进电机的驱动采用 ULN2003,接到单片机的 P1.0P1.3,具体如桂林电子科技大学实训说明书用纸10图 5-1:图 5-1 步进电机驱动及其接口图5.1.2 单片机的选取目 前 市 面 上 的 通 用 型 单 片 机 种 类 很 多 , 且 适 合 不 同 应 用 场 合 的 新 产 品 不 断 出 现 ,但 目 前 的 应 用 状 况 , 以 8 位 中 档 MCS-51 系 列 单 片 机 的 应 用 最 为 普 遍 。 基 于 这 次 课程 设 计 的 要 求 不 高 , 我 们 可 以 选 用 51 系 列 或 52 系 列 单 片 机 , 其 有 可 靠 性 高 , 易于 扩 展 以 及 实 用 性 好 等 特 点 , 完 全 可 以 满 足 我 们 的 控 制 要 求 。 其 图 如 下 5-2:图 5-2 AT89C52 单片机桂林电子科技大学实训说明书用纸115.1.3 液晶 LCD1602 显示模块P0 接 液 晶 的 数 据 传 送 口 , P2.0P2.2 接 液 晶 的 控 制 端 口 。其 接 线 图 如 下 图 5-3:图 5-3 液晶与单片机接口原理图5.1.4 按键电路设计键 盘 接 口 按 不 同 标 准 有 不 同 分 类 方 法 , 按 键 盘 排 布 , 可 以 分 为 独 立 方 式 ( 一 组相 互 独 立 的 键 盘 ) 和 矩 阵 ( 一 行 列 组 成 矩 阵 ) 方 式 。 此 次 设 计 只 用 到 了 四 个 按 键 ,故 可 采 用 独 立 按 键 , P3.2P3.5 分 别 接 到 K1K4。 其 原 理 图 如 下 图 5-4:图 5-4 按键与单片机接口原理图5.1.5 时针产生电路时针电路部分晶振为 11.0592MHz,其原理图如下:桂林电子科技大学实训说明书用纸12XTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32P1.01 P1.12P1.23 P1.34P1.45 P1.56P1.67 P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51C130pC230p X1CRYSTAL图 5-4 时针电路5.2 硬件的总体电路连接XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3./INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D714613D51241D31029D1807E6RW5S4VS1D2VE3LCD2LM016LRV11KC130pC230pX1CRYSTALC310uR24.7k1B11C16 2B22C15 3B33C14 4B44C135B55C12 6B66C1 7B77C10COM9U2ULN203A+8.8R14.7KR34.7KR44.7KR54.7K12345678910RN14.7k图 5-5 总体原理图桂林电子科技大学实训说明书用纸13第 6 章 调试与故障分析6.1 软件编写及调试此次编程及调试是用 keil 软件进行的,程序的编写及调 试 步 骤 如 下 :1.根 据 步 进 电 机 24BYJ48 的 相 序 , 编 好 正 反 转 相 序 表 , 这 个 是 关 键 , 不 能 编 错 。2.定义各个变量及相关液晶显示符:uchar code cdis0 = “ WELCOME TO “;uchar code cdis1 = “ STEPPING MOTOR “;uchar code cdis2 = “ CONTROL SYSTEM “;uchar code cdis3 = “STOP “;uchar code cdis4 = “DW:“;uchar code cdis5 = “RUNNING“;uchar code cdis6 = “r/min“;3.定义各个按键:sbit K1 = P32; /运行与停止sbit K2 = P33; /加速sbit K3 = P34; /减速sbit K4 = P35; /方向转换sbit BEEP = P36; /蜂鸣器4.编写各个子程序。5.编写主程序,进入主程序即开始进行键盘扫描及调用液晶显示。6.定时器 T0 的中断服务程序,进入中断,若满足条件,即向步进电机送 8 个脉冲。6.2 调试过程及相关显示结果将程序下载到单片机中,LCD 初始化显示如下:桂林电子科技大学实训说明书用纸14之后进入步进电机初始化的画面显示,电机运行状态显示为 STOP,档位为 5 档,开机转速为 2.66r/min,如下:D714D613D512D41D310D29D18D07E6RW5RS4VS1 VD2 VE3LCD2LM016L实物图如下:按下启动键 K1 后,转向显示出显示“,即电机顺时针转,显示如下:D714D613D512D41D310D29D18D07E6RW5RS4VS1 VD2 VE3LCD2LM016L按 K2 键一次,档位加一,高位档为 10 档,此时对应电机转速为最慢,为 1.33r/min,如下图:桂林电子科技大学实训说明书用纸15D714D613D512D41D310D29D18D07E6RW5RS4VS1 VD2 VE3LCD2LM016L实物图显示如下:按下 K3 键一次,档位减一,低位档为 1 档,也是电机转速最快的档,为 13.32r/min,显示效果如下图:D714D613D512D41D310D29D18D07E6RW5RS4VS1 VD2 VE3LCD2LM016L实物图显示如下:桂林电子科技大学实训说明书用纸166.3 故障分析及解决方法故障一:首先在设计总体方案时,思路上出现了一些问题,我首先是想在中断里完成许多应在中断之外完成的事,经过老师的指点,后来想清楚了。只在中断中给电机送相序码,并设定了一个参数对电机的转速进行调控。故障二:由于编写程序的经验不多,在计算电机转速,并将其显示在液晶时,遇到了一些问题,速度转换公式是找出来了,但怎样将其小数点表示出来,困惑了好久,最后还是请教了同学,才搞定。故障三:在仿真时首先液晶没有接上拉电阻,液晶上显示不出来,我以为是程序方面出了问题,后来尝试接了上拉电阻,就能够正常显示了。第 7 章 心得体会为期几个月的的单片机设计在忙碌中已接近尾声,经过这么多天的努力,终于完成了这次课程设计基本设计要求,在充实中也学到了很多知识,是真正将所学知识运用于实践中的一次很好的体验,使人受益匪浅。由于此次控制要求不是很高,选用 51 系列或 52 系列完全能够满足设计需求,最后选用的 STC89C52。接下来就是硬件接口分配问题和如何去驱动电机。对于步进电机之前没有什么接触,所以我上网查了许多关于步进电机的资料,知道了其基本工作原理以及怎么去实现其控制运转和驱动。接下来的主要问题就是如何编程去实现控制它了,这次程序的编写和调试对我来说是个不小的挑战,因为之前只编写过一些简短的小程序,对较大的程序总体性方面还不能很好的把握。经过反复的尝试和调试,用发现一个问题,解决一个问题的方法,还参考了一些别人的经验方法,完成了程序的编写。这对我以后编写程序是一次很好的经验积累。仿真时也出了一些小问题,首先 LCD完全没有显示,我就尝试接上拉电阻,结果就能正常工作了。然后是电机也不转,最后我把送进去的脉冲频率减小,才使得电机运转起来,这个仿真过程又使我更加熟练了 Proteus 软件的用法。这次课程设计使我认识到,刚学好书上的知识还是不够的,更重要的是我们要能将所学的知识运用到实践中来,这才是我们学习知识的最基本的要求,所以在以后的学习生活中,我们应该更加注意将学习与实践相结合,在实践中去运用好所学知识,更进一步深化和理解所学知识,达到学以致用。通过这次课程设计,我也了解到了自己的不足,以前自己学习单片机的时候,往往只去看懂别人写的程序,以为看懂了自己就知道写了,但事实并不是这样,虽然这次课程设计程序是完成了,但棘手的地方很多,编程并不像以前认为的简单。所以在以后的学习中,不能手高眼低,一定要脚踏实地,一步步地走,自己动手去做,这样才能将知识真正学到手。这次课程设计能得以顺利完成,还要感谢符强老师的指导和同学们的帮助,在老师指导和同学的帮助下,很多问题问题都很好地解决了。总之,虽然只是短短两周的时间,但也学到了很多,感受很深,是一次很好的经验积累和设计经历。桂林电子科技大学实训说明书用纸17第 8 章 参考文献1王迎旭.单片机原理及及应用.北京:机械工业出版社2张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社3郭天祥.新概念 51 单片机 C 语言教程.北京:电子工业出版社4蔡明文 冯先成编著.单片机课程设计.北京:华中科技大学出版社5王晓明.电动机的单片机控制.北京航空航天大学出版社 桂林电子科技大学实训说明书用纸18附件系统原理图XTAL218XTAL119ALE3031PSN29RST9P0./AD0390.1/138P0.2/AD2370.3/336P0.4/AD4350.5/534P0.6/AD630.7/732P1.011.2P1.231.34P1.451.56P1.671.78P3.0/RXD103.1/T1P3.2/IN0123./IT113P3.4/014P3.7/RD173.6/W163.5/T115P2.7/A1528P2.0/A8212.1/92P2./A10232.3/124P2.4/A12252.5/13262.6/1427U1AT89C51D714613D51241D31029D1807E6RW5S4VS1D2VE3LCD2LM016LRV11KC130pC230p X1CRYSTALC310uR24.7k1B11C16 22215 3B33C14 44413 5B55C126661 7B77C10OM9U2ULN203A+8.8R14.7KR34.7KR44.7KR54.7K12345678910RN14.7k元器件清单单片机开发板 1 块STC89C52 1 片LCD1602 1 块ULN2003 1 个步 进 电 机 1 个桂林电子科技大学实训说明书用纸19源程序清单#include /51 芯片管脚定义头文件#include /内部包含延时函数 _nop_();#define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /正转相序编码表uchar code REV8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1;/反转相序编码表sbit K1 = P32; /运行与停止sbit K2 = P33; /加速sbit K3 = P34; /减速sbit K4 = P35; /方向转换sbit BEEP = P36; /蜂鸣器sbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EN = P22;bit on_off=0; /运行与停止标志bit direction=1; /方向标志uchar code cdis0 = “ WELCOME TO “;uchar code cdis1 = “ STEPPING MOTOR “;uchar code cdis2 = “ CONTROL SYSTEM “;uchar code cdis3 = “STOP “;uchar code cdis4 = “DW:“;uchar code cdis5 = “RUNNING“;uchar code cdis6 = “r/min“;uchar code cdis7 = “RATE:“;uchar m,v=0,q=0,j;uchar rate=5; /预设定速度档uchar data_temP1,data_temp2,data_temp3,data_temp4; uint zs,data_temp;/*/void delay(uint t) / 延时 t 毫秒函数 uchar k;while(t-)for(k=0; k号else for(m=0;m2;m+) /反转方向标志 lcd_pos(0x0e+m); /显示方向符号 lcd_wdat(0x3c); /显示号/*/void motor_RUN() /显示运行状态 if(on_off=1) TR0=1; lcd_pos(0); /设置显示位置为第一行的第 1

温馨提示

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

评论

0/150

提交评论