基于单片机的步进电机控制器设计(八按键)(DOC)

合集下载

基于单片机的步进电机器控制设计

基于单片机的步进电机器控制设计

摘要本文应用单片机AT89C51和脉冲分配器PMM8713,步进电机驱动器,光电隔离器4N25等,构建了步进电机控制器和驱动器为一体的步进电机控制系统。

通过AT89C51和脉冲分配器PMM8713完成步进电机的各种运行控制方式,实现步进电机在3相6拍的工作方式下的正反转控制和加减速控制。

并通过步进电机丝杠连动,带动XY工作台的直线运动,实现从起点A点到预定点B点的位移控制。

整个系统采用模块化设计,结构简单,可靠,通过人机交互换接口可实现各功能设置,操作简单,易于掌握。

该系统可应用于步进电机在机电一体化控制等大多数场合。

关键词:步进电机单片机控制目录绪论 (1)1、步进电机及其发展 (1)1.1步进电机在我国的发展应用及前景 (2)1.2本文研究内容 (2)2、步进电机的分类、结构、工作原理及特性 (2)2.1步进电机的概念 (2)2.2步进电机的特点 (3)2.3步进电机的结构及工作原理 (3)2.4步进电机的常用术语 (4)3、步进电机的单片机控制 (5)3.1步进电机控制系统组成 (5)3.2步进电机控制系统原理 (6)3.3脉冲分配 (6)3.4步进电机与微型机的接口电路 (8)4、步进电机的运行控制 (9)4.1步进电机的速度控制 (9)4.2步进电机的位置控制 (9)4.3步进电机的加减速控制 (10)5、步进电机的程序设计 (11)5.1程序框图 (11)结论 (13)致谢辞 (13)参考文献 (13)绪论步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

基于单片机的步进电机控制器设计

基于单片机的步进电机控制器设计

基于单片机的步进电机控制器设计步进电机是一种可实现精确控制和定位的电动机,广泛应用于机械和自动化领域。

为了更好地控制步进电机,可以设计一个基于单片机的步进电机控制器。

本文将从步进电机的基本原理、常见控制方式、单片机的选择、电路设计和程序编写等方面进行详细介绍,共计超过1200字。

第一部分:步进电机的基本原理步进电机主要由定子和转子组成,通过电磁原理可以实现精确控制和定位。

步进电机根据工作方式的不同分为全步进电机和半步进电机,全步进电机每次步进一个固定的角度,而半步进电机每次步进一个更小的角度。

第二部分:常见的步进电机控制方式步进电机的控制方式有多种,其中最常见的控制方式是脉冲方向控制和脉冲加减速控制。

脉冲方向控制方式通过给步进电机控制信号的脉冲数和方向来实现电机转动,脉冲加减速控制方式则通过改变脉冲的频率和加减速度来控制电机的转速和位置。

第三部分:单片机的选择在设计步进电机控制器时,需要选择适合的单片机来实现控制逻辑和信号的生成。

常见的单片机有51系列、AVR系列、ARM Cortex-M系列等。

选择单片机时需要考虑其运算速度、存储容量、IO口数量等因素,以满足步进电机控制的要求。

第四部分:电路设计步进电机控制器的电路设计包括电机驱动电路和控制电路。

其中电机驱动电路用于提供适当的电流和电压给步进电机,以实现其运转。

可以选择使用电流驱动器芯片或者使用MOSFET等器件设计电路。

控制电路主要包括单片机和其他外围电路,用于生成控制信号和接收输入信号。

第五部分:程序编写步进电机控制器的程序需要实现控制逻辑和信号的生成。

程序可以使用C语言或者汇编语言进行编写,通过单片机的GPIO口和定时器等模块来生成适当的脉冲信号和控制信号,驱动步进电机实现转动和定位。

综上所述,基于单片机的步进电机控制器设计涉及到步进电机的基本原理、常见的控制方式、单片机的选择、电路设计和程序编写等多个方面。

通过合理的设计和实现,可以实现对步进电机的精确控制和定位,为机械和自动化领域的应用提供便利。

毕业设计论文基于单片机的步进电机控制器

毕业设计论文基于单片机的步进电机控制器

毕业设计论文基于单片机的步进电机控制器摘要:本文研究了基于单片机的步进电机控制器的设计与实现。

首先介绍了步进电机的原理和特点,然后详细介绍了单片机的选型和控制原理。

接着,设计了一个简单的步进电机控制器电路,并使用C语言编写了相应的控制程序。

