• 專注電子技術學習與研究
    當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

    基于51 單片機之PWM(LED漸變)實驗測試

    作者:佚名   來源:本站原創   點擊數:  更新時間:2014年08月28日   【字體:

     **************************  Copyright(C) CaKe  ****************************************

    ========================================================================================
    ==============**版權信息   : CaKen工作室                            ==============
    ==============**文件名     : main.c              ==============
    ==============**作者       : CaKen             ==============
    ==============**版本號     : V1.0              ==============
    ==============**時間       : 2014.08.24               ==============
    ==============**功能描述   : LED漸變實驗測試            ==============
    ========STC12C5A60S2.H頭文件下載:http://www.thefapper.com/mcu/2564.html  =========================
    ========================================================================================
    ****************************************************************************************
     
     
    #include "STC12C5A60S2.H"//頭文件
     
    *********************************************************************************************
    函數名:PWM初始化函數
    調  用:PWM_Init();
    參  數:無
    返回值:無
    結  果:將PCA初始化為PWM模式,初始占空比為0
    備  注:需要更多路PWM輸出直接插入CCAPnH和CCAPnL即可
    /**********************************************************************************************
    void PWM_Init (void)
    {
        CMOD=0x02; //設置PCA定時器
      CL=0x00;
      CH=0x00;
     
     CCAPM0=0x42; //PWM0設置PCA工作方式為PWM方式(0100 0010)
      CCAP0L=0x00; //設置PWM0初始值與CCAP0H相同
      CCAP0H=0x00; // PWM0初始時為0
     
     CCAPM1=0x42; //PWM1設置PCA工作方式為PWM方式
     CCAP1L=0x00; //設置PWM1初始值與CCAP0H相同
      CCAP1H=0x00; // PWM1初始時為0
     
     CCAPM2=0x42; //PWM2設置PCA工作方式為PWM方式
     CCAP2L=0x00; //設置PWM2初始值與CCAP0H相同
      CCAP2H=0x00; // PWM2初始時為0
     
     CCAPM3=0x42; //PWM3設置PCA工作方式為PWM方式
     CCAP3L=0x00; //設置PWM3初始值與CCAP0H相同
      CCAP3H=0x00; // PWM3初始時為0
     
      CR=1; //啟動PCA定時器
    }
    **********************************************************************************************
     
    *********************************************************************************************
    函數名:PWM0占空比設置函數
    調  用:PWM0_Set();
    參  數:0x00~0xFF(亦可用0~255)
    返回值:無
    結  果:設置PWM模式占空比,為0時全部高電平,為1時全部低電平
    備  注:如果需要PWM1的設置函數,只要把CCAP0L和CCAP0H中的0改為1即可
    **********************************************************************************************
    void PWM0_Set (unsigned char a){
     CCAP0L= a; //設置值直接寫入CCAP0L
      CCAP0H= a; //設置值直接寫入CCAP0H
    }
    void PWM1_Set (unsigned char a){
     CCAP1L= a; //設置值直接寫入CCAP1L
      CCAP1H= a; //設置值直接寫入CCAP1H
    }
    void PWM2_Set (unsigned char a){
     CCAP2L= a; //設置值直接寫入CCAP2L
      CCAP2H= a; //設置值直接寫入CCAP2H
    }
    void PWM3_Set (unsigned char a){
     CCAP3L= a; //設置值直接寫入CCAP3L
      CCAP3H= a; //設置值直接寫入CCAP3H
    }
    **********************************************************************************************
     
    *********************************************************************************************
    函數名:主函數
    調  用:無
    參  數:無
    返回值:無
    結  果:程序開始處,無限循環
    備  注:
    /**********************************************************************************************
     
    void main (void)
     
    {
     
     PWM_Init(); //PWM初始化
     
     PWM0_Set(0x10); //設置PWM占空比
     PWM1_Set(0x60); //設置PWM占空比
     PWM2_Set(0xA0); //設置PWM占空比
     PWM3_Set(0xF0); //設置PWM占空比
     
     while(1)
     {
     
     }
    }
    =======================================================================================
     
     -------------------      CaKen工作室  原創作品     --------------------
     -------------------            CaKen工作室  版權所有       --------------------
    ===================================================================
    關閉窗口
    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的