基于单片机的步进电机控制系统.doc

上传人:豆**** 文档编号:17533592 上传时间:2022-05-24 格式:DOC 页数:14 大小:309KB
返回 下载 相关 举报
基于单片机的步进电机控制系统.doc_第1页
第1页 / 共14页
基于单片机的步进电机控制系统.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《基于单片机的步进电机控制系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制系统.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于单片机的步进电机控制系统.精品文档.目 录第1章 引 言.31.1 步进电机控制系统概述.31.2 本设计任务和主要内容4第2章 系统主要硬件电路设计.52.1 单片机控制系统原理.522 单片机主机系统电路52.2.1时钟电路62.2.2复位电路62.3 步进电机驱动电路72.4 LED显示电路.8第3章 系统的软件设计103.1 步进电机的位置控制103.2 显示子程序13第四章 结束语17第5章 参考文献18基于单片机的步进电机控制系统数理与信息工程学院 电信041 林浩波指导教师:余水宝第1章 引 言在当今社会的各个领域步进电机无

2、处不在,应用领域涉及机器人、工业电子自动化设备、医疗器件、广告器材、舞台灯光设备、印刷设备、计算机外部应用设备等等。因此,设计出高精确度、实时监控、语音提示的步进电机具有重要的现实意义和实用价值。 本设计是基于80C51单片机的步进电机控制系统,能够有效地对步进电机转速、方向的控制。为了能够更加人性化的控制系统,本设计还增加了语音提示部分,在实际应用当中由于紧急事件需要在短时间内了解电机的工作情况,这时看数码显示就很不方便,而语音提示提供很大帮助,只要按下语音提示按钮便能获取相关技术数据。 本设计采用16 位单片机MCS80C51对步进电机进行控制,通过I/O口输出的具有时序的方波作为步进电机

3、的控制信号,信号经过驱动芯片驱动步进电机;同时,用 4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为4位单个数码管的显示驱动。1.1 步进电机控制系统概述步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字执行元件,随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中的普及与深入,步进电机的需求量越练越大。随着工业技术的不断发展,以及同类产品的不断出现,步进电机面临着前所未有的挑战。但近30年来,数字技术、计算机技术和永磁材料的迅速发展,推动步进电机的发展,为步进电机的应用开辟了广阔的前景,近几年来,步进电机 需求量一直呈现出较快的增长速

4、度,其中扫描仪、打印机、传真、DVD-ROM/CD-ROM驱动器、空调及多功能自动化办公设备等应用对步进电机的需求增长最强。此外由于USB2.0的日益流行促进了高分辨率扫描仪的销售,步进电机向着小型、薄型和更小的步进角度发展。步进电机有着方方面面重要应用,如何对其进行有效控制,使其能够发挥最大的优势是各个行业技术开发人员所共同关注的,本文旨在设计一套较完整的通用控制系统,对步进电机的转速、方向实行智能化控制,并能通过LED显示其转速。1.2 本设计任务和主要内容本论文主要研究单片机控制的步进电机系统,对步进电机的转速、方向进行控制和显示。主要内容如下: 通过键盘设定步进电机的转速及方向 LED

5、显示步进电机的转速第2章 系统主要硬件电路设计2.1 单片机控制系统原理AT89C51单片机LED数码显示步进电机转速、方向控制键盘输入图2-1 单片机控制系统原理框图22 单片机主机系统电路 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和

6、输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2-2 单片机主机系统图2.2.1时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2-2所示在其外接晶体

7、振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图2-2中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选12MHz 2.2.2复位电路为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就

8、处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。 图2-2中R9和Cl组成上电复位电路,其值R取为1K, C取为1pF.2.3 步进电机驱动电路 驱动电路集成化成为一种趋势。目前,已有多种步进电机驱动集成电路芯片,它们大多集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,广泛用于小型仪表、计算机外设等领域,使用起来非常方便。本设计采用UCN5804B芯片。UC

9、N5804B芯片适用于四相步进电机的单极性驱动。它最大能输出1.5A电流、3.5V电压。内部集成有驱动电路,上电自行复位,可以控制转向和输出使能。 1421071615111211393468U1UCN5804BR15R6R25R6L1B82412A3220J000L2B82412A3220J000L3B82412A3220J000L4B82412A3220J000D18EWS12SD28EWS12SD38EWS12SD48EWS12S+28v图2-3 步进电机驱动电路图2-3为步进电机驱动电路,其中4、5、12、13脚为接地引脚,1、3、6、8脚为输出引脚,电动机各相的的接线如图,14脚是控

