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

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

讓沒有PWM功能的單片機實現PWM功能

作者:huqin   來源:本站原創   點擊數:  更新時間: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;     //寫入預置初值241到定時器0,使15微秒溢出一次(11.0592MHz) 
      TL0=241;     //寫入預置值 
      TR0=1;       //啟動定時器 
      ET0=1;       //允許定時器0中斷   
      EA=1;        //允許總中斷
      P1=0xff; //初始化P1 
      while(1)     
      {      
             for(n=0;n<300;n++);  //延時,將響應定時器中斷,燈會自動加/減一個檔次的亮度 
             if(flag==1)       //燈漸亮
             PWM_T++;
             else          //燈漸熄
             PWM_T--;
             if(PWM_T>=10) //設置燈亮度級別為10
             flag=0;
             if(PWM_T==0)   //限定最低亮度級別為0
             flag = 1;
      }         

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

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

關閉窗口

相關文章

主站蜘蛛池模板: 一级肉体全黄裸片 | 亚洲乱色 | www.男人天堂 | 国产精品久久久国产盗摄 | 亚洲黄色大片 | 亚洲成人免费网站 | 蜜桃视频一区二区 | 中文文字幕文字幕高清 | 欧美在线看片 | 九九九视频 | 三级网站免费 | 久久狠 | 成人免费视频一区二区 | 狼人色| 国产精品嫩草影院桃色 | 99久久久国产精品免费蜜臀 | 国内精品视频在线观看 | 午夜视频在线免费观看 | 成人三级视频在线观看 | 欧美日韩第一页 | 欧洲av网站 | 午夜视频一区 | 久久视频在线免费观看 | 黄www| 日韩毛片网站 | www午夜| 成人片在线播放 | 亚洲福利在线观看 | 中文字幕日韩视频 | 91亚洲国产成人久久精品麻豆 | 伊人国产精品 | 国产一级免费视频 | 免费午夜视频 | 国产区精品 | 成年人黄色片 | 又色又爽又黄gif动态图 | 欧美日韩国产精品 | 国产永久视频 | 久久性生活视频 | 国产福利一区二区三区 | 97国产在线视频 |