如何讓MCU同時作兩件事

各位前輩好 請教一下我已經寫好了一支程式用 P3.0 接按鍵 P3.1接LED P3.2接喇叭 現在按P3.0喇叭已可發出音樂 如何讓發出音樂的同時 LED也一起閃爍(LED閃爍的副程式也寫好了) 謝謝

5 個解答

評分
  • 9 年前
    最佳解答

    "同時" 沒辦法, 但輪流可以....

    只要 "輪流" 的時間夠短, 感覺起來就會接近 "同時".....

    直接合併程式是不太容易成功的, 因為時間基準不一樣....

    方法一:

    用 Timer 來做 分時多工是最直接的一種方法, 就是利用 Timer 中斷來決定要做哪一項....

    方法二:

    用兩個 Timer 直接各做各的, 這個比較方便, 程式改的少.....

    2012-02-20 17:47:39 補充:

    就算是多執行緒, 也只是分時多工, 8051 只有一個 core....

    點個霹靂燈 搞一個 OS, 也太誇張了些.....

  • 阿明
    Lv 5
    9 年前

    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只支援協調和循環式多工處理不支援搶占式多工

  • 您只提到MCU,沒有說是哪一種MCU!

    您要的這種功能...

    看看影片...

    LED可以隨著音樂節奏變化....

    http://www.youtube.com/watch?v=kXXB6Rdt9Mg

    Youtube thumbnail

    應該就是這樣吧?

    其實這個用語音IC很容易就可以做到

    影片這顆IC是一顆4 Bits MCU Base的語音IC

    MCU 跟語音部份其實是兩個單元! MCU執行語音播放指令後,語音播放就交給語音單元!MCU 部份可以繼續執行的接下來的程式!

    最強的是我們可以在語音播放的任何音節安插port 輸出動作,也就是讓LED閃

    例如:小星星這首歌....我要讓LED在一閃一閃亮晶晶的每個字LED都閃一下....都可以精確做到~~ 這類聲光效果,在玩具應用上是很普遍的,所以不難的

    參考看看....

    有興趣或需求,可以到底下部落格留言

    http://tw.myblog.yahoo.com/work-union

    參考資料: Me
  • 9 年前

    多執行緒?

    那可能要麻煩你針對8051寫一個OS了

    2012-02-20 21:07:26 補充:

    若只是分時多工...那就不是多執行緒..

    別混為一談...差的可遠了

  • 您覺得這個回答如何?您可以登入為回答投票。
  • Allen
    Lv 7
    9 年前

    沒辦法採用「多執行緒」嗎?

還有問題?馬上發問,尋求解答。