最后,通过实际性能测试验证了该步进电机控制器的正常工作。

关键词:单片机、步进电机、控制器、C语言1.引言步进电机是一种适用于许多自动化系统的重要组件,广泛应用于打印机、机床、机器人等设备。

然而,传统的步进电机控制方式往往需要复杂的电路和控制器,使得系统设计和维护困难。

基于单片机的步进电机控制器具有结构简单、易于控制和成本低廉的优点,因此受到了广泛的关注。

2.步进电机控制原理步进电机是一种通过控制电流大小和方向来控制转动角度的电机。

它的转动角度是离散的,可以精确控制。

常见的步进电机包括两相、三相和四相步进电机。

在本设计中,选用了四相步进电机。

3.单片机选型与控制原理为了实现步进电机的控制,需要选取适合的单片机作为控制核心。

在本设计中,选择了XXXX单片机。

该单片机具有高性能、低功耗和丰富的外设接口,非常适合步进电机控制的需求。

单片机的控制原理主要分为两步:生成控制信号和输出电流。

控制信号通过单片机的GPIO口产生,用于控制步进电机的旋转方向和步进距离。

电流的输出通过单片机的PWM输出口产生,用于控制步进电机的转速。

4.步进电机控制器电路设计根据以上原理,本设计设计了一个简单的步进电机控制器电路。

电路主要包括单片机、电源模块、步进电机和相关驱动电路。

其中,单片机和电源模块的连接相对简单,主要是通过电源线和数据线进行连接。

步进电机和驱动电路的连接相对复杂,需要根据步进电机和驱动电路的规格参数进行正确的接线和设置。

5.步进电机控制程序设计本设计使用C语言编写了步进电机控制程序。

程序主要包括初始化配置和控制函数两个部分。

初始化配置部分用于设置单片机的工作模式、GPIO口的方向和电流输出配置等。

8个按键控制步进电机与八段LED显示器课程设计

8个按键控制步进电机与八段LED显示器课程设计

