wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: 分享一個51單片機電子琴代碼和仿真 [打印本頁]

作者: 1290153461    時間: 2021-3-12 15:41
標題: 分享一個51單片機電子琴代碼和仿真
51電子琴,附帶仿真


單片機源程序如下:
  1. //////////////////////////////////////////////////////////////////////////////////         
  2. //  功能描述   : OLED 4接口
  3. //              ----------------------------------------------------------------
  4. //              GND                電源地
  5. //              VCC                接5V或3.3v電源
  6. //              SCL                P1^0
  7. //              SDA                P1^1              
  8. //              ----------------------------------------------------------------
  9. //                                K9                P1^2;//音樂播放按鍵
  10. //                                KD                P1^3;//低音播放
  11. //                                KG                P1^4;//高音播放
  12. //                                beep        P1^5;           //蜂鳴器定義
  13. //******************************************************************************/
  14. #include "REG52.h"
  15. #include "oled.h"
  16. #include "bmp.h"
  17. #include <music.h>

  18. #define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
  19. #define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535
  20. sbit K9=P1^2;//音樂播放按鍵2
  21. sbit KD=P1^3;//低音播放
  22. sbit KG=P1^4;//高音播放
  23. sbit beep=P1^5;           //蜂鳴器定義
  24. sbit K10=P1^6;//錄入指示
  25. sbit K11=P1^7;//休止符
  26. sbit K12=P3^2;//播放錄入的
  27. sbit K13=P3^3;//

  28. unsigned char n=0,m=0,k=0;  //定義取頻率常數m和節拍常數n   數組元素編號k
  29. unsigned char music_load[]={ 8,2,9,2,10,2,11,2,12,2,12,2,12,1,11,1,10,2,11,2,11,2,11,1,10,1,9,1,0xff,8,2,10,2,12,4,0};

  30. void delay(uchar i)//用于OLED顯示
  31. {
  32.   uchar j,u,v;
  33.   for(j=i;j>0;j--)
  34.     for(u=125;u>0;u--)
  35.                 for(v=125;v>0;v--);
  36. }
  37.    
  38. void delayms(unsigned char j)  //毫秒延時子程序  用于播放音樂  
  39. {   
  40.         while(--j);                  //采用while(--j) 不要采用while(j--); 各位可編譯一下看看匯編結果就知道了!   
  41. }   
  42.   
  43. void TimerInit()
  44. {
  45.         TMOD|=0X11;//選擇為定時器0/1模式,工作方式1,僅用TR0/1打開啟動。
  46.         TH1=0x0b;  //節拍用
  47.         TL1=0xdc;
  48.         IE=0x8A;//1000,1010打開EA/ET1/ET0               
  49. }
  50. /******************按鍵程序*************************/
  51. void oled_menu()//4功能
  52. {
  53.         
  54.         OLED_ShowNum(0,0,1,1,16);//1234
  55.         OLED_ShowNum(0,2,2,1,16);
  56.         OLED_ShowNum(0,4,3,1,16);
  57.         OLED_ShowNum(0,6,4,1,16);
  58.         
  59.         OLED_ShowCHinese(10,0,7);//單音播放
  60.         OLED_ShowCHinese(28,0,8);
  61.         OLED_ShowCHinese(46,0,9);
  62.         OLED_ShowCHinese(64,0,10);
  63.         
  64.         OLED_ShowCHinese(10,2,9);//播放音樂
  65.         OLED_ShowCHinese(28,2,10);
  66.         OLED_ShowCHinese(46,2,11);
  67.         OLED_ShowCHinese(64,2,12);
  68.         
  69.         OLED_ShowCHinese(10,4,13);//錄入音樂
  70.         OLED_ShowCHinese(28,4,14);
  71.         OLED_ShowCHinese(46,4,11);
  72.         OLED_ShowCHinese(64,4,12);
  73.         
  74.         OLED_ShowCHinese(10,6,9);//播放錄入音樂
  75.         OLED_ShowCHinese(28,6,10);
  76.         OLED_ShowCHinese(46,6,13);
  77.         OLED_ShowCHinese(64,6,14);        
  78.         OLED_ShowCHinese(82,6,11);
  79.         OLED_ShowCHinese(100,6,12);
  80.         
  81. }
  82. void oled_start()//歡迎使用林天羽
  83. {
  84.         OLED_ShowCHinese(26,0,0);//歡迎使用
  85.         OLED_ShowCHinese(46,0,1);//
  86.         OLED_ShowCHinese(66,0,2);//
  87.         OLED_ShowCHinese(86,0,3);//
  88.         
  89.         OLED_ShowCHinese(36,4,4);//林天羽
  90.         OLED_ShowCHinese(56,4,5);//
  91.         OLED_ShowCHinese(76,4,6);//        
  92.         
  93.         OLED_ShowString(12,6,"2016330301081",16);
  94.         
  95.         delay(150);
  96.         OLED_Clear();         
  97.         oled_menu();
  98. }


  99. void load_music()          //錄入功能--對應28個音,1個休止符自動1/4拍,末尾自動添加停止符號
  100. {
  101.         uint i,j,temp;
  102.         uchar ky=0,kj=0,kp=0;  //定義數組元素編號ky,kj,kp,休止符次數kp
  103.         music_load[0]=0;//保存第一個元素為0,按鍵時復寫,并要求下一個元素為0
  104.         while(K10==0)
  105.         {
  106.                 start2:        
  107.                 temp = P2;
  108.                 j=3;//C調
  109.                 if(KD==0)j=4;//低音
  110.                 else if(KG==0)j=2;//高音
  111.                 if(KG==0&&KD==0)j=1;//更高音
  112.                 if(K11==0)//休止符1/4
  113.                 {
  114.                         delayms(5);
  115.                         if((ky+kj)%2==0)//如果此時需要輸入音調,則直接用休止符代替
  116.                         {
  117.         OLED_ShowCHinese(80,0,16);//休止符
  118.         OLED_ShowCHinese(96,0,17);
  119.         OLED_ShowCHinese(112,0,18);               
  120.                                 music_load[ky+kj+kp]=0xff;//保存休止符為0xff
  121.                                 music_load[ky+kj+kp+1]=0;
  122.                                 kp++;
  123.                                 while(K11==0);P0=0;OLED_ShowCHinese(80,0,15);OLED_ShowCHinese(96,0,15);OLED_ShowCHinese(112,0,15);
  124.                         }
  125.                         else if((ky+kj)%2==1)//如果此時需要輸入節拍,則節拍默認1/4,外加1/4休止
  126.                         {
  127.                                 OLED_ShowCHinese(80,0,16);//休止符
  128.         OLED_ShowCHinese(96,0,17);
  129.         OLED_ShowCHinese(112,0,18);                                                         
  130.                                 music_load[ky+kj+kp]=1;
  131.                                 music_load[ky+kj+kp+1]=0xff;//保存休止符為0xff
  132.                                 music_load[ky+kj+kp+2]=0;
  133.                                 kj++;
  134.                                 kp++;
  135.                                 while(K11==0);        P0=0;OLED_ShowCHinese(80,0,15);OLED_ShowCHinese(96,0,15);OLED_ShowCHinese(112,0,15);                        
  136.                         }
  137.                         goto start2;
  138.                 }
  139.                 for(i=0;i<8;i++)
  140.                 {
  141.                         if(temp==for_P2[i])
  142.                         {
  143.                                 if((ky+kj)%2==0)//音調
  144.                                 {        
  145.                                         OLED_ShowNum(100,0,1+i,1,16);                        
  146.                                         m=7*j-i-1;n=0xff;  //取頻率常數m=28-mk,mk=music[第一個元素] 和 節拍常數n=4*nk,nk=music[第二個元素]   
  147.                                         music_load[ky+kj+kp]=28-m;//保存
  148.                                         music_load[ky+kj+kp+1]=4;//自動補齊節拍為一拍
  149.                                         music_load[ky+kj+kp+2]=0;//確保結束符號
  150.                                         TR1=1;                                             //開定時器1
  151.                                         TH0=T_H0[m];
  152.                                         TL0=T_L0[m];
  153.                                         while(P2==for_P2[i]) TR0=1;                      //等待節拍完成, 通過P1口輸出音頻(可多聲道哦!)   
  154.                                         TR0=0;
  155.                                         TR1=0;
  156.                                         OLED_ShowCHinese(100,0,15);
  157.                                         ky++;
  158.                                         }
  159.                                         else if((ky+kj)%2==1)//節拍
  160.                                         {
  161. /***********************/                                                
  162.                                                 P0=smg_du[1+i];//使數碼管顯示該音調的字符                                          
  163.                                                 music_load[ky+kj+kp]=i+1;//保存
  164.                                                 music_load[ky+kj+kp+1]=0;
  165.                                                 kj++;
  166.                                                 while(P2==for_P2[i]);
  167.                                         }
  168.                                 }
  169.                         }
  170.                 }
  171.                
  172. }

  173. void play_music_load()          //按下按鍵播放單音--一個音階7個音
  174. {           
  175.         unsigned char i=0,p=0;
  176.         while(1)   
  177.         {   
  178.                 start:
  179.                 p=music_load[i];   
  180.                 if(p==0)        //音樂停止標志   
  181.                 {
  182.                         i=0;                        
  183.                         delayms(100);
  184.                         goto ending;
  185.                 }     
  186.                 else if(p==0xff)  //若碰到休止符,停止1/4拍,用第八個按鍵輸入休止符
  187.                 {
  188.                         i=i+1;
  189.                         n=1;//暫停1/4拍
  190.                         P0=smg_du[0];
  191.                         OLED_ShowNum(100,0,0,1,16);
  192.                         TR1=1;
  193.                         while(n!=0);
  194.                         TR0=0;
  195.                         OLED_ShowCHinese(100,0,15);
  196.                         goto start;
  197.                 }  
  198.                 else         //取頻率常數m和節拍常數n
  199.                 {
  200.                         m=28-music_load[i++];
  201.                         n=8*music_load[i++];
  202.                         P0=smg_du[(28-m)%7];
  203.                         OLED_ShowNum(100,0,(28-m)%7,1,16);
  204.                 }   
  205.                 TR1=1;                                             //開定時器1
  206.                 TH0=T_H0[m];   
  207.                 TL0=T_L0[m];
  208.                 while(n!=0) TR0=1;
  209.                 TR0=0;
  210.                 TR1=0;
  211.                 OLED_ShowCHinese(100,0,15);
  212.         }         ending:        ;
  213. }

  214. int main(void)
  215. {        

  216.         TimerInit();         
  217.         OLED_Init();                        //初始化OLED  
  218.         OLED_Clear();
  219.         oled_start();

  220.          //播放音樂部分
  221.          
  222.         while(1)   
  223.         {   
  224. //                if(K13==0)key();//1
  225. //                if(K9==0)play_music();
  226.                 if(K10==0)load_music();//1
  227.                 if(K12==0)play_music_load();
  228.                 //OLED_ShowNum(100,0,1+i,1,16);OLED_ShowCHinese(100,0,15);        
  229.         }   
  230. }
  231.         
  232. void int0()  interrupt 1   //采用中斷0 控制音調   
  233. {  
  234.         TH0=T_H0[m];   
  235.         TL0=T_L0[m];        
  236.         beep=~beep;  
  237. }  

  238. void int1()  interrupt 3   //采用中斷3 控制節拍   優先級低
  239. {  
  240.         TH1=0x0b;   
  241.         TL1=0xdc;   
  242.         n--;   
  243. }
