1、步进电机控制电路设计步进电机控制电路设计一、 功能要求:1、 按k1键步进电机慢速正转三圈,反转三圈,循环三次,红灯指示(洗衣)。2、 按k2键步进电机中速正转三圈,反转三圈,循环三次,绿灯指示,停止(脱水)。3、 按k3键步进电机快速正转10秒钟(甩干)。二、 器件及工具的选择:硬件:P89C51芯片一个、驱动ULN2003A一个、双相步进电机一个,开关四个,红色和绿色发光二极管各一个,电阻若干、电容三个、导线若干,电烙铁一个,稳压电源一个,万用表一个、钳子和镊子各1个。软件:keil,protel,proteus。三、 设计思路:1.硬件 电路图的设计需在完成功能的前提下做到尽可能的简单合
2、理。功能要用三个按键实现三种工作状态的控制。主要是使单片机的最小系统与步进电机的驱动电路以及键盘和发光二极管的连接能与所编程序相匹配。电路图设计好之后用proteus进行仿真,将编好的程序加载到仿真电路中的单片机内,接着通过按键以及发光二极管的显示看是否能实现各个功能。2.软件软件方面主要通过三个子程序对所要求的三种状态进行控制。三种状态分别为:子程序一对应按键一,实现步进电机慢速正转三圈,反转三圈,循环三次,红灯指示(洗衣)。子程序二对应按键二,实现步进电机中速正转三圈,反转三圈,循环三次,绿灯指示,停止(脱水)。子程序三实现步进电机快速正转10秒钟(甩干)。四、 原理简介: 1、 步进电机
3、及其工作原理步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。本设计所采用的双相步进电机,它使用+5V直流电源,步距角为7.5度。电机线圈由双相组成,即A、B、C、D,驱动方式为一相激磁方式,电机示意图和各线圈通电顺序如图1和表1所示。 相顺序从0到1称为一步,电机轴将转过7.5度,01234则称为通电一周,转轴将转过30度,若循环进行这种通电一周的操作,电机便连续的转动起来
4、,而进行相反的通电顺序如4321将使电机同速反转。通电一周的周期越短,即驱动频率越高,则电机转速越快,但步进电机的转速也不能太快,因为它每走一步需要一定的时间,若信号频率过高,可能导致电机失步,甚至只在原步颤动。相顺序ABCD01000101002001030001图1步进电机原理图 表12、关于P89C51(1)简介P89C51单片机:P89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压高性能CMOS 8位微处理器。(2)P89C51芯片外部结构图:各个引脚功能:电源及时
5、钟引脚(4个)Vcc :电源接入引脚。Vss :接地引脚。XTAL1 : 晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地)。XTAL2 :晶体振荡器接入的另一个引脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端)。控制线引脚(4个)RST : 复位信号输入引脚。当晶振在运行中只要复位管脚出现2个机器周期高电平,即可复位内部。有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。/Vpp : 内部存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚。并行I/O口引脚(32个,分成4个8位口)P0.0P0.7 :一般I/O口引脚或数据/低位地址总线复用引脚
6、。P1.0P1.7 :一般I/O口引脚。P2.0P2.7 :一般I/O口引脚或高位地址总线引脚。P3.0P3.7 :一般I/O口引脚或第二功能引脚。3、关于驱动ULN2003A 概述与特点:ULN2003A是高耐压、大电流达林顿陈列,由七个硅 NPN 达林顿管组成。该芯片的特点如下:(1)ULN2003A 的每一对达林顿都串联一个 2.7K 的基极电阻,在 5V 的工作电压下它能与 TTL 和 CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。(2)ULN2003A 工作电压高,工作电流大,灌电流可达 500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电
7、流并行运行。(3)ULN2003A 采用 DIP16 或 SOP16 塑料封装。ULN2003外部结构图: ULN2003内部结构图: 五、 实验步骤:六、 总设计图: 七、 实验程序: ORG 0000H LJMP MAIN ORG 0100H;=按键选择=P0 按键=P1电机=P2 指示灯=MAIN:MOV P0,#0FFH ;P0作为输入时,其口锁存器必须保持为1 MOV A,P0 ;取P0口的值,即读键盘状态 MOV P2,#0FFH ;P2置1 JNB ACC.0,K1 ;1号键按下,转K1 JNB ACC.1,K2 ;2号键按下,转K2 JNB ACC.2,K3 ;3号键按下,转K
8、3 LJMP MAINK1:MOV R5,#03H ;循环三次 LJMP PK1 ;转1号键处理程序K2:MOV R5,#03H ;循环三次 LJMP PK2 ;转2号键处理程序K3:LJMP PK3 ;转3号键处理程序;=1号键处理程序=慢速=PK1: MOV P2,#0FEH ;点亮红灯MS: MOV R3,#144 ; 正转三圈共144 脉冲ZZ: MOV R0,#00H ;补偿值为0,指针指向正转表ZZ1: MOV P1,#00H MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR ;查表 JZ ZZ ; 对 A 的判断,当 A = 0 时则转到 ZZ MOV
9、 P1,A LCALL DELAY ;步进电机慢速 INC R0 DJNZ R3,ZZ1 MOV P1,#00H LCALL DE08S;-反转- MOV R3,#144 ; 反转三圈共 144个脉冲 FZ: MOV P1,#00H MOV R0,#05 ;补偿值为5,指针指向反转表FZ1: MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR ;查表 JZ FZ ;对 A 的判断,当 A = 0 时则转到 FZ MOV P1,A LCALL DELAY ;步进电机慢速 INC R0 DJNZ R3,FZ1 MOV P1,#00H LCALL DE08S DJNZ R5
10、,MS ;转慢速程序 LJMP MAIN ;转主程序;=2号键处理程序=中速=PK2: MOV P2,#0FDH ;点亮绿灯ZS: MOV R3,#144 ; 正转三圈共 144脉冲ZZ2: MOV R0,#00H ;补偿值为0,指针指向正转表ZZ3: MOV P1,#00H MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR JZ ZZ2 ; 对 A 的判断,当 A = 0 时则转到 ZZ2 MOV P1,A LCALL DELAY1 ;步进电机中速 INC R0 DJNZ R3,ZZ3 MOV P1,#00H LCALL DE08S;-反转- MOV R3,#14
11、4 ; 反转三圈共 144个脉冲 FZ2: MOV P1,#00H MOV R0,#05 ;补偿值为5,指针指向反转表FZ3: MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR JZ FZ2 ; 对 A 的判断,当 A = 0 时则转到 ZZ2 MOV P1,A LCALL DELAY1 ;步进电机中速 INC R0 DJNZ R3,FZ3 MOV P1,#00H LCALL DE08S DJNZ R5,ZS ;转中速程序 LJMP MAIN ;转主程序;=3号键处理程序=快速=PK3:MOV R3,#196 ; 正转 196 脉冲KS:MOV R0,#00H ;补
12、偿值为0,指针指向正转表KS1:MOV P1,#00H MOV A,R0 MOV DPTR,#TABLE MOVC A,A+DPTR JZ KS ; 对 A 的判断,当 A = 0 时则转到 KS MOV P1,A LCALL DELAY2 ;步进电机快速 INC R0 DJNZ R3,KS1 LJMP MAIN ;转主程序;-延时-转速-表-DELAY2: MOV R7,#100 ;步进电机的转速(快) JMP M3DELAY1: MOV R7,#170 ;步进电机的转速(中) JMP M3DELAY: MOV R7,#250 ;步进电机的转速(慢)M3: MOV R6,#255 DJNZ
13、R6,$ DJNZ R7,M3 RETDE01S: MOV R4,#01 JMP DE1DE08S: MOV R4,#08 ;0.8S 延时子程序DE1: MOV R3,#200DE2: MOV R2,#126DE3: DJNZ R2,DE3 DJNZ R3,DE2 DJNZ R4,DE1 RETTABLE:DB 04H,08H,01H,02H,00H ; 正转表DB 04H,02H,01H,08H,00H ; 反转表END八、 心得体会本次课程设计,使我们学习单片机原理课程后的一次应用。电路设计方面,要合理规划单片机的引脚,确定好那些拐角做输入那些做输出。单片机的最小系统上在程序设计的过程中主要的问题也是程序的编写方面,步进电机的转速,角度,时间都需要脉冲数量的编辑,在汇编语言里计算的脉冲数在实际中存在误差,需要结合实际自习修改程序。