第一题:通过8个按键控制八段LED显示器的显示程序程序段:ORG 0000HLJMP MAINORG 1000HMAIN: MOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00H KEYSUB: ACALL A,#03HMOV DPTR,#7F00HMOVX @DPTR,A BEGIN: ACALL DISACALL CLEARACALL CCSCANJNZ INK1AJMP BEGININK1: ACALL DISACALL DL1MSACALL DLMSACALL CLEARACALL CCSCANJNZ INK2AJMP BEGININK2: MOV R2,#0FEHMOV R4,#00H COLUM: MOV DPTR,#07F01HMOV A,R2MOVX @DPTR,AINC DPTRMOVX A,@DPTRJB ACC.2,LONEMOV A,#00HAJMP KCODE LONE: JB ACC.3,NEXTMOV A,#04H KCODE: ADD A,R4 ACALL PUTBUFPUSH ACCKON: ACALL DISACALL CLEARACALL CCSCANJNZ KONPOP ACCNEXT: INC R4MOV A,R2JNB ACC.3KERRRL AMOV R2,AAJMP COLUM KERR: AJMP BEGIN CCSCAN: MOV DPTR,#7F02HMOV A,#00HMOVX @DPTR,AINC DPTRMOVX A,@DPTRCPL AANL A,#0CHRETCLEAR: MOV DPTR,#7F01HMOV A,#00HMOVX @DPTR,ARETDIS: PUSH ACCPUSH 00HPUSH 03HMOV A,#03HMOV DPTR,#7F00HMOVX @DPTR,AMOV R0,#50HMOV R3,#0F7HMOV A,R3AGAIN: MOV DPTR,#7F02HMOVX @DPTR,AMOV A,@R0MOV DPTR,#DDEGMOVC A,@A+DPTRMOV DPTR,#7F01HMOVX @DPTR,AACALL DL1MSINC R0MOV A,R3JNB ACC.0,OUTRR AMOV R3,AAJMP AGAINOUT: POP 03HPOP 00HDDEG: DB 07H,7FH,5EH,39H,77HDB 7CH,6DH,7DHDL1MS: MOV R7,#01HDL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0RETPUTBUF: PUSH 00HMOV 53H,52HMOV 52H,51HMOV 51H,50HMOV 50H,APOP 00HRETEND第二题:通过编程实现对八段LED显示器与步进电机的控制程序段:ORG 0000HLJMP MAINORG 101BHLJMP L3ORG 1000HMAIN:MOV R0,#08H MOV R1,#48HMOV R6,#00HMOV DPTR,#L2MOV P1,#00MOV TMOD,#10HMOV TL1,#0B0HMOV TH1,#0F0HMOV IE,#88HMOV 53H,#5BHMOV 54H,#07HSETB TR1L1:SHMP L1DL1MS: MOV R7,#01H DL0: MOV R5,#0FFH DL1: DJNZ R5,DL1DJNZ R7,DL0RETL2:DB DB 01H,03H,02H,06H DB 04H,0CH,08H,09H DISPLAY:MOV 50H,DPH MOV 51H,DPLPUSH ACCMOV A,#03HMOV DPTR,#7F00HMOVX @DPTR,AMOV DPTR,#7F01HMOV A,53HMOVX @DPTR,AMOV DPTR,#7F02HMOV A,#0FEHMOV @DPTR,AACALL DL1MSMOV DPTR,#7F01HMOV A,54HMOVX @DPTR,AMOV DPTR,#7F02HMOV A,#0FDHMOVX @DPTR,A ACALL DL1MS MOV DPTR,#7F01H MOV A,#3FH MOVX @DPTR,A MOV DPTR,#7F02H MOV A,#0FBH MOVX @DPTR,A ACALL DL1MS MOV DPH,50H MOV DPL,51H POP ACCRETL3:MOV TL1:#0B0H MOV TH1,#0F0H MOV A,#00MOVC A,@A+DPTR MOV P1,AINC DPTRDJNZ R0,L4MOV R0,#08MOV DPTR,#L2L4:INC R6DJNZ R1,L5MOV R2,#01HL7:MOV R4,#0FFH L6:ACALL DISPLAY MOV R3,#0FFH DJNZ R3,$DJNZ R4,L6DJNZ R2,L7CJNE R6,#48H,S1 MOV R6,#00HMOV R1,#30HMOV 53H,#06H MOV 54H,#7FH SJMP L5S1:MOV R1,#48H MOV R6,#00HMOV 53H,#5BH MOV 54H,#07HL5:RETIEND第三题:通过8个按键控制步进电机与八段LED显示器程序段:ORG 0000HLJMP MAINORG 1000H MAIN: MOV 50H,#00H MOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV R5,#53HMOV 60H,#00HMOV 63H,#00HMOV 64H,#00HMOV 66H,#00HMOV 68H,#01HMOV 69H,#00HKEYSUB: ACALL A,#03H MOV DPTR,#7F00H MOVX @DPTR,A BEGIN: ACALL DIS ACALL CLEARACALL CCSCAN POO:MOV R0,66HCJNE R0,#00H,XXXMOV 64H,#00HSJMO SSKXXX:MOV R0,64HCJNE R0,#00H,SSBMOV R0,66HCJNE R0,#01H,ADDING MOV 68H,#00HMOV R0,#67HSJMP SSKSSB:DJNZ 64H,RUN SSK:JNZ INK1AJMP BEGININK1: ACALL DISACALL DL1MSACALL DLMSACALL CLEARACALL CCSCANJNZ INK2AJMP BEGINADDING:MOV 64H,65HDEC 66HSJMO POORUN:PUSH ACCMOV A,60HMOV 61H,DPHMOV 62H,DPLMOV R0,68HCJNE R0,#01H,RUN1MOV DPTR,#L21SJMP RUN2RUN1:MOV DPTR,#L2RUN2:MOVC A,@A+DPTRMOV P1,AINC 60HPOP ACCDJNZ 63H,#08HMOV 60H,#00HMOV DPH,61HMOV DPL,62HL4:SJMP SSKL2:DB DB 01H,03H,02H,06HDB 04H,0CH,08H,09HL21:DB 09H,08H,0CH,04HDB 06H,02H,03H,01HINK2: MOV R2,#0FEHMOV R4,#00H COLUM: MOV DPTR,#07F01HMOV A,R2MOVX @DPTR,AINC DPTRMOVX A,@DPTRJB ACC.2,LONEMOV A,#00HAJMP KCODES1:CJNE R4,#01H,S2MOV A,#04HSJMP KCODES2:CJNE R4,#02H,S3ACALL STARTLJMP KK1S3:ACALL CLEARUPLJMP POOLONE: JB ACC.3,NEXT CJNE R4,#00H,K1MOV A,#00HSJMO KCODEK1:CJNE R4,#01H,K2MOV A,#06HSJMP KCODECLEARUP:MOV 64H,65H MOV 68H,#01HMOV 66H,67HMOV R5,#53HMOV 69H,#00HMOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HRETSTART:MOV R0,69HCJNE R0,69HCJNE R0,#02H,ST2MOV 64H,65HMOV 66H,53HMOV 67H,53HST2:RETKCODE: ACALL PUTBUF KK1: PUSH ACCKON: ACALL DISACALL CLEARACALL CCSCANJNZ KONPOP ACC NEXT: INC R4MOV A,R2JNB ACC.3KERRRL AMOV R2,AAJMP COLUM DB 04FH,066H,06DHDB 07DH,07H,7FH KERR: AJMP BEGIN CCSCAN: MOV DPTR,#7F02HMOV A,#00HMOVX @DPTR,AINC DPTRMOVX A,@DPTRCPL AANL A,#0CHRETCLEAR: MOV DPTR,#7F01HMOV A,#00HMOVX @DPTR,ARETDIS: PUSH ACCPUSH 00HPUSH 03HMOV A,#03HMOV DPTR,#7F00HMOVX @DPTR,AMOV R0,#50HMOV R3,#0F7HMOV A,R3AGAIN: MOV DPTR,#7F02HMOVX @DPTR,AMOV A,@R0MOV DPTR,#DDEGMOVC A,@A+DPTRMOV DPTR,#7F01HMOVX @DPTR,AACALL DL1MSINC R0MOV A,R3JNB ACC.0,OUTRR AMOV R3,AAJMP AGAINOUT: POP 03HPOP 00HPOP ACCRETDDEG:DB 03FH,06H,05BHDB 6FH,77H,7CHDB 39H,5EH,79HDB 71H,00HDL1MS: MOV R7,#01HDL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0RETDDEG: DB 07H,7FH,5EH,39H,77HDB 7CH,6DH,7DHDL1MS: MOV R7,#01HDL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0RETPUTBUF: PUSH 00HMOV R0,ACJNE R0,#07H,PPSMOV R0,69HCJNE R0,#01H,PPLMOV 69H,#02HSJMP GOBACKPPL:MOV 69H,#01HSJMP GOBACKPPS:MOV R0,69HCJNE R0,#01H,GOBACKPUSH ACCMOV A,R5MOV R0,APOP ACCMOV @R0,ADEC R5MOV A,52HMOV B,#0AHMUL ABMOV B,#03HDIV ABMOV B,#08HMUL ABMOV 65H,AMOV A,51HMOV B,#03H DIX ABMOV B,#08HMUL ABADD A,65HMOV 65H,ACJNE R5,#04FH,GOBACK MOV R5,#53H GOBACK:POP 00H RETEND课程设计心得体会通过这次课程设计我收获很大,不仅增加和巩固了我的知识,还提高了我们的动手能力。

