• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

复位键和蜂鸣器测试设计Verilog代码VIVADO ARTIX-7开发板

10/06 08:13
333
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24110Q93131629.docx

共1个文件

名称:复位键和蜂鸣器测试设计Verilog代码VIVADO  ARTIX-7开发板

软件:VIVADO

语言:Verilog

代码功能:

复位键和蜂鸣器测试

对时钟做分频,产生1Hz的分频信号控制蜂鸣器发声;按复位键完成复位,蜂鸣器停止。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ARTIX-7开发板验证,ARTIX-7开发板如下,其他开发板可以修改管脚适配:

ARTIX-7开发板.png

设计文档:

1简介

本代码介绍使用计数器产生一个频率1Hz、占空比50%的脉冲信号,并将整个脉冲信号作为蜂鸣器输入,从而驱动蜂鸣器产生嘀嘀声。

2实验原理

蜂鸣器的原理很简单,就是通过不同的频率脉冲产生不同的声音。

3程序设计

//时钟计数,对100MHz的时钟进行100000000计数,即1秒钟重复计数

always @(posedge sys_clk_i)

begin

if(clk_cnt > 32'd100000000)

begin

clk_cnt <= 32'b0;

end

else

begin

clk_cnt <= clk_cnt + 1'b1;

end

end

//蜂鸣器输出,当计数器大于50000000,即0.5ms时产生高电平脉冲,小于等于则产生低电平脉冲

always @(posedge sys_clk_i)

begin

if(clk_cnt > 32'd50000000)

begin

fm_out <= 1'b1;

end

else

begin

fm_out <= 1'b0;

end

end

4.实验现象

将目录“... at7_prj_03at7_prjat7_prj.runsimpl_1”文件夹下的 at7_prj.bit 文件下载到开发板上,则蜂鸣器发出1Hz的嘀嘀声。

部分代码展示:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2019/04/13 17:54:08
// Design Name: 
// Module Name: at7_prj
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////
module at7_prj(
input sys_clk_i,//外部输入100MHz时钟信号
input ext_rst_n,//外部输入复位信号,低电平有效
output reg   fm_out  //蜂鸣器输出
);
reg  [31:0] clk_cnt;
//时钟计数
always @(posedge sys_clk_i) 
begin
    if(clk_cnt > 32'd100000000)
    begin
          clk_cnt <= 32'b0;
    end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1329

  • 2-24110Q93131629.docx
    下载

相关推荐