久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2968|回復: 0
打印 上一主題 下一主題
收起左側

STC12C5A60S2片內PWM按鍵控制直流電機正轉、反轉、加減速源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:785043 發表于 2020-11-24 09:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC12C5A60S2單片機控制直流電機,可以進行正轉、反轉和相應的加減速,親測有效。
程序源碼如下:
#include "STC12C5A60S2.h"

#define uint unsigned int
#define uchar unsigned char  


sbit forward_up=P3^5; //正轉加速
sbit forward_down=P3^4; //正轉減速
sbit reversal_up=P3^3;//反轉加速
sbit reversal_down=P3^2;//反轉減速
sbit In1=P0^0;
sbit In2=P0^1;
sbit In3=P0^2;
sbit In4=P0^3;

void DelayMs(uchar ms);  
void init_PWM(); //PWM 初始化
void PWM0_change(uchar type,uchar change);//PWM調整函數
void PWM0_set(uchar empty);//直接賦PWM的值
void turnback();//反轉
void run();//正轉
void stop();//停止
//stc10f系列 單周期指令的ms級延時
void DelayMs(uchar ms) //這個延時可能不對,非關鍵部分,可自己修改
{        
        uint i;  while(ms--)  
        {     
                for(i = 0; i < 850; i++);
         }
}
void init_PWM()
{     
        CCON=0X00;   
         CH=0;   
         CL=0;
//時鐘分頻也就是輸出的頻率。 0X00:以系統時鐘/12 為時鐘源,0X02:系統時鐘/2,0x08:系統時鐘     
        CMOD=0X02;      
//起始占空比,0XC0:占空比為25%,0X80:占空比為50%,0X40:占空比為75%   
        PWM0_set(0XC0); // (與CL比較,當CL<CCAP0L時輸出低電平,反之高電平)
        PCA_PWM1=0x00;
        PCA_PWM0=0x00; //控制占空比的第九位為0   
//0X42:8位PWM P1.3輸出, P1.4輸出,無中斷;0X53:8位PWM輸出,下降沿產生中斷;
//0X63:上升沿產生中斷;0X73:跳變沿產生中斷
        CCAPM0=0X42;  
        CCAPM1=0X42;
         CR=1;          //計時器開始工作
}
void PWM0_set(uchar empty)  //直接設置占空比
{      
        CCAP0L=empty;   
        CCAP0H=empty;
        CCAP1L=empty;   
        CCAP1H=empty;
}
//占空比調節函數
void PWM0_change(uchar type,uchar change) //type=0減占空比,1增加占空比         
//change: 0X0C 約5%,0X05約2%
{         
        if(type==0)   
         {      
                 if(CCAP0L<0XE6)   //<90%   
                {      
                         CCAP0L+=change;     
                          CCAP0H+=change;  
                        CCAP1L+=change;     
                          CCAP1H+=change;
                  }           
         }   
else   
{   
          if(CCAP0L>0X19)  //>10%      
        {      
                 CCAP0L-=change;     
                  CCAP0H-=change;  
                CCAP1L-=change;     
                  CCAP1H-=change;
         }         
}

}

void main()
{   
         init_PWM();      //初始化,PWM輸出  
          while(1)   
          {  

          if(forward_up==0) //按鍵加PWM占空比
                  {   
                            DelayMs(500);  //按鍵消抖   
                           while(forward_up==0); //按鍵釋放才跳出執行下一步   
                         PWM0_change(1,0X0c); //change: 0X0C 約5%,0X05約2%
                         run();                              
                  }   
                  if(forward_down==0)//按鍵減PWM占空比
                  {   
                           DelayMs(500);  
                     while(forward_down==0);   
                         PWM0_change(0,0X0c); //change: 0X0C 約5%,0X05約2%  
                         run();
                  }
                  if(reversal_up==0) //按鍵加PWM占空比
                  {   
                            DelayMs(500);  //按鍵消抖   
                           while(reversal_up==0); //按鍵釋放才跳出執行下一步   
                         PWM0_change(1,0X0c); //change: 0X0C 約5%,0X05約2%
                         turnback();                              
                  }   
                  if(reversal_down==0)//按鍵減PWM占空比
                  {   
                           DelayMs(500);  
                     while(reversal_down==0);   
                         PWM0_change(0,0X0c); //change: 0X0C 約5%,0X05約2%  
                         turnback();                                                                        
                   }                                                                                
           }
}



void turnback()   
{

     In1=0;In2=1;In3=0;In4=1;   
}

void run()   
{

     In1=1;In2=0;In3=1;In4=0;   
}

void stop()   
{
     In1=1;In2=1;In3=1;In4=1;   
}

全部程序51hei下載地址:
PWM直流電機調速.rar (28.62 KB, 下載次數: 63)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人动漫视频网站 | 国产精品亚洲一区二区三区在线 | 亚洲免费大片 | 一级毛片视频免费观看 | 国产成人jvid在线播放 | 希岛爱理在线 | 国产乱码精品一区二区三区五月婷 | 国产情品 | 欧美精品一区二区三 | 亚洲最大成人综合 | 成人精品一区二区三区中文字幕 | 国产午夜精品一区二区三区嫩草 | 人人人干| 91精品国产综合久久精品图片 | 污污免费网站 | 日韩三 | 亚洲日本成人 | 69av在线视频| 国产成人av一区二区三区 | 韩国毛片一区二区三区 | 成年人在线观看 | 91国产在线视频在线 | 久久r久久| 国产精品久久久久久久久免费 | 日韩成人一区 | 久久综合伊人 | 亚洲一区视频在线 | 91午夜在线 | 美女黄网站 | 操操操av | 99免费在线 | 欧美一级二级在线观看 | 精品一区二区久久久久久久网站 | 国产视频日韩 | 久久精品福利 | 精品一区国产 | 亚洲一二三区在线观看 | 九九精品影院 | 成人精品毛片国产亚洲av十九禁 | 日韩精品免费视频 | 国产精品久久久久一区二区三区 |