基于单片机的步进电机的控制器设计

基于单片机的步进电机的控制器设计

题目:基于单片机的步进电机的控制器设计摘要步进电机控制方式的实现有多种,可以采用电子电路控制,PLC控制和单片机控制。

但是电子电路控制步进电机灵活度不高,PLC控制不能在高频率下进行,控制精度小。

而随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测的更新,用单片机控制步进电机显得更加灵活和方便。

本设计是用AT89C52单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C语言编程设计来进行步进电机的控制。

通过人手动按开关实现步进电机的启动与停止。

此外此系统还添加了步进电机的正转反转,加速及减速,屏幕显示功能。

同时本文也通过了proteus软件的仿真,在仿真结果中能看出近似真实的效果。

整个系统采用模块化设计,结构简单可靠,通过按键控制操作方便节省成本。

关键词:步进电机单片机控制 AT89C52 proteus仿真Title The design of the control system of Step—motorAbstractThe step motor control has a lot of kinds.such as Electronic circuit control, PLC control and microprocessor controlled .But the flexibility of the electronic circuit to control stepper motor, PLC control at high frequencies, a small control accuracy. With the rapid development of science and technology, the application of SCM is constantly in-depth, at the same time led the update of the traditional control tests with SCM stepper motor control is more flexible and convenient.This paper describes a core component of the AT89C52, as the signal generated by logic control and microcontroller technology and assembly language programming designed stepper motor control system, Start and stop of the stepping motor to handle the switch manually by people. In addition, this system also adds a stepper motor forward reverse, acceleration and deceleration, the screen display. Meanwhile, through software simulation in proteus, too can be seen that the approximation of the true effect of the simulation results.Keywords stepper motor microcontroller AT89C52 proteus simulation目次摘要 (II)Abstract (III)1 绪论 (1)1.1 课题研究的目的和意义 (1)1.2 国内外研究现状 (1)1.3 课题主要研究内容和要求 (2)2 步进电机常见的控制方案论证 (3)2.1 基于电子电路的控制 (3)2.2 基于PLC的控制 (3)2.3 基于单片机的控制 (4)3 系统硬件设计 (5)3.1 控制电路 (5)3.2 最小系统 (6)3.3 驱动电路 (7)3.4 显示电路 (10)3.5 总体电路图 (12)4 系统软件设计 (13)4.1 软件设计分析 (13)4.2 主程序设计 (13)5 仿真与调试 (16)5.1 仿真调试的操作步骤 (16)5.2 仿真结果 (16)总结 (20)致谢 (21)主要参考文献 (22)附录 (24)1 绪论1.1 课题研究的目的和意义电机是工业发展不可缺少的一大要素,在工业生产中有着重要的作用。

