在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2653|回复: 2

[原创] 勇敢的芯伴你玩转Altera FPGA连载55:蜂鸣器开关实例

[复制链接]
发表于 2018-3-21 17:22:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
勇敢的芯伴你玩转Altera FPGA连载55:蜂鸣器开关实例

特权同学,版权所有

配套例程和更多资料下载链接:

http://pan.baidu.com/s/1i5LMUUD

1.jpg


我们已经在上一章的例程中,知道了蜂鸣器工作的基本原理,即FPGA输出高电平就发出响声,FPGA输出低电平就停止发声。在本节中,我们增加一个拨码开关做控制,让拨码开关的ONOFF状态相应的去控制蜂鸣器的发声与不发声。


拨码开关SW3的电路如图8.1所示。拨码开关与FPGA相连接的SW0信号的电平值取决于拨码开关当前的位置,若它连接了2-3脚,那么SW0就是高电平状态,若它连接了3-4脚,就是低电平状态。

2.jpg

8.1 拨码开关电路


如图8.2所示,每一个拨码开关的右侧都有“ON”和“OFF”的丝印标示。“ON”对应的是3-4脚连接状态,“OFF”对应的是2-3脚连接状态。

3.jpg

8.2 拨码开关实物照片


综上所述,也就是当拨码开关处于“ON”状态时,SW0输出低电平;当拨码开关处于“OFF”状态时,SW0输出高电平。


而我们要实现的功能是,当拨码开关处于“ON”状态时,蜂鸣器发声;当拨码开关处于“OFF”状态时,蜂鸣器不发声。


本实例的工程代码如下,只有cy4.v一个verilog源文件。

module cy4(


input ext_clk_25m,
//
外部输入25MHz时钟信号


input ext_rst_n,
//
外部输入复位信号,低电平有效


input[0:0] switch,
//
拨码开关SW3输入,ON -- 低电平;OFF-- 高电平


output reg beep
//
蜂鸣器控制信号,1--响,0--不响


);

//-------------------------------------


//
蜂鸣器发声控制

always @ (posedge ext_clk_25m or negedge ext_rst_n)


if(!ext_rst_n) beep <= 1'b0;


else if(!switch[0]) beep <=1'b1;
//
蜂鸣器响


else beep <= 1'b0;
//
蜂鸣器不响

endmodule


这段代码中,ext_rst_n是复位信号,当它为低电平的时候,也就是复位按键被按下的时候,beep信号为低电平,即蜂鸣器不发声。而当ext_rst_n为高电平的时候,也就是系统正常运行时,蜂鸣器控制信号beep的高低电平状态则由拨码开关switch[0]决定,即由拨码开关SW3的状态决定。当SW3处于ON状态(低电平)时,蜂鸣器发声;当SW3处于OFF状态(高电平)时,蜂鸣器不发声。

发表于 2018-6-21 07:28:41 | 显示全部楼层
本帖最后由 Stephan.Liu 于 2018-6-21 07:30 编辑

程序综合过不了,显示错误
ERROR:HDLCompiler:1128 - "F:\AX309\test\key_beeper\sp6.v" Line 35: Assignment under multiple single edges is not supported for synthesis
QQ图片20180621073205.png
发表于 2018-7-15 22:22:11 | 显示全部楼层
继续。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 18:58 , Processed in 0.023506 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表