单片机控制步进电机正反转c语言程序,单片机控制步进电机1步10步100步正反转…
大家好,又见面了,我是你们的朋友全栈君。
原标题:单片机控制步进电机1步10步100步正反转
一,程序设计方案的构想:
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 22PF 47UF
2
电阻
RES 0.6W 10K
1
步进电机
STEPER 4相
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步程序编写出现错误,经过改正后,可以运行.
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140646.html原文链接:https://javaforall.cn
相关文章
- 毕设系列之 — 教程:单片机控制步进电机
- 11.Go语言-流程控制
- 【MIT博士论文】控制神经语言生成
- Go语言之控制语句(十一)
- c语言浮点数输出格式的控制,c语言输出格式控制「建议收藏」
- 8-TCL事务控制语言
- rust语言流程控制
- 【Flutter】Flutter 调试 ( 调试控制相关功能 | 断点管理 | 代码运行控制 )
- SAP 通过事务代码与屏幕变式(SHD0)控制控制用户界面的某些字段,以控制生产订单的调度类型为例详解编程语言
- MySQL: 一个非凡的控制语言(mysql控制语言)
- Linux下删除文件的权限控制(linux文件的删除权限)
- 使用Oracle实现有效的事务控制(oracle事务控制)
- 攻击者宣称可利用 0day 漏洞完全控制 Android 手机
- 学习 Linux 权限命令:控制文件和目录访问权限(linux权限命令)
- Oracle约束:妙用精细控制(oracle的约束)
- 在Linux上运行VNC连接实现远程控制(vnc linux版)
- 麻省理工上海交大开发低成本软体假肢 提供实时触觉控制
- 关于SQL存储过程入门基础(流程控制)
- redis密码设置、访问权限控制等安全设置