基于单片机的步进电机控制系统课程设计(19页).doc

上传人:1595****071 文档编号:37065741 上传时间:2022-08-29 格式:DOC 页数:19 大小:510.50KB
返回 下载 相关 举报
基于单片机的步进电机控制系统课程设计(19页).doc_第1页
第1页 / 共19页
基于单片机的步进电机控制系统课程设计(19页).doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《基于单片机的步进电机控制系统课程设计(19页).doc》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制系统课程设计(19页).doc(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-基于单片机的步进电机控制系统课程设计-第 - 17 - 页运城学院单片机课程设计报告课题名称 基于单片机的步进电机控制系统的设计与实现单 位 运城学院 所在院(系) 计算机科学与技术系 班 级 1201 班 指导教师 学生姓名 王明宇 郭西西 王 超 李嘉嘉 黄 凯 王 丹 2015年 5 月 28 日目 录1.课程设计的目的1 2.课程设计题目描述和要求12.1设计题目要求 12.2 原理图设计要求 12.3程序设计要求 12.4程序调试要求 13.硬件设计 53.1单片机最小系统设计53.2主要电路分析54.软件设计104.1 系统软件运作主流程图 10 4.2键盘扫描流程图 115.程

2、序代码 116.设计总结 157.参考文献 15人员分工:序号 姓名 主要工作1 王明宇 系统总体设计2 郭西西 王 超 硬件设计及制作 3 李嘉嘉 软件设计 4 黄 凯 王 丹 系统的软件调试和硬件调试1.课程设计目的(1) 进一步熟悉和掌握单片机的结构及工作原理。(2) 设计一套硬件系统较简单、经济,但功能较为齐全,适应性强,操作方便,交互性强,可靠性高的步进电机控制系统。(3) 通过课程设计,能够有机地把电子技术、单片机技术、电机的控制技术结合起来(4) 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。(5) 通过完成一个包括电路设计和程序开发的完整过程,使学生了解单片机应

3、用系统开发及的全过程,为今后从事相应的工作打下良好的基础。2课程设计题目描述和要求2.1设计题目要求用单片机完成基于单片机的步进电机控制系统的设计与实现。步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机,其位移速度与脉冲频率成正比,位移量与脉冲数成正比。步进电机在结构上也是由定子和转子组成,可以对旋转角度和转动速度进行高精度控制。当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子的一对磁极磁场方向与定子的磁场方向一着该磁场旋转一个角度。 2.2 原理图设计要求(1) 原理图设计要严格符合作图规范(布局、连线要正确,连线端子要有标号等)。(2) 图中所使

4、用的各元器件要按标准正确标明序号及数值(如,P0 口;RST;)。(3) 原理图要完整(电源,单片机,外围器件,扩器接口,输入/输出装置等要一应俱全)。2.3程序设计要求(1) 根据设计要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。(2) 根据总体要求详细分解各功能模块,并确定各功能模块之间的关系,设计出完整的程序流程图(按流程图设计标准完成设计)。2.4 程序调试要求(1) 利用C语言编写程序(按C语言书写标准完成程序设计)。(2) 通过keil调试(按步骤一步一步完成程序调试、包括断点设置、内存及代码分析等)。(3) 通过Altium Designer 7.0软件

5、完成理论性仿真。(4) 通过实验板检验及调试。(5) 程序调试将设计完的程序输入,汇编,排除语法错误,生成HEX文件(执行、检查、修改程序,直到达到要求为止)。3.硬件设计本设计采用单片机AT89S51来作为整个步进电机控制系统的运动控制核心部件,采用了电机驱动芯片L298及其外围电路构成了整个系统的驱动部分,再加上作为执行部件的步进电机来构成了一个基本的步进电机控制系统。系统的具体功能和要求如下: 1.单片机最小系统板的设计; 2.设计兼有两相两拍和两相四拍的脉冲分配器; 3.实现步进电机的启停、正转、反转控制; 4.驱动电路可提供电压为12V,电流为0.3A的驱动信号; 5.能实现步进电机

6、的转速调节,最低转速为25转/分,最高转速为100转/分; 6.步进电机的转速由数码管显示; 7.键盘扫描电路的设计整个系统的组成包括单片机最小系统,电机驱动模块,串口下载模块,数码管显示模块,电机驱动电流检测模块,独立按键等模块组成。具体框图如图所示:3.1单片机最小系统设计采用AT89S51单片机构成了控制系统的核心,其基本模块就主要包括复位电路和晶体震荡电路。在本设计当中,单片机的P 0口、P 1口、P 2口、P 3口全部参与系统工作,单片机最小系统的接线如图3.3所示:单片机端口分配及功能1、其中P 0口用于控制数码管的具体显示功能,既是数码管的段选。2、P 1口主要用于控制电机驱动芯

7、片L298的工作,以及ADC0804芯片的编程的读写控制。3、P 2口主要用于控制数码管的公共端,既是数码管的位选。与此同时还处理键盘扫描电路的。4、P 3口主要用于负责处理ADC0804的模数转化芯片的工作。3.2主要电路分析1. 串口通信模块本设计采用串口通信,来实现计算机与单片机的通信。其具体的电路图如图所示。2数码管显示电路设计 本设计的显示部分可以用液晶显示的方案可供选择,液晶显示和数码管显示的区别主要体现在以下几个方面:数码管显示内容单一,而液晶显示器显示内容丰富,因为液晶一般都是七段八字的只能显示单一的内容,而液晶显示的内容就很丰富;数码管还比液晶显示耗电,而且使用液晶也比使用数

8、码管显得美观。但是控制液晶显示器的时候占用的系统资源多,编程更复杂,最关键的是液晶显示的成本是数码管的几十倍,所以考虑到应用价值,最终还是确定选用数码管实现本设计的显示部分功能。四位共阳数码管的管脚分配如下图所示:本设计选用了数码管显示设计,其段选的控制A、B、C、D、E、F、G、DP按照数码管的简介资料选用了P 0口作为其控制端口,其位选部分由于单片机的控制端口输出的电压不足以直接点亮数码管,所以在单片机控制端口和数码管的位选控制端口加入了三极管,其具体的电路连接如图所示。3电机驱动模块设计目前的电机的驱动技术的基本类型,考虑要硬件设计驱动电路的方法会电路复杂,调试不方便,而且采用多个元器件

9、搭接,成本高。而直接采用集成的驱动芯片时电路稳定,成本低,易于控制,所以最终本设计是直接采用电机驱动芯片L298作为电机驱动部分的核心部件。本设计的电机驱动部分是由驱动芯片L298及其外围电路构成,其中从L298的2、3脚和13、14脚(即芯片的输出端)依次按顺序连成一个插座,分别与步进电机的四根线相连。而5、6、7、10、11、12脚就依次与单片机的P1口的六个管脚相连。通过这一连接实现了单片机与L298以及步进电机的串联控制。图中很重要的部分是由四个二极管连成的保护电路,其作用是防止由于步进电机的转速提高而产生的自感电动势损坏芯片。由于本设计使用的电机驱动电压是使用了9V (也可以使用12

10、V),所以二极管的负端接9V的参考电压。如果驱动芯片的电压改变,那么这个参考电压也随之一起改变。4. 驱动电流检测模块设计本设计的驱动芯片电流检测模块的实际应用意义在于,检测流过电机的电流值并及时显示,对于防止电机过流而损坏电机有一定的意义。从上面的L298的芯片资料当中我们可以知道L298的Pin1和Pin15可与电流侦测电阻连接来侦测电机正常工作的情况下的工作电流。一般检测电流的方法是通过检测电压值,然后通过欧姆定律换算电流值的方法测试电流,本设计也不例外。设计采用的42BYG101反应式步进电机,其额定电流值0.2安,在加上一般常用的电流侦测电阻都是1欧姆或0.1欧姆,这样换算来检测到的

11、电压值一般是在mV级,这样以来,要是直接将检测到的电压值送给ADC0804进行模数转换那么由于精度的原因势必会对检测结果的准确性造成很大的影响。所以考虑到这一原因我们是先将检测到的电流值经过OP07作放大处理后再将信号送给模数转换芯片处理这样保证了检测值的可靠性。ADC0804输出的数字信号再送给单片机的P 3口,经过单片机处理后最后将检测到的数字信号通过数码管显示出来。而在显示这一部分有这样一个问题,就是步进电机的工作电流不是一个恒定值,它是随着时间的变化,会在一个小范围内不停的波动为了使显示出来的电流数据更可靠,我们通过单片编程,采用了取一段时间的电流的平均值显示出来。形象的展示这一模块的

12、整个工作流程就是如下的图所示:5. 独立按键电路设计本设计一共设计了四个按键,其中一个是单片机复位电路按键,剩余三个按键是分别一端接P2.1口,P2.2口,P2.3口另一端接地。此时按键的工作原理是按下按键之后就相当于是把对应的端口的电势拉低。在处理按键程序前就先去抖动,防止因按键时产生的机械抖动而错误的重复执行相应程序。所有按键处理程序都是在等按下后执行的。这些在软件编设计部分都会有说明。4.软件设计41 系统软件运作主流程图当给系统供电以后,通过单片机复位电路对系统进行上电复位系统经过初始化以后,便开始执行按键查询等待相应的操作,当有按键按下的时候程序便调用并执行相应的子程序,其具体的主流

13、程图4.1如下所示:4.2系统初始化流程图对相应的系统参数进行初始化,包括系统上电默认运行参数设定,包括两相四拍的工作方式,初始速度档位是30转/分,系统中断设定,定时器设定,载入定时器初值和默认的工作参数等,具体流程图如图4.2所示。5.程序代码按键子程序1、延时子程序:在本延时子程序当中每调用一次延时子程序延时时间是1毫秒。2、按键响应子函数:在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低。所以在编程的时候判断按键按下是低电平有效。图4.3画出的是电机增速和减速的子程序框图。图3.3增速减速子程序 3、读ADC0804和模式切换程序框图如

14、下图4.4所示,在本设计当中我的模式切换按键只有一个,负责电机的正反转控制,电流控制和电机启动和停止控制。由于编程的时候设置的系统工作的默认状态是正转,转速30转/分。所以通过连续按模式切换键依次实现的功能是电机反转并显示转速,显示电机电流,系统停止工作,系统正转并显示转速依次切换。编程控制ADC0804工作就主要是负责读和写端口的电平来实现的。图3.4读ADC0804子程序及模式切换子程序4、控制步进电机转动的脉冲输入方式:两相四拍通电方式:正转:ABaBabAbAB反转:ABAbabaBAB两相八拍通电方式:正转:ABBaBaabbAbAAB反转:ABAAbbabaaBBAB以两相四拍正转

15、为例其程序代码如下: if(i=1) AL=1; BL=1; aL=0; bL=0; else if(i=2) AL=0; BL=1; aL=1; bL=0; else if(i=3) AL=0; BL=0; aL=1; bL=1; else if(i=4) AL=1; BL=0; 系统组成3.4.1硬件设计如图是机械手微机控制系统硬件电路。本系统选用MCS-51系列中的8031芯片,扩展了一片2732,以存放用户程序。由于随机存储的数据不多,只利用片内RAM。采用两位LED显示器和28键盘,P35、P36和P37分别输出X、Y、和Z方向的控制脉冲,P16和P1.7分别用来控制步进电机的正/反

16、转和产生复位信号。 机械手动作 机械手装升降盘上,如图所示。图中A点固定,步进电机MZ带动B点,改变A、B间的较小距离,使得机械手移动较大距离。 货架 货架分三层,每层有4个包位,共计12个包位。 图中数字为包位编码,编码的个位数表示X位置,十位数表示Y位置(层数),以供计算机查讯、判断之用。本例采用SB-2A型步进电机,它工作于三相六拍的工作方式。 电机按顺时针方向旋转(即正转)时,各相脉冲顺序为:A=1A=1,B=1B=1B,C=1C=1C=1,A=1 电机按逆时针方向旋转(即反转)时,各相脉冲顺序为:A=1A=1,C=1C=1C=1,B=1B=1B=1,A=1 3.5程序设计 系统软件包

17、括:主程序、取包程序、存包程序、货位判断程序、X、Y方向运动和机械手动作子程序等。 (1)程序流程图 限于篇幅,只给出主要流程图。2、脉冲序列的生成程序 对于步进电机的控制,实际上是控制步进脉冲的个数和步进脉冲的间隔,而步进电机的间隔又可转化为某基准延时子程序的循环次数。因此,可以很方便地用软件来控制步进电机的运行,达到各种控制目的。主程序功能:管理键盘和显示以及有关控制。 无键按下或执行有关命令后,显示提示符“-” (2)程序清单 ORG 0000H AJMP MAIN MAIN: MOV SP, #60H SUN: SETB P3.5 SETB P3.6 SETB P3.7 CLR P1.

18、6 CLR P1.7 MOV R0, #40H MOV A, #12H;字符“-” ML0: MOV R0, A ;的编码 INC R0 CJNE R0, #42H, ML0SETB P1.7 ;复位信号 ;键输入/显示/键判断 F6H-特殊数据 R3-键号暂存器ML1:ACALL DIR ACALL KEY ADD A, 0F6H ;键号+F6 用于数字/功能键的判断 JC SUN1 ;功能键转移至SUN1 MOV 41H,40H ;数字键号送显示缓冲区 MOV R0, 40H MOV R3 , A ANL A, 0FH ;保留低四位 MOV R0,A AJMP ML1功能键处理程序(A、B

19、、C键) SUN1: MOV A, R3 ; CJNE A, 0AH,SUN2 AJMP QBCX SUN2: CJNE A, 0BH,SUN3 AJMP CBCX SUN3: CJNE A, 0CH,ML1 AJMP SUNv 键盘子程序 P1口-P1.6正/反转 P1.7复位 P3口- P3.3 P3.4 键盘行输入口R3-列扫描寄存器 初值FEH R4-列号计数器 SBUF-发送缓冲器 发送列扫描信号 KEY:ACALL KS1 JNZ LK1 NI:ACALL DIR AJMP KEY LK1:ACALL DIR ACALL DIR ACALL KS1 JNZ LK2 AJMP NI

