pwm调速频率,51单片机PWM调速程序

发布时间:2023-07-26  

  51单片机的pwm调速频率主要通过一个定时器和一个IO口来实现PWM的输出。在一个周期里面,首先让IO口输出高电平,并定时一定的时间然后再将IO口输出低电平,定时一定的时间。然后在while里面循环输出即可。需要改变占空比的话就改变高电平的时间与低电平的时间比。我们来看看51单片机的PWM调速程序。


  51单片机PWM调速程序

  /*******************************************************************/ /* 程序名:PWM直流电机调速 */


  /* 晶振:11.00592 MHz CPU型号:AT89C51 */

  /* 直流电机的PWM波控制,可以直接的调速从0到20级的调速 */

  /*****************************************************************/ #include《reg51.h》

  #define TH0_TL0 (65536-1000)//设定中断的间隔时长

  unsigned char count0 = 50;//低电平的占空比 unsigned char count1 = 0;//高电平的占空比

  bit Flag = 1;//电机正反转标志位,1正转,0反转

  sbit Key_add=P2 ^ 0; //电机减速 sbit Key_dec=P2 ^ 1; //电机加速 sbit Key_turn=P2 ^ 2; //电机换向

  sbit PWM1=P2^6;//PWM 通道 1,反转脉冲 sbit PWM2=P2^7;//PWM 通道 2,正转脉冲

  unsigned char Time_delay;

  /************函数声明**************/ void Delay(unsigned char x); void Motor_speed_high(void); void Motor_speed_low(void); void Motor_turn(void); void Timer0_init(void);

  /****************延时处理**********************/ void Delay(unsigned char x)

  {

  Time_delay = x;

  while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔

  }

  /*******按键处理加pwm占空比,电机加速**********/ void Motor_speed_high(void)//

  {

  if(Key_add==0)

  {

  Delay(10); if(Key_add==0)

  {

  count0 += 5;

  if(count0 》= 100)

  {

  count0 = 100;

  }

  }

  while(!Key_add);//等待键松开

  }

  }

  /******按键处理减pwm占空比,电机减速*****/ void Motor_speed_low(void)

  {

  }

  }

  /************电机正反向控制**************/ void Motor_turn(void)

  {

  if(Key_turn == 0)

  {

  Delay(10); if(Key_turn == 0)

  {

  Flag = ~Flag;

  if(Key_dec==0)

  {

  Delay(10); if(Key_dec==0)

  {

  count0 -= 5;

  if(count0 《= 0)

  {

  count0 = 0;

  }

  }

  while(!Key_dec );

  }

  while(!Key_turn);

  }

  }

  /***********定时器0初始化***********/ void Timer0_init(void)

  {

  TMOD=0x01; //定时器0工作于方式1 TH0=TH0_TL0/256; TL0=TH0_TL0%256; TR0=1; ET0=1; EA=1; }

  /*********主函数********************/ void main(void)

  {

  Timer0_init(); while(1)

  {

  Motor_turn(); Motor_speed_high(); Motor_speed_low();

  }

  }

  /**************定时0中断处理******************/ void Timer0_int(void) interrupt 1 using 1

  {

  TR0 = 0;//设置定时器初值期间,关闭定时器 TL0 = TH0_TL0 % 256;

  TH0 = TH0_TL0 / 256 //定时器装初值 TR0 = 1;

  if(Time_delay != 0)//延时函数用

  {

  Time_delay--;

  }

  if(Flag == 1)//电机正转

  {

  PWM1 = 0;

  if(++count1 《 count0)

  {

  PWM2 = 1; } else PWM2 = 0;

  if(count1 》= 100) { count1=0; } }

  else //电机反转

  {

  PWM2 = 0;

  if(++count1 《 count0) { PWM1 = 1; } else PWM1 = 0;

  if(count1 》= 100)

  {

  count1=0;

  }

  }

  }


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    stc12c5a60s2晶振频率如何计算;STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令......
    ,所以配置48即可: PWM配置 本次实验使用的是TIM3的通道1来输出PWM波,选择时钟,并且选择通道1的PWM模式。 配置PWM波的参数 PWM频率计算如下所示 在这里插入图片描述 在上......
    控制等其他领域。随着微电子技术和计算机的迅速发展,特别是单片机的出现和发展,使传统的电子测量仪器在原理、功能、耗电、可靠性等方面都发生了重大的变化。目前,市场上有各种多功能、高精度、高频率的数字频率计......
    工具,想用哪个定时器,哪个定时方式,多大的晶体,多长的延时,输入你的要求,自动计算出来! 第5款:51单片机波特率计算工具,功能虽然不算多,但完全足够了,输入波特率或者晶振频率再点击计算......
    1.1.2中的介绍,舵机用来控制吸笔和拖拽针的运动,在单片机的控制中常用PWM(PulseWidthModulation)调制来驱动它。在舵机控制系统中,输出的PWM信号......
    实现的功能: 1. 全数字方案; 2. 电路输入15~26V,输出15~35V,最大电流5A; 3. 单片机PWM控制BOOST电路输出; 4. PID算法构成反馈环; 5. 状态机控制系统的输出模式; 6......
    啥不做成一样的呢? 我们又应该如何选择它们呢? 接下来为大家解答! (1)11.0592MHz晶振 在STC89C51单片机中,该晶振主要用于精准的生成串口的波特率值9600,我们的波特率计算......
    器是一种用于统计脉冲数量的电路模块,可以通过外部信号触发计数器进行累加,并在达到设定值时产生中断或其他事件。在嵌入式系统中,计数器常用于频率计数、编码器测量、信号采集等应用场合。 2. 计数器的结构 51单片机......
    来决定,高低电平的变化的频率不同,音调不同,在此次设计中采用TIM1的PWM频率变化来控制。 4.2.4 PWM输出频率计算: TIM定时......
    单片机时钟频率PWM信号频率; 一、前言 昨天测试了基于手表晶体选频放大电路,用于竞赛车模室外计时模块。经过实际测量,这种音叉晶体选频电路的谐振特性, 所对应的增益中心频率,是在......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>