单片机控制步进电机课程设计

单片机控制步进电机课程设计

第一章系统分析概述步进电机是用电脉冲信号控制,以实现对生产过程或设备的数字控制,它是过程控制中一种十分重要和常用的功率执行器件,它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器或角位移发生器等,近年来由于计算机应用技术的迅速发展,步进电机常常和计算机一起组成高精度的数字控制系统。

由于它是由数字脉冲控制,因此非常适合于用单片机控制,本设计便是在此基础上,以MCS51型单片机为核心,并结合外围电路以步进电机为控制对象的控制系统。

1.1 功能简介本设计系统有单片机最小系统、8个按键输入控制、四个数码管显示和步进电机驱动电路一共四大部分组成,通过按键输入数值来控制步进电机转速,并且在数码管上显示数值(1)8个按键包括:数字键1~5;3个功能键:设置SET、清零CLR、开始START;(2)显示器上第一位显示次数,后三位显示每次行走的角度;(3)通过键盘的按键,设置步进电机各次的角度值;第一位设置次数,后三位设置角度值。

(4)按START键启动步进电机开始转动,按SET键停止;按CLR键清零。

1.2 方案选择1.2.1 步进电机驱动电路方案本设计的重点在于对步进电机的控制和驱动,设计中受控电机为四相六线制的步进电机(内阻33欧,步进1.8度,额定电压12V)方案一:使用多个功率放大器件驱动电机通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率,如图1-1,使用三极管组成的步进电机驱动电路。

但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。

注:A、B、C、D分别为步进电机四相输入图1-1 三极管组成的步进电机驱动电路方案二:使用ULN2003芯片驱动电机ULN2003芯片可以驱动两个二相电机,也可以驱动一个四相电机,如图1-2。

ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。

毕业设计论文基于单片机的步进电机控制器的设计

毕业设计论文基于单片机的步进电机控制器的设计

毕业设计论文基于单片机的步进电机控制器的设计摘要:本论文针对步进电机控制系统的需求,提出了一种基于单片机的步进电机控制器的设计方案。

该方案在硬件设计上选用了适用于步进电机驱动的控制芯片,并通过电路连接实现电机控制信号的输出。

在软件设计上,通过单片机编程实现步进电机的运动控制,包括步进角度、转速以及方向等参数的调节和控制。

通过测试实验证明,该设计方案能够有效地实现步进电机的精确控制,具有较好的稳定性和可靠性。

关键词:单片机;步进电机;控制器;硬件设计;软件设计;运动控制第一章引言1.1研究背景目前,步进电机作为一种常用的电机类型,在自动控制领域和精密仪器中得到了广泛应用。

步进电机具有结构简单、运行平稳、精度高等优点,因此在许多行业中被广泛采用。

为了实现步进电机的精确控制,需要一种高效、稳定的步进电机控制器。

1.2研究目的本论文的主要目的是设计一种基于单片机的步进电机控制器,通过硬件和软件的完美结合,实现对步进电机的精确控制。

同时,通过测试和分析,验证该控制器的有效性和可靠性。

第二章方案设计2.1硬件设计在硬件设计方面,本文选用了适用于步进电机驱动的控制芯片,并通过电路连接实现电机控制信号的输出。

通过调节电源、电阻和电容等元件,实现对步进电机驱动电压和电流的调节,以满足步进电机运行的需求。

