找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2296|回复: 1
打印 上一主题 下一主题
收起左侧

keil里面的单片机C语言程序缺少返回值,求帮助

[复制链接]
跳转到指定楼层
楼主
ID:796812 发表于 2020-7-7 22:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50黑币
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define  LCDPORT P0
  5. uchar code tab[]="Press key";
  6. uchar code tab1[]="Select song";
  7. uchar code tab2[]="First Song" ;
  8. uchar code tab3[]="butterfly";
  9. uchar code tab4[]="Second Song" ;
  10. uchar code tab5[]="Jingle bell ";
  11. uchar code tab6[]="Third Song" ;
  12. uchar code tab7[]="Yesterday";
  13. uchar code tab8[]="Forth Song" ;
  14. uchar code tab9[]="Youth League";
  15. sbit LCDE=P2^2;
  16. sbit LCDRW=P2^1;
  17. sbit LCDRS=P2^0;
  18. #define SYSTEM_OSC   12000000 //定义晶振频率12000000HZ
  19. #define SOUND_SPACE  4/5   //定义普通音符演奏的长度分率,//每4分音符间隔
  20. sbit    BeepIO    =    P3^7;  //定义输出管脚
  21. sbit K1=P1^7;
  22. unsigned int  code FreTab[12]  = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表
  23. unsigned char code SignTab[7]  = { 0,2,4,5,7,9,11 };           //1~7在频率表中的位置
  24. unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };      
  25. unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定时器初值暂存
  26. unsigned char Sound_Temp_TH1,Sound_Temp_TL1;
  27. unsigned char code Music_Girl[]=
  28. { 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,
  29.   0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,
  30.   0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,
  31.   0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,
  32.   0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,
  33.   0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,
  34.   0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,
  35.   0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,
  36.   0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,
  37.   0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,
  38.   0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,
  39.   0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,
  40.   0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,
  41.   0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
  42.   0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,
  43.   0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,
  44.   0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,
  45.   0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,
  46.   0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,
  47.   0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,
  48.   0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,
  49.   0x00,0x00};
  50. unsigned char code Music_Jingle[]={
  51. 0x0F,0x03, 0x0F,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x03,
  52. 0x0F,0x66, 0x19,0x04, 0x19,0x04, 0x0F,0x03, 0x17,0x03,
  53. 0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x03, 0x10,0x03,
  54. 0x18,0x03, 0x17,0x03, 0x16,0x03, 0x10,0x66, 0x10,0x03,
  55. 0x19,0x03, 0x19,0x03, 0x18,0x03, 0x16,0x03, 0x17,0x02,
  56. 0x15,0x03, 0x0F,0x03, 0x0F,0x03, 0x17,0x03, 0x16,0x03,
  57. 0x15,0x03, 0x0F,0x66, 0x0F,0x03, 0x0F,0x03, 0x17,0x03,
  58. 0x16,0x03, 0x15,0x03, 0x10,0x66, 0x10,0x03, 0x10,0x03,
  59. 0x18,0x03, 0x17,0x03, 0x16,0x03, 0x19,0x03, 0x19,0x03,
  60. 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x18,0x03,
  61. 0x16,0x03, 0x15,0x66, 0x17,0x03, 0x17,0x03, 0x17,0x02,
  62. 0x17,0x03, 0x17,0x03, 0x17,0x02, 0x17,0x03, 0x19,0x03,
  63. 0x15,0x03, 0x16,0x03, 0x17,0x01, 0x18,0x03, 0x18,0x03,
  64. 0x18,0x67, 0x18,0x04, 0x18,0x03, 0x17,0x03, 0x17,0x03,
  65. 0x17,0x04, 0x17,0x04, 0x17,0x03, 0x16,0x03, 0x16,0x03,
  66. 0x15,0x03, 0x16,0x03, 0x19,0x66, 0x19,0x03, 0x19,0x03,
  67. 0x18,0x03, 0x16,0x03, 0x15,0x02, 0x00,0x00  };
  68. unsigned char code Music_Two[] ={
  69. 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  70. 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  71. 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  72. 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03,
  73. 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,
  74. 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  75. 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01,
  76. 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  77. 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  78. 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  79. 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03,
  80. 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01,
  81. 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  82. 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00,
  83. 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,
  84. 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03,
  85. 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  86. 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03,
  87. 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,
  88. 0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,
  89. 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E,
  90. 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  91. 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03,
  92. 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03,
  93. 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03,
  94. 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,
  95. 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01,
  96. 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03,
  97. 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  98. 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  99. 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  100. 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,
  101. 0x10,0x03, 0x15,0x00, 0x00,0x00 };
  102. unsigned char code Music_Yesterday[]={
  103. 0x15,0x03, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x19,0x02,
  104. 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x17,0x03, 0x1A,0x02,
  105. 0x19,0x66, 0x17,0x02, 0x17,0x03, 0x19,0x03, 0x1A,0x02,
  106. 0x16,0x02, 0x17,0x03, 0x19,0x02, 0x1A,0x15, 0x17,0x03,
  107. 0x19,0x03, 0x1A,0x02, 0x21,0x02, 0x20,0x03, 0x1F,0x02,
  108. 0x1B,0x03, 0x1B,0x66, 0x19,0x03, 0x17,0x03, 0x19,0x02,
  109. 0x17,0x02, 0x16,0x14, 0x15,0x03, 0x15,0x03, 0x16,0x03,
  110. 0x17,0x03, 0x19,0x02, 0x19,0x03, 0x19,0x03, 0x17,0x03,
  111. 0x19,0x03, 0x17,0x03, 0x1A,0x03, 0x19,0x02, 0x17,0x03,
  112. 0x17,0x02, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1B,0x02,
  113. 0x17,0x03, 0x19,0x02, 0x1A,0x03, 0x1A,0x01, 0x1B,0x02,
  114. 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1A,0x66, 0x1B,0x03,
  115. 0x1F,0x03, 0x1B,0x03, 0x1F,0x03, 0x1B,0x02, 0x1A,0x66,
  116. 0x1A,0x03, 0x1B,0x03, 0x1F,0x02, 0x1F,0x02, 0x1A,0x03,
  117. 0x1F,0x02, 0x20,0x03, 0x20,0x16, 0x1F,0x02, 0x20,0x02,
  118. 0x21,0x03, 0x21,0x03, 0x21,0x03, 0x21,0x02, 0x20,0x03,
  119. 0x1F,0x03, 0x1B,0x03, 0x1F,0x03, 0x1B,0x03, 0x1A,0x66,
  120. 0x17,0x03, 0x19,0x03, 0x19,0x14, 0x1F,0x03, 0x20,0x03,
  121. 0x21,0x03, 0x21,0x03, 0x21,0x03, 0x21,0x03, 0x21,0x02,
  122. 0x20,0x03, 0x1F,0x03, 0x1F,0x03, 0x1B,0x03, 0x1A,0x66,
  123. 0x17,0x03, 0x19,0x03, 0x19,0x14, 0x1A,0x03, 0x1B,0x03,
  124. 0x1F,0x03, 0x1B,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x03,
  125. 0x20,0x66, 0x1F,0x03, 0x1B,0x03, 0x1F,0x03, 0x1B,0x02,
  126. 0x1F,0x03, 0x20,0x66, 0x1F,0x03, 0x20,0x03, 0x21,0x02,
  127. 0x21,0x02, 0x20,0x03, 0x1F,0x02, 0x1A,0x03, 0x1A,0x02,
  128. 0x17,0x02, 0x17,0x03, 0x1A,0x03, 0x17,0x03, 0x19,0x03,
  129. 0x19,0x14, 0x17,0x03, 0x17,0x03, 0x16,0x04, 0x15,0x04,
  130. 0x15,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x18,0x02,
  131. 0x16,0x03, 0x16,0x14, 0x17,0x03, 0x17,0x03, 0x17,0x03,
  132. 0x18,0x02, 0x16,0x03, 0x16,0x16, 0x15,0x03, 0x16,0x03,
  133. 0x17,0x03, 0x16,0x01, 0x1F,0x02, 0x20,0x02, 0x21,0x03,
  134. 0x21,0x03, 0x21,0x03, 0x21,0x02, 0x20,0x03, 0x1F,0x03,
  135. 0x1B,0x03, 0x1F,0x03, 0x1B,0x03, 0x1A,0x03, 0x1A,0x02,
  136. 0x17,0x03, 0x19,0x03, 0x19,0x14, 0x1F,0x02, 0x20,0x02,
  137. 0x21,0x03, 0x21,0x03, 0x21,0x03, 0x21,0x66, 0x20,0x03,
  138. 0x1F,0x03, 0x1B,0x03, 0x1F,0x03, 0x1B,0x03, 0x1A,0x66,
  139. 0x17,0x03, 0x19,0x03, 0x19,0x00, 0x00,0x00 };

  140. uchar k;
  141. void delay1(void) //延时程序
  142. {
  143. uchar i,j;
  144. for(i=20;i>0;i--)
  145. for(j=248;j>0;j--);
  146. }
  147. void Getch (  )
  148. {   uchar X,Y,Z;
  149. P1=0xff;
  150. P1=0xf3;       //先对P0置数  行扫描
  151. if(P1!=0xf3)     //判断是否有键按下
  152.   { delay1();    //延时,软件去干扰
  153.     if(P1!=0xf3)   //确认按键按下X = P3;
  154.      {
  155.     X=P1;          //保存行扫描时有键按下时状态
  156.     P1=0xfc;       //列扫描
  157.     Y=P1;          //保存列扫描时有键按下时状态
  158.      Z=X|Y;
  159.         //取出键值
  160.     switch ( Z )   //判断键值(那一个键按下)
  161.     {
  162.      case 0xf9: k=0; break; //对键值赋值
  163.      case 0xf5: k=1; break;
  164.      case 0xfa: k=2; break;
  165.      case 0xf6: k=3; break;
  166.             
  167.     }
  168.      }
  169.   }
  170. }   
  171. void Delay()
  172. {  uint uiCount;
  173.   for(uiCount=0;uiCount<250;uiCount++);
  174. }
  175. void WriteCMD(uchar Commond)//LCD写指令函数      
  176. {
  177. Delay();    //先延时。
  178. LCDE=1;     //然后把LCD改为写入命令状态。
  179. LCDRS=0;
  180. LCDRW=0;
  181. LCDPORT=Commond;  //再输出命令。
  182. LCDE=0;     //最后执行命令。
  183. }
  184. void WriteData(uchar dat)//LCD写数据函数      
  185. { Delay();      //先延时。
  186. LCDE=1;       //然后把LCD改为写入数据状态。
  187. LCDRS=1;
  188. LCDRW=0;
  189. LCDPORT=dat;     //再输出数据。
  190. LCDE=0;       //最后显示数据。
  191. }
  192. void init()
  193. {
  194.   LCDRW=0;
  195.     LCDE=0;
  196.    WriteCMD(0x38);
  197.   WriteCMD(0x0c);
  198.   WriteCMD(0x06);
  199.   WriteCMD(0x01);
  200.   WriteCMD(0x80);
  201. }
  202. void mydelay(int x)
  203. { int i,j;
  204. for(i=x;i>0;i--)
  205. for(j=255;j>0;j--);
  206. }
  207. void InitialSound(void)
  208. {
  209. BeepIO = 0;
  210. Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; // 计算TL1应装入的初值  (10ms的初装值)
  211. Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; // 计算TH1应装入的初值
  212. TH1 = Sound_Temp_TH1;
  213. TL1 = Sound_Temp_TL1;
  214. TMOD  |= 0x11;
  215. ET0    = 1;
  216. ET1    = 0;
  217. TR0    = 0;
  218. TR1    = 0;
  219. EA     = 1;
  220. }
  221. void BeepTimer0(void) interrupt 1 //音符发生中断
  222. {
  223. BeepIO = !BeepIO;
  224. TH0    = Sound_Temp_TH0;
  225.   TL0    = Sound_Temp_TL0;
  226. }
  227.    void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)
  228. {
  229. unsigned int NewFreTab[12];  //新的频率表
  230. unsigned char i,j;
  231. unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;
  232. unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;
  233. for(i=0;i<12;i++)     // 根据调号及升降八度来生成新的频率表
  234. {
  235.   j = i + Signature;
  236.   if(j > 11)
  237.   {
  238.    j = j-12;
  239.    NewFreTab[i] = FreTab[j]*2;
  240.   }
  241.   else
  242.    NewFreTab[i] = FreTab[j];
  243.   if(Octachord == 1)
  244.    NewFreTab[i]>>=2;
  245.   else if(Octachord == 3)
  246.    NewFreTab[i]<<=2;
  247. }         

  248. SoundLength = 0;
  249. while(Sound[SoundLength] != 0x00) //计算歌曲长度
  250. {
  251.   SoundLength+=2;
  252. }
  253. Point = 0;
  254. Tone   = Sound[Point];
  255. Length = Sound[Point+1];    // 读出第一个音符和它时时值

  256. LDiv0 = 12000/Speed;    // 算出1分音符的长度(几个10ms)  
  257. LDiv4 = LDiv0/4;       // 算出4分音符的长度
  258. LDiv4 = LDiv4-LDiv4*SOUND_SPACE;  // 普通音最长间隔标准
  259. TR0   = 0;
  260. TR1   = 1;
  261. while(Point < SoundLength&&K1==1)  //歌曲代码未放完且暂停键未被按下
  262. {
  263.   SL=Tone%10;         //计算出音符
  264.   SM=Tone/10%10;         //计算出高低音
  265.   SH=Tone/100;         //计算出是否升半
  266.   CurrentFre = NewFreTab[SignTab[SL-1]+SH];   //查出对应音符的频率  
  267.   if(SL!=0)
  268.   {
  269.    if (SM==1) CurrentFre >>= 2;     //低音
  270.    if (SM==3) CurrentFre <<= 2;     //高音
  271.    Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//计算计数器初值
  272.    Sound_Temp_TH0 = Temp_T/256;
  273.    Sound_Temp_TL0 = Temp_T%256;
  274.    TH0 = Sound_Temp_TH0;  
  275.    TL0 = Sound_Temp_TL0 + 12; //加12是对中断延时的补偿
  276.   }
  277.   SLen=LengthTab[Length%10];   //算出是几分音符
  278.   XG=Length/10%10;     //算出音符类型(0普通1连音2顿音)
  279.   FD=Length/100;
  280.   LDiv=LDiv0/SLen;     //算出连音音符演奏的长度(多少个10ms)
  281.   if (FD==1)
  282.    LDiv=LDiv+LDiv/2;
  283.   if(XG!=1)
  284.    if(XG==0)      //算出普通音符的演奏长度
  285.     if (SLen<=4)
  286.      LDiv1=LDiv-LDiv4;
  287.     else
  288.      LDiv1=LDiv*SOUND_SPACE;
  289.    else
  290.     LDiv1=LDiv/2;    //算出顿音的演奏长度
  291.   else
  292.    LDiv1=LDiv;
  293.   if(SL==0) LDiv1=0;
  294.    LDiv2=LDiv-LDiv1;    //算出不发音的长度
  295.     if (SL!=0)
  296.   {
  297.    TR0=1;
  298.    for(i=LDiv1;i>0;i--)    //发规定长度的音
  299.    {
  300.     while(TF1==0);
  301.     TH1 = Sound_Temp_TH1;
  302.     TL1 = Sound_Temp_TL1;
  303.     TF1=0;
  304.    }
  305.   }
  306.   if(LDiv2!=0)
  307.   {
  308.    TR0=0; BeepIO=0;
  309.    for(i=LDiv2;i>0;i--)    //音符间的间隔
  310.    {
  311.     while(TF1==0);
  312.     TH1 = Sound_Temp_TH1;
  313.     TL1 = Sound_Temp_TL1;
  314.     TF1=0;
  315.    }
  316.   }
  317.   Point+=2;
  318.   Tone=Sound[Point];
  319.   Length=Sound[Point+1];
  320. }
  321. BeepIO = 0;
  322. }
  323. main()
  324. { uint i;
  325. k=8;
  326. init();
  327.    for(i=0;i<15;i++)
  328.      {
  329.       WriteData(tab[i]);       //LCD写数据函数写第一行
  330.         mydelay(50);
  331.   }
  332.       mydelay(1000);
  333.       WriteCMD(0x80+0x40+2);     //将指针设到第二行空两字符
  334.       for(i=0;i<6;i++)
  335.        {
  336.            WriteData(tab1[i]);
  337.           mydelay(50);
  338.        }
  339.    InitialSound();         //发音初始化程序
  340.    while(1)
  341.     {  Getch();        //扫描键盘,获得键值
  342.       if(k==0)        //若键值为0
  343.         { uint i;
  344.          init();
  345.               for(i=0;i<10;i++)
  346.            {
  347.           WriteData(tab2[i]);    //写第一首歌序号
  348.             mydelay(50);
  349.            }
  350.          mydelay(1000);
  351.          WriteCMD(0x80+0x40);   //转到第二行
  352.          for(i=0;i<9;i++)
  353.          { WriteData(tab3[i]);    //写歌名
  354.             mydelay(50);
  355.          }
  356.        Play(Music_Girl,0,3,360);   //播放第一首歌
  357.        mydelay(500);
  358.       break;
  359.        }
  360.       else if (k==1)        //若键值为1
  361.       { uint i;
  362.          init();
  363.             for(i=0;i<11;i++)
  364.             { WriteData(tab4[i]);   //写第二首歌序号
  365.              mydelay(50);
  366.             }
  367.            mydelay(1000);
  368.            WriteCMD(0x80+0x40);  //转到第二行
  369.            for(i=0;i<11;i++)
  370.           {
  371.               WriteData(tab5[i]);   //写歌名
  372.              mydelay(50);
  373.           }
  374.         Play(Music_Jingle,0,3,360); //播放第二首歌
  375.         mydelay(500);
  376.         break;
  377.       }
  378.       else if (k==2) //若键值为2
  379.       { uint i;
  380.          init();
  381.          for(i=0;i<10;i++)
  382.             { WriteData(tab6[i]);   //写第三首歌序号
  383.              mydelay(50);
  384.             }
  385.           mydelay(1000);
  386.           //WriteCMD(0x01);
  387.           WriteCMD(0x80+0x40);   //转到第二行
  388.           for(i=0;i<6;i++)
  389.           {
  390.               WriteData(tab7[i]);   //写歌名
  391.              mydelay(50);
  392.           }
  393.        Play(Music_Two,0,3,360);   //播放第三首歌
  394.        mydelay(500);
  395.        break;
  396.        }
  397.      else if (k==3) //若键值为3
  398.       { uint i;
  399.          init();
  400.             for(i=0;i<10;i++)
  401.             { WriteData(tab8[i]);   //写第四首歌序号
  402.              mydelay(50);
  403.             }
  404.           mydelay(1000);
  405.        WriteCMD(0x80+0x40);   //转到第二行
  406.           for(i=0;i<6;i++)
  407.           { WriteData(tab9[i]);   //写歌名
  408.              mydelay(50);
  409.           }
  410.          Play(Music_Jingle,0,3,360);  //播放第三首歌
  411.         mydelay(500);
  412.         break;
  413.       }
  414.      }
  415. }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
ID:328014 发表于 2020-7-8 15:47 | 只看该作者
哪个函数缺少返回值?
回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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