51单片机驱动步进电机的电路及程序设计

发布者:InnovateMind最新更新时间:2016-11-16 来源: eefocus关键字:51单片机  驱动步进电机 手机看文章 扫描二维码
随时随地手机看文章

在这里介绍一下用51单片机驱动步进电机的方法。 
这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!! 
 

51单片机驱动步进电机的电路及程序设计 - 华夏人 - 江楼风芳

该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。 
采用51驱动ULN2003的方法进行驱动。 
 51单片机驱动步进电机的电路及程序设计 - 华夏人 - 江楼风芳
ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。 
 

;*********************************************************************************
;****************************步进电机的驱动***************************************
; DESIGN BY BENLADN911    FOSC = 12MHz    2005.05.19
;---------------------------------------------------------------------------------
; 步进电机的驱动信号必须为 脉冲信号!!! 转动的速度和脉冲的频率成正比!!!
; 本步进电机步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!!
;---------------------------------------------------------------------------------

; A组线圈对应 P2.4
; B组线圈对应 P2.5
; C组线圈对应 P2.6
; D组线圈对应 P2.7
; 正转次序: AB组--BC组--CD组--DA组 (即一个脉冲,正转 7.5 度)
;----------------------------------------------------------------------------------
;----------------------------正转--------------------------
ORG 0000H
LJMP MAIN

ORG 0100H
MAIN:

MOV R3,#144   正转 3 圈共 144 脉冲

START:
MOV R0,#00H

START1:
MOV P2,#00H
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START   对 A 的判断,当 A = 0 时则转到 START

MOV P2,A
LCALL DELAY
INC R0
DJNZ R3,START1

MOV P2,#00H
LCALL DELAY1

;-----------------------------反转------------------------

MOV R3,#144    反转一圈共 144 个脉冲

START2:
MOV P2,#00H
MOV R0,#05

START3:
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START2

MOV P2,A
CALL DELAY
INC R0
DJNZ R3,START3

MOV P2,#00H
LCALL DELAY1

LJMP MAIN

DELAY: MOV R7,#40 步进电机的转速
M3: MOV R6,#248
DJNZ R6,$
DJNZ R7,M3
RET

DELAY1:            MOV   R4,#20    2S 延时子程序
DEL2:              MOV   R3,#200
DEL3:              MOV   R2,#250
                   DJNZ  R2,$
                   DJNZ  R3,DEL3
                   DJNZ  R4,DEL2
                   RET

TABLE:
DB 30H,60H,0C0H,90H  正转表
DB 00  正转结束

DB 30H,90H,0C0H,60H  反转表
DB 00  反转结束
END


关键字:51单片机  驱动步进电机 引用地址:51单片机驱动步进电机的电路及程序设计

上一篇:51单片机I/O端口的读写操作
下一篇:基于51单片机的实时操作系统的实现

推荐阅读最新更新时间:2024-03-16 15:20

51单片机寄存器功能一览表
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 扩展阅读:51单片机常用波特率初值表(12M晶振) 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为
[单片机]
MCS51单片机的滤波程序
MCS51单片机的滤波程序 ;限幅滤波程序 ;入口 :A,SDAT,DELTY ;占用资源:B ;堆栈需求:2字节 ;出口 :A JUGFILT :MOV B,A CLR C SUBB A,SDAT JNC JUGFT1 CPL A INC A JUGFT1 :SETB A SUBB A,#DELTY JNC JUGFT3 MOV A,SDAT RET JUGFT3 :MOV A,B MOV SDAT,A RET ;中位值滤波程序 ;入口 :ADDPH,ADDPL,N ;占用资源:E
[单片机]
51单片机——按键操作
在51单片机开发板上,对按键设置进行操作,其中包括按键的按下,显示对应位置,以及按键密码锁 1.按下按键显示对应位置 main.c #include REGX52.H #include Delay.h #include LCD1602.h #include MatrixKey.h unsigned char KeyNum; void main() { LCD_Init(); LCD_ShowString(1,1, helloworld ); while(1) { KeyNum=MatrixKey(); if(KeyNum) { LCD_ShowNum(2,1,KeyNum,
[单片机]
如何学习51单片机
学过51单片机的人,都知道这个学习的过程可能不是那么“美好”,所以,今天给大家介绍一些关于51单片机的学习方法。 1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。 2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。 3、汇编语言在工作中很少用到,了解就好。 4、51单片机的P0口很特别。 5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。 当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技
[单片机]
步进电机斩波恒流驱动原理
如图3: T1 是一个高频开关管。T2 管的发射极接一个电流取样小电阻R。比较器一端接给定电压uc, 另一端接R 上的压降。控制脉冲ui 为低电平时, T1 和T2 均截止。当ui 为高电平时, T1 和T2 均导通, 电源向电机供电。由于绕组电感的作用, R 上电压逐渐升高, 当超过给定电压 uc, 比较器输出低电平, 与 门因此输出低电平, T1 截止, 电源被切断, 绕组电感放电。当取样电阻上的电压小于给定电压时, 比较器又输出高电平, 与门输出高电平, T1 又导通, 电源又开始向绕组供电, 这样反复循环, 直到ui 又为低电平。因此: T2 每导通一次, T1 导通多次, 绕组的电流波形为锯齿形, 如图4 所示, 在T2
[模拟电子]
<font color='red'>步进电机</font>斩波恒流<font color='red'>驱动</font>原理
51单片机 RAM 数据存储区
1.RAM keil C语言编程 2.片内数据存储区 (1) 工作寄存器区 工作寄存器区位于片内数据存储器中的00H~1FH单元,共32字节( 如此说来每个单元是一个字节了 ),分成四组。每组8个字节,分别记为R0~R7. 编号 起终地址 寄存器名 备注 1 其占据的物理地址为00H~07H 对应于指令中的R0~R7 0区工作寄存器组 2 其占据的物理地址为08H~0FH 对应于指令中的R0~R7 1区工作寄存器组 3 其占据的物理地址为10H~17H 对应于指令中的R0~R7 2区工作寄存
[单片机]
Allegro发布全新汽车级双极步进电机驱动器或双直流电机
Allegro MicroSystems,LLC推出一款全新的汽车级双极步进电机驱动器或双直流电机驱动器IC AMT49702,新产品专为低压步进电机和双/单高电流直流电机的脉冲宽度调制(PWM)控制而设计。AMT49702的输出电流可达每通道1A,工作电压为3.5至15V,主要应用领域包括:平视显示器(HUD)中的镜面定位和防尘罩、导航系统中的屏幕升降器、驾驶员注意力监测系统中的摄像头移动或对焦、以及方向盘反馈中的振动警报等等。 AMT49702是一款汽车级器件,已经过扩展的温度和电压范围测试,能够确保符合汽车或工业应用的要求。它具有内部固定的关断时间PWM定时器,可根据选择的电流检测电阻来设置峰值电流。AMT49702还可提
[嵌入式]
51单片机PWM控制LED的亮度仿真程序图谱
单片机输出PWM斩波,控制LED的亮度并在图谱上面显示出来 仿真开启 参考代码: #include “reg51.h” unsigned int cd,dd; unsigned char cc,ee; sbit LED=P2^0; void led_int() interrupt 1 using 0 { TH0=0xf1; TL0=0xf1; TR0=1; dd++; if(dd11) { if((cc0x50)&&(ee0)){cd=0;} if((cc0)&&(ee==0x50)){cd=1;} if(cd){cc++;ee–;} else {cc–;ee++;} dd=0; } } void delay(uns
[单片机]
<font color='red'>51单片机</font>PWM控制LED的亮度仿真程序图谱
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved