赞
踩
谈起蜂鸣器,大家都不会陌生,在嵌入式领域应用也非常广泛,比如仪器仪表、工控设备当中都离不开蜂鸣器的身影,在轻触触摸屏来进行机器操作的时候,蜂鸣器的响声不同则可以用于标记机器的当前状态:正常使用、报警、异常等等。
那么如何才能做到准确地控制蜂鸣器发出不同的响声呢,使得其有时低沉,有时清脆,有时尖锐,而本身蜂鸣器只有一个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 按键控制蜂鸣器顶层文件的例化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。