当然可以,abcd顺序加电控制是正转的话,adcb顺序加电就是反转了。任何步进电机都是如此控制正反转的。
⑵ 51单片机,步进电机怎么实现循环正反转
以下程序是我在实验中自己编写的,几乎全部都有详细注释,相信学过单片机的同学完全可以轻易读懂。
读者可进行一些修改,比如我使用的都是跳转指令,在进入加减速循环中读者完全可以改成调用指令。电机速度也可修改为无上下限。
并且判断按键过程也可有自己的方法,我的判断按下松开可能会比较麻烦。
数表中我设置的是每个脉冲转过9°,大家也可按照实际需要修改自己的数表。
这个程序我是参考了《单片机实用系统设计与仿真经典实例》(主编:周景润 刘晓霞)的P25,读者有兴趣可以去图书馆借阅此书。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV 30H,#05H ;加减速速度控制,控制延时循环次数(初值)
MOV DPTR,#TAB1 ;查表法对P2赋值
MOV R0,#03H ;P2初值
MOV R4,#00H ;查表指针值
MOV P2,R0 ;赋值
WAIT: MOV P0,#0FFH ;P0需先输出一个1才可输入
JNB P0.0,SONG3 ;检测按键是否按下,SONG的意思是按键是否松开,否则程序会混乱
JNB P0.1,SONG4 ;程序中SONG均是上述意思
SJMP WAIT ;如果不按键就不启动
SONG3: JB P0.0,ZHENG ;进入正转
SJMP SONG3 ;
SONG4: JB P0.1,FAN ;进入反转
SJMP SONG4 ;
ZHENG: MOV R4,#01H ;开始查表
LOOP1: JB P0.1,YUNXING1 ;检测是否要反转,如果未按反转键就正常运行
SONG1: JNB P0.1,FAN ;按下反转松开后进入反转
SJMP SONG1 ;
YUNXING1:MOV A,R4 ;查表
MOVC A,@A+DPTR ;
MOV P2,A ;
ACALL DELAY ;进入延时程序控制电机速度
JB P0.3,COOL1 ;检测是否按下减速按键,如果未按下再检测是否按下加速按键
SONG5: JNB P0.3,DOWN1 ;按下后进入延时程序中修改循环次数
SJMP SONG5 ;
COOL1: JB P0.2,NOMAL1 ;检测是否按下加速按键,未按下就正常运行
SONG6: JNB P0.2,UP1 ;按下加速键进入延时程序中修改循环次数
SJMP SONG6 ;
NOMAL1: INC R4 ;查下一个数据
CJNE R4,#09H ,LOOP1;表中数据查完一遍后将R4值复位,如未查完就不复位R4
SJMP ZHENG ;使正转循环
FAN: MOV R4,#07H ;反转R4初值
LOOP2: JB P0.0,YUNXING2 ;检测是否按下正转按键,如未按下正常运行反转程序
SONG2: JNB P0.0,ZHENG ;按下正转后松开按键进入正转程序
SJMP SONG2 ;
YUNXING2:MOV A,R4 ;开始查表
MOVC A,@A+DPTR ;
MOV P2,A ;
ACALL DELAY ;进入延时程序控制电机速度
JB P0.3,COOL2 ;检测是否按下减速按键如未按下就检测是否按下加速按键
SONG7: JNB P0.3,DOWN2 ;按下后进入延时程序中修改循环次数
SJMP SONG7 ;
COOL2: JB P0.2,NOMAL2 ;检测是否按下加速按键,未按下就正常运行
SONG8: JNB P0.2,UP2 ;按下后进入延时程序中修改循环次数
SJMP SONG8 ;
NOMAL2: DEC R4 ;循环查表
CJNE R4,#00H,LOOP2 ;数据查完一遍后复位重新查
SJMP FAN ;反转循环
DELAY: MOV R6,#05H ;
DD1: MOV R5,#080H ;
DD2: MOV R7,#05H ;
DD3: DJNZ R7,DD3 ;
DJNZ R5,DD2 ;
DJNZ R6,DD1 ;固定延时
DJNZ R1,DELAY ;通过改变延时程序的循环次数来控制电机速度
SPEED: MOV R1,30H ;每次循环都将速度值放在R1中
SJMP BACK ;
DOWN1: INC 30H ;速度减,因为循环次数+1
CJNE R1,#10H,NOMAL1;速度下限10,如果不到10可继续减速
MOV 30H,#10H ;如果达到下限,无法减速,始终是10
SJMP NOMAL1 ;返回正转循环中
UP1: DEC 30H ;速度加,因为循环次数-1
CJNE R1,#01H,NOMAL1;速度上限1,如果不到1可继续加速
MOV 30H,#01H ;如果速度到达上限,不可再加速,始终是1
SJMP NOMAL1 ;返回正转循环
DOWN2: INC 30H ;速度减,因为循环次数+1
CJNE R1,#10H,NOMAL2;速度下限10,如果不到10可继续减速
MOV 30H,#10H ;如果达到下限,无法减速,始终是10
SJMP NOMAL2 ;返回反转循环中
UP2: DEC 30H ;速度加,因为循环次数-1
CJNE R1,#01H,NOMAL2;速度上限1,如果不到1可继续加速
MOV 30H,#01H ;如果速度到达上限,不可再加速,始终是1
SJMP NOMAL2 ;返回反转循环中
BACK: RET ;延时子程序返回
TAB1: DB 00H,02H,06H,04H
DB 0CH,08H,09H,01H,03H ;控制各项通电顺序的数值表
END ;结束
⑶ 用单片机怎样实现电机的正反转控制
方案一:使用开关直接控制电动机的正反转,此种设计非常简便易懂,便于修理与使用。
缺点:该方案直接控制易产生火花电弧,会危害操作者生命安全。 如图1所示:
图1中的开关为单刀双掷开关,所以开关有左,中,右三个位置。 方案一开关控制过程如下:
将单刀双掷开关置向左边电动机开始正转,将开关置向右端电动机开始反转,将开关置向中间位置电动机停止转动。
方案二:使用电磁继电器进行控制电动机的正反转。此种设计使用了电磁继电器为了是能让控制过程更安全可靠,顺利解决了方案一的不足。
缺点:该方案不能够满足现代生活对自动化智能化的基本要求。
⑷ 用单片机怎么使直流电机正反转
单片机控制直流电机正反转,最简单的方法是 两个I/O口 控制两个继电器(一组常开、常闭)的就可以,电机 两个极 接 两个继电器 的 动触点,两个继电器 的 常开点接+(电机电源),两个常闭点接-,就可以了。
单片机控制接通一个继电器 是正转,控制接通另一个继电器 是反转,两个继电器都不接通(或者都接通)电机不转。
⑸ 单片机控制步进电机正反转实际意义
用单片机控制电机的正反转比普通的控制正反转的优势在于单片机可以自动编程编完程序后按程序来控制正反转比如说你需要正转以后延时多长时这反转那么你可以直接在单片机里编程就是了。