1樓:匿名使用者
樓上說的da做我還真沒有看懂,da不是出電平的嗎?這裡要做頻率,用da不用定時器恐怕不可能做到。還有,我敢說8032做這個綽綽有餘。
另外樓主說的已經很清楚了,這個設計毫無難度可言,只要你會用微控制器就能做,如果用匯編寫我可以給個流程圖:
a,b是我起的名字,用來表示定時器的待裝值,你可以選r0,r1
主程式(在這裡死迴圈)
定時期中斷程式:
當然任何彙編的開頭設定中斷向量,絕對跳轉,設定中斷和堆疊初值的語句我就省了。
程式解釋:(似乎沒的解釋)
檢測到按鍵就把事先計算好的初值裝入ab並開啟定時器,此時定時器過極短時間開啟(這裡沒有設初值是因為按鍵第1次後再檢測到會影響到定時期自己裝初值,從而影響頻率。所以這裡不設初值,任由初值為任何值都會在人類無法感到的短時間內溢位並開始裝入正確的初值),開始按正常頻率裝入初值、併發出對應頻率的聲音,然後繼續檢測按鍵,檢測不到按鍵就關定時期,檢測到別的按鍵重新裝入ab值,發出新的聲音。
2樓:
你這是要自己製作還是?用c51還是?
這個主要是鍵盤掃描和定時器的定時值,一般都採取查表的方式查詢定時值,然後通過一個三極體進行音訊放大和驅動揚聲器,具體是要做什麼你也不說~要程式?我現在比較忙我給你個微控制器產生**的程式,你只要是在加個鍵盤掃描程式和算出每個鍵值對應的資料就可以了,最好給我留個郵箱,我隔天給你發過去。
3樓:匿名使用者
是不把鍵盤當成是「多來米發說類起多」鍵來用啊??如果是的話到好辦。
每一個音符對應著不同的頻率,也就是時鐘週期,你按下鍵,51微控制器讀入鍵值,然後取對應的頻率經過d/a轉換,把脈衝輸出,比如1鍵對應於多,你先算出對應的「多」的頻率碼值,當鍵盤輸入1時,把多的碼值經過d/a輸出,你不用d/a用th0及tl0來應該也行吧,就是把碼值送入th0及tl0,進行迴圈計數,但到0時輸出一個訊號,如此迴圈輸出n次,出來的就是頻率了,接下來再接收下一個鍵盤值,在用th0及tl0計數輸出。不過8032夠嗆。我沒有實際做過,不知道啊,實驗箱應該都有d/a的。
你還是把問題寫清楚吧,
4樓:匿名使用者
電子琴,用不著用微控制器做。
5樓:廈門遠華集團
只懂pc的單片,電子音響的我真不知道。
不好意思,幫不上你的忙。
放鬆心情,好運。
6樓:匿名使用者
沒做過,我相信你能成功的!買份電子報合訂本,裡面有微控制器內容,相信有用。
懂c的高手進高分懸賞,微控制器的高手進!高分懸賞改程式,線上等
懶得幫你寫 string test abcdefghijklmnopqrstuvwxyz,1234567890 abcdefghijklmnopqrstuvwxyz midl midl itf mshtml 0250 0001 string test2 for int i 0 i test.leng...
C 微控制器高手,微控制器為什麼不用C 語言程式設計呢
相信很多初學者都有同樣的疑問,也有同樣的希望。就是用c 語言來寫微控制器程式的源 現在我來解釋一下微控制器的源 程式幾乎沒有人用c 來寫的。1.假設一下你現在用c 寫完了一個程式 那麼你要讓微控制器認識必須要編譯吧,對吧 請問你有合適的編譯軟體來編譯你的 嗎?2.就算有編譯器能編譯,你能保證它的 效...
微控制器頻率計如何計算更精確,用51微控制器做的頻率計為什麼會有誤差?
1全部100ms,測量一次,顯示一次,顯示數值跳動,是正常的。可以把四次的數值,取平均值,每隔400ms,顯示一次 這樣,跳動的現象就會明顯減小。如果把八次的數值,取平均值,每隔800ms,顯示一次 這時,顯示的就會很穩定了,但是,也顯得 遲鈍 和 冷漠 多了。每隔400ms,顯示一次平均值,效果最...