找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7169|回复: 18
收起左侧

51单片机音乐盒1602显示 Proteus仿真程序

  [复制链接]
ID:249826 发表于 2020-3-29 22:18 | 显示全部楼层 |阅读模式
51单片机音乐盒1602显示,开机按键、暂停、播放曲目及时间显示。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
111.png

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

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

  43. //《发如雪》
  44. unsigned char code song2[]={
  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,1, 3,2,1, 5,2,3, 5,2,1, 6,2,1, 1,3,2, 6,2,1, 5,2,1,
  47.          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,
  48.          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,
  49.          3,2,1, 6,2,1, 5,2,3, 5,2,1, 6,2,1, 1,3,2, 6,2,1,
  50.          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,
  51.          1,2,1, 2,2,1, 2,2,1, 1,2,4, 0,0,0 };

  52. //《简单爱》
  53. unsigned char code song3[]={
  54.      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,
  55.          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,
  56.          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,
  57.          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,
  58.          2,2,1, 2,2,1, 3,2,1, 3,2,1, 5,2,1, 5,2,1,
  59.          5,2,1, 6,2,1, 5,2,2, 2,2,1, 3,2,1, 1,2,2,  
  60.          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,
  61.          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,
  62.          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,
  63.          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 };

  64. //《世上只有妈妈好》
  65. unsigned char code song4[]={
  66.      6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1,
  67.          //6,2,3代表6,中音,3个半拍;
  68.          //5,2,1代表5,中音,1个半拍;
  69.          //3,2,2代表3,中音,2个半拍;
  70.          //5,2,2代表5,中音,2个半拍;
  71.          //1,3,2代表1,高音,2个半拍;
  72.          //...
  73.      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,
  74.          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,
  75.          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};

  76. //《当你孤单你会想起谁》
  77. unsigned char code song5[]={
  78.      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,
  79.          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,
  80.          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,
  81.          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 };

  82. //《乡间小路》
  83. unsigned char code song6[]={
  84.      3,1,2, 3,1,1, 3,1,1, 6,0,1, 6,0,1, 1,1,2,
  85.      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,
  86.      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,
  87.      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,
  88.      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,
  89.      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,
  90.      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,
  91.      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,
  92.          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};     

  93. //《送别》
  94. unsigned char code song7[]={
  95.      5,1,2, 3,1,3, 5,1,1, 1,2,3, 6,1,2, 1,2,2,
  96.      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,
  97.          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,
  98.          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,
  99.          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,
  100.          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,
  101.          5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,0,2, 1,1,4, 0,0,0};

  102. //《最浪漫的事》
  103. unsigned char code song8[]={
  104.      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,
  105.          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,
  106.          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,
  107.          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,
  108.          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,
  109.          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,
  110.          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};

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

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

  152.                         }
  153.                
  154.                         }

  155.                   }//暂停键处理结束
  156.         }//while结束

  157.                 if((!play_up)&&(music_num!=0)) //上一首按键
  158.                 {
  159.                 delayms(5);
  160.                 if((!play_up)&&(music_num!=0))
  161.                 {
  162.                    TR0=0;
  163.                    speaker=1;
  164.                         music_num-=1;//歌曲编号减一
  165.                         if(music_num<=0)
  166.                         music_num=5;
  167.                         num=0;                 //从头开始播放


  168. /*                        if(music_num==(sound_amount+1))
  169.                                 music_num=1;          */
  170.                         delayms(500);//歌曲切换时延时0.5S
  171.                         miao=0;
  172.                 }
  173.                 while(!play_up);        
  174.                 }

  175.                 if((!play_down)&&(music_num!=0))
  176.                 {
  177.                 delayms(5);
  178.                 if((!play_down)&&(music_num!=0))
  179.                 {   
  180.                         TR0=0;
  181.                         speaker=1;
  182.                         music_num+=1;//歌曲编号加一
  183.                         if(music_num>=6)
  184.                         music_num=1;
  185.                         num=0;                  //从头开始播放


  186.         /*                if(music_num==0)
  187.                                 music_num=sound_amount;                  */
  188.                         delayms(500);//歌曲切换时延时0.5S
  189.                         miao=0;
  190.                 }
  191.                  while(!play_down);
  192.                 }
  193.         if(!power)                //电源键处理
  194.                 {
  195.                 delayms(5);
  196.                 if(!power)
  197.                 {
  198.                         TR0=0;
  199.                        
  200.                         speaker=1;

  201.                         power_enable=~power_enable;
  202.                                        
  203.                         while(!power)         //若按着暂停键不放手时的处理
  204.                         {
  205.                                 if(power_enable==1)
  206.                                         {
  207.                                         LCDDispString(1,1,"WELCOME MUSIC");
  208.                                         miao=0;
  209.                                         }                
  210.                                 else
  211.                                 {   TR1  = 0;
  212.                                         LCDDispString(0,1,"                ");
  213.                                         LCDDispString(0,2,"                ");
  214.                                         music_num=1;    //歌曲序号置1
  215.                                         num=0;                //从头播放
  216.                                         play_enable=0;        //不允许播放
  217.        
  218.                                 }
  219.                
  220.                         }

  221.                   }//暂停键处理结束
  222.         }//while结束


  223. }

  224. void main(void)
  225. {
  226.         TMOD=0x11; //T0 T1 均在工作方式1
  227.         TH1  = (65536-50000)/256;
  228.         TL1  = (65536-50000)%256;
  229.         ET1  = 1;  
  230.         ET0=1;  //T0开中断              
  231.         TR1  = 0;
  232.         EA=1;   //CPU开中断         
  233.     LCDInit();
  234.        
  235.         while(1)
  236.         {
  237.                 music_play();        //根据当前状态播放相应歌曲的某个音符


  238.                 KEY();


  239.         }
  240. }

  241. void delayms(unsigned int t)           //MS延时子程序
  242. {
  243.         unsigned int i,j;
  244.         for(i=0;i<t;i++)
  245.         {
  246.                 for(j=0;j<123;j++)
  247.                         ;
  248.         }
  249. }

  250. void delay(unsigned char t)            //延时子函数,控制发音的时间长度,每个节拍0.4S
  251. {
  252.         unsigned char t1;
  253.         unsigned long t2;
  254.         for(t1=0;t1<t;t1++)               //嵌套循环, 共延时t个半拍
  255.         {
  256.             for(t2=0;t2<6500;t2++) //延时期间, 可进入T0中断去发音
  257.         {
  258.                 KEY();
  259.         }
  260.         }
  261.         TR0=0;                               //关闭T0, 停止发音
  262. }

  263. void timer0(void) interrupt 1  //T0中断程序,控制发音的音调
  264. {
  265.         speaker=!speaker;//输出方波, 发音
  266.         TH0=timer0h;         //下次的中断时间,这个时间控制音调高低
  267.         TL0=timer0l;
  268. }
  269. void Timer1() interrupt 3
  270. {
  271.         TH1  = (65536-50000)/256;
  272.         TL1  = (65536-50000)%256;
  273.         haomiao++;
  274.         {
  275.                 if(haomiao==20)           //到一秒时间,秒加1
  276.                 {
  277.                 haomiao=0;
  278.                 miao++;
  279.                 LCDDispNum(14,2,miao/10);
  280.                 LCDDispNum(15,2,miao%10);

  281.                 }
  282.         }




  283. }
  284. void song(void)          //演奏一个音符
  285. {
  286.         TH0=timer0h;    //控制音调
  287.         TL0=timer0l;
  288.         TR0=1;                    //启动T0, 由T0输出方波发音
  289.         delay(time);    //每个音符的演奏时间
  290. }
  291. ////////////////////////////////////////////////////////////////////////////////////
  292. void music_play(void)//播放相应歌曲的某个音符
  293. {
  294.         if(((music_num==1)&&(play_enable==1))&&(power_enable==1))
  295.         {
  296.                 LCDDispNum(5,2,music_num);
  297.                 fre=song1[num]+7*song1[num+1]-1;//第i个是音符,第i+1个是第几个八度
  298.                 timer0h=FREQH[fre];                    //从数据表中读出频率数值,实际上是定时的时间长度
  299.             timer0l=FREQL[fre];
  300.             time=song1[num+2];              //读出时间长度数值
  301.             num+=3;
  302.                 if(fre<0)                //判断歌曲的结束位,结束后转到下一首
  303.                 {
  304.                         num=0;            //下一首从头播放
  305.                         miao=0;
  306.                         music_num=2;
  307.             }
  308.                 song();                //发出一个音符
  309.         }
  310. ////////////////////////////////////////////////////////////////////////////////////
  311.         if(((music_num==2)&&(play_enable==1))&&(power_enable==1))
  312.         {  
  313.                 LCDDispNum(5,2,music_num);
  314.                 fre=song2[num]+7*song2[num+1]-1;
  315.                 timer0h=FREQH[fre];
  316.             timer0l=FREQL[fre];
  317.             time=song2[num+2];
  318.             num+=3;
  319.                 if(fre<0)
  320.                 {
  321.                         num=0;
  322.                         miao=0;
  323.                         music_num=3;
  324.             }
  325.                 song();               
  326.         }
  327. ////////////////////////////////////////////////////////////////////////////////////
  328.                 if(((music_num==3)&&(play_enable==1))&&(power_enable==1))
  329.         {  
  330.                 LCDDispNum(5,2,music_num);
  331.                 fre=song3[num]+7*song3[num+1]-1;
  332.                 timer0h=FREQH[fre];
  333.             timer0l=FREQL[fre];
  334.             time=song3[num+2];
  335.             num+=3;
  336.                 if(fre<0)
  337.                 {
  338.                         num=0;
  339.                         miao=0;
  340.                         music_num=4;
  341.             }
  342.                 song();               
  343.         }
  344. ////////////////////////////////////////////////////////////////////////////////////
  345.         if(((music_num==4)&&(play_enable==1))&&(power_enable==1))
  346.         {
  347.                 LCDDispNum(5,2,music_num);
  348.                 fre=song4[num]+7*song4[num+1]-1;
  349.                 timer0h=FREQH[fre];
  350.             timer0l=FREQL[fre];
  351.             time=song4[num+2];
  352.             num+=3;
  353.                 if(fre<0)
  354.                 {
  355.                         num=0;
  356.                         miao=0;
  357.                         music_num=5;
  358.             }
  359.                 song();               
  360.         }
  361. ////////////////////////////////////////////////////////////////////////////////////
  362.         if(((music_num==5)&&(play_enable==1))&&(power_enable==1))
  363.         {
  364.                 LCDDispNum(5,2,music_num);
  365.                 fre=song5[num]+7*song5[num+1]-1;
  366.                 timer0h=FREQH[fre];
  367.             timer0l=FREQL[fre];
  368.             time=song5[num+2];
  369.             num+=3;
  370.                 if(fre<0)
  371.                 {
  372.                         num=0;
  373.                         miao=0;
  374.                         music_num=1;
  375.             }
  376.                 song();               
  377.         }

  378. ////////////////////////////////////////////////////////////////////////////////////
  379. }
  380. //程序结束