2.2软件设计在软件设计方面,本文采用单片机进行编程,实现对步进电机的运动控制。

通过编写程序,实现对步进角度、转速以及方向等参数的调节和控制。

通过采集和处理步进电机的反馈信号,实现闭环控制,提高步进电机的运动精度和稳定性。

第三章实验与结果通过搭建实验系统,并进行测试和分析,验证了本文设计的基于单片机的步进电机控制器的有效性和可靠性。

实验结果表明,该控制器能够实现步进电机的精确控制,具有较好的稳定性和可靠性。

第四章论文总结本论文设计了一种基于单片机的步进电机控制器,并通过实验验证了该控制器的有效性和可靠性。

该控制器在硬件设计上选用适用于步进电机的控制芯片,并通过电路连接实现电机控制信号的输出。

单片机控制步进电机_四相八拍

单片机控制步进电机_四相八拍

#include <reg51.h> //51芯片管脚定义头文件#include <intrins.h> //内部包含延时函数_nop_();#define uchar unsigned char#define uint unsigned intuchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正转编码uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反转编码sbit K1 = P3^2; //正转sbit K2 = P3^3; //反转sbit K3 = P3^4; //停止sbit BEEP = P3^6; //蜂鸣器/********************************************************//*/* 延时t毫秒/* 11.0592MHz时钟,延时约1ms/*/********************************************************/void delay(uint t){uint k;while(t--){for(k=0; k<125; k++){ }}}/**********************************************************/void delayB(uchar x) //x*0.14MS{uchar i;while(x--){for (i=0; i<13; i++){ }}}/**********************************************************/ void beep(){uchar i;for (i=0;i<100;i++){delayB(4);BEEP=!BEEP; //BEEP取反}BEEP=1; //关闭蜂鸣器}/********************************************************/ /*/*步进电机正转/*/********************************************************/ void motor_ffw(){uchar i;uint j;for (j=0; j<8; j++) //转1*n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = FFW[i]; //取数据delay(2); //调节转速}}}/********************************************************/ /*/*步进电机反转/*/********************************************************/void motor_rev(){uchar i;uint j;for (j=0; j<8; j++) //转1×n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = REV[i]; //取数据delay(2); //调节转速}}}/********************************************************** 主程序**********************************************************/main(){uchar r,N=64; //N 步进电机运转圈数while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ffw(); //电机正转if(K3==0){beep();break;} //退出此循环程序}}else if(K2==0){beep();for(r=0;r<N;r++){motor_rev(); //电机反转if(K3==0){beep();break;} //退出此循环程序}}elseP1 = 0xf0;}}/********************************************************/。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的步进电机控制器设计姓名xx班级:自动化xxxx学号:xxxx摘要:本设计是用80C51单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C语言编程设计来进行步进电机的控制。

通过人手动按开关实现步进电机的启动与停止、步进电机的正转反转,加速及减速等功能,此外还有LCD数码管进行实时显示功能。

同时本文也通过了proteus软件的仿真,在仿真结果中能看出近似真实的效果。

整个系统采用模块化设计,结构简单可靠,通过按键控制操作方便节省成。

关键词:步进电机单片机 peoteus仿真1绪论1.1课题研究的目的和意义电机是工业发展不可缺少的一大要素,在工业生产中有着重要的作用。

随着科技的发展,电机在控制领域的适用范围越来越广。

步进电机是一种开环控制的电机,它不需要反馈电路。

它是纯粹的数字控制电动机,它将电脉冲信号变成角位移,当给它一个电脉冲时,它就转动一个步进脚。

步进电机的运转具有很好的精准性,它按照固定的角度旋转,我们可以通过控制电脉冲频率来控制电机的转速。

近30年来,电子计算机永磁材料的快速发展,推动了步进电机的发展,因此步进电机的应用有着广阔的前景。

步进电机有以下特点:(1)步进电机的角位移与输入脉冲成正比,没有累计误差。

(2)步进电机与驱动电路组成的系统,简单而又廉价。

(3)易于控制,能快速启动和停止,方便控制方向和转速。

(4)步进电机不能直接使用交流直流电源。

由于步进电机能够精准定位和方便调速,它被广泛应用在各种自动化控制系统中。

随着微电子和计算机技术的发展,使步进电机的控制发生了很大的变革。

步进电机的明显优势被广泛应用在电子计算机的许多外围设备中,如传真机、软盘驱动器等,同时步进电机也在军用仪器、通信和雷达设备、摄影系统、光电组合装置中,甚至在航天工业的系统也有其发挥的作用。

