第12周
前言
DE2-E115 FPGA开发板 + Quartus II + HC_SR04超声波检测模块
一、实验原理
超声波原理:
HC-SR04超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。图1为HC-SR04外观,其基本工作原理为给予此超声波测距模块触发信号后模块发射超声波,当超声波投射到物体而反射回来时,模块输出回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。
HC-SR04超声波测距模块实物图:
超声波测距模块时序图:
系统结构设计:
二、代码
1.顶层模块
module top_Ranging(
input CLK_50M,
input RST,
//超声波测距用的端口
input wire Echo,
output Trig,
//数码管显示
output [6:0] seg_duan,
output [2:0] seg_sel
);
wire [15:0] data;
measurement U1(
.CLK_50M(CLK_50M),
.RST (RST),
.Echo (Echo),
.Trig (Trig) ,
.data(data)
);
display U2(
.CLK_50M (CLK_50M),
.RST (RST),
.data(data),
.seg_duan (seg_duan),
.seg_sel (seg_sel)
);
endmodule
2.测量模块
module measurement(
input CLK_50M,
input RST,
input Echo,
output reg Trig,
output [15:0] data
);
//Trig
reg [23:0] cnt_trig;
always @ (posedge CLK_50M or negedge RST)
begin
if(!RST)
cnt_trig<=1'b0;
else
if(cnt_trig =='d500) begin //高电平时间
Trig<=0;
cnt_trig<=cnt_trig+1'b1;
end
else
begin
if(cnt_trig=='d1_000_000)//低电平