51單片機唱歌C51音樂程序[整理]_第1頁
51單片機唱歌C51音樂程序[整理]_第2頁
51單片機唱歌C51音樂程序[整理]_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、51 單片機唱歌C51 音樂程序 整理 51 單片機唱歌C51音樂程序,i nclude <reg52.h> ,i nclude <intrins.h> /本例采用89C52,晶振為11.0592MHZ /關于如何編制音樂代碼,其實十分簡單, 各位可以看以下代碼./ 頻率常數即音樂術語中的音調 , 而節拍常數即音樂術語中的多少拍 ;/ 所以拿出譜子 , 試探編吧 !unsigned char n=0; /n為節拍常數變量unsigned char code music_tab= 0x18, 0x30, 0x1C , 0x10, /格式為 :頻率常數 ,節拍常數 ,頻率常

2、數 ,節拍常數 ,0x20, 0x40, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x10, 0x1C, 0x10, 0x18 , 0x40, 0x1C, 0x20, 0x20 , 0x20, 0x1C, 0x20, 0x18 , 0x20, 0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C, 0x20, 0x20, 0x20 ,0x26, 0x40, 0x20, 0x20 , 0x2B, 0x20, 0x26, 0x20 , 0x20, 0x20, 0x30,0x80 , 0

3、xFF, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26,0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B ,0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20,0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20,

4、 0x2B, 0x20, 0x26 , 0x20, 0x20,0x20, 0x30 , 0x80, 0x20, 0x30, 0x1C , 0x10, 0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20, 0x2B, 0x20, 0x30 , 0x20, 0x2B, 0x40, 0x20 ,0x15,0x1F, 0x05, 0x20 , 0x10, 0x1C, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x1

5、8, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x26 , 0x20, 0x20, 0x20, 0x30 , 0x30, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x40, 0x1C , 0x20, 0x20, 0x20, 0x26 , 0x40, 0x13, 0x60, 0x18 , 0x20, 0x15, 0x40, 0x13 , 0x40, 0x18, 0x80, 0x00 ;void int0() interrupt 1 /采用中斷 0 控制節

6、拍 TH0=0xd8; TL0=0xef;n-;void delay (unsigned char m) /unsigned i=3*m;while(-i);控制頻率延時void delayms(unsigned char a) / 豪秒延時子程序while(-a); /采用while(-a)不要采用while(a-);各位可編譯一下看看匯編結果就知道了 ! void main() unsigned char p,m; /m為頻率常數變量unsigned char i=0;TMOD&=0x0f;TMOD =0x01;TH0=0xd8;TL0=0xef;IE=0x82;play:while(1)a: p=music_tabi;if(p=0x00) i=0, delayms(1000); goto play; /如果碰到結束符 , 延時 1秒 ,回到開始再來一遍else if(p=0xff) i=i+1;delayms(100),TR0=0; goto a; /若碰到休止符 ,延時 100ms,繼續取下一音符else m=music_tabi+, n=music_tabi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論