單片機課程設計簡易電子琴
- 文件介紹:
- 該文件為 doc 格式,下載需要 0 積分
- 單片機課程設計簡易電子琴
1.任務及要求
設計一個51單片機系統,實現簡易電子琴操作的電路。
要求:
1.設計51單片機最小系統;
2.設置至少10個按鍵,能發出do re mi fa sol la si do;
能播放示范曲;
3.能夠調節低音、高音和中音。
2.設計方案
1.定時/計數器的設計和狀態字定義:
若要產生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當計時終止后就將P1.0反相,然后重復計時再反相。就可在P1.0引腳上得到此頻率的脈沖。利用AT89C51的內部定時器使其工作計數器模式(MODE1)下,改變計數值TH0及TL0以產生不同頻率的方法產生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數器計時956μs/1μs=956,每計數956次時將I/O反相,就可得到中音DO(523Hz)。計數脈沖值與頻率的關系式是:N=fi÷2÷fr,式中,N是計數值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產生的頻率。其計數初值T的求法如下:T=65536-N=65536-fi÷2÷fr
例如:設K=65536,fi=1MHz,求中音DO(261Hz)。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。
單片機12MHZ晶振,中音符與計數T0相關的計數值如表所示
...