单片机/MCUwilliam hill官网
直播中

董炯

10年用户 15经验值
擅长:处理器/DSP
私信 关注

请教老师单片机问题

下面是我的音乐播放器部分程序:
需要完成的功能:当按下不同的按键时播,放不同的歌曲

当按下k1键时能够播放第一首歌,但是接着按下k2,或者K3键时,播放的还是第一首歌;关闭电源,在打开,按下k2键,能够播放第二首歌,接着按下k1,或者K3键时,播放的还是第二首歌,k3键也是这个问题,这个问题搞了好长时间没弄懂
  • 1.jpg
  • 2.jpg
已退回1积分

回帖(8)

郑生

2015-3-2 15:03:09
while语句结束后面添加
return 0;
举报

董炯

2015-3-2 20:15:31
引用: 默默帝 发表于 2015-3-2 15:03
while语句结束后面添加
return 0;

是在外面的大循环while(1)  后面加rerurn 0 是吗
加了  但还是没解决

举报
  • 3.jpg

董炯

2015-3-2 20:16:44
引用: xianyoudian 发表于 2015-3-2 15:20
中断返回问题,同意楼上

能说具体点吗?   
这个程序按键我没有用到中断
举报

董炯

2015-3-3 20:24:03
引用: xianyoudian 发表于 2015-3-3 11:02
建议用中断函数,不要用if语句

51单片机外部中断只有一个P3.2引脚控制,如果用外部中断的话,那怎么能用3个按键分别控制3中功能?
举报

joinking

2015-3-7 12:07:21
本帖最后由 joinking 于 2015-3-7 12:10 编辑

你的PLAY函数是怎样的?从你的程序上看,你每次要换歌必须执行完PLAY函数然后再那延时500ms之后的那一刻按下按键才有效,如果PLAY函数的功能是一首歌播放,按键不能中断PLAY函数的执行的话,那么就是说只有在快唱完一首歌的时候你一直按着按键知道唱完那首歌才会换歌
举报

董炯

2015-3-8 18:52:30
引用: joinking 发表于 2015-3-7 12:07
你的PLAY函数是怎样的?从你的程序上看,你每次要换歌必须执行完PLAY函数然后再那延时500ms之后的那一刻按 ...

你说的不错,我的PLAY函数是必须要播放完成一首歌,PLAY函数里面通过定时器控制歌曲播放的频率,我想问下能不能用定时器控制中断?如果用外部中断0的话只能用一个独立按键
举报

joinking

2015-3-9 12:14:12
引用: 想回家 发表于 2015-3-8 18:52
你说的不错,我的PLAY函数是必须要播放完成一首歌,PLAY函数里面通过定时器控制歌曲播放的频率,我想问下 ...

按键跟外部中断没关系啊,随便一个IO口就可以啊
举报

董炯

2015-3-9 22:49:12
比如外部中断0,不是一定要P3.2口有个下降沿或者低电平的时候才触发中断吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分