10、制电机的转向,其中低电平为正转,高电平为反转;11脚是步进脉冲的输入端,9、10脚决定工作方式,其真值表如表2-1所示:表2-1 9、10脚真值表工作方式9脚10脚双四拍00八拍01单四拍10 禁止 1 12.4 LED显示电路由于系统显示的内容比较简单,显示量不多,所以显示选用数码管既方便又经济。LED有共阴极和共阳极两种。如图2-4所示。 符号和引脚 共阴极 共阳极图2-4 LED数码管结构原理图二极管的阴极连接在一起,通常此共阴极接地,而共阳极则将二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔画

11、即亮;不加电压即暗。为了保护各段LED不被损坏,需外加限流电阻。数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。本电路的“段控”和“位控”分别由P1口和P3口控制,P3选中哪个数码管,哪个数码管就亮,P1口控制显示数字。因AT89C51单片机I/O口资源有限,必须对其Il0口进行扩展才能满足实现系统功能,如图2-7所示为用8155扩展1/0口的4个8位LED动态显示器,显示扫描由程控实现,其中PA口输出字型码,PC口输出位选信号即扫描信号,图中片选线CE和AT89C51的P2.7口相连,IO/ M选通输入线与P2.4口相连,该系统

12、中当P2.7=0且P2.4 =1时,选中8155芯片内三个I/O口。相应的端口地址分配如表2-1:表2-2 8155端口地址分配A15RSTRSTPA0PA1PA2PA3PA4PA5PA6PA7A8A9A10A11A12A13A14PA0PA1PA2PA3PA4PA5PA6PA7ABCDEFGdpABCDEFGdpABCDEFGdpABCDEFGdpABCDEFGdpD0D1D2D3D2D1D0ABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMA02A14A26A38OE1Y018Y116Y214Y312U1:A74LS240NET=PA2A011A113

13、A215A317OE19Y09Y17Y25Y33U1:B74LS240XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A

14、1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51NET=A11D034D133D232D331D430D529D628D727RD5WR36A09A18RESET35CE6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U38155R15R6R25R6R35R6R45R6R55R6R65R6R75R6R85R612U4:A740734U4:B740756U

15、4:C740798U4:D7407图 2-5 显示电路第3章 系统的软件设计3.1 步进电机的位置控制步进电机的运行控制涉及到位置控制和加、减速控制。步进电机的位置控制,指的是控制步进电机执行机构从一个位置精确地运行到另一个位置。步进电机的位置控制是步进电机的一大特点,它可以不用借助位置传感器而只需要的开环控制就能达到足够的位置精度。步进电机的位置控制需要两个参数。第一个是绝对位置,即步进电机控制的执行机构当前的位置参数,绝对位置是有极限的,其极限是执行机构运动的范围,超越了这个极限就应报警。第二个是从当前位置移动到目标位置的距离,我们可以用折算的方式将这个距离折算成步进电机的步数。这个参数是

16、外界通过键盘或可调电位器旋钮输入的,所以折算的工作应该在键盘程序或A/D转换程序中完成。下面是本程序使用的资源:30H、31H-存放定时器的常熟,低位在前32H34H-存放绝对位置参数,低位在前35H、36H-存放步进数,低位在前中断服务子程序框图如图2-6所示。图2-6 步进电机位置控制子程序框图程序如下:POS: CPL P1.0 ;改变P1.0电平状态 PUSH ACC ;累加器A进栈 PUSH PSW PUSH R0 ;R0进栈 JNB P1.0,POS4 ;P1.0=0时,半个脉冲,转到POS4 CLR EA ;关中断 JNB P1.1,POS1 ;反转,转到POS1 MOV R0,

17、32H ;正转 INC R0 CJNE R0,#00H,POSE ;无进位则转向POS2 INC R0 INC R0 CJNE R0,#00H,POS2 INC R0 INC R0 CJNE R0,#00H,POS2 ;无越界,则转POS2 CLR TR0 ;发生越界,停定时器(停电动机) LCALL BAOJING ;调报警子POS1: MOV R0,#32H ;反转 DEC R0 CJNE R0,#0FFH,POS2 ;无借位则转向POS2 INC R0 DEC R0 CJNE R0,#0FFH,POS2 INC R0 DEC R0 CJNE R0,0FFH,POS2 CLR TR0 LC

