想向大神求一个用pwm控制电机转速的程序,程序最好简单点,O(∩_∩)O谢谢

想向大神求一个用pwm控制电机转速的程序,程序最好简单点,O(∩_∩)O谢谢,第1张

#include <reg52h >

#define uchar unsigned char

#define uint unsigned int

sbit s2=P3^7;

sbit s3=P3^6;

sbit fm=P2^3;

uchar pwm,num;

void delay(uint ms)

{

uchar i;

while(ms--)

{

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

}

}

void keyscan()

{

if(s2==0)

{

delay(80);

if(s2==0)

{

if(pwm<32)

{

pwm++;

delay(150);

}

else //如果大于32 蜂鸣器想

{

bee( );

}

}

}

if(s3==0)

{

delay(80);

if(s3==0)

{

if(pwm>1)

{

pwm--;

delay(50);

}

else //如果小于1 蜂鸣器想

{

bee( );

}

}

}

}

void init_t0( )

{

TMOD=0x01;

TH0=(65536-500)/256; //500ms

TL0=(65536-500)%256;

EA=1;

ET0=1;

TR0=1;

}

void t0( ) interrupt 1

{

TR0=0; //关计时器

TH0=(65536-500)/256;

TL0=(65536-500)%256;

num++;

if(num>32)

{

num=0;

}

if(num<=pwm )

{

P1=0xff;

}

else

{

P1=0x00;

}

TR0=1;

}

void main( )

{

init_t0( );

num=0;

pwm=0;

while(1)

{

keyscan();

}

}

利用定时器。

uint PwmCnt = 0;

sbit  PWN_OUT = P1^1;//可改动

uint PwmD = 50;//占空比  可调

uint PwmF = 500;//频率  可调  10 = 1HZ   500 =50HZ

uint PwmCnt = 0;//占空比计数值

uint FreCnt = 0;//频率分频

void T0 interrupt 1

{

   //赋值TO计数值  50us

   if(++FreCnt>= (1000/PwmF))//通过改变PwmF 达到分频效果  改变输出频率

   {

       if(++PwmCnt>=100) PwmCnt=0; //再次分频100  占空比精度需要这样

       if(PwmCnt<PwmD )//改变D值  可以改变引脚状态占用时间

       {

           PWN_OUT = 1;

       }

       else

       {

           PWN_OUT =0;

       }

    }

}

//思想是这样  我也没测过

PCA时钟用T0溢出,

void PCA_Init (void)

{

PCA0MD &=~0x40;//关闭开门狗

//0号舵机

PCA0MD=0x04;//0000 0100 定时器0溢出,禁止看门狗

PCA0CPM0=0x42;//0100010 使能8位脉宽调制方式

PCA0CPL0=235; //

PCA0CPH0=235;//初始化为角度为0

}

//

void Counter_Init(void)

{ TCON=0x10; //0001 0000 启动定时器T0&T1

CKCON=0x00; //定时时钟来源 系统时钟12分频( 2MHZ)

TMOD=0x02; //0000 00(计时)10(方式2) Timer0 工作在方式2 8位计数器自动重载,

TL0=120; //计数器初 值 256-156=100 50HZ(20ms/256 计156次)120 58HZ 150 74HZ 延时20 80 45HZ 延时50

TH0=120; //计数器重载值

}

//

以上就是关于想向大神求一个用pwm控制电机转速的程序,程序最好简单点,O(∩_∩)O谢谢全部的内容,包括:想向大神求一个用pwm控制电机转速的程序,程序最好简单点,O(∩_∩)O谢谢、51单片机怎样输出频率F=0.2-50HZ,占空比D=1-100%可调的PWM波形、如何用C8051F340的PCA产生频率可调的PWM希望有程序,谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10126737.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存