復制代碼

所有資料51hei提供下載:
51單片機電子琴.rar (97.26 KB, 下載次數: 27)







歡迎光臨 (http://m.izizhuan.cn/bbs/) Powered by Discuz! X3.1
91亚洲一区| 久久久极品av| 国产精品免费网站在线观看| 精品一区二区影视| 视频在线观看一区| 亚洲韩日在线| 午夜视频精品| 欧美日韩国产综合网| 成人3d精品动漫精品一二三| 狠狠一区二区三区| 欧美日韩一区二区三区在线电影 | 久久久久久久激情视频| 日韩少妇与小伙激情| 亚洲深夜福利在线| 日韩精品免费在线| 亚洲欧美国产另类| 亚洲人成网在线播放| 中文字幕日韩欧美在线| 色黄久久久久久| 日韩在线观看免费高清| 久久伊人精品天天| 97精品久久久中文字幕免费| 国产成人精品午夜| 国产日韩欧美在线看| 91中文在线视频| 成人xxxxx色| 久久久久网址| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 欧美日韩国产免费一区二区三区| 天堂资源在线亚洲视频| 97精品国产97久久久久久粉红| 奇米777四色影视在线看| 男女猛烈激情xx00免费视频| 激情婷婷综合网| jizz欧美性11| 91视频在线免费| 一级片视频免费看| 久久久精品视频在线| wwwwww在线观看| 亚洲高清在线观看视频| 中文娱乐网av| 国产精品免费视频一区一| h视频在线看| 在线亚洲电影| 黑人玩欧美人三根一起进| 视频在线日韩| 女人抽搐喷水高潮国产精品| 一区二区三区四区日韩| 新狼窝色av性久久久久久| 精品亚洲porn| 中文字幕乱码一区二区免费| 婷婷亚洲久悠悠色悠在线播放 | 超碰在线caoporn| av高清不卡| gogo人体一区| 欧美久久一级| 国产精品亚洲第一 | 另类视频在线观看+1080p| dy888午夜| 久久久久久久久久一区二区| xxx在线播放| 麻豆成人免费视频| 毛片中文字幕| jizz欧美大全| 免费黄色网页在线观看| av在线日韩| 精品久久视频| 蜜臀久久99精品久久久久宅男| 91尤物视频在线观看| 亚洲国产一区视频| 日韩电影在线观看中文字幕 | 青春草在线观看视频| 伊人75在线| 日韩成人影音| 久久精品亚洲人成影院| 蜜乳av一区二区| 亚洲色图欧美激情| 亚洲高清久久久久久| 91国产精品视频在线| 日产国产精品精品a∨| 欧美在线aaa| 国产一级二级三级| 一本大道久久精品| 四虎影视精品成人| 99久久999| 久久精品女人天堂| 亚洲天堂av老司机| 亚洲三级av在线| 99re视频在线播放| 欧美一级裸体视频| 国产午夜精品无码| 国产成人精品实拍在线| 久久黄色美女电影| 精品在线手机视频| 国产成人精品免费看| 在线精品国精品国产尤物884a| 久久久国产精品一区| 欧美福利精品| 精品熟女一区二区三区| 国产伦理一区二区| 欧美艹逼视频| 高清不卡一区| 日本中文在线一区| 日韩欧美黄色动漫| 亚洲91精品在线观看| 久久免费一级片| 国产成人亚洲欧美| 精品少妇在线视频| 欧美人妻一区二区| 国产色在线播放| 黄av在线免费观看| 91综合久久| 中文字幕一区不卡| 日韩有码在线电影| 在线观看视频黄色| www.超碰在线观看| 国产hs免费高清在线观看| 老司机午夜在线| 国产精品99久久久久久动医院| 久久久噜噜噜久久人人看| 亚洲精品720p| 欧美日韩精品久久| 九九热免费在线| 欧美xxxxx18| 漫画在线观看av| 性欧美xxxx大乳国产app| 欧美日韩国产精品专区 | 99精品电影| 国产精品久久久久影院老司| 一区二区三区视频在线| 一区二区免费在线视频| 国产精品白丝喷水在线观看| 国产精品视频第一区二区三区| av中文在线资源库| 久久国产高清| 欧美日本精品一区二区三区| 91久久久久久久| 污网站免费观看| 翔田千里一区二在线观看| 久操视频在线观看| 今天的高清视频免费播放成人| 五月天亚洲精品| 国产精品亚发布| 午夜免费福利影院| 欧美色黄视频| 另类中文字幕国产精品| 国产高清成人在线| 亚洲视频网站在线观看| 久久久无码中文字幕久...| 久久久久久久久久免费视频| 最近2018中文字幕免费在线视频| 亚洲图区在线| 一区二区在线观看免费| 日本精品视频在线| 国产又粗又猛又爽又黄| sihu影院永久在线影院| 中文在线资源| 岛国av在线一区| 在线精品播放av| 日韩伦理在线免费观看| 国产又粗又猛又黄| 黄网站在线免费| 日韩av一区二区三区| 欧美成人bangbros| 中文字幕一区二区三区5566| 日韩三级小视频| 深夜影院在线观看| 99精品老司机免费视频| 久久人体视频| 色久综合一二码| 国产日韩精品推荐| 免费在线黄色网| 精东影业在线观看| 国产一区视频在线观看免费| 欧美日韩国产高清一区二区| 五码日韩精品一区二区三区视频| 日本三级小视频| 岛国在线视频| 秋霞电影一区二区| 中文字幕综合在线| 一级做a免费视频| 九九热精品在线视频| 国产精品一区二区三区av| 亚洲丝袜自拍清纯另类| 91在线色戒在线| 黄网站免费在线| 国产视频网站在线| 日本成人在线一区| www国产精品com| 尤物网站在线看| 少妇bbw搡bbbb搡bbbb| 在线成人动漫av| 欧美日韩午夜在线视频| 国产对白在线播放| 亚洲精品一区二区三区区别| 你懂得影院夜精品a| 亚洲欧美综合网| 97人人模人人爽视频一区二区| 粉嫩av性色av蜜臀av网站| 污视频在线看操| 美女免费视频一区二区| 欧美老女人在线视频| 私密视频在线观看| 天堂av免费观看| 国产视频欧美| 久久激情视频久久| 午夜av免费看| 免费成年网站| 日韩不卡一二三区| 国精产品一区一区三区有限在线| 捆绑凌虐一区二区三区| 五十度飞在线播放| 亚洲欧美视频| 粗暴蹂躏中文一区二区三区| 少妇精品一区二区| 中文字幕免费在线观看| 美女视频免费一区| 欧洲午夜精品久久久| 男女做暖暖视频| 天堂av资源在线观看| 国产婷婷色一区二区三区在线| 成人日韩在线电影| 四虎影院在线免费播放| 大胆人体一区| 亚洲va天堂va国产va久| 国产亚洲免费的视频看| 欧美一级特黄a| 蜜桃av网站| 久久精品盗摄| 69av成年福利视频| 国产在线观看成人| 2019中文字幕在线电影免费 | 欧洲精品久久| 成人免费视频国产| 菁菁伊人国产精品| 精品免费日韩av| 丰满人妻一区二区三区53视频| 日本在线免费观看视频| 国产精品一卡二卡| 亚洲aⅴ日韩av电影在线观看| 免费黄色片视频| 91精品一久久香蕉国产线看观看| 欧洲精品一区二区| 成人免费xxxxx在线视频| 天天插天天干| 久久99精品久久久久久| 国产欧美在线视频| 夜夜狠狠擅视频| 国产精品毛片视频| 亚洲国产免费av| 97人妻天天摸天天爽天天| 3p在线观看| 亚洲三级久久久| 精品国偷自产一区二区三区| 黄页网站在线免费观看| 日韩成人一级片| 92裸体在线视频网站| 午夜精品久久久久久久99| 亚洲区小说区图片区qvod| 精品中文字幕久久久久久| 久久久久亚洲av无码a片| h片在线观看| 在线欧美小视频| 亚洲综合20p| 超碰97在线免费观看| 亚洲人成影院在线观看| 国产伦精品一区二区三区四区视频_| 人与牲动交xxxxbbbb高清| 热久久国产精品| 国产99午夜精品一区二区三区| 姝姝窝人体www聚色窝| 亚洲成人av| 91wwwcom在线观看| 国产精品久久久久毛片| 大片网站久久| 97成人精品区在线播放| 国产精品一级视频| 婷婷色综合网| 日韩美女福利视频| 亚洲第九十九页| 一区二区三区四区电影| 国产成人精品亚洲精品| 性一交一乱一色一视频麻豆| 亚洲精品91| 国产精品96久久久久久| 国产超碰人人模人人爽人人添| 日韩免费视频| 91国产高清在线| 囯产精品久久久久久| 亚洲福利电影| 91久久伊人青青碰碰婷婷| 欧美乱大交xxxxx免费| 蜜桃视频在线观看一区二区| 日韩视频在线你懂得| 亚洲天堂av网站| 丝袜诱惑一区二区| 精品福利二区三区| 精品人妻在线播放| 日韩欧美国产大片| 色综合天天综合网国产成人网| 波多野结衣一区二区三区在线| 日韩精品诱惑一区?区三区| 啪一啪鲁一鲁2019在线视频| 天堂网在线播放| 天堂一区二区在线| 明星裸体视频一区二区| 免费色视频在线观看| 91啪亚洲精品| 国产网站免费在线观看| 国产毛片av在线| 在线观看免费亚洲| 女人黄色一级片| 伊人久久影院| 久久免费在线观看| 天堂在线观看视频| 久久成人久久爱| 久久久久福利视频| 国产尤物视频在线| 欧美日韩国产综合视频在线观看| 日本爱爱爱视频| www.成人网| 国产不卡av在线免费观看| 欧美性猛交xxxxbbbb| 成人免费视频国产在线观看| 久久久久久久久久网| 91se在线| 精品国产三级a在线观看| 国产成人在线观看网站| 国产精品久久占久久| 成人免费视频视频在| 天天激情综合| 亚洲一区二区三区视频在线播放| 99久久人妻精品免费二区| 精品国产一级| 欧美中文字幕在线观看| 国内精品久久久久久久久蜜桃| 91免费视频观看| 在线a免费观看| 成人国产精选| 韩剧1988在线观看免费完整版| 77777_亚洲午夜久久多人| 91女人视频在线观看| 成人性生交视频免费观看| 黄色欧美视频| 66m—66摸成人免费视频| 国产视频福利| 亚洲私人黄色宅男| www.黄色在线| 日韩啪啪电影网| 欧美黑人xxxxx| 免费在线视频你懂得| 欧美第一区第二区| 在线观看免费黄色小视频| 免费成人美女在线观看.| 免费在线a视频| 捆绑调教日本一区二区三区| 久久综合伊人77777尤物| 四虎成人免费电影| 欧美国产禁国产网站cc| 亚洲一区二区观看| 国产调教一区二区三区| 国产日韩欧美精品| 撸视在线观看免费视频| 亚洲激情视频在线播放| 开心激情综合网| ww久久中文字幕| 欧美 日本 国产| 色999日韩| 一级二级三级欧美| 国产老妇伦国产熟女老妇视频| 国产毛片一区二区| 亚洲精品成人在线播放| 亚洲不卡视频| 高清一区二区三区视频| 在线看视频你懂的| 日韩精品福利网站| 最好2018中文免费视频| 最新日韩av在线| 私库av在线播放| 久久精品人人做人人爽电影蜜月| 成年人午夜免费视频| 欧美国产日韩电影| 国产日韩欧美在线看| 涩爱av在线播放一区二区| 亚洲精美色品网站| 欧美最猛性xxxxx喷水| 亚洲一区二区免费视频| 国产欧美日韩另类| 黄页网站大全一区二区| 日本一级大毛片a一| 日韩中字在线| 国产精品久久久久久久久电影网| 在线日本欧美| 147欧美人体大胆444| bbbbbbbbbbb在线视频| 欧美大片免费观看| 欧美xxxx18| 亚洲国产欧美久久| 国产69精品久久久久9999小说| 色哟哟国产精品免费观看|