20、LK2: MOV P1, 00HMOV R6, 05H ;延时等待发送 DK6: DJNZ R6, DK6 JB P33 LONE MOV A, 00H AJMP LKP LONE:JB P34, NEXT MOV A, 08HLKP: ADD A, R4 PUSH ACC LK3: ACALL DIR ;仅做一次处理 ACALL KS1 JNZ LK3 POP ACC ;取键值于ACC RET MOV R3, 0FEH MOV R4, 00H LK4:MOV SBUF,R3 NEXT: INC R4 MOV A, R3 JNB ACC.7,KED RL A MOV R3, A AJMP LK

21、4 KED:AJMP KEY v 判断键盘有无键按下子程序无键按下A=00H KS1: MOV SBUF,00H MOV R6, 05H DS6: DJNZ R6, DS6 MOV A, P3 CPL A ANL A, 18H RETv 显示子程序P1口-LED位扫描输出口 R2-位扫描寄存器 初值为01H SBUF-LED段码发送缓冲器 DIR: PUSH PSW SETB PSW,4 MOV R0,40H MOV R2,01H D1: MOV P1,R2 MOV A,R0 ADD A,14H MOVC A,A+PC MOV SBUF,A MOV R7,02H D2: MOV R6,0FFH

22、 D3: DJNZ R6,D3 DJNZ R7,D2INC R0 MOV A,R2 RL A MOV R2,A JNB ACC.2,D1 POP PSW RET v DB 3FH,06H,5BH,4FH延时子程序YSH: PUSH PSW SETB PSW.3 MOV R0,0FFH SH: MOV R1,0FFH SH0: DJNZ R1,#H0 DJNZ R0, SH POP PSW RETDB 66H,60H,70H,07HDB 7FH,6rH,77H,7CHDB 39H,5EH,79H,71HDB 31H,6EH,40H,23HDB 00Hv 延时子程序YSH: PUSH PSW SE

