⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm之小车调速.c

📁 单片机在利用H桥对电机控制时
💻 C
字号:
#include < reg51.h >
#include < intrins.h >

sbit  K1 =P2^0 ;                    //按K1,PWM值增加键
sbit  K2 =P2^1 ;                    //按K2,PWM值减少键
sbit  K3 =P2^2 ;                    //按K2,正反转

unsigned char PWM=0x80,f=0x05;   //赋初值
bit k=0;

/**************************************************
                    延时程序
/*************************************************/
void delayms(unsigned char ms) 

{
    unsigned char i ;
    while(ms--)
     {
        for(i = 0 ; i < 240 ; i++) ;
     }
} 

 /***************************************************
                         主程序
 ****************************************************/
 void main(void)
{  
    P1=0x00; 

    TMOD=0x11 ;			 //计时器1,0的计时方式就均为为 1
    TH0=0x00 ;           //周期
    TL0=0x00 ;           //频率调节

    TH1=PWM ;            //脉宽调节
    TL1=PWM ;

    EA=1;
    ET0=1;
    ET1=1;
    
    TR0=1 ;

   while(1)
  {
    if(K3==0) k=~k;		 //实现正反转
    while(K3==0);
    if(k==0) f=0x05;
    if(k==1) f=0x0a;
		
    while(K1==0&&PWM!=0xff)     //加减速度
   {
    PWM++ ;delayms(10);
   }
   while(K2==0&&PWM!=0x00)      
   {
    PWM-- ;delayms(10);
   }
		
  }
}

/**************************************************
                定时器T0频率调节
***************************************************/
void timer0() interrupt 1 
{  
    TR1=0 ;
    TH0=0x00 ;
    TL0=0x00 ;
    TH1=PWM ;
    TL1=PWM;
    TR1=1 ;
    P1=0x00 ;      
}

/***************************************************
               定时器T1,脉宽调节
***************************************************/
void timer1() interrupt 3 
{ 
    TR1=0 ;
    P1=f ;       
}

											   


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -