关于C8051单片机控制电机转动的编程

关于C8051单片机控制电机转动的编程,第1张

#define uchar unsigned char

#define uint unsigned int

sbit KEY1 = P3^2; //步进电机逆时针方向转

sbit KEY2 = P3^3; //步进电机顺时针方向转

sbit KEY3 = P3^4; //步进电机调速

uchar step = 0;

bit AB_flag = 0;

unsigned char code A_Rotation[8]={0x08,0x18,0x10,0x30,0x20,0x60,0x40,0x48}; //顺时针转表格

unsigned char code B_Rotation[8]={0x48,0x40,0x60,0x20,0x30,0x10,0x18,0x08}; //逆时针转表格

/

名称 : Delay_1ms()

功能 : 延时子程序,延时时间为 1ms x

输入 : x (延时一毫秒的个数)

输出 : 无

/

void Delay(uint i)

{

uchar x,j;

for(j=0;j<i;j++)

for(x=0;x<=148;x++);

}

void KEY(void)

{

if(KEY1 == 0) //按P32,实现步进电机的逆时针转动

{

#include<reg51h>

#define uchar unsigned char

#define uint unsigned int

uchar motor=P1^0;

sbit keystart=P2^0;

sbit keystop=P2^1;

void delay(uint x)

{

uchar j;

while(x--)

{

for(j=0;j<125;j++)

{;}

}

}

void main(void)

{

motor=0;

while(1)

{

if(keystart==1)

{

delay(10);

if(keystart==1)

motor=1;

else

motor=0;

while(keystart==1);

}

if(keystop==1)

{

delay(10);

if(keystop==1)

{

motor=0;

else

motor=1;

while(keystop==1);

}

}

}

}

转向要靠舵机输出pwm波形控制,最好是50hz

电机只是控制转速 控制占空比就可以了

void timer0() interrupt 1

{

d_count++;

if(d_count==d_num)

duoji=0;

if(d_count==480)

{

d_count=0;

duoji=1;

}

TH0=(65536-10)/256;

TL0=(65536-10)%256;

}

以上就是关于关于C8051单片机控制电机转动的编程全部的内容,包括:关于C8051单片机控制电机转动的编程、STC89C52单片机控制直流电动机的c程序、用l298n的模块去控制一个两线的直流电机,用单片机怎么用c语言编程才能控制电机的转速,谢谢各位!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9443949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存