在51单片机上,我想要同时实现流水灯和蜂鸣器,而且在灯1,3,5,7亮时蜂鸣器发声,其他时刻不发声》

2024-12-27 00:59:59
推荐回答(3个)
回答1:

是我孤陋寡闻还是怎么的,不过我还真没见过这样n=n++;;的写法,如果你是想让n隔一段延时就加1的话,直接这样n++就可以了,或者n=n+1。
还有,你不觉得你这个延时太长了吗?接近10秒的延时,这样调试起来得多累啊。
你的n定义为无符号整型,而且没定义上限,它会一直加到65535才溢出为0的,这无疑加大了单片机的工作量。虽然这是小程序感觉不出来,但是对你以后的写代码习惯影响很大。
在使用蜂鸣器之前,先确定你的硬件是没问题的,否则你会无限的怀疑自己的代码。方法是:写一段100%准确的最简单的代码去检查硬件是否正确。如果是有源蜂鸣器的话,直接让IO拉高或拉低(具体看你的驱动电路)就可以让它响了。如果是无源的,那得输出一段波形才行。

回答2:

你好
一楼答得超好
先给你提个建议,把问题明确,是编译通不过,还是通过了运行与设计不符,幸亏你的程序短,否则,没几个人会帮你分析的。
另:程序结构有问题,既然1357点亮时蜂鸣器动作,那么为什么要用两个完全不相干的变量,各干各的事,靠机遇吗,如果程序运行时间无限延长,总有乱套的时候,现在就这两个变量及功能,那么多了呢,有中断,调用,跳转,你怎么来协调。希望帮到你。

回答3:

是什么样的问题,表述清楚咯