复制代码

所有资料51hei提供下载:
液晶音乐盒.rar (119.29 KB, 下载次数: 418)
回复

使用道具 举报

ID:328014 发表于 2021-6-21 16:06 | 显示全部楼层
关山可越 发表于 2021-6-21 15:10
请问为什么打开了编译成功了,但是仿真的时候没有声音?

你用这个喇叭驱动电路 更简单http://www.51hei.com/bbs/dpj-177426-1.html

音乐盒修复喇叭没声音.7z

21.26 KB, 下载次数: 54, 下载积分: 黑币 -5

回复

使用道具 举报

ID:695961 发表于 2020-4-6 17:26 | 显示全部楼层
学习一下,谢谢楼主分享,不错的程序。
回复

使用道具 举报

ID:838910 发表于 2020-12-22 21:30 | 显示全部楼层
     LCDDispString(11,2,"00:");这里咋有问题
回复

使用道具 举报

ID:859799 发表于 2021-1-9 18:31 | 显示全部楼层
很棒!特别有用欸
回复

使用道具 举报

ID:208271 发表于 2021-4-29 19:41 | 显示全部楼层
正在研究这一块,感谢楼主无私分享。程序,仿真直接能用。没有任何问题,直接焊了一块板,直接驱动成功。
回复

使用道具 举报

