目录
一、理论部分
1、蜂鸣器概述
2、驱动原理
3、实验目标
使蜂鸣器依次输出Do、Re、Mi、Fa、So、La、Si七个音调,每个音调持续时间为0.5s,占空比为50%.
二、模块框图
三、波形图
1、时钟与复位信号
2、计数器
(1)0.5s计数器
因为系统时钟为50MHz 所以0.5s需要24_999_999个时钟周期
(2)音调频率计数器
对0.5s进行计数,7个音调为一个周期。
(3)分频计数器
与音调频率有关,例如Do为262Hz,故需要的时钟周期个数为:
经计算:
波形如下:
(4)频率变量最大值计数器
(5)占空比计数器
3、输出信号
以Do为例,当音调频率计数值(freq_cnt)小于 占空比计数值(duty_data)时为低电平,大于则为高电平。
四、代码部分
1、Verilog代码
module beep
#(
parameter CNT_MAX = 25'd24_999_999,
parameter DO = 18'd190839,
parameter RE = 18'd170067,
parameter MI = 18'd151514,
parameter FA = 18'd143265,
parameter SO = 18'd127550,
parameter LA = 18'd113635,
parameter XI = 18'd101213