基于51单片机的步进电机设计.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
系统整图 系统整图如图3- 1所示,本系统采用外部中断方式,p0口作为信号的输入部分,p1口为发光二极管显 示部分,p2口作为电机的驱动部分。 电源部分 利用LM7812和LM7805芯片得到12V和5V的电压,它们的应用要注意以下几点:(1)输 入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;(2)输出电流不 能太大,1.5A 是其极限值。大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿; (3)输入输出压差也不能太小,大小效率很差。 其中12V电压给步进电机供电,5V电压则给单片机供电。分别如图3-2、图3-3所示。 (1)、产生12V的电压给步进电机供电 (2)产生5V的电压给单片机供电 按键部分 本次设计选用的是单片机的P0口来控制信号的输入,所以把按键开关和P0口连接起来 ,当按下开关S1时,相当于给P0.0口一个低电平;当按下开关S2时,相当于给P0.1口一 个低电平;当按下开关S3时,相当于给P0.2口一个低电平;当按下开关S4时,相当于给 P0.3口一个低电平;当按下开关S5时,相当于给P0.4口一个低电平。然后通过单片机实 行相应的操作。如图3-4。 驱动部分 此电路是步进电机的驱动部分,我选用的是ULN2004芯片来驱动的,ULN2004系列是一 款高耐压,大电流达林顿管驱动器,包含7个NPN达林顿管。如图3-5。 状态指示部分 状态指示用P1口控制发光二极管的显示,如果相应端口是低电平,相应的发光二极管 就会亮,用它来表示步进电机所处的状态。如图3-6。 实物图: 源程序清单 QIAN EQU 40H HOU EQU 41H JIA EQU 42H JIAN EQU 43H TING EQU 44H ORG 000H LJMP MAIN ORG 003H LJMP DUAN /// 外部中断0 ORG 0030H MAIN: ///初始化 MOV R0,#0FH MOV 10H,#01H MOV 11H,#03H MOV 12H,#02H MOV 13H,#06H MOV 14H,#04H MOV 15H,#0CH MOV 16H,#08H MOV 17H,#09H MOV 20H,#50 MOV 21H,#40 MOV 22H,#30 MOV 23H,#20 MOV 24H,#10 MOV 25H,#5 MOV R1,#20H MOV IE,#10000001B CLR QIAN CLR HOU CLR JIA CLR JIAN CLR TING MOV A,@R1 MOV R2,A SETB IT0 ////边沿触发形式 LOOP1:JNB QIAN ,LOOP2 ACALL FRONT1 LOOP2:JNB HOU,LOOP1 ACALL BACK1 DUAN: MOV A,P0 CPL A ANL A,#1FH ///去高三位,使按下去的一位为1 CJNE A,#00H,CHA AJMP DUAN CHA: ACALL DELAY10MS MOV A,P0 CPL A ANL A,#1FH JZ DUAN ///为零转移 ACALL ZHAO RETI ZHAO:MOV A,P0 //查找是哪一位,下面置1 JNB ACC.0,FRONT JNB ACC.1,BACK JNB ACC.2,FAST JNB ACC.3,SLOW JNB ACC.4,STOP FRONT:SETB QIAN RET BACK: SETB HOU RET FAST: SETB JIA RET SLOW: SETB JIAN RET STOP: SETB TING RET FRONT1:CLR QIAN CLR HOU CLR JIA CLR JIAN CLR TING INC R0 ///前进子程序 R0用于给P2口送不同的值 MOV P2,@R0 MOV A,@R1 MOV R2,A /// R2用于延时不同的时间 ACALL DELAY CJNE R0,#17H,XIA MOV R0,#10H XIA: JB QIAN,HUI //回主程序////////XIA子程序用于过度 JB HOU, HUI JB TING,HUI JNB JIA,XIA1 ACALL JIA1 XIA1: JNB JIAN,XIA2 ///XIA子程序用于过度 ACALL JIAN1 JB TING ,HUI XIA2: AJMP FRONT1 HUI : RET //返回主程序 JIA1: CJNE R1,#25H,XIA3 /// 加速 RET XIA3: INC R1 RET BACK1: CLR QIAN //后退 CLR HOU CLR JIA CLR JIAN CLR TING CJNE R0,#0 本文档详细介绍了基于51单片机的步进电机控制系统的设计。系统主要由以下几个部分组成:电源、按键、驱动和状态指示。 电源部分采用了LM7812和LM7805稳压芯片来产生12V和5V的稳定电压。12V电压供给步进电机工作,而5V电压供给单片机运行。在使用这些芯片时需注意,输入输出压差不宜过大,以免导致转换效率降低和设备损坏;输出电流不应超过1.5A,大电流工作时要确保良好的散热。 按键部分设计中,使用了P0口作为信号输入,通过连接按键开关S1-S5,使得单片机可以根据不同按键输入执行相应操作。例如,按下S1时,P0.0口接收低电平信号,以此类推。 接着,驱动部分采用了ULN2004芯片来驱动步进电机。ULN2004是一款高耐压、大电流的达林顿管驱动器,能提供足够的驱动能力给步进电机。该芯片包含7个NPN型达林顿管,适合驱动电机的四相。 状态指示则通过P1口控制发光二极管显示步进电机的状态。当特定的P1口处于低电平时,对应的发光二极管亮起,直观反映电机当前的工作模式。 程序设计部分,主要使用了51单片机,程序代码中可以看到对中断、定时器和I/O口的操作。例如,外部中断0(INT0)被设置为边沿触发,通过P0口的信号改变来响应按键操作。程序中定义了一些寄存器变量,如QIAN、HOU、JIA、JIAN和TING,用于控制电机的前进、后退、加速、减速和停止状态。通过R0和R1寄存器控制P2口的输出和延时,实现步进电机的精确控制。 这个基于51单片机的步进电机控制系统充分利用了单片机的资源,实现了灵活的控制逻辑,能够根据用户输入调整电机的运动状态,并通过LED状态显示反馈实时信息。这种设计适用于许多需要精确位置控制的自动化应用中。
- 粉丝: 192
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助