论坛» DIY与开源设计» 电子DIY

助工
2012-10-20 19:27 11楼
蜂鸣器--报警
源码:
顶层
module aaa(
input sysClk,
input sysReset,
input [7:0]key,
output [7:0] led,
output buzzer
);
parameter DELAY = 150_000;
reg [31:0] delay_cnt = 0;
always @(posedge sysClk,negedge sysReset)
begin
if(!sysReset)
delay_cnt <= 32'd0;
else if(delay_cnt >= DELAY)
delay_cnt <= 32'd0;
else
delay_cnt <= delay_cnt + 1'b1;
end
parameter lf_cnt = 14_285;
parameter rt_cnt = 27_000;
reg [21:0] chCnt = 27_000;
reg chEn = 0;
reg opt = 0;// 0:-,1:+;
always @(posedge sysClk,negedge sysReset)
begin
if(!sysReset)
begin
opt = 0;
chCnt = 27_000;
end
else if(delay_cnt >= DELAY)
begin
chEn <= 1'b1;
if(opt == 0)
begin
chCnt <= chCnt - 254;
if((chCnt - 254) <= lf_cnt)
begin
opt <= 1'b1;
chCnt <= lf_cnt;
end
end
else
begin
chCnt <= chCnt + 254;
if((chCnt + 254) <= rt_cnt)
begin
opt <= 1'b0;
chCnt <= rt_cnt;
end
end
end
else
chEn <= 1'b0;
end
//
wire buzzer_d;
gener_fre gf(
.clk(sysClk),
.fre_cnt(chCnt),
.fre_en(chEn),
.fre_o(buzzer)
);
endmodule
频率生成模块
module gener_fre(
input clk,
input [21:0] fre_cnt,
input fre_en,
output fre_o
);
reg [20:0] fre_cnt_d = 25_000;
always @(posedge clk)
begin
if(fre_en)
fre_cnt_d <= fre_cnt[21:1];
end
reg [20:0] timer = 0;
always @(posedge clk)
begin
if(fre_en)
timer <= 22'd0;
else if(timer >= fre_cnt_d)
begin
timer <= 22'd0;
end
else
timer <= timer + 1'b1;
end
reg fre_d = 0;
always @(posedge clk)
begin
if(timer >= fre_cnt_d)
fre_d <= ~fre_d;
end
assign fre_o = fre_d;
endmodule
产生0.1s的周期的1.8k到3.5k的均匀变化的频率
高工
2012-10-20 20:02 12楼
效果不错,有代码有视频
代码打个包,整个工程传上来就更好了
助工
2012-10-20 20:48 13楼

蜂鸣器-硬件电子琴
视频:

源码:
一会打包上传
http://share.eepw.com.cn/share/download/id/79167

高工
2012-10-21 09:25 14楼
lz进展很快啊!
助工
2012-10-21 09:37 15楼
主要是焊接折腾死我了.....第一次焊接电路板......差点焊废了
助工
2012-10-21 09:40 16楼
蜂鸣器-音乐播放-祝你生日快乐
视频:

源码:整理一下一会打包上传
蜂鸣器-音乐自动播放-祝你生日快乐.rar
助工
2012-10-23 23:52 17楼
LCD1602显示
图像照的不清楚:
如下图:

专家
2012-10-29 20:37 18楼
很是不错,代码也详细!!加精!!
助工
2012-10-29 20:38 19楼
11.串口通信,协议控制LED流水,(包头,0xa5 0x5a+命令xx+数据xx)
视频如下:
高工
2012-10-29 21:19 20楼
爱你一万年,爱你禁得起考验……
共25条 2/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]