完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
9个回答
|
|
那如果同一个项目中,我要让蜂鸣器可以嘀一声长音,嘀嘀两声,嘀嘀嘀三声,大概框架要怎么写?
|
|
|
|
你还没说你用的是什么单片机呢。我现在不知道你的系统资源是什么样的。
|
|
|
|
新唐,N76E003,谢谢
|
|
|
|
它是具备16位计数的timer0和timer1的。 我就按你是有源蜂鸣器来说,那么只需要timer0开一个10ms左右的定时器中断。下方是顺手写的一个思路。可以在这个的基础上完善一下。 [C] 纯文本查看 复制代码 uint8_t Beep_times=1;//鸣响次数#define TermValue 150 //总共鸣响时间恒定为1.5s(10ms*150=1.5s)void Timer0_ISR(void) interrupt 1 //10ms定时器中断{static uint8_t Current_Beep_times=0;//用于检测鸣响设定是否更新static uint8_t Steps=0;//每进入Steps次中断,蜂鸣器电平更改一次static uint8_t CountBack_0=0;static uint8_t CountBack_1=0;if(Current_Beep_times!=Beep_times)//鸣响设定更新{Buzzer_Pin=Buzzer_OFF;//确保蜂鸣器不会意外常响Current_Beep_times=Current_Beep_times;//更新鸣响次数Steps=TermValue/(2*Current_Beep_times);CountBack_0=Steps;//定时中断计数CountBack_1=2*Current_Beep_times;//切换次数计数if(Current_Beep_times==1){Steps=TermValue;CountBack_1=Current_Beep_times;}}if(CountBack_1){if(!CountBack_0--){Buzzer_Pin=~Buzzer_Pin;//蜂鸣器电平取反CountBack_1--;//切换次数计数自减CountBack_0=Steps;//定时中断计数复位}if(!CountBack_1){Buzzer_Pin=Buzzer_OFF;//确保蜂鸣器不会意外常响Timer0_SwitchOFF();//这是一个用于关掉定时器的函数} 这是示意图。 |
|
|
|
所有的蜂鸣器都可以直接用单片机的定时器的pwm输出功能控制,有些单片机还自带buzz就是蜂鸣器驱动,只要设置频率就行了。
有源内置震荡电路,你加个电压就会响,无源的没有震荡电路,需要给指定频率的方波,现在基本都用无源的,2根IO口能让蜂鸣器发出动听的和旋音,网上随便搜就有电路和程序 |
|
|
|
分享我的蜂鸣器设计代码长叫:SetBeep(1,0,1)
单次:SetBeep(1,5,0) --可以用于按键交互 多次:SetBeep(5,20,30) 连续:SetBeep(0xff,20,30) 根据自己的感觉设置声音的开关时间,去表示相应的事件声音。 |
|
|
|
谢谢你的解答,不好意思我忘了说,我用的是无源的。你之前提到的思路,我觉得可以,但是好像处理起来不方便啊
|
|
|
|
无源的话也可以很简单地稍作改动。
用Timer1产生方波,用Timer0控制Timer1工作与否。具体操作是完全相同的。 我的实现可能麻烦了一些,但是可以确保音效,每一次响声总用时都是相同的。 |
|
|
|
如果偶尔调用一次蜂鸣器可以用延时做,蜂鸣器响,延时,蜂鸣器关。 封装成一个函数,需要的时候调用一下就行了。
|
|
|
|
只有小组成员才能发言,加入小组>>
2947 浏览 9 评论
2667 浏览 16 评论
3197 浏览 1 评论
8388 浏览 16 评论
3751 浏览 18 评论
6911浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7430浏览 3评论
6938浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5784浏览 3评论
9351浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 17:12 , Processed in 0.712677 second(s), Total 85, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号