ID:903667 发表于 2021-5-1 21:47 | 显示全部楼层
如果能播放合弦音就更好,印象中国外好像有类似的设计.
回复

使用道具 举报

ID:918096 发表于 2021-5-9 16:15 | 显示全部楼层
wifingtta 发表于 2021-4-29 19:41
正在研究这一块,感谢楼主无私分享。程序,仿真直接能用。没有任何问题,直接焊了一块板,直接驱动成功。

问怎么打开仿真的啊  我这里打不开
回复

使用道具 举报

ID:941586 发表于 2021-6-21 15:10 | 显示全部楼层
请问为什么打开了编译成功了,但是仿真的时候没有声音?
回复

使用道具 举报

ID:950824 发表于 2021-7-9 16:51 来自手机 | 显示全部楼层
请问为什么实物第一排一直显示一排白快,第二排无显示
回复

使用道具 举报

ID:328014 发表于 2021-7-9 19:05 | 显示全部楼层
懿囷囷 发表于 2021-7-9 16:51
请问为什么实物第一排一直显示一排白快,第二排无显示

来看一下51hei论坛里面解决此问题的痛苦经历吧:
51hei搜索框输入"1602 方块"或者"1602 黑块"或者"1602 白块"或者"1602 格":

这个是io口设置问题,最终搞定了:http://www.51hei.com/bbs/dpj-199732-1.html
http://www.51hei.com/bbs/dpj-168643-1.html
http://www.51hei.com/bbs/dpj-208189-1.html

