您当前的位置:五五电子网电子知识电工技术电工基础直流电机PWM调速程序 正文
直流电机PWM调速程序

直流电机PWM调速程序

点击数:7480 次   录入时间:03-04 11:44:18   整理:http://www.55dianzi.com   电工基础

*                                                                            * 
*关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数 * 
*设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样* 
*可以设定占空比可从1-100变化。即0.01ms*100=1ms                               * 
******************************/ 
#include 
#define uchar unsigned char      
/************************************** 
* TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%256;         * 
* TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器* 
* 工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时 * 
* 间为1ms*65536=65.536ms                                                     * 
*********************************************/ 
#define V_TH0  0XFF                  
#define V_TL0  0XF6                  
#define V_TMOD 0X01                 

void init_sys(void);            /*系统初始化函数*/ 
void Delay5Ms(void);

unsigned char ZKB1,ZKB2;

void main (void) 
{ 
init_sys(); 
  ZKB1=40;            /*占空比初始值设定*/ 
  ZKB2=70;            /*占空比初始值设定*/ 
  while(1) 
  { 
       if (!P1_4) //如果按了+键,增加占空比 
      { 
       Delay5Ms(); 
       if (!P1_4) 
         { 
         ZKB1++; 
         ZKB2=100-ZKB1; 
         } 
      }

       if (!P1_5) //如果按了-键,减少占空比 
      { 
       Delay5Ms(); 
       if (!P1_5) 
         { 
         ZKB1--; 
         ZKB2=100-ZKB1; 
         } 
      } 
/*对占空比值限定范围*/ 
if (ZKB1>99) ZKB1=1; 
if (ZKB1<1) ZKB1=99; 
 
  }
 

   
}

[1] [2]  下一页


本文关键字:直流电机  程序  电工基础电工技术 - 电工基础