因此对步进电机的研究深为重要。

1.2国内外研究现状步进电机在我国很早的时候就已经得到使用,早在文革时期,中国的江浙、四川、南京等地都有一定规模的生产和应用。

当时步进电机驱动电路的所有半导体器件,例如逻辑运算电路、电容耦合计数器、触发器等国内都可以完全自主生产。

步进电机在国外的应用主要是低功率场合,例如工业设备、打印机、传真机、软盘驱动器、医疗设备。

由于现代科技的迅速发展,在国外步进电机在驱动方面的应用逐渐被代替。

目前日本是步进电机最大的生产国,如日本伺服公司、东方公司、SANYO DENKI和NPM公司等。

世界上步进电机生产最好的公司是日本东方公司,性能、质量、生产方法都是一流的。

每年日本的步进电机销量达3亿台。

国内七十年代后期,步进电机广泛应用于卫星和雷达场合。

当时已经生产出来圆形力矩电机,但是在一些高质量控制应用中,我们还不能使用步进电机。

到了八十年代国内已经掌握了步进电机的细分控制。

经过多年的发展,步进电机功能更加强大,种类也很繁多。

步进电机以它显著的优点在工业生产和自动化控制中占据着不可动摇的地位。

伴随着科技的发展,步进电机将在更多的领域内应用。

1.3 课题主要研究内容和要求本设计采用单片机80C51作为整个步进电机控制系统的运动控制核心部件。

所选的步进电机是四相五线的,由于步进电机需要高功率驱动,单片机不能与步进电机直接相连,因此我们需要采用了电机驱动芯片ULN2003连接步进电机和单片机。

此外我用一个四位数码管显示电机转速,再加上一些独立按键来实现步进电机调速、改变转向的功能,并在数码管上显示出来。

这样就构成了一个基本的步进电机控制系统。

系统的具体功能和要求如下:1.电机转速可以平稳控制;2.通过键盘和显示器可以设置电机的转速;3.能显示电机的运动趋势;2 步进电机的控制方案—基于单片机的控制单片机控制步进电机实现了软件和硬件相结合的控制方式。

该系统采用了单片机直接控制步进电机的各相驱动线路。

由于单片机的可扩展性强,我们还可以开发一些其他功能,例如独立按键控制转速、转向,再加入数码管显示电机转动速度。

单片机对电机的控制有以下好处:(1)使电路更加简单,采用电子电路为了实现控制逻辑需要很多电子元件,而单片机绝大多数的控制电路都可以通过软件实现。

(2)可以实现较复杂的控制,单片机有更强的逻辑功能,运算速度快,精度高,有大量的存储单元。

(3)灵活性和适应性,用单片机只需要改变程序就可以达到控制的要求。

(4)无零点漂移,控制精度高。

(5)可提供人际交换,多级联网工作。

根据设计要求,采用的方案如下:硬件部分实现电机转动和速度显示功能,包括控制开关模块;电机转动模块和速度显示模块。

软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动,由电机反馈回来的数据经单片机控制显示器显示数据。

3系统硬件设计本设计的硬件电路包括独立按键控制模块、步进电机驱动模块、数码管显示模块和单片机最小系统四部分。

单片机最小系统由时钟电路和复位电路组成,保证单片机正常运行;独立按键控制模块由开关和按键组成,当按下按键时,该系统就按照该按键控制的功能运作;显示模块主要是为了显示电机的工作状态和转速;驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

3.1控制电路根据系统的要求,按键输入部分设置了顺时针控制、逆时针控制、加速控制、减速控制和停止、电机三种启动方式选择按键。

控制电路如图所示,当按下按键,内部程序检测P3.0~P3.7的状态变化调用相应的启动和转向程序,从而实现系统的电机的启动和正反转控制。

根据步进电机的工作原来可以知道,步进电机的转速主要通过控制通入电机的脉冲频率,从而控制电机的转速。

对单片机而言,主要的方法有:软件延时和定时中断,在此电路中电机的转速控制主要是通过软件延时控制,本设计是根据操作者设定的转速大小依据一定的公式计算得到变量maichong的大小,通过延时程序改变电机转动一个步进角的时间,从而改变电机转动的快慢。

3.2最小系统单片机的最小系统一般由时钟电路和复位电路构成。

通过时钟电路提供单片机各种操作基准,通过复位电路使单片机片内存储器初始化。

