在本文中,讲解了怎么用8051单片机控制步进电机。步进电机广泛用于工业、医疗、消费电子应用。简而言之,它用于任何需要物体精确旋转或定位的地方。
一、什么是步进电机?
步进电机是一种无刷电机,可将电脉冲转换为机械旋转。顾名思义,它根据输入脉冲逐步旋转。步进电机通常具有多个励磁线圈(相)和带齿转子。电机的步长由转子上的相数和齿数决定。步长是转子在一步中的角位移。如果步进电机有4相50个齿,则需要50×4=200步才能旋转一整圈。所以步距角将为360/200=1.8°。
我们使用的步进电机有4极和一个1/64减速齿轮机构,用于增加扭矩。电机的步距角为5.64°。但考虑减速机时,输出轴的步距角为5.64/64°。步进电机的内部示意图如下:
步进电机通过在给定时间内一一打开各个相位来旋转。序列如下图所示:
二、原理图
将步进电机连接到8051的电路图如上所示。P1.0、P1.1、P1.2、P1.3引脚分别用于控制步进电机的A1、A2、A3、A4相。ULN2003用于驱动步进电机的各个相位。ULN2003是一种达林顿晶体管阵列,用于驱动继电器和电机等大电流负载。ULN2003有8个独立的通道,每个通道的容量为1A。通道可以并联以增加电流容量。每个通道都配有独立的续流二极管。ULN2003工作在电流吸收模式。每个通道通过在相应输入处提供逻辑低电平来激活。例如,如果我们将ULN2003的引脚1设为低电平,则步进电机的A1相被接通。
程序首先清除P1.0以激活步进电机的第1相(A1)。该条件保持65毫秒,然后设置P1.0以停用电机的第1阶段。然后对端口引脚P1.1到P1.3重复相同的过程,整个循环一遍又一遍地重复,使电机顺时针旋转。
单片机的定时器0配置为模式1以产生65毫秒的延迟,65mS是每个控制脉冲的宽度。
三、程序代码
A1 EQU P1.0
A2 EQU P1.1
A3 EQU P1.2
A4 EQU P1.3
ORG 00H
MOV TMOD,#00000001B
MAIN:
CLR A1
ACALL DELAY
SETB A1
CLR A2
ACALL DELAY
SETB A2
CLR A3
ACALL DELAY
SETB A3
CLR A4
ACALL DELAY
SETB A4
SJMP MAIN
DELAY:MOV R6,#1D
BACK: MOV TH0,#00000000B
MOV TL0,#00000000B
SETB TR0
HERE2: JNB TF0,HERE2
CLR TR0
CLR TF0
DJNZ R6,BACK
RET
上一篇:基于C8051F060内置高精度模/数转换器的使用方法
下一篇:8051单片机的四组I/O端口
推荐阅读最新更新时间:2024-10-30 08:29
设计资源 培训 开发板 精华推荐
- 8位 VFD屏幕驱动板 分享 已经验证ok
- 与 LTC2400 一起使用的差分至单端信号调理电路的集合,LTC2400 是 SO-8 中的 24 位无延迟 ADC
- 使用 Infineon Technologies AG 的 IRU1205-25 的参考设计
- 使用 Lattice Semiconductor 的 MIPI CSI-2 Controller Core 的参考设计
- 使用 Analog Devices 的 LT1317BCMS8 的参考设计
- EVAL-AD8555-SOIC,评估套件允许快速演示和评估 AD8555 零漂移
- #第八届立创电赛#数字电子时钟
- Sheet_2
- AVR602,使用 ATtinyX3U 的应用电路
- #第五届立创电子设计大赛#多功能调光模块(控制方式:语音/红外/触摸)
- 2440-camera-display????
- 各位大侠看看这个Atmega128单片机接收数据代码有啥问题,谢谢!怀疑是中断接收那里
- 请问下各位大虾,目前在调试W25Q32,miso引脚没有输出,怎么办?
- COCOFLY 教程 ——疯壳无人机系列·快速上手·【6】地面站上位机的使用和介绍
- 出几个板子,MSP430,MT7620
- 我的VS2005的菜单怎么乱套了,在生成菜单选项下,生成成为了重新生成的功能,部暑成为了重新生成+部暑(下载)的功能,在调试菜单下,启动调试成为了部暑(下载)+
- 谁用过CO检测器的器件啊
- ModelSim仿真出错
- 在MDK中数据包如何定位地址下载到STM32中去
- 技术科普:DRAM、NAND的本质区别