欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

       找回密碼
       立即注冊

      QQ登錄

      只需一步,快速開始

      搜索
      查看: 1797|回復: 1
      打印 上一主題 下一主題
      收起左側

      單片機演奏《八月桂花》源代碼

      [復制鏈接]
      跳轉到指定樓層
      樓主
      ID:487574 發表于 2019-3-9 23:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      [文件名]  C51音樂程序(八月桂花)  
      [功能]    通過單片機演奏音樂  

      1. /**********************************************************************/   
      2. #include <REG52.H>   
      3. #include <INTRINS.H>   
      4. //本例采用89C52, 晶振為12MHZ   
      5. //關于如何編制音樂代碼, 其實十分簡單,各位可以看以下代碼.   
      6. //頻率常數即音樂術語中的音調,而節拍常數即音樂術語中的多少拍;   
      7. //所以拿出譜子, 試探編吧!   

      8. sbit Beep =  P1^5;

      9. unsigned char n=0;  //n為節拍常數變量   
      10. unsigned char code music_tab[] ={   
      11. 0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數, 節拍常數, 頻率常數, 節拍常數,   
      12. 0x20, 0x40, 0x1C , 0x10,   
      13. 0x18, 0x10, 0x20 , 0x10,   
      14. 0x1C, 0x10, 0x18 , 0x40,   
      15. 0x1C, 0x20, 0x20 , 0x20,   
      16. 0x1C, 0x20, 0x18 , 0x20,   
      17. 0x20, 0x80, 0xFF , 0x20,   
      18. 0x30, 0x1C, 0x10 , 0x18,   
      19. 0x20, 0x15, 0x20 , 0x1C,   
      20. 0x20, 0x20, 0x20 , 0x26,   
      21. 0x40, 0x20, 0x20 , 0x2B,   
      22. 0x20, 0x26, 0x20 , 0x20,   
      23. 0x20, 0x30, 0x80 , 0xFF,   
      24. 0x20, 0x20, 0x1C , 0x10,   
      25. 0x18, 0x10, 0x20 , 0x20,   
      26. 0x26, 0x20, 0x2B , 0x20,   
      27. 0x30, 0x20, 0x2B , 0x40,   
      28. 0x20, 0x20, 0x1C , 0x10,   
      29. 0x18, 0x10, 0x20 , 0x20,   
      30. 0x26, 0x20, 0x2B , 0x20,   
      31. 0x30, 0x20, 0x2B , 0x40,   
      32. 0x20, 0x30, 0x1C , 0x10,   
      33. 0x18, 0x20, 0x15 , 0x20,   
      34. 0x1C, 0x20, 0x20 , 0x20,   
      35. 0x26, 0x40, 0x20 , 0x20,   
      36. 0x2B, 0x20, 0x26 , 0x20,   
      37. 0x20, 0x20, 0x30 , 0x80,   
      38. 0x20, 0x30, 0x1C , 0x10,   
      39. 0x20, 0x10, 0x1C , 0x10,   
      40. 0x20, 0x20, 0x26 , 0x20,   
      41. 0x2B, 0x20, 0x30 , 0x20,   
      42. 0x2B, 0x40, 0x20 , 0x15,   
      43. 0x1F, 0x05, 0x20 , 0x10,   
      44. 0x1C, 0x10, 0x20 , 0x20,   
      45. 0x26, 0x20, 0x2B , 0x20,   
      46. 0x30, 0x20, 0x2B , 0x40,   
      47. 0x20, 0x30, 0x1C , 0x10,   
      48. 0x18, 0x20, 0x15 , 0x20,   
      49. 0x1C, 0x20, 0x20 , 0x20,   
      50. 0x26, 0x40, 0x20 , 0x20,   
      51. 0x2B, 0x20, 0x26 , 0x20,   
      52. 0x20, 0x20, 0x30 , 0x30,   
      53. 0x20, 0x30, 0x1C , 0x10,   
      54. 0x18, 0x40, 0x1C , 0x20,   
      55. 0x20, 0x20, 0x26 , 0x40,   
      56. 0x13, 0x60, 0x18 , 0x20,   
      57. 0x15, 0x40, 0x13 , 0x40,   
      58. 0x18, 0x80, 0x00   
      59. };   

      60. void int0()  interrupt 1   //采用中斷0 控制節拍   
      61. {  TH0=0xd8;   
      62.    TL0=0xef;   
      63.    n--;   
      64. }   

      65. void delay (unsigned char m)   //控制頻率延時   
      66. {   
      67. unsigned i=3*m;   
      68. while(--i);   
      69. }   

      70. void delayms(unsigned char a)  //豪秒延時子程序   
      71. {   
      72.   while(--a);                  //采用while(--a) 不要采用while(a--); 各位可編譯一下看看匯編結果就知道了!   
      73. }   

      74. void main()   
      75. { unsigned char p,m;   //m為頻率常數變量   
      76.   unsigned char i=0;   
      77.   TMOD&=0x0f;   
      78.   TMOD|=0x01;   
      79.   TH0=0xd8;TL0=0xef;   
      80.   IE=0x82;   
      81. play:   
      82.    while(1)   
      83.     {   
      84.     a: p=music_tab[i];   
      85.        if(p==0x00)       { i=0, delayms(1000); goto play;}     //如果碰到結束符,延時1秒,回到開始再來一遍   
      86.        else if(p==0xff)  { i=i+1;delayms(100),TR0=0; goto a;}  //若碰到休止符,延時100ms,繼續取下一音符   
      87.             else         {m=music_tab[i++], n=music_tab[i++];}  //取頻率常數 和 節拍常數   
      88.              TR0=1;                                             //開定時器1   
      89.            while(n!=0) Beep=~Beep,delay(m);                         //等待節拍完成, 通過P1口輸出音頻(可多聲道哦!)   
      90.        TR0=0;                                             //關定時器1   
      91.     }   
      92. }  
      復制代碼
      分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
      收藏收藏4 分享淘帖 頂1 踩
      回復

      使用道具 舉報

      沙發
      ID:1039922 發表于 2022-7-20 23:53 | 只看該作者
      確實可以,真不錯!
      回復

      使用道具 舉報

      您需要登錄后才可以回帖 登錄 | 立即注冊

      本版積分規則

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

      Powered by 單片機教程網

      快速回復 返回頂部 返回列表