23、TB PSW.3 MOV R0,0FFH SH: MOV R1,0FFH SH0: DJNZ R1,#H0 DJNZ R0, SH POP PSW RETv 机械手控制示意图v 取包子程序 P1.6-正/反转控制 30H、31H步进脉冲暂存器(X方向)QBCX: SETB P1.6 ;正转 MOV 30H,04H ; X0固定脉冲数 MOV 31H,0D8H ACALL XYXC ;调用X方向运行子程序 ACALL CSHC ;调用测试子程序 MOV 30H,33H ;X方向列脉冲数 MOV 31H, 34H ;送30H、31H单元 ACALL XYXC ;调用X方向运行子程序 MOV 30H

24、,35H ;Y方向行脉冲数 MOV 31H,36H ;送30H、31H单元 ACALL YYXC ;调用Y方向运行子程序 ACALL QWZC ;调用取物子程序 CLR P1.6 ;反转MOV 30H, 35H MOV 31H, 36H ACALL YYXC ;调用Y方向运行子程序 MOV 30H, 33H MOV 31H, 34H ACALL XYXC ;调用X方向运行子程序 MOV 30H,04H; X0固定脉冲数 MOV 31H, #0D8H ACALL XYXC ;调用X方向运行子程序 ACALL FWZC ;调用放物子程序 AJMP SUNv 存包子程序P.6-正/反转控制 30H、

