最近公司立項了乙個小專案,通過rfid控制nxp非接觸式卡片上的多顆led。選用的微控制器必須低功耗,還能控制16路rgb燈光,io口有限,於是乎硬體設計上,陽極使用16個io 另加3個控制rgb管腳,復用連線到每可led的陰極。軟體設計思路如下:
人眼對於每11毫秒閃爍一次約83hz基本感覺不到。例如採用100hz,那麼10ms內輪流點亮16個燈可以達到要求。每個燈需要獲得一定的時間片,才能保持住io的電壓,達到點亮的目的;
**框架上選用timer來重新整理燈光組。偽碼如下:
void
timer()
int main()
return0;
}
timer時間片要小於 10ms/16;
在點亮某個燈的時間片內需要關閉其他燈,防止rgb的io狀態串到其他燈;
採用timer的目的是與系統的其他功能互不影響:從nxp晶元得到控制資訊等功能運算包括設定led的狀態,不影響燈光系統的重新整理功能的執行;
由於時間片分配到每個led有限,所以亮度會比單獨點亮時低,led更少時占空比會縮小,亮度也會增大;
獲取指令部分可以採用中斷方式實現,讓系統可以更多時間休眠。並且控制指令可以啟用和停止led重新整理timer,來達到低功耗的目的,實測可以達到專案要求。
微控制器的IO模式
以nuvoton的m0516為例,io引腳可以配置為四種模式 1,高阻輸入模式,這種方式只用於輸入資料的讀取。2,開漏模式,這種方式若不接上拉電阻時,則可以輸出高阻或低電平兩種狀態,作為輸出是一般需要外接上拉電阻的。3,準雙向模式,這種方式具有輸入和輸出的功能。當io輸出為高電平時,其驅動能力很弱,...
微控制器擴充套件IO口
微控制器如何擴充套件io口?首先我們先講講為什麼要擴充套件io口。在我們使用51微控制器的時候,有時候會出現io口不夠用的情況。比如鍵盤!這個時候io口的資源就十分有限了。按鍵是我們常用的器件,做某些東西的時候又不能缺少按鍵。如果乙個按鍵對應乙個io口,那麼可想而知,按鍵所佔的io口的數量是很大的。...
微控制器I O控制方式
微控制器如何實現當乙個程式在訪問乙個i o裝置時,而不占用cpu呢?對於這個問題,我們先了解一下微控制器i o裝置有哪幾種主要的控制方式 基本思路 在裝置驅動程式當中,通過不斷地檢測i o裝置的當前狀態,來控制乙個i o操作的完成。這種方式也稱為是繁忙等待方式或輪詢方式。缺點 在進行乙個i o操作的...