用雙色LED指示10種狀態
大多數采用微控制器的設備都會有幾種工作狀態。通常是用按鍵開關來控制這些狀態。為盡量降低成本,很多設計都使用一只開關;通過按壓次數來決定微控制器的狀態。本文的電路用一只發光LED來指示所選擇的狀態。
本文引用地址:http://www.j9360.com/article/200416.htm市場上有大量可選用的雙色LED,有各種形狀和顏色,廠家如Kingbright、Optosupply等。這些LED提供了新的機會,僅用一只LED就能指示10種狀態。按壓一個連接到微控制器外接中斷腳的按鍵開關,就能設定狀態(圖1)。每次按下時,中斷例程都會將設備設定到下一個狀態(圖2)。

State0是待機模式,LED熄滅。此時設備在等待按下開關。LED顏色指示出以下的三個狀態。例如,Kingbright公司的WP5A9EGW12.3SFLED可發出紅、綠、橙顏色。加上閃爍就可指示其余的狀態。紅色與綠色LED可以分別獨立地控制,從而獲得六種指示組合(表1)。

微控制器的內部振蕩器作為時鐘源,簡化了電路,因為振蕩器不需要外接元件,其5%的公差足夠用于此應用。固件為外部中斷輸入端設定了內置的上拉電阻。
時鐘速度與預定標器值以及時鐘計數器模寄存器共同決定了LED閃爍的速率。內部振蕩器產生一個12.8MHz的時鐘,獲得3.2MHz的總線頻率,每個循環等于0.3125μs。將預定標器值選為64,則時間計數器模寄存器就可以計算出一個循環為50倍定時器周期(以毫秒為單位)。例如,要獲得1s的閃爍速率,應將時間計數器模設為50000,或十六進制的$C350。
使用列表而不采用程序輪詢的方法,可以大大減少固件的大小(參考文獻1)。此處可以下載到固件的匯編碼。這種方法適用于任何微控制器。甚至可以采用不同的閃爍速率,增加所指示狀態的數量。
評論