完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#include
typedef unsigned char u8; typedef unsigned int u16; ***it beep=P1^5; void delay (u16 b) { while(b--); } void main() { u8 i=0; for (i=0;i<1;i++) { beep=~beep; delay (50); } } |
|
相关推荐
21个回答
|
|
|
for后面加while(1);死循环,
最佳答案
|
|
|
|
|
|
蜂鸣器分有源蜂鸣器和无源蜂鸣器,有源蜂鸣器只要有供电,就能一直响,无源蜂鸣器则需要一定频率的脉冲驱动才能响。
有源蜂鸣器一般都是一个黑色的圆柱体,无源蜂鸣器一般就是一个薄片。 |
|
|
|
|
人中狼 发表于 2017-7-27 15:42 我开发板上的是无源蜂鸣器啊,为什么就for循环一次就一直响 |
|
|
|
|
|
试试在for的循环之后,再加一个 beep=~beep;,看看还响不响
|
|
|
|
|
|
|
|
|
|
|
|
i小于等于1试一下
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
加while(1)是什么意思
|
|
|
|
|
|
开发板上绝大多数是有源蜂鸣器,两者外观无明显区别,如果从引脚方向看有封胶的是有源否则是无源,另外在路测量阻值差别极大,无源蜂鸣器几欧到几十欧,正反一致。有源蜂鸣器阻值远大于此并且不同档位测量读数不符。 根据楼主的程序和描述,可以确认此开发板上是有源蜂鸣器。 |
|
|
|
|
|
而且当我输入的i<=500时还是会一直响
|
|
|
|
|
|
把main改成这样试试,
void main() { beep=~beep; delay (50); while(1); } 另外,你如何确定你用的蜂鸣器是无源的,无源蜂鸣器好像频率不对,也不怎么会响的 |
|
|
|
|
|
这个楼主最好将所用元件晒一下
|
|
|
|
|
|
|
|
|
|
|
|
以后在写程序的时候一定要有死循环,要不然程序会跑飞的,有些单片机跑飞了会自动复位从main函数又开始执行的。 |
|
|
|
|
|
本帖最后由 Merciless友 于 2017-7-28 10:07 编辑
因为程序只执行一次,就是你蜂鸣器只给响的电平,没停止下来。在for前面加个死循环while(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
把main改成这样试试, void main() { beep=~beep; delay (50); while(1); } 试一试这样改吧,这里只改变了一次蜂鸣器的驱动电平,对于无源蜂鸣器来说是不会响的,while(1)会形成一个死循环,程序会停在这里,这样就可以判断蜂鸣器是有源的还是无源的了。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16899 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:29 , Processed in 1.209769 second(s), Total 106, Slave 89 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2660