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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1725|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)電子琴加強(qiáng)版代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:869397 發(fā)表于 2020-12-28 13:21 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  1. #include <stc15.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit KEY1=P3^2;
  5. sbit KEY2=P3^3;
  6. sbit KEY3=P3^6;
  7. sbit KEY4=P3^7;
  8. sbit KEY5=P1^3;
  9. sbit KEY6=P1^2;
  10. sbit KEY7=P1^0;
  11. sbit KEY8=P1^1;
  12. sbit beep=P1^5;
  13. uint z;
  14. uint code tone[8]={0xFCAC,0xFD09,0xFD34,0xFD82,0xFDC8,0xFE06,0xFE22,0xFC44};//對應(yīng)每個單調(diào)的計數(shù)初值
  15.         uchar k,i;
  16. void song1();
  17. uchar timer0h,timer0l,time;

  18.                          //世上只有媽媽好  數(shù)據(jù)表
  19. code uchar sszymmh[]={6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,
  20.                       6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,
  21.                       6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,
  22.                       5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,
  23.                       2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0
  24.                                       };
  25.                          // 音階頻率表 高八位
  26. code uchar FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
  27.                     0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
  28.                     0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
  29.                     0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;
  30.                          // 音階頻率表 低八位
  31. code uchar FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
  32.                     0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
  33.                     0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
  34.                     0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};
  35. void delay(uint t);
  36. void anjian()
  37. {
  38.         KEY1=1;KEY2=1;KEY3=1;KEY4=1;KEY5=1;KEY6=1;KEY7=1;KEY8=1;
  39.         if(KEY1==0)
  40.         {

  41.                 timer0h=FREQH[14];
  42.                 timer0l=FREQL[14];
  43.         }
  44.         if(KEY2==0)
  45.         {

  46.                 timer0h=FREQH[15];
  47.                 timer0l=FREQL[15];
  48.         }
  49.         if(KEY3==0)
  50.         {

  51.                 timer0h=FREQH[16];
  52.                 timer0l=FREQL[16];
  53.         }
  54.         if(KEY4==0)
  55.         {

  56.                 timer0h=FREQH[17];
  57.                 timer0l=FREQL[17];
  58.         }
  59.         if(KEY5==0)
  60.         {

  61.                 timer0h=FREQH[18];
  62.                 timer0l=FREQL[18];
  63.         }
  64.         if(KEY6==0)
  65.         {

  66.                 timer0h=FREQH[19];
  67.                 timer0l=FREQL[19];
  68.         }
  69.         if(KEY7==0)
  70.         {

  71.                 timer0h=FREQH[20];
  72.                 timer0l=FREQL[20];
  73.         }
  74.         if(KEY8==0)
  75.         {

  76.                 timer0h=FREQH[21];
  77.                 timer0l=FREQL[21];
  78.         }
  79.         if(KEY1==0&&KEY8==0)
  80.         {
  81.                 i=0;
  82.                 song1();
  83.         }
  84. }
  85. void zdkg()
  86. {
  87.         if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1&&KEY5==1&&KEY6==1&&KEY7==1&&KEY8==1)
  88.         {        
  89.                 TR0=0;//如果沒有按鍵按下,就關(guān)閉定時器中斷
  90.                 beep=1;//同時也關(guān)閉蜂鳴器
  91.         }
  92.         else
  93.         {
  94.                 TR0=1;
  95.         }
  96. }

  97. void song()                                 //  音樂處理函數(shù)
  98. {
  99.         TH0=timer0h;
  100.         TL0=timer0l;
  101.         TR0=1;
  102.         delay(time);                       
  103. }

  104. void song1()
  105. {
  106.         while(i<100)                                  //音樂數(shù)組長度 ,唱完從頭再來  
  107.                 {              
  108.                         k=sszymmh[i]+7*sszymmh[i+1]-1;
  109.                         timer0h=FREQH[k];
  110.                         timer0l=FREQL[k];
  111.                         time=sszymmh[i+2];
  112.                         i=i+3;
  113.                         song();
  114.                 }
  115. }

  116. void main()
  117. {
  118.         P1M0=0;P1M1=0;
  119.         P3M0=0;P3M1=0;
  120.         KEY1=1;KEY2=1;KEY3=1;KEY4=1;KEY5=1;KEY6=1;KEY7=1;KEY8=1;
  121.         EA=1;//開總中斷
  122.         ET0=1;//定時器T0中斷允許
  123.         TMOD=0x01;//使用定時器T0的模式1
  124.         TH0=(65536-500)/256;//定時器T0的高8位重新賦初值
  125.         TL0=(65536-500)%256;//定時器T0的低8位重新賦初值
  126.         while(1)
  127.         {
  128.           anjian();
  129.           zdkg();         
  130.         }
  131. }

  132. void t0int() interrupt 1                //定時器中斷函數(shù)
  133. {
  134.         TR0=0;
  135.         beep=!beep;
  136.         TH0=timer0h;
  137.         TL0=timer0l;
  138.         TR0=1;
  139. }
  140. void delay(uchar t)                  // 延時函數(shù)
  141. {
  142.         uchar t1;
  143.         unsigned long t2;
  144.         for(t1=0;t1<t;t1++)
  145.         {
  146.                 for(t2=0;t2<8000;t2++);
  147.         }
  148.         TR0=0;
  149. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www.久| 91 久久 | 午夜成人在线视频 | 99免费| 在线国产中文字幕 | 国产精品成人国产乱一区 | 成人欧美一区二区三区黑人孕妇 | 精品国产91亚洲一区二区三区www | 国产精品精品 | 北条麻妃99精品青青久久主播 | 人人干人人看 | 国产九九av | 午夜婷婷激情 | 午夜激情国产 | 精品欧美一区免费观看α√ | 欧美精品久久 | 91精品国产色综合久久 | 波多野结衣av中文字幕 | 国产精品久久影院 | 久久一久久 | 91高清视频在线观看 | 亚洲3级 | a在线视频观看 | 国产精品黄 | 成人午夜视频在线观看 | 国产三区视频在线观看 | 91在线视频播放 | 91玖玖 | 在线免费观看欧美 | 亚洲网站在线观看 | 日韩国产欧美 | 久久久久久久久久久久久久国产 | 日本精品一区二区在线观看 | 一区二区三区 在线 | 国产亚洲欧美日韩精品一区二区三区 | 亚洲乱码一区二区 | 手机在线不卡av | 国产日韩精品一区二区三区 | 亚洲一区二区免费视频 | 久久久久久国产精品免费免费 | 亚洲精品视频在线 |