一,程序规划方案的设想:
1)
步进电机是将电脉冲信号转变为角位移或线位移的开环操控元件.在非超载的情况下,电机的转速,中止的方位只取决于脉冲信号的频率和脉冲数,而不受负载改变的影响.即给电机加一个信号,电机则转过一个步距角.这一线形联系的存在,加上步进电机只要周期性的差错而无堆集差错等特色,使得在线速度,方位等操控范畴用步进电机来操控变的十分的简略.
2)
运用单片机以软件办法驱动步进电机通过修改办法,对步进电机的转速,往复滚动的视点以及滚动次数等进行操控使其在必定的范围下进行,还能够便利灵敏的操控步进电机的运转状况:
3)原理图:
4)衔接图:
输出端 |
输入端 |
||||
A |
C1 |
P2.0 |
KM1 |
P1.0 |
1B |
B |
C2 |
P2.1 |
KM2 |
P1.1 |
2B |
C |
C3 |
P2.2 |
KM3 |
P1.2 |
3B |
D |
C4 |
P2.3 |
KM4 |
P1.3 |
4B |
|
|
P2.4 |
KM5 |
|
|
5)运用元件及电路图
元件称号 |
类型 |
件数 |
单片机 |
AT89C51 |
1 |
晶振 |
CRYSTAL |
1 |
%&&&&&% |
CAP |
2 |
电阻 |
RES |
1 |
步进电机 |
STEPER |
1 |
步进电机芯片 |
ULN2003A |
1 |
按钮 |
BUTTON |
6 |
二、 试验程序
org 0000H
start:
jnb p2.0,step
jnb p2.1,step
sjmp start
step:
jnb p2.2,one
jnb p2.3,ten
jnb p2.4,hundred
ljmp start
one:
mov r0,#2
jnb p2.0,zh1
jnb p2.1,fan1
ljmp start
ten:
mov r0,#10
jnb p2.0,zh1
jnb p2.1,fan1
ljmp start
hundred:
mov r0,#100
jnb p2.0,zh1
jnb p2.1,fan1
ljmp start
zh1:
mov p1,#03H
lcall delay
jnb p2.7,stop
djnz r0,zh2
ljmp stop
zh2:
mov p1,#06H
lcall delay
jnb p2.7,stop
djnz r0,zh3
ljmp stop
zh3:
mov p1,#0cH
lcall delay
jnb p2.7,stop
djnz r0,zh4
ljmp stop
zh4:
mov p1,#09H
lcall delay
jnb p2.7,stop
djnz r0,zh1
sjmp stop
fan1:
mov p1,#09H
lcall delay
jnb p2.7,stop
djnz r0,fan2
ljmp stop
fan2:
mov p1,#0cH
lcall delay
jnb p2.7,stop
djnz r0,fan3
ljmp stop
fan3:
mov p1,#06H
lcall delay
jnb p2.7,stop
djnz r0,fan4
ljmp stop
fan4:
mov p1,#03H
lcall delay
jnb p2.7,stop
djnz r0,fan1
sjmp stop
stop:
mov p1,#00H
ljmp start
delay:
mov r2,#200
d1:mov r1,#200
djnz r1,$
djnz r2,d1
ret
end
三、调试记载:
当程序编译完成后,下载到单片机中后,在运转进程傍边时发现按下10步按钮无法运转,其他都正常运转,回到程序查看时发现10步程序编写呈现过错,通过改正后,能够运转.