18、ALL BAOJINGPOS2: MOV R0,#35H ;指向步数低位35H DEC R0 CJNE R0,#0FFH,POS3IU9 INC R0 DEC R0POS3: SETB EA MOV A,35H ORL C JNZ POS4 CLR TR0 SJMP POS5POS4: CLR C CLR TR0 MOV A,TL0 ADD A,#08H ADD A,30H MOV TL0,A MOV A,TH0 ADDC A,31H MOV TH0,A SETB TR0POS5: POP R0 POP PSW POP ACC RETI3.2 显示子程序硬件电路如图2-4所示,通过8155芯片

19、来扩展I/O口,其端口地址分别是:命令/状态寄存器:7FF8H ,PA口:7FF9H,PB口:7FFAH,PC口:7FFBH。通过P1口控制数字显示,即“段选”,P3口控制“位选”。ORG 0000H ;初始化 START:JMP MAIN ORG 30H MAIN:MOV SP,#5FHB_BIT EQU 34H ;个位显示数据存储器 A_BIT EQU 35H ;十位显示数据存储器 C_BIT EQU 22H ;百位显示数据存储器D_BIT EQU 23H ;十位显示数据存储器E_BIT EQU 34H ;万位显示数据存储器Count EQU r4 ;计数器数据存储器 ACALL INIT

20、_RS232;调用INIT_232子程序 CPL P0.0 ; P0.0亮表示正在设定串口 MOV R5,#25 ACALL DELAY CPL P0.0 ;P0.0暗表示设定完成 MOV P1,#0FFHMOV P2,#0FFH WAIT:acall DIAPY;调用显示程序JNB RI,WAIT;接收电脑发过来的数据 ClR RI ;清RI,继续下次接收 LJMP WAITDIAPY :MOVR1,SBUF把接收到的数据放到A里MOV A,R1 MOV B,#100DIV ABMVO 33H,AMOV A ,BMOV B,#10DIV ABMOV B_BIT,B ;提取百位MOV A_BI

21、T,AMOV DPTR,#TABMOV R0,#5DP11:MOVR1,#250DPLOP:个位显示MOV,A,B_BITMOVC A,A+DPTR ;提取字模 MOV P1,ACLR P2.2 ;开个位ACALL DELAY1;调用扫描子程序 SETB P2.2 ;十位显示 MOV A,A_BITMOVC A,A+DPTR ;提取字模 MOV P1,ACLR P2.3;开十位ACALL DELAY1SET P2.3 ;百位显示MOV A,A_BITMOVC A,A+DPTR;提取字模 MOV P1,Amov p1,aCLR P2.4;开百位ACALL DELAY1SETB P2.4DJNZ

22、R1,DPLOPDJNZ R0,DP11RET INIT_RS232: ;rs232初始化设定 MOV TMOD,#20H ;1200bs MOV TH1,#0E8H SETB TR1 MOV SCON,#01010000B RET DELAY1: MOV R7,#2 D3: MOV R6,#25 D4: DJNZ R6,D4 DJNZ R7,D3 RET delay: MOV R5,#20 D2:MOV R6,#50 D1:MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET TAB: DB 0C0H,0f9H,0a4H,0b0h,99h ;0,1,

23、2,3,4 DB 92H,82H,0f8H,80H,90h ;5,6,7,8,9 DB 88H,83H,46H,0a1H,86h ;a,b,c,d ,e DB 8eh ;F END第四章 结 束 语本次课程设计是在学习单片机课程后的一次实践,通过查阅大量书籍、专业网站、论坛等,通过反复对比,采用技术较为成熟以及仿真效果的电路。在软件设计方面,一部分参考文献的已成程序进行修改编写,一部分则是平时的经验积累。应该说这次课程设计还是基本达到了设计的要求,但是也存在着未能解决的问题,由于在执行语音程序时对资源的消耗比较大,在语音报数的时候会中断步进电机驱动信号的输出,导致电机停转。为此,在参考有关文献之后我将尝试使用两块单片机,通过双机通讯来传递信号。 这次步进电机的综合实验我们学到了步进电机、数码管、4*4键盘、更重要的是学会了程序出问题时调试的方法,并养成了遇到困难主动独立寻找解决方案的信心和技巧。 第5章 参考文献1谢自美,电子线路设计、实验、测试(第二版).华中理工大学出版社,2000. 2薛钧义,张彦斌,樊波等凌阳十六位单片机原理及应用.北京航空航天大学出版社,2003 3王晓明,电动机的单片机控制.北京航空航天大学出版社,2002.54张鑫,单片机原理及应用.电子工业出版社,2005.84EB/01 5EB/02

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

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

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