您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>發(fā)光二極管>

定時器中斷程序 - 一種多功能LED臺燈設計方案

2012年05月02日 10:45 本站整理 作者:秩名 用戶評論(0
關鍵字:LED臺燈(20303)
2.4 定時器中斷程序

  為產(chǎn)生調(diào)節(jié) LED 燈光亮度的PWM 信號,定時器T0 設置為工作方式0,即13 位計數(shù)器定時,最多裝載數(shù)值為213=8192 個。因為系統(tǒng)晶振采用12MHz,賦值使TH0=(8192-400)/ 32 與 TL0=(8192-400)%32,即可實現(xiàn)400μ S 的定時中斷。10 次中斷(即4mS)作為一個周期,通過調(diào)節(jié)每個周期內(nèi)單片機P1.1(該控制口名稱定義為LED_PWM)輸出的占空比來產(chǎn)生PWM 脈沖信號,以控制PT4115 恒流驅(qū)動芯片實現(xiàn)LED 燈的10 級亮度調(diào)節(jié)。

  程序設置對T0 中斷次數(shù)(即定義為T0_num)進行計數(shù),以便判斷一個周期到否;同時判斷比較高電平脈沖個數(shù)(即定義為scale 值,由調(diào)光鍵S6 按下次數(shù)設置)用于實現(xiàn)不同亮度等級的調(diào)節(jié)。在定時器T0 中斷服務程序中,首先T0 重新裝入定時為400μ S 的初值;定時器中斷次數(shù)T0_num 加1,判斷一個方波周期到否,若到達,令T0_num 歸零,并將P1.1口輸出電平置高(即LED_PWM=1);如果一個方波周期還沒到,則與亮度等級scale 值作比較,判斷高電平脈沖個數(shù)scale 到否,若到達,令P1.1 口輸出電平置低(即LED_PWM=0),否則繼續(xù)保持P1.1 口輸出高電平(即LED_PWM=1);而后中斷返回,等待下一次定時中斷。

  這樣,P1.1 口就產(chǎn)生了所需的PWM 調(diào)光信號。定時器生成PWM 流程圖如圖13所示。

  

圖13 定時器生成PWM流程圖

?

  圖13 定時器生成PWM流程圖

  3 實驗結果

  根據(jù)以上設計方案,本文制作了該款基于PWM 調(diào)光的多功能LED 臺燈。經(jīng)調(diào)試后系統(tǒng)運行穩(wěn)定可靠,基本可以滿足家庭生活的使用要求。系統(tǒng)工作時,最低功率(即LED 熄滅狀態(tài))為0.28W;最大功率(即LED 最高亮度狀態(tài))約為1.52W;同時,液晶顯示時間、日歷與溫度數(shù)據(jù)準確,鬧鐘功能穩(wěn)定。實物照片如圖14 所示。

  

?

  圖 14 實物照片

非常好我支持^.^

(25) 92.6%

不好我反對

(2) 7.4%

( 發(fā)表人:diyfans )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?