51单片机怎么让它闪灯的同时播放声音(用C语言)

让灯循环闪烁的同时播放一段简单的音乐(蜂鸣器)播放音乐的时间要比闪灯的单次循环时间长,我用do while不行,它只执行其中一个do while,求方法。

你可以用一个定时器和for无限循环,定时器就设定为音乐的时间,循环内部可以让蜂鸣器和灯的闪烁快速切换进行(类似于LED动态显示),定时结束了以后进入灯的闪烁中断完成余下的动作。。。这个可以实现,我以前做过类似的
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-28
好像不可以吧。。。因为让它闪灯的代码要占用CPU,而程序从上往下执行的话,总是会过了闪烁灯的那段代码。。- - 所以。。怎么能让它们同时执行。。。追问

我看过视频,他的可以一边响一边流水灯,总不可能用两个单片机吧

追答

那这样子怎么样? 用2个中断,在主函数中同时促发外部中断0和外部中断1,并且主函数中加上死循环 for( ; ; ) { ; } 那么2个中断服务子函数就分别些闪烁灯和播放音乐的程序

本回答被提问者采纳
第2个回答  2012-07-28
配合定时器工作呀 肯定可以实现的追问

能具体说一下么?是用定时器,执行流水灯代码的时候每隔一段时间执行一次响铃的代码?那样响铃的时候灯不就停了么?新手不懂。

第3个回答  2017-10-21
试试定时器;
相似回答