找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15815|回复: 33
收起左侧

51单片机音乐盒设计全套资料 按键可以上一曲,下一曲,开始或暂停。电位器可以调节...

  [复制链接]
ID:357603 发表于 2018-6-24 10:43 | 显示全部楼层 |阅读模式
功能介绍:
本设计采用STC89C51/52(与AT89C51/52、AT89S51/52通用,指定单片机请留言)单片机做为主控制器
主要功能:单片机内置8首歌曲,按键可以上一曲,下一曲,开始或暂停。电位器可以调节音量。LM386驱动喇叭,够响亮!

使用说明:
一共4个按键
上面那个独立的是复位按键,按下去程序从头执行,详情请看视频讲解文件夹中的最小系统介绍。
下面3个按键分别是:上一曲、开始/暂停、下一曲。

《烟花易冷》
《发如雪》
《简单爱》
《世上只有妈妈好》
《当你孤单你会想起谁》
《乡间小路》
《送别》
《最浪漫的事》

0.png

单片机源程序如下:
  1. //////////////////////////////////////////////
  2. //51单片机音乐播放器程序                                        //
  3. //共三个按键:上一曲、下一曲、播放\暂停                //
  4. //播放完一首歌曲无按键按下时顺序播放下一曲        //
  5. //////////////////////////////////////////////
  6. #include<REG52.H>
  7. //#define sound_amount 5 //歌曲的数量
  8. sbit play_up=P1^3;           //上一首歌
  9. sbit play_down=P3^5;   //下一首歌
  10. sbit pause=P3^2;       //播放\暂停
  11. sbit speaker=P1^0;     //无源蜂鸣器
  12. //////////////////////////////////////////////
  13. unsigned char timer0h,timer0l,time;//timer0h,timer0l为定时器T0的高低位初值,time为对应的节拍时间
  14. unsigned char music_num;       //music_num为歌曲编号,music_num=0表示刚开机时的状态,num是查找歌曲数据表的地址
  15. unsigned int num;
  16. signed int fre;                   //对应频率数据表的地址
  17. bit play_enable;                   //歌曲播放的使能标志位,用于播放\暂停
  18. void delay(unsigned char t);           //延时子函数,控制发音的时间长度
  19. void delayms(unsigned int t);           //普通延时子程序,可用于按键消抖
  20. void song(void);                           //演奏一个音符
  21. void music_play(void);                   //播放歌曲
  22. //////////////////////////////////////////////
  23. //每三个数字,代表一个音符
  24. //第一个数字是音符的数值1234567之一(第几个音),代表哆来咪发...
  25. //第二个数字是0123之一,代表低音\中音\高音\超高音(第几个八度)
  26. //第三个数字是时间长度,以半拍为单位,乐曲数据表的结尾是三个0
  27. //////////////////////////////////////////////

  28. //《烟花易冷》
  29. unsigned char code song1[]={
  30.      5,2,1, 3,2,1, 2,2,2, 2,2,4, 3,2,1, 1,2,1, 2,2,1, 3,2,4,
  31.          5,2,1, 3,2,1, 2,2,2, 2,2,2, 5,1,1, 3,2,1, 4,2,1, 3,2,4,
  32.          3,2,1, 3,2,1, 7,2,1, 3,2,1, 2,2,2, 1,2,1, 7,1,1, 1,2,1,
  33.          2,2,1, 3,2,1, 6,2,3, 6,1,1, 1,2,1, 3,2,1, 2,2,1, 6,1,1,
  34.          1,2,1, 7,1,1, 5,1,1, 6,1,6, 5,2,1, 3,2,1, 2,2,2, 2,2,1,
  35.          2,2,1, 3,2,1, 1,2,1, 2,2,1, 3,2,4, 5,2,1, 3,2,1, 2,2,2,
  36.          2,2,1, 2,2,1, 5,1,1, 3,2,1, 4,2,1, 3,2,4, 3,2,1, 3,2,1,
  37.          7,2,3, 3,2,1, 2,2,2, 1,2,1, 7,1,1, 1,2,1, 2,2,1, 3,2,1,
  38.          6,2,3, 6,1,1, 1,2,1, 3,2,1, 2,2,1, 6,1,1, 1,2,1, 7,1,2,
  39.          5,1,2, 6,1,6, 0,0,0 };

  40. //《发如雪》
  41. unsigned char code song2[]={
  42.      5,1,1, 2,2,1, 3,2,2, 2,2,1, 3,2,1, 5,2,1, 6,2,1, 5,2,3, 1,2,1, 2,2,1,
  43.          3,2,1, 6,2,1, 5,2,1, 3,2,1, 5,2,3, 5,2,1, 6,2,1, 1,3,2, 6,2,1, 5,2,1,
  44.          3,2,1, 5,2,1, 3,2,2, 1,2,1, 2,2,1, 3,2,1, 1,2,1, 6,1,1, 3,2,1, 2,2,1,
  45.          5,1,1, 2,2,1, 3,2,2, 2,2,1, 3,2,1, 5,2,1, 6,2,1, 5,2,3, 1,2,1, 2,2,1,
  46.          3,2,1, 6,2,1, 5,2,3, 5,2,1, 6,2,1, 1,3,2, 6,2,1,
  47.          5,2,1, 3,2,1, 5,2,1, 3,2,2, 1,2,1, 6,1,1, 3,2,1, 2,2,1, 1,2,1, 6,1,1,
  48.          1,2,1, 2,2,1, 2,2,1, 1,2,4, 0,0,0 };

  49. //《简单爱》
  50. unsigned char code song3[]={
  51.      5,1,1, 1,2,1, 2,2,1, 3,2,1, 2,2,1, 3,2,1, 4,2,1, 5,2,1, 5,2,1, 5,2,1,
  52.          4,2,1, 3,2,1, 2,2,3, 5,1,1, 1,2,1, 2,2,1, 3,2,1, 4,2,1, 5,2,1, 5,2,1,
  53.          5,2,1, 6,2,1, 5,2,2, 2,2,1, 3,2,1, 1,2,2, 1,2,1, 6,1,1, 2,2,1, 2,2,1,
  54.          3,2,1, 3,2,1, 1,2,1, 5,2,1, 1,2,1, 5,2,1, 1,2,1, 7,1,1, 1,2,1, 1,2,1, 6,1,1,
  55.          2,2,1, 2,2,1, 3,2,1, 3,2,1, 5,2,1, 5,2,1,
  56.          5,2,1, 6,2,1, 5,2,2, 2,2,1, 3,2,1, 1,2,2,  
  57.          5,1,1, 1,2,1, 2,1,2, 3,2,1, 2,2,1, 3,2,1, 4,2,1, 5,2,1, 5,2,1, 5,2,1,
  58.          4,2,1, 3,2,1, 2,2,3, 5,1,1, 1,2,1, 2,2,1, 3,2,1, 2,2,1, 3,2,1, 4,2,1,
  59.          5,2,1, 5,2,1, 5,2,2, 2,2,1, 3,2,1, 1,2,2, 1,2,1, 6,1,1, 2,2,1, 2,2,1,
  60.          3,2,1, 3,2,1, 1,2,2, 5,2,1, 1,2,1, 5,2,1, 5,2,1, 7,1,1, 1,2,1, 0,0,0 };

  61. //《世上只有妈妈好》
  62. unsigned char code song4[]={
  63.      6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1,
  64.          //6,2,3代表6,中音,3个半拍;
  65.          //5,2,1代表5,中音,1个半拍;
  66.          //3,2,2代表3,中音,2个半拍;
  67.          //5,2,2代表5,中音,2个半拍;
  68.          //1,3,2代表1,高音,2个半拍;
  69.          //...
  70.      5,2,1,6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,6,1,1, 5,2,1,
  71.          3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2,
  72.          1,2,4, 5,2,3, 3,2,1,2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0};

  73. //《当你孤单你会想起谁》
  74. unsigned char code song5[]={
  75.      3,2,2, 3,2,1, 4,2,1, 3,2,2, 2,2,1, 1,2,1,  2,2,2, 5,2,2, 2,2,2, 2,2,3,
  76.          1,2,2, 1,2,1, 2,2,1, 1,2,2, 7,1,1, 6,1,1, 7,1,2, 3,2,2, 7,1,2, 7,1,3,
  77.          6,1,2, 2,2,1, 3,2,1, 2,2,1, 1,2,1, 6,1,2, 5,1,2, 2,2,1, 3,2,1, 2,2,1,
  78.          1,2,1, 6,1,2, 6,1,2, 2,2,1, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 7,1,1, 1,2,6, 0,0,0 };

  79. //《乡间小路》
  80. unsigned char code song6[]={
  81.      3,1,2, 3,1,1, 3,1,1, 6,0,1, 6,0,1, 1,1,2,
  82.      6,0,1, 5,0,1, 6,0,4, 6,0,2, 6,0,1 ,6,0,1, 6,0,2, 6,0,1, 1,1,1,
  83.      2,1,2, 2,1,1, 3,1,1, 2,1,4, 3,1,1, 3,1,1, 3,1,1, 2,1,1, 4,1,2,
  84.      4,1,2, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 7,0,1, 7,0,1, 7,0,1, 6,0,1,
  85.      5,0,1, 5,0,1, 6,0,1, 7,0,1, 7,0,1, 6,0,1, 5,0,1, 6,0,4, 6,1,2,
  86.      3,1,1, 6,1,1, 7,1,1, 6,1,1, 5,1,1, 5,1,2, 5,1,1, 2,1,1, 5,1,1,
  87.      6,1,1, 5,1,1, 4,1,1, 4,1,2, 4,1,1, 3,1,1, 2,1,2, 1,1,1, 2,1,1,
  88.      3,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,4, 6,1,2, 3,1,1, 6,1,1, 7,1,1,
  89.          6,1,1, 5,1,1, 5,1,2, 2,1,1, 5,1,1, 6,1,1, 5,1,1, 4,1,1, 0,0,0};     

  90. //《送别》
  91. unsigned char code song7[]={
  92.      5,1,2, 3,1,3, 5,1,1, 1,2,3, 6,1,2, 1,2,2,
  93.      5,1,4, 5,1,2, 1,1,1, 2,1,1, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 5,1,2,
  94.          3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1,
  95.          3,1,1, 4,1,2, 7,0,1, 1,1,4, 6,1,2, 1,2,2, 1,2,4, 7,1,2, 6,1,1,
  96.          7,1,1, 1,2,4, 6,1,1, 7,1,1, 1,2,1, 6,1,1, 6,1,1, 5,1,1, 3,1,1,
  97.          1,1,1, 2,1,8, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2,
  98.          5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,0,2, 1,1,4, 0,0,0};

  99. //《最浪漫的事》
  100. unsigned char code song8[]={
  101.      5,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 5,1,1, 6,1,1, 5,1,1, 3,1,1, 5,1,5,
  102.          5,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 5,1,1, 6,1,1, 5,1,1, 6,1,1, 1,1,5,
  103.          1,1,1, 2,1,1, 3,1,1, 2,1,1, 2,1,1, 2,1,1, 1,1,1, 2,1,1, 1,1,1, 6,1,1,
  104.          3,1,2, 2,1,3, 5,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 5,1,1, 6,1,1, 5,1,1,
  105.          6,1,1, 1,1,5, 1,1,1, 2,1,1, 3,1,1, 4,1,2, 4,1,1, 5,1,1, 6,1,1, 6,1,1,
  106.          5,1,1, 6,1,2, 1,2,1, 6,1,3, 1,2,1, 6,1,1, 5,1,1, 5,1,4, 1,1,1, 6,1,1,
  107.          5,1,5, 5,1,1, 6,1,1, 1,2,1, 3,1,1, 2,1,1, 3,1,1, 1,1,6, 0,0,0};

  108. // 频率-半周期数据表 高八位  共保存了四个八度的28个频率数据
  109. unsigned char code FREQH[]={
  110.     0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8,    //低音1234567
  111.     0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i
  112.     0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE,            //高音 234567
  113.     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF};   //超高音 1234567

  114. // 频率-半周期数据表 低八位
  115. unsigned char code FREQL[]={
  116.     0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,    //低音1234567
  117.     0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i
  118.     0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D,             //高音 234567
  119.     0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16};   //超高音 1234567  
  120. void KEY()
  121. {
  122.         if(!pause)                //暂停键处理
  123.                 {
  124.                 delayms(5);
  125.                 if(!pause)
  126.                 {
  127.                         TR0=0;
  128.                         speaker=1;
  129.                         if(music_num==0)    //music_num=0只有在刚开机,且未按下暂停键时存在,表示刚开机时的状态,按下后从第一首开始播放
  130.                         {
  131.                                 music_num=1;    //歌曲序号置1
  132.                                 num=0;                //从头播放
  133.                                 play_enable=1;        //允许播放
  134.                         }
  135.                         else
  136.                         {
  137.                                 play_enable=~play_enable;
  138.                             speaker=1;
  139.                         }
  140.                         while(!pause)         //若按着暂停键不放手时的处理
  141.                         {
  142.                         if(play_enable==0){}                //如果是暂停,则显示时间不变//(暂停时play_enable==0)
  143.                         }

  144.                   }//暂停键处理结束
  145.         }//while结束

  146.                 if((!play_up)&&(music_num!=0)) //上一首按键
  147.                 {
  148.                 delayms(5);
  149.                 if((!play_up)&&(music_num!=0))
  150.                 {
  151.                    TR0=0;
  152.                    speaker=1;
  153.                         music_num-=1;//歌曲编号减一
  154.                         if(music_num<=0)
  155.                         music_num=8;
  156.                         num=0;                 //从头开始播放

  157. /*                        if(music_num==(sound_amount+1))
  158.                                 music_num=1;          */
  159.                         delayms(500);//歌曲切换时延时0.5S
  160.                 }       
  161.                 }

  162.                 if((!play_down)&&(music_num!=0))
  163.                 {
  164.                 delayms(5);
  165.                 if((!play_down)&&(music_num!=0))
  166.                 {   
  167.                         TR0=0;
  168.                         speaker=1;
  169.                         music_num+=1;//歌曲编号加一
  170.                         if(music_num>=9)
  171.                         music_num=1;
  172.                         num=0;                  //从头开始播放

  173.         /*                if(music_num==0)
  174.                                 music_num=sound_amount;                  */
  175.                         delayms(500);//歌曲切换时延时0.5S
  176.                 }
  177.                 }
  178. }
  179. void main(void)
  180. {
  181.         TMOD=0x11; //T0 T1 均在工作方式1
  182.         ET0=1;  //T0开中断
  183.         EA=1;   //CPU开中断         
  184.         while(1)
  185.         {
  186.                 music_play();        //根据当前状态播放相应歌曲的某个音符

  187.                 KEY();

  188.         }
  189. }

  190. void delayms(unsigned int t)           //MS延时子程序
  191. {
  192.         unsigned int i,j;
  193.         for(i=0;i<t;i++)
  194.         {
  195.                 for(j=0;j<123;j++)
  196.                         ;
  197.         }
  198. }

  199. void delay(unsigned char t)            //延时子函数,控制发音的时间长度,每个节拍0.4S
  200. {
  201.         unsigned char t1;
  202.         unsigned long t2;
  203.         for(t1=0;t1<t;t1++)               //嵌套循环, 共延时t个半拍
  204.         {
  205.             for(t2=0;t2<6500;t2++) //延时期间, 可进入T0中断去发音
  206.         {
  207.                 KEY();
  208.         }
  209.         }
  210.         TR0=0;                               //关闭T0, 停止发音
  211. }

  212. void timer0(void) interrupt 1  //T0中断程序,控制发音的音调
  213. {
  214.         speaker=!speaker;//输出方波, 发音
  215.         TH0=timer0h;         //下次的中断时间,这个时间控制音调高低
  216.         TL0=timer0l;
  217. }

  218. void song(void)          //演奏一个音符
  219. {
  220.         TH0=timer0h;    //控制音调
  221.         TL0=timer0l;
  222.         TR0=1;                    //启动T0, 由T0输出方波发音
  223.         delay(time);    //每个音符的演奏时间
  224. }
  225. ////////////////////////////////////////////////////////////////////////////////////
  226. void music_play(void)//播放相应歌曲的某个音符
  227. {
  228.         if((music_num==1)&&(play_enable==1))
  229.         {
  230.                 fre=song1[num]+7*song1[num+1]-1;//第i个是音符,第i+1个是第几个八度
  231.                 timer0h=FREQH[fre];                    //从数据表中读出频率数值,实际上是定时的时间长度
  232.             timer0l=FREQL[fre];
  233.             time=song1[num+2];              //读出时间长度数值
  234.             num+=3;
  235.                 if(fre<0)                //判断歌曲的结束位,结束后转到下一首
  236.                 {
  237.                         num=0;            //下一首从头播放
  238.                         music_num=2;
  239.             }
  240.                 song();                //发出一个音符
  241.         }
  242. ////////////////////////////////////////////////////////////////////////////////////
  243.         if((music_num==2)&&(play_enable==1))
  244.         {  
  245.                 fre=song2[num]+7*song2[num+1]-1;
  246.                 timer0h=FREQH[fre];
  247.             timer0l=FREQL[fre];
  248.             time=song2[num+2];
  249.             num+=3;
  250.                 if(fre<0)
  251.                 {
  252.                         num=0;
  253.                         music_num=3;
  254.             }
  255.                 song();               
  256.         }
  257. ////////////////////////////////////////////////////////////////////////////////////
  258.                 if((music_num==3)&&(play_enable==1))
  259.         {  
  260.                 fre=song3[num]+7*song3[num+1]-1;
  261.                 timer0h=FREQH[fre];
  262.             timer0l=FREQL[fre];
  263.             time=song3[num+2];
  264.             num+=3;
  265.                 if(fre<0)
  266.                 {
  267.                         num=0;
  268.                         music_num=4;
  269.             }
  270.                 song();               
  271.         }
  272. ////////////////////////////////////////////////////////////////////////////////////
  273.         if((music_num==4)&&(play_enable==1))
  274.         {
  275.                 fre=song4[num]+7*song4[num+1]-1;
  276.                 timer0h=FREQH[fre];
  277.             timer0l=FREQL[fre];
  278.             time=song4[num+2];
  279.             num+=3;
  280.                 if(fre<0)
  281.                 {
  282.                         num=0;
  283.                         music_num=5;
  284.             }
  285.                 song();               
  286.         }
  287. ////////////////////////////////////////////////////////////////////////////////////
  288.         if((music_num==5)&&(play_enable==1))
  289.         {
  290.                 fre=song5[num]+7*song5[num+1]-1;
  291.                 timer0h=FREQH[fre];
  292.             timer0l=FREQL[fre];
  293.             time=song5[num+2];
  294.             num+=3;
  295.                 if(fre<0)
  296.                 {
  297.                         num=0;
  298.                         music_num=6;
  299.             }
  300.                 song();               
  301.         }
  302. ////////////////////////////////////////////////////////////////////////////////////
  303.         if((music_num==6)&&(play_enable==1))
  304.         {
  305.                 fre=song6[num]+7*song6[num+1]-1;
  306.                 timer0h=FREQH[fre];
  307.             timer0l=FREQL[fre];
  308.             time=song6[num+2];
  309.             num+=3;
  310.                 if(fre<0)
  311.                 {
  312. ……………………

  313. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

全部资料51hei下载地址:
音乐盒(8首歌曲).zip (1.03 MB, 下载次数: 777)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:434268 发表于 2018-11-28 12:06 来自手机 | 显示全部楼层
楼主,为什么我把你的程序烧录进51开发版之后却没有一点反应?
回复

使用道具 举报

ID:436509 发表于 2018-12-1 16:06 | 显示全部楼层
有没有proteus的仿真图
回复

使用道具 举报

ID:438562 发表于 2018-12-3 17:22 | 显示全部楼层
谢谢!!!!!!!!!!!!
回复

使用道具 举报

ID:545707 发表于 2019-6-28 13:05 | 显示全部楼层
下载到51单片机开发板,改了一下管脚,为什么没有反应,有谁知道怎么改吗?
回复

使用道具 举报

ID:491833 发表于 2019-9-9 19:43 | 显示全部楼层
试了一下,歌曲的数据表都对
回复

使用道具 举报

ID:304996 发表于 2019-9-9 23:13 | 显示全部楼层
好。学习了
回复

使用道具 举报

ID:515684 发表于 2019-9-10 08:30 | 显示全部楼层
mark,有空实验一下。
回复

使用道具 举报

ID:73182 发表于 2019-9-10 14:40 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:516278 发表于 2019-9-10 22:11 | 显示全部楼层
谢谢啦,楼主  很完美
回复

使用道具 举报

ID:597015 发表于 2019-9-12 11:47 | 显示全部楼层
很棒很棒  正好需要
回复

使用道具 举报

ID:451441 发表于 2019-9-15 09:49 | 显示全部楼层
高手,佩服佩服
回复

使用道具 举报

ID:281879 发表于 2019-9-15 11:57 | 显示全部楼层
写的 太好了 学习一下
回复

使用道具 举报

ID:631206 发表于 2019-10-28 15:50 | 显示全部楼层
有没有仿真图啊
回复

使用道具 举报

ID:627952 发表于 2019-10-29 23:08 | 显示全部楼层
很有用,万分感谢!!!!!
回复

使用道具 举报

ID:632837 发表于 2019-10-30 18:28 | 显示全部楼层
感谢分享,大赞!
回复

使用道具 举报

ID:634518 发表于 2019-11-2 20:27 | 显示全部楼层

很棒很棒  正好需要
回复

使用道具 举报

ID:634518 发表于 2019-11-2 20:39 | 显示全部楼层
刚好 师傅布置了作业 需要相关的的东西 感谢 分享
回复

使用道具 举报

ID:634994 发表于 2019-11-3 21:01 | 显示全部楼层
太有创意了 感谢!!
回复

使用道具 举报

ID:633195 发表于 2019-11-13 08:51 来自手机 | 显示全部楼层
老哥你原理图里面那个power在proteus里面是那个啊
回复

使用道具 举报

ID:656052 发表于 2019-12-4 16:31 | 显示全部楼层
打call
回复

使用道具 举报

ID:698050 发表于 2020-2-25 16:20 | 显示全部楼层
这个怎么调节音量呢?
回复

使用道具 举报

ID:735274 发表于 2020-4-22 15:42 | 显示全部楼层
硬件电路原理图能给一下吗?
回复

使用道具 举报

ID:737092 发表于 2020-4-24 15:56 | 显示全部楼层
为什么我的放进去总有一个语法错误。。调试程序1.c(322): error C141: syntax error near ''在线求解决啊!!!!!!
回复

使用道具 举报

ID:737092 发表于 2020-4-24 15:58 | 显示全部楼层
调试程序1.c(322): error C141: syntax error near ''为什么总有错误啊!!!在线求教
回复

使用道具 举报

ID:769933 发表于 2020-6-7 21:47 | 显示全部楼层
没有运行程序吗
回复

使用道具 举报

ID:769933 发表于 2020-6-7 21:48 | 显示全部楼层
没有那个电路图吗  开发板电路图
回复

使用道具 举报

ID:769933 发表于 2020-6-7 21:49 | 显示全部楼层
1428327352 发表于 2019-9-9 19:43
试了一下,歌曲的数据表都对

我改了引脚没有反应 怎么改呀
回复

使用道具 举报

ID:253767 发表于 2020-6-8 08:03 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

ID:770002 发表于 2020-6-11 09:47 | 显示全部楼层
有仿真图吗
回复

使用道具 举报

ID:1014819 发表于 2022-4-1 11:04 | 显示全部楼层
正找着呢就看到了这么棒的代码,真不错
回复

使用道具 举报

ID:1018915 发表于 2022-4-26 19:26 | 显示全部楼层
为什么仿真时两个按键对应歌曲一样并且仿真时会闪退
回复

使用道具 举报

ID:1105755 发表于 2024-1-10 23:13 | 显示全部楼层
太感谢啦,正好想弄一个,先试试
回复

使用道具 举报

ID:291549 发表于 2024-1-14 16:43 | 显示全部楼层
调试成功准备制成成品,用音乐代码转换还可以换成其他歌曲。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表