完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`Xilinx FPGA入门连载0: 特权同学,版权所有 配套例程和更多资料下载链接: 蜂鸣器是一种最简单的发声元器件,它的应用也非常广泛,大都是作为报警或发声提醒装置。比如我们家里的电脑在刚开启时,通常主板上会发出一声较短的尖锐的“滴……”的鸣叫声,提示用户主板自检通过,可以正常进行后面的启动;而如果是1长1短或1长2短的鸣叫声,则表示可能发生了电脑内存或显卡故障;当然还可以有其他不同的鸣叫声提示其他的故障,总而言之,可别小看了这颗区区几毛钱的小家伙,关键时刻还挺有用的。可以毫不夸张的说,蜂鸣器也算是一种人机交互的手段。 PWM(Pulse Width Modulation),即脉冲宽度调制,如下图所示,PWM的输出只有高电平1和低电平0。PWM不停的重复输出周期为T,其中高电平1时间为t的脉冲,t/T是它的占空比,1/T是它的频率。
如下图所示,这是SF-SP6板上蜂鸣器的电路原理图,BEEP网络连接到FPGA的IO上,当BEEP = 1时,三极管Q1的BE导通,则CE也导通,那么U4的2端直接接地,因此在它两端有5V的电压,那么蜂鸣器就发声了。同理,BEEP =0时,Q1截止,U4的2端相当于开路,则蜂鸣器不会发出声音。 如下图所示,基于蜂鸣器在FPGA的IO输出1就发声、0则不发声的原理,我们给IO口一个占空比为50%的PWM的信号,让蜂鸣器间歇性的发声鸣叫。如果它的频率高则发声就显得相对尖锐急促一些,如果它的发声频率低则发声就显得低沉平缓一些。 在我们给出的实例代码中,我们期望产生一个输出频率为25Hz(40ms)、占空比为50%的PWM信号去驱动蜂鸣器的发声。因此,我们使用系统时钟25MHz(40ns)进行计数,每计数1,000,000次,这个计数器就清零重新计算。因为这个计数器是2进制的,要能够表达0-999999的任意一个计数值,那么这个2进制计数器至少必须是20位的。此外,为了得到输出的PWM占空比为50%,那么我们只要判断计数值小于最大计数值的一半即500000时,输出高电平1,反之输出低电平0。 //产生频率为25Hz,占空比为50%的蜂鸣器发声信号 module sp6( input ext_clk_25m, //外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 output reg beep //蜂鸣器控制信号,1--响,0--不响 ); //------------------------------------- reg[19:0] cnt; //20位计数器 //cnt计数器进行0-999999的循环计数,即ext_clk_25m时钟的1000000分频,对应cnt一个周期为25Hz always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) cnt <= 20'd0; else if(cnt < 20'd999_999) cnt<= cnt+1'b1; else cnt <= 20'd0; //------------------------------------- //产生频率为25Hz,占空比为50%的蜂鸣器发声信号 always @ (posedge ext_clk_25m or negedge ext_rst_n) if(!ext_rst_n) beep <= 1'b0; else if(cnt < 20'd500_000) beep<= 1'b1; //蜂鸣器响 else beep <= 1'b0; //蜂鸣器不响 endmodule ` |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
882个成员聚集在这个小组
加入小组4507 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2613 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4293 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5242 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5277 浏览 0 评论
1922浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:21 , Processed in 0.593987 second(s), Total 73, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号