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

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

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 按键控制蜂鸣器顶层文件的例化

源工程代码下载链接:

链接:https://pan.baidu.com/s/191h0SHXMNy9RGy0el72lyg 
提取码:8whz 
 

微信扫码订阅
UP更新不错过~
关注
  • 1
    点赞
  • 11
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

青青豌豆

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值