找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 5600|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)模擬音樂-世上只有媽媽好

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:191077 發(fā)表于 2017-6-18 17:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
51單片機(jī) 世上只有媽媽好:
實(shí)驗(yàn)4 模擬音樂-世上只有媽媽好.rar (30.97 KB, 下載次數(shù): 14)


  1. /*********************************************************************************
  2. * 【實(shí)驗(yàn)平臺(tái)】: QX-MCS51 單片機(jī)開發(fā)板
  3. * 【外部晶振】: 11.0592mhz       
  4. * 【主控芯片】: STC89C52RC
  5. * 【編譯環(huán)境】: Keil μVisio4       
  6. * 【程序功能】: 無源蜂鳴器測(cè)試-世上只有媽媽好                                                                                           
  7. * 【使用說明】: 使用前請(qǐng)接上J1跳線帽
  8. **********************************************************************************/

  9. #include <reg52.h>   
  10. #define uchar unsigned char
  11. sbit      beep=P3^6;          //定義蜂鳴器輸出端口
  12. uchar timer0h,timer0l,time;

  13.                          //世上只有媽媽好  數(shù)據(jù)表
  14. code uchar sszymmh[]={6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,
  15.                       6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,
  16.                       6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,
  17.                       5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,
  18.                       2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0
  19.                                       };
  20.                          // 音階頻率表 高八位
  21. code uchar FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
  22.                     0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
  23.                     0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
  24.                     0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;
  25.                          // 音階頻率表 低八位
  26. code uchar FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
  27.                     0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
  28.                     0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
  29.                     0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};
  30. void delay(uchar t)                  // 延時(shí)函數(shù)
  31. {
  32.         uchar t1;
  33.         unsigned long t2;
  34.         for(t1=0;t1<t;t1++)
  35.         {
  36.                 for(t2=0;t2<8000;t2++);
  37.         }
  38.         TR0=0;
  39. }
  40. void song()                                 //  音樂處理函數(shù)
  41. {
  42.         TH0=timer0h;
  43.         TL0=timer0l;
  44.         TR0=1;
  45.         delay(time);                       
  46. }
  47. /******************************************************************
  48.                                           主函數(shù)                                      
  49. ******************************************************************/
  50. void main(void)
  51. {
  52.         uchar k,i;
  53.         TMOD=1;                         //置CT0定時(shí)工作方式1
  54.         EA=1;
  55.         ET0=1;                                //IE=0x82 //CPU開中斷,CT0開中斷
  56.         while(1)
  57.         {
  58.                 i=0;  
  59.                 while(i<100)                                  //音樂數(shù)組長(zhǎng)度 ,唱完從頭再來  
  60.                 {              
  61.                         k=sszymmh[i]+7*sszymmh[i+1]-1;
  62.                         timer0h=FREQH[k];
  63.                         timer0l=FREQL[k];
  64.                         time=sszymmh[i+2];
  65.                         i=i+3;
  66.                         song();
  67.                 }
  68.         }
  69. }
  70. void t0int() interrupt 1                //定時(shí)器中斷函數(shù)
  71. {
  72.         TR0=0;
  73.         beep=!beep;
  74.         TH0=timer0h;
  75.         TL0=timer0l;
  76.         TR0=1;
  77. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:773295 發(fā)表于 2020-6-11 11:19 | 只看該作者
為什么仿真圖打不開
回復(fù)

使用道具 舉報(bào)

板凳
ID:231922 發(fā)表于 2024-4-12 20:38 | 只看該作者
感謝樓主分享,下載下來學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表