如何讓MCU同時作兩件事
各位前輩好 請教一下我已經寫好了一支程式用 P3.0 接按鍵 P3.1接LED P3.2接喇叭 現在按P3.0喇叭已可發出音樂 如何讓發出音樂的同時 LED也一起閃爍(LED閃爍的副程式也寫好了) 謝謝
5 個解答
- Jason0821Lv 69 年前最佳解答
"同時" 沒辦法, 但輪流可以....
只要 "輪流" 的時間夠短, 感覺起來就會接近 "同時".....
直接合併程式是不太容易成功的, 因為時間基準不一樣....
方法一:
用 Timer 來做 分時多工是最直接的一種方法, 就是利用 Timer 中斷來決定要做哪一項....
方法二:
用兩個 Timer 直接各做各的, 這個比較方便, 程式改的少.....
2012-02-20 17:47:39 補充:
就算是多執行緒, 也只是分時多工, 8051 只有一個 core....
點個霹靂燈 搞一個 OS, 也太誇張了些.....
- 阿明Lv 59 年前
Keil c 裡面有RTX51即時操作系統(RTOS),能讓8051程式多工運行,RTX51把cpu時間被分成多個時間片段,分配給多個任務(函數)允許最多16個任務
2012-02-22 09:33:34 補充:
補充一下
使用RTX51比你自己寫Timer中斷的分時多工簡易,程式碼複雜度降低很多容易維護,RTX51也是用Timer0中斷來做多工, Keil c 有RTX51 Full 和 RTX51 Tiny兩種版本的即時操作系統,RTX51 Full支援搶占式多工,協調式多工,循環式多工,RTX51 Tiny只支援協調和循環式多工處理不支援搶占式多工
- 9 年前
您只提到MCU,沒有說是哪一種MCU!
您要的這種功能...
看看影片...
LED可以隨著音樂節奏變化....
http://www.youtube.com/watch?v=kXXB6Rdt9Mg
應該就是這樣吧?
其實這個用語音IC很容易就可以做到
影片這顆IC是一顆4 Bits MCU Base的語音IC
MCU 跟語音部份其實是兩個單元! MCU執行語音播放指令後,語音播放就交給語音單元!MCU 部份可以繼續執行的接下來的程式!
最強的是我們可以在語音播放的任何音節安插port 輸出動作,也就是讓LED閃
例如:小星星這首歌....我要讓LED在一閃一閃亮晶晶的每個字LED都閃一下....都可以精確做到~~ 這類聲光效果,在玩具應用上是很普遍的,所以不難的
參考看看....
有興趣或需求,可以到底下部落格留言
參考資料: Me - 您覺得這個回答如何?您可以登入為回答投票。