当前位置: 首页 > news >正文

六安网站建设招商吴桥县做网站

六安网站建设招商,吴桥县做网站,网站公司的利润在哪里,做网站按页面收费Verilog 实现超声波测距 教学视频#xff1a; https://www.bilibili.com/video/BV1Ve411x75W?p33spm_id_frompageDrivervd_source19ae31dff4056e52d2729a4ca212602b 超声波测距原理 参考资料#xff1a;STM32的超声波测距程序_超声波测距stm32程序_VaderZhang的…Verilog 实现超声波测距 教学视频 https://www.bilibili.com/video/BV1Ve411x75W?p33spm_id_frompageDrivervd_source19ae31dff4056e52d2729a4ca212602b 超声波测距原理 参考资料STM32的超声波测距程序_超声波测距stm32程序_VaderZhang的博客-CSDN博客 推荐一波自己的文章STM32蓝牙控制循迹避障小车源代码——3.舵机、超声波测距模块_stem32超声波舵机代码_灵风_Brend的博客-CSDN博客 超声波模块工作原理 输出TRIG触发测距需要给最少10us的高电平信呈 模块自动发送8个40KHZ的方波自动检测是否有信号返回 有信号返回通过IO口ECHO输出高电平高电平持续时间就是超声波从发射到返回的时间 测试距离高电平持续时间*声速/2 需求分析与功能定义 每隔100ms时间定时产生10us时间的TRIG高脉冲给到超声波测距模块用于触发超声波测距模块工作采集回响信号ECHO的高脉冲保持时间将ECHO高脉冲保持时间换算成距离信息s 0.173*t人机交互 代码思路详细教学可以看最上面的链接 代码组成 vlg_en 输出clk_en信号对输入时钟clk做分频计数产生1us的时钟使能信号计数单位为us module vlg_en #(parameter P_CLK_PERIORD 20 //clk的时钟周期为20ms ) ( input clk,input rst_n,output reg clk_en );localparam P_DIVCLK_MAX 1000/P_CLK_PERIORD - 1; //分频计数器的最大值 reg [7:0] r_divcnt;/// //对输入时钟clk做分频计数产生1us的时钟使能信号 always (posedge clk or negedge rst_n) beginif(!rst_n)r_divcnt 8b0;else if(r_divcnt P_DIVCLK_MAX)r_divcnt r_divcnt 1b1;elser_divcnt 8b0; end/// //产生时钟使能信号 always (posedge clk) beginif(r_divcnt P_DIVCLK_MAX)clk_en 1b1;elseclk_en 1b0; endendmodulevlg_tirg 每隔100ms时间定时产生10us时间的TRIG高脉冲给到超声波测距模块用于触发超声波测距模块工作 module vlg_tirg ( input clk,input rst_n,input clk_en,output reg trig );localparam P_TRIG_PERIORD_MAX 100_000 - 1; //100ms计数最大值 localparam P_TRIG_HIGH_MAX 10; //10us高脉冲保持时间reg [16:0] tricnt;/// //100ms周期计数 always (posedge clk or negedge rst_n) beginif(!rst_n)tricnt b0;else if(clk_en)beginif(tricnt P_TRIG_PERIORD_MAX)tricnt tricnt 1b1;elsetricnt b0;end end/// //产生保持10us的trig信号 always (posedge clk) beginif((tricnt b0)(tricnt P_TRIG_HIGH_MAX))trig 1b1;elsetrig 1b0; endendmodule上面两个信号的波形展示 vlg_echo : 采集回响信号ECHO的高脉冲保持时间。echo信号的高电平保持时间即为超声波往返的时间 module vlg_echo ( input clk,input rst_n,input clk_en,input echo,output reg [15:0] t_us );reg [1:0] r_echo; wire pos_echo,neg_echo; reg cnt_en; reg [15:0] echo_cnt;/// //对echo信号锁存两拍获取边沿检测信号产生计数使能信号cnt_en always (posedge clk or negedge rst_n) beginif(!rst_n)r_echo b0;elser_echo {r_echo[0],echo}; //高位锁存低位移位 endassign pos_echo ~r_echo[1] r_echo[0]; assign neg_echo r_echo[1] ~r_echo[0];always (posedge clk or negedge rst_n) beginif(!rst_n)cnt_en b0;else if(pos_echo)cnt_en 1b1;else if(neg_echo)cnt_en 1b0;else ; end/// //对echo信号的高电平保持时间进行1us为单位的计数 always (posedge clk or negedge rst_n) beginif(!rst_n)echo_cnt b0;else if(!cnt_en)echo_cnt b0;else if(clk_en)echo_cnt echo_cnt 1b1;else ; end /// //对echo_cnt计数最大值做锁存 always (posedge clk or negedge rst_n) beginif(!rst_n)t_us b0;else if(neg_echo)t_us echo_cnt; endendmodulecal 将时间计算为距离。测试距离高电平持续时间 * 声速/2。 s 0.173*t module cal ( input clk,input rst_n,input [15:0] t_us,output [14:0] s_mm );/* s0.173*ts*40960.173*t*4096709*t 避免小数部分s709*t/4096709*t12709实现方法: 1)乘法器2)7095121286441本代码使用乘法器来实现。直接调用乘法器IP核 */ wire [25:0] mult_result;mult_gen_0 u_mult_gen_0 (.CLK(clk), // input wire CLK.A(10d709), // input wire [9 : 0] A.B(t_us), // input wire [15 : 0] B.P(mult_result) // output wire [25 : 0] P );assign s_mm mult_result[25:12];endmodule顶层文件 vlg_top module vlg_top(input clk,input rst_n,output trig );localparam P_CLK_PERIORD 20;//接口声明 reg clk; reg rst_n; reg echo;wire clk_en; wire trig; wire [15:0] t_us; wire [14:0] s_mm;//使能时钟产生模块 vlg_en #(.P_CLK_PERIORD (P_CLK_PERIORD) //clk的时钟周期为20ns ) u_vlg_en( .clk (clk),.rst_n (rst_n),.clk_en (clk_en) );//产生触发信号trig vlg_tirg u_vlg_tirg(.clk (clk),.rst_n (rst_n),.clk_en (clk_en),.trig (trig) );//测距模块的回响信号echo的高电平采集时间 vlg_echo u_vlg_echo(.clk (clk),.rst_n (rst_n),.clk_en (clk_en),.echo (echo),.t_us (t_us) );//乘法器计算距离 cal u_cal(.clk (clk),.rst_n (rst_n),.t_us (t_us),.s_mm (s_mm) );endmodule调用乘法器IP核 点击IP核输入MUL进行下面的操作 TB文件 timescale 1ns/1psmodule tb_top();reg clk; reg rst_n; reg echo;wire [14:0] s_mm;vlg_top u_vlg_top(.clk (clk),.rst_n (rst_n),.trig (trig) );//产生时钟 initial clk 1; always #10 clk ~clk;//测试激励产生 initial beginrst_n 0;echo 0;#200;rst_n 1;end//函数实现 s0.173*t function real function_t2s;input real t;beginfunction_t2s 0.173*t;end endfunctioninteger tricnt 0; integer dly_time;always (posedge trig)begintricnt tricnt 1;#5000;echo 1;dly_time 11{$random}%26011; //11t26011#500;$display(test %0d:\n dly_time%0d us\n s%0d mm\n,tricnt,dly_time,s_mm,function_t2s(dly_time));#(dly_time*1000);echo 0; endendmodule仿真结果 仿真波形 结果
http://www.zqtcl.cn/news/428842/

