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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

讓沒有PWM功能的單片機實現(xiàn)PWM功能

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年11月15日   【字體:

        AT89S51本身沒有PWM接口,程序采用軟件模擬PWM,P1口控制LED亮度,模擬PWM輸出控制燈的10個亮度級。

#include <reg51.h>
#define uInt unsigned int
#define uchar unsigned char
uchar PWM_T = 0;   //占空比控制變量 
//////////////////主程序入口//////////////////////
void main(void)      

      bit flag = 1; //控制燈漸亮漸熄方式
      uInt n;
      TMOD=0x02;   //定時器0,工作模式2,8位定時模式 
      TH0=241;     //寫入預(yù)置初值241到定時器0,使15微秒溢出一次(11.0592MHz) 
      TL0=241;     //寫入預(yù)置值 
      TR0=1;       //啟動定時器 
      ET0=1;       //允許定時器0中斷   
      EA=1;        //允許總中斷
      P1=0xff; //初始化P1 
      while(1)     
      {      
             for(n=0;n<300;n++);  //延時,將響應(yīng)定時器中斷,燈會自動加/減一個檔次的亮度 
             if(flag==1)       //燈漸亮
             PWM_T++;
             else          //燈漸熄
             PWM_T--;
             if(PWM_T>=10) //設(shè)置燈亮度級別為10
             flag=0;
             if(PWM_T==0)   //限定最低亮度級別為0
             flag = 1;
      }         

///////////////////定時器0中斷模擬PWM////////////////////
timer0() interrupt 1 using 2  

      static  uchar   t ;   //t用來保存當(dāng)前時間在一秒中的比例位置 
       t++;    //每15微秒增加1 
       if(t==10)   //1.5毫秒的時鐘周期 
      { 
             t=0;  //使t=0,開始新的PWM周期 
             P1=0x00;  //使LED燈亮              
      }
     if(PWM_T==t)  //按照當(dāng)前占空比切換輸出為高電平 
     P1=0xff;        //使LED燈滅         
}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚洲不卡视频 | 日本色婷婷| 日韩毛片免费视频 | h视频在线观看免费 | 欧美男人天堂 | 久久99精品久久久97夜夜嗨 | 四虎永久 | 毛片免费看 | 男人天堂色 | www.788.com色淫免费 | 亚洲码欧美码一区二区三区 | 成年人国产在线观看 | 91精品国产综合久久婷婷香蕉 | 99九九视频 | 亚洲自拍偷拍免费视频 | 国产一级视频在线 | 国产综合精品一区二区三区 | 国产日韩欧美精品一区二区 | av片网站 | 国产精品视频播放 | 久久91av| 久久看看 | 色综合视频 | 欧美日在线 | 一级一级毛片免费看 | 久久成人国产精品 | 亚洲成人日韩 | 人人干人人干人人干 | 久久久精品一区 | 久久天堂网| 国产成人精品免费视频大全最热 | 日韩高清国产一区在线 | 九九综合 | 噜噜噜噜狠狠狠7777视频 | 一区二区三区国产好 | 久久久久久蜜桃一区二区 | www.47久久青青 | 范冰冰一级做a爰片久久毛片 | 久久精品这里 | 久久久网 | 亚洲精品 在线播放 |