时钟电路是在引脚XT AL1和XT AL2外接一个12M的晶振,同时在晶振的两脚分别接22pf的电容。

晶振的作用是产生震荡时钟脉冲。

电容起稳定震荡频率,快速起震的作用。

复位电路使由独立按键,200Ω电阻和一个10Uf的电容构成。

复位电路使单片机从一种确定的状态开始运行。

3.3驱动电路本次设计用ULN2003来驱动步进电机,电路图如图。

通过单片机的P1.0~P1.3输出脉冲到ULN2003的1B~4B口,经信号放大后从1C~4C出口分别输出到电机的ABCD四相。

ULN2003是一种大功率驱动芯片,多用于智能仪器、PLC、步进电机控制。

由于控制步进电机需要高功率,而单片机不能直接提供给步进电机。

因此我们用ULN2003来放大信号。

ULN2003输入只需要5V的电平,但是输出可以高达50V,因此它具有工作电压高,电路增益高,可以提供大功率负载的特点,适应于各种功率驱动电路。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度。

当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-),八拍(A-AB-B-BC-C-CD-D-DA-A),通过P3.3~P3.5可以选择电机控制方式。

3.4 显示电路为了能看出步进电机的转速,我们用数码管显示电机的转速,主要是利用了单片机的P0口接一个四位的共阳极数码管。

数码管a、b、c、d、e、f、g、DP分别接P0.0~P0.7口.数码管的公共脚1~4分别接P2.0~P2.3。

3.5总体电路图4系统软件设计4.1软件设计分析本次采用的步进电机是五相四线的,根据所查该电机的工作参数我们可以看出它的工作电压时+5V,因此我们可以直接把他正极与单片机正极相连,供5v的电压。

由总体的电路图我们可以看出步进电机的四个接口与ULN2003相接。

ULN2003与单片机P1口相连。

单片机P0口接一个四位共阳极数码管。

通过上述的分析我们发现要实现系统的功能,我们要设计一下几个模块程序:主程序,延时程序,按键子程序,数码管显示程序。

当通电后,单片机首先检测控制方式选择按键,然后检测正反转键是否按下,并在数码管上有所显示,并以设定的速度运行着电动机,然后检测加减速按键是否也按下,数码管实时跟随显示速度。

按下停止键电机立马停止转动。

4.2主程序设计当我们给系统供入5V电压时,由复位电路给系统进行初始化。

然后便开始执行按键查询等待相应的操作,当有按键按下的时,程序便调用并执行相应的子程序,下图为主流程图:按键子程序:1、延时子程序:在本延时子程序当中每调用一次延时子程序延时时间是1毫秒。

2、按键响应子函数:在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低。

所以在编程的时候判断按键按下是低电平有效。

如下图为电机增速和减速的子程序框图。

5仿真与调试5.1 仿真调试的操作步骤本次采用的仿真软件是proteus,采用的编程工具是keil。

具体操作如下:1)在Protues中画出系统电路图2)编写程序并在keil中编译并生成hex文件。

3)把在keil中编译生成的HEX文件载入AT89C52芯片中;4)运行仿真。

5.2 仿真结果仿真结果如下图所示:当点下proteus的play键时候,此时数码管显示速度为零,电机不转。

当按下启动按键时,接着进入控制方式选择阶段,选择完成后,接着判断正反转控制按键,如图显示为反转,初始速度设置为10,第一位的1表示电机反转,若电机正转则显示为0.接下来如果再控制加减按键,可以实现对电机速度的调节,并在数码管有个直观的转速显示。

本程序设计对速度有所限制,最大为20,最小为0,当减速到0时电机停止转动并复位,结果如图所示。

总结经过学习和努力,本次设计终于完成了,从当中我学到了很多东西。

1、我进一步了解了单片机的工作原理,掌握了步进电机控制系统的组成原理。

通过本次的设计和调试,我补充和巩固了自己已学的电子理论知识,同时也提高了动手和排除故障能力。

2、我了解了步进电机的发展,工作原理和控制方式。

步进电机应用于生活和工业中的各个方向,使我对步进电机的兴趣越来越大。

3、本次课程设计我查阅大量书籍、专业网站、论坛等,通过反复对比,采用了功能相对强大,设计相对简单的设计方法。

通过与其他人设计的对比,我学到了很多东西,找到了自己设计方案的优缺点。

应该说本次设计还是基本达到了设计的要求,通过独立按键我们可以很方便的控制电机的正反转加速和减速。

相关文档
最新文档