首页 > 编程知识 正文

脉冲控制步进电机,51单片机延时程序

时间:2023-05-05 02:37:21 阅读:149538 作者:3059

51单片机控制42步进电机——程序的实现(中断PWM/延迟函数)取最近时间编制了51单片机控制步进电机的程序,包括硬件连接记录了包含代码的过程。 硬件部分项目硬件列表51学习板$1600TB6600驱动器$12通道42步进电机$124V直流电源$1通道42步进电机由于购买时间长,还可以使用。 [42步进电机相关参数! [ ] [ 3359 img-blog.csdn img.cn/20210204093434898.png? x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg4u bmv0L3 L3 L1 aaagk

此次试验采用共阳极的连接法,VCC连接了51板上的5V电源引脚。

实际硬件和布线

程序的一部分实现使用了用keil软件编写的c语言程序。 虽然是用两种想法写的,但都可以实现。 贴在了下面。

第一,使用由延迟函数实现的脉冲。

#include reg51.h

#define uint unsigned int

voiddelayms(uint;

sbit ENA=P1^0;

sbit DIR=P1^1;

sbit PWM=P1^2;

void main () )

{

ENA=0;

DIR=0;

PWM=0;

while(1)。

{

PWM=~PWM;

dlayms(1;

}

}

voidDelayms(uintXMS ) )。

{

uint i,j;

for(I=XMS; i0; I)

for(j=110; j0; j;

}

二是用51单片机的T1定时器实现的脉冲。

#include reg51.h

#define uint unsigned int

unsigned char timer1;

sbit DIR=P1^0;

sbit ENA=P1^1;

sbit PWM=P1^2;

void system_Ini (

{

TMOD=0x00; //13»

TH1=0xfd; //253

TL1=0x06; //6

EA=1;

ET1=1;

TR1=1;

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。

2^13=8192

25332=8096

8096 6=8102

8192-8102=90

12(1/11059200 )=1.09us

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

main () )

{

system_Ini (;

DIR=0;

ENA=0;

while(1)。

{

if(TimeR1==40 ) ) ) )。

{

timer1=0;

}

时间120 )。

{

PWM=0;

}

else

{

PWM=1;

}

}

}

voidti1(void ) interrupt 3

{

TH1=0xfd;

TL1=0x06;

时间R1;

}

备注:关键试验前必须检查tb6600拨盘开关,保证输出电流与步进电机电流一致。 脉冲一直都是。 步进电机的转速建议设定在100转/min~600转/min。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。