<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

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

        STC單片機實現可調PWM輸出的C51程序

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年02月20日   【字體:

        //以下是源程序,只需修改定義IO口就可以使用,#include < reg52.h >
        #include < intrins.h >
        sbit  K1 =P3^2 ;                    //增加鍵
        sbit  K2 =P3^3 ;                    //減少鍵
        sbit  BEEP =P3^1 ; //蜂鳴器
        sbit  pp =P3^7 ;
        unsigned char PWM=0x7f ;   //賦初值
        void Beep();
        void delayms(unsigned char ms);
        void delay(unsigned char t);
        /*********************************************************/
        void main()

             pp=1;
            TMOD=0x21 ;
            TH0=0xfc ;             //1ms延時常數
            TL0=0x66 ;            //頻率調節
            TH1=PWM ;            //脈寬調節
            TL1=0 ;
             EA=1;
             ET0=1;
             ET1=1;
           
             TR0=1 ;
           while(1)
           {
             do{
                    if(PWM!=0xff)
                   {PWM++ ;delayms(10);}
                   else Beep() ;
                 }
             while(K1==0);
             do{
                   if(PWM!=0x02)
                  {PWM-- ;delayms(10);}
                   else Beep() ;
                  }
             while(K2==0);
           }
        }
        /*********************************************************/
        // 定時器0中斷服務程序.
        /*********************************************************/
        void timer0() interrupt 1

            TR1=0 ;
            TH0=0xfc ;
            TL0=0x66 ;
            TH1=PWM ;
            TR1=1 ;
            pp=0 ;      //啟動輸出
        }
        /*********************************************************/
        // 定時器1中斷服務程序
        /*********************************************************/
        void timer1() interrupt 3
        {
            TR1=0 ;
            pp=1 ;     //結束輸出
        }
        /*********************************************************/
        //蜂鳴器子程序
        /*********************************************************/
        void Beep()    
          {
              unsigned char i  ;
              for (i=0  ;i<100  ;i++)
                {
                  delay(100)  ;
                  BEEP=!BEEP  ;                //Beep取反
                }
             BEEP=1  ;                            //關閉蜂鳴器
             delayms(100);
          }
        /*********************************************************/
        // 延時子程序
        /*********************************************************/ 
        void delay(unsigned char t)
         {
            while(t--)   ;
         }
        /*********************************************************/
        // 延時子程序
        /*********************************************************/
        void delayms(unsigned char ms)
        {
            unsigned char i ;
            while(ms--)
             {
                for(i = 0 ; i < 120 ; i++) ;
             }
        }
         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