FPGA 20个例程篇:2.按键控制蜂鸣器输出PWM波,发出不同频率响声

本文介绍了如何利用FPGA的PWM功能,通过按键输入调整蜂鸣器的占空比,从而实现不同频率和音效。通过实例展示了如何设置周期和占空比,实现蜂鸣器的低沉、清脆和尖锐声音变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、典型基础入门,小试牛刀 :

2.按键控制蜂鸣器输出PWM波,发出不同频率响声

       谈起蜂鸣器,大家都不会陌生,在嵌入式领域应用也非常广泛,比如仪器仪表、工控设备当中都离不开蜂鸣器的身影,在轻触触摸屏来进行机器操作的时候,蜂鸣器的响声不同则可以用于标记机器的当前状态:正常使用、报警、异常等等。

       那么如何才能做到准确地控制蜂鸣器发出不同的响声呢,使得其有时低沉,有时清脆,有时尖锐,而本身蜂鸣器只有一个IO口是连接到FPGA芯片上的,那么这里就需要引入PWM的概念。 PWM即脉冲宽度调制,PWM的输出只有高电平1与低电平0。PWM不停的重复输出周期为T,其中高电平1时间为t的脉冲,t/T是它的占空比,图1即为PWM信号的总体示意图。

图1 PWM占空比的示意图

       我们需要首先定义输出周期T的时间,比如在这里选取是100ms,然后结合开发板的电路如图2所示,可以很清楚地看到蜂鸣器高电平表示响,而低电平表示不响,同样是100ms的时钟周期,按下1-4号按键分别把同一个周期低电平的占空比调整为20%、40%、60%、80%,如图3所示是蜂鸣器占空比发声的示意图。

图2 豌豆开发板Artix7上蜂鸣器电路

图3 蜂鸣器占空比PWM发声示意图

       如图4所示,在把key_scan模块产生的key_value和key_vld信号例化到顶层模块即可,通过key_value和key_vld再对PWM进行周期赋值操作,key_scan模块在上一个例程当中已经详细介绍,在此不赘述了。

图4 按键控制蜂鸣器顶层文件的例化
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值