返回顶部

FPGA-HC-SR04测距模块

复制代码
module distance(clock, clr_n,trig,echo,out_dis);
input clock,clr_n;//时钟信号 复位信号
input echo;//测距模块
output reg trig;//测距模块
output reg out_dis;//输出 此处用于控制LED

reg[21:0]counter_distance;//计时 每60ms
integer counter_echo;//计时echo高电平

initial 
begin
trig='b0;
out_dis='b0;
counter_distance=22'd0;
counter_echo=0;
end

always@(posedge clock or negedge clr_n)//用于计时60ms
begin
    if(!clr_n)
    ;
    else
    begin
        if(counter_distance<22'd300_0000)
            counter_distance<=counter_distance+1'b1;
        else
            counter_distance<=22'd0;
        end
end

always@(counter_distance)//用于向测距模块发送触发
begin
    if(counter_distance<22'd500)
        trig<='b1;
    else
        trig<='b0;
end

always@(posedge clock)
begin
    if(echo=='b1)
        counter_echo<=counter_echo+1;
    else if(counter_distance==22'd300_0000)
    begin
        counter_echo<=0;
    end
    else if(counter_echo>0)
            if(counter_echo*34<1000000)//用10cm计算
                out_dis<='b1;
    else
        out_dis<='b0;
end
        
endmodule
复制代码

 clock为输入时钟信号

clr_n为复位信号

echo接测距传感器

trig接测距传感器

out_dis为输出 但是是一次性的 变为1之后不会再变回0

posted @   YuhangLiuCE  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示