久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10855|回復: 1
收起左側

單片機電子琴代碼 8個按鍵控制8個音符 實現簡單音樂播放

[復制鏈接]
ID:166423 發表于 2017-2-24 15:48 | 顯示全部樓層 |閱讀模式
8個按鍵控制8個音符  實現簡單音樂播放
  1. #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

  2. #define KeyPort P3
  3. /*------------------------------------------------
  4.                   全局變量
  5. ------------------------------------------------*/

  6. unsigned char High,Low; //定時器預裝值的高8位和低8位

  7. sbit SPK=P1^2;          //定義喇叭接口

  8. unsigned char code freq[][2]={
  9.   0xD8,0xF7,//00440HZ 1   
  10.   0xBD,0xF8,//00494HZ 2  
  11.   0x87,0xF9,//00554HZ 3  
  12.   0xE4,0xF9,//00587HZ 4   
  13.   0x90,0xFA,//00659HZ 5     
  14.   0x29,0xFB,//00740HZ 6     
  15.   0xB1,0xFB,//00831HZ 7      
  16.   0xEF,0xFB,//00880HZ `1
  17. };
  18. /*------------------------------------------------
  19.                   函數聲明
  20. ------------------------------------------------*/
  21. void Init_Timer0(void);//定時器初始化
  22. /*------------------------------------------------
  23.                     主函數
  24. ------------------------------------------------*/
  25. void main (void)
  26. {
  27. unsigned char num;                  

  28. Init_Timer0();    //初始化定時器0,主要用于數碼管動態掃描
  29. SPK=0;            //在未按鍵時,喇叭低電平,防止長期高電平損壞喇叭
  30. while (1)         //主循環
  31.   {
  32.    switch(KeyPort)
  33.                 {
  34.                  case 0xfe:num= 1;break;
  35.                  case 0xfd:num= 2;break;
  36.                  case 0xfb:num= 3;break;
  37.                  case 0xf7:num= 4;break;
  38.                  case 0xef:num= 5;break;
  39.                  case 0xdf:num= 6;break;
  40.                  case 0xbf:num= 7;break;
  41.                  case 0x7f:num= 8;break;
  42.                  default:num= 0;break;
  43.                 }

  44.         
  45.    if(num==0)
  46.       {
  47.        TR0=0;
  48.        SPK=0;   //在未按鍵時,喇叭低電平,防止長期高電平損壞喇叭
  49.            }
  50.    else
  51.       {
  52.             High=freq[num-1][1];
  53.                    Low =freq[num-1][0];
  54.                 TR0=1;
  55.           }
  56.   }
  57. }


  58. /*------------------------------------------------
  59.                     定時器初始化子程序
  60. ------------------------------------------------*/
  61. void Init_Timer0(void)
  62. {
  63. TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
  64. EA=1;            //總中斷打開
  65. ET0=1;           //定時器中斷打開
  66. //TR0=1;           //定時器開關打開
  67. }
  68. /*------------------------------------------------
  69.                  定時器中斷子程序
  70. ------------------------------------------------*/
  71. void Timer0_isr(void) interrupt 1
  72. {
  73. TH0=High;
  74. TL0=Low;

  75. SPK=!SPK;

  76. }
復制代碼


回復

使用道具 舉報

ID:289506 發表于 2018-7-17 20:09 | 顯示全部樓層
燒寫程序后
蜂鳴器不響啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产黄色小视频在线观看 | 第四色播日韩第一页 | 91视频大全 | 久久久毛片 | 一区二区精品 | 日韩电影一区 | 国产在线精品一区二区三区 | 成人一区精品 | 毛片视频网址 | 国产成人精品高清久久 | 在线a视频 | 91国产在线视频在线 | 亚洲一区久久 | 色综合99| 国产一区二区三区四区三区四 | 日韩欧美一区二区三区在线播放 | 国产精品久久久亚洲 | 成人h电影在线观看 | 免费高清av | 国产精品美女久久久久aⅴ国产馆 | 国产精品久久久久久久午夜片 | 91天堂| 国产成人一区二区三区 | 亚洲福利电影网 | 亚洲一区二区久久 | 亚洲国产成人精品女人久久久野战 | 国产一区二区中文字幕 | 拍真实国产伦偷精品 | 91亚洲免费 | 免费观看av | 欧美 日韩 国产 成人 在线 91 | 99re视频在线 | 另类专区亚洲 | 少妇av片 | www.久| 日本免费一区二区三区四区 | 精品日韩一区 | 国产精品久久久久aaaa九色 | 成人精品国产免费网站 | 亚洲欧美另类在线 | 亚洲福利一区二区 |