既有可能是软件问题也有硬件问题
http://www.51hei.com/bbs/dpj-187378-1.html
http://www.51hei.com/bbs/dpj-160754-1.html
回复

使用道具 举报

ID:991571 发表于 2021-12-13 21:06 | 显示全部楼层
感谢分享  好程序  就是仿真有些问题  蜂鸣器得小改一下
回复

使用道具 举报

ID:992040 发表于 2021-12-15 11:34 | 显示全部楼层
wuyongquan 发表于 2020-12-22 21:30
LCDDispString(11,2,"00:");这里咋有问题

同问......
回复

使用道具 举报

ID:992677 发表于 2021-12-17 16:11 | 显示全部楼层
     LCDDispString(11,2,"00:");这里有问题
回复

使用道具 举报

ID:982632 发表于 2021-12-17 17:38 | 显示全部楼层
为啥运行的时候显示目标为创建,其他程序都能运行
回复

使用道具 举报

ID:978297 发表于 2021-12-23 14:21 | 显示全部楼层
uxs 发表于 2021-12-13 21:06
感谢分享  好程序  就是仿真有些问题  蜂鸣器得小改一下

怎么改  喇叭  我的喇叭也是不响
回复

使用道具 举报

ID:845548 发表于 2022-1-19 12:35 | 显示全部楼层
请问怎么把歌改成电子谱
回复

使用道具 举报

ID:138707 发表于 2022-3-6 20:15 | 显示全部楼层
怎么把歌改成电子谱
回复

使用道具 举报

ID:1083556 发表于 2023-7-23 12:12 | 显示全部楼层
请问怎么把歌改成电子谱
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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