機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
51單片機脈沖寬度調制(PWM)控制LED燈亮度
51單片機脈沖寬度調制(PWM)控制LED燈亮度
 更新時間:2009-10-28 14:52:28  點擊數(shù):0
【字體: 字體顏色
 /*介紹一個51系列單片機采用脈沖寬度調制(PWM)方式控制LED燈亮度的一個程序,大家都知道,51單片機本身是沒有pwm接口的,這個程序是通過軟件模擬pwm.在一定的頻率的方波中,調整高電平和低電平的占空比,即可實現(xiàn)LED燈亮度控制。程序出自:單片機網(wǎng)unsigned int scale;   //占空比控制變量
void main(void)       // 主程序
{ unsigned int n;    //延時循環(huán)變量
TMOD=0x02;  //定時器0,工作模式2(0000,0010),8位定時模式
TH0=0x06;   //寫入預置初值6到定時器0,使250微秒溢出一次(12MHz)
TL0=0x06;   //寫入預置值
TR0=1;    //啟動定時器
ET0=1;    //允許定時器0中斷
EA=1;     //允許總中斷
while(1)   //無限循環(huán),實際應用中,這里是做主要工作
{ for(n=0;n<50000;n++);  //每過一段時間,就自動加一個檔次的亮度
scale++;    //占空比控制變量scale加1
if(scale==10)  scale=0;  //如果scale=10,使scale為0
} }
timer0() interrupt 1    //定時器0中斷服務程序
{ static  unsigned int   tt ;   //tt用來保存當前時間在一秒中的比例位置
tt++;    //每250微秒增加1
if(tt==10)   //2.5毫秒的時鐘周期
{ tt=0;  //使tt=0,開始新的PWM周期
P2_0=0;  //使LED燈亮
}
if(scale==tt)  //按照當前占空比切換輸出為高電平
P2_0=1;        //使LED燈滅

/*程序中從tt=0開始到scale為低電平,從scale開始到tt=10為高電平,由于scale是變量,所以改變scale就可以改變占空比。*/
  • 上一篇: 詳細介紹用51單片機解密任何紅外遙控器
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1