25、31H步进脉冲暂存器(X方向)33H、34H -35H、36HCBCX: ACALL QWZC SETB P16 MOV 30H,04H ;X0固定脉冲数 MOV 31H,0D8H ; ACALL XYXC ACALL CSHC MOV 30H,33H MOV 31H,34H ACALL XYXC MOV 30H,35HMOV 30H, 35H MOV 31H, 36H ACALL YYXC MOV 30H, 33H MOV 31H, 34H ACALL XYXC MOV 31H,04H MOV 31H,0D8H ACALL XYXC AJMP SUN MOV 31H,36H ACALL YY

26、XC ACALL FWZC CLR P16MOV 30H, 35H MOV 31H, 36H ACALL YYXC MOV 30H, 33H MOV 31H, 34H ACALL XYXC MOV 31H,04H MOV 31H,0D8H ACALL XYXCv AJMP SUN v X方向运行程序 P35脉冲信号输出线-控制MX电机XYXC: PU3H PSW SETB PSW.4 MOV R0,30H ABC0: MOV R1,31H ABC1: CLR P35 ACALL YSH SETB P35 ACALL YSH DJNZ R1,ABC1 DJNZ R1,ABC0 POP PSW R

27、ETY方向运行程序 P36脉冲信号输出线-控制MY电机 YYXC: PUSH PSW SETB PSW.4 MOV R0, 30H ADC2: MOV R1,31H ADC3: CLR P36 ACALL YSH SETB P36 ACALL YSH DJNZ R1, ADC3 DJNZ R0, ADC2 POP PSWv RET取物子程序 P1.6正/反转 P36Y方向脉冲输出(40H) P3.7Z方向脉冲输出 (66H) QWZC: PUSH PSW SETB PSW.4 SETB P1.6 MOV R0, 66H ABC4: CLR P3.7 ACALL YSH SETB P37 ACA

28、LL YSH DJNZ R0,ADC4 MOV R0,40H ABC5: CLR P36 ACALL YSH SETB P3.6 ACALL YSH DJNZ R0, ABC5DJNZ R0,ABC7 POP PSWCLR P16 MOV R0, 66H ABC6: CLR P37 ACALL YSH SETB P37 ACALL YSH DJNZ R0, ABC6 MOV R0, 40H ABC7: CLR P36 ACALL YSH SETB P36 ACALL YSH RETv 放物子程序 P1.6正/反转 P36Y方向脉冲输出(40H) P3.7Z方向脉冲输出 (66H)FWZC: PUSH PSW SETB PSW.4 SETB P16 MOV R0, 40H ABC8:CLR P36 ACALL YSH SETB P36 ACALL YSH DJNZ R0, ADC8MOV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com