相关文章:

  • seo网站开发txt 发布 wordpress
  • 资讯门户类网站模板定制系统开发公司
  • 让网站快速收录初中毕业如何提升学历
  • 石家庄做网站价格seo优化效果
  • 为什么浏览器打开是2345网址导航seo免费资源大全
  • 网站工程是干啥的动态个人网页制作html教程
  • 阿里云多网站建设wordpress 统计分析
  • 长沙网站定制公司科技特长生
  • 查公司的口碑和评价的网站中学生怎么做网站
  • 做网站买空间多少钱深圳seo优化公司
  • 中国建设银行北京市互联网网站wordpress商城购物表单
  • 万网网站备案管理查询工程建设项目的网站
  • 网站建设国内外研究现状模板ppt设计大赛
  • 专业网站优化方案网站设计过程怎么写
  • 福州定制网站建设网站ip过万
  • wordpress网站评论插件厦门软件网站建设
  • 网站黄金比例wordpress转typecho
  • 重庆有哪些网络公司百度系优化
  • 无锡网站制作方案企业三合一建站公司怎么找
  • 钉钉crm客户管理系统免费seo网站推荐一下软件
  • wordpress公司网站模版怎么显示wordpress里元素的源代码
  • 泉州网站制作运营商专业wordpress评论软件
  • 网站开发是什么意思啊有没有帮人做简历的网站
  • 企业网站模板包含什么维度 网站建设
  • 个人备案做运营网站宁波建网站模板
  • 做网站需要懂什么软件合肥网站制作套餐
  • 中国建设银行官方网站纪念钞预约网上买手表哪个网站可以买到正品
  • 哪个网站做兼职可以赚钱浙江嘉兴最新事件
  • 苍南网站建设深圳百度关键字优化
  • 网站建设流程及规范是做网站设计好还是杂志美编好