下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
outputoutputtrig,hummer;output[5:0]data6;output[7:0]data7;regtrig;reg[7:0]cnt;reg[13:0]cnt1;//无cnt2和data5reg[7:0]cnt3;reg[7:0]dis[9:0];reg[3:0]data1,data2,data3,data4;reg[5:0]data6;reg[7:0]data7;reg[1:0]cnt4;//基于FPGA的超声波模块控制及数码管显示//作者:燕山大学信息科学与工程学院&&无线电爱好者协会25界徐月〃时间:2013年9月6日//HC-RO4超声波测距模块,测量角度15度//抛开代码风格,咱们只讲知识modulewireless(iclk,trig,echo,data6,data7,hummer);inputiclk, 〃时钟是50ns,即20MHzecho; 〃回响信号输出〃超声波模块触发信号输入〃我的开发板上的蜂鸣器〃数码管位选〃数码管段选〃计数器,计250个50ns,12.5us,为echo提供时序〃计数器,计8000个12.5us,100ms〃计数124个时钟周期是1mm〃数码管显示的数字〃数码管需要显示的数字〃个位,mm〃十位,cm〃百位,dm〃千位,m〃数码管位选寄存器〃数码管段选寄存器〃控制数码管依次闪亮的计数器regecho_buf, //echo的上一个时钟的状态echo_rising, 〃捕捉echo的上升沿echo_falling, 〃捕捉echo的下降沿flag1; //echo为高电平时flag1会是1,低电平时会是0regclk; 〃数码管显示所需的时钟reg[3:0]cnt5; 〃用于产生数码管显示用的时钟的分频器assignhummer=1'b1; 〃让我的开发板上的蜂鸣器关闭,否则它会一直响〃显示存储器初始化initialbegindis[0]=8'hc0;dis[1]=8'hf9;dis[2]=8'ha4;dis[3]=8'hb0;dis[4]=8'h99;dis[5]=8'h92;dis[6]=8'h82;dis[7]=8'hf8;dis[8]=8'h80;dis[9]=8'h90;end〃产生echo控制信号250*8000*50ns,echo高电平持续12.5us,即250个时钟周期always@(posedgeiclk)beginif(cnt==249)cnt<=1'b0;elsecnt<=cnt+1;endalways@(posedgeiclk)beginif(cnt==249)if(cnt1==7999)begintrig<=1'b1;cnt1<=1'b0;endelsebegintrig<=1'b0;cnt1<=cnt1+1'b1;endend//捕捉trig上升沿与下降沿,并产生标志位always@(posedgeiclk)beginecho_buf<=echo;echo_rising<=echo&(~echo_buf);echo_falling<=(~echo)&echo_buf;endalways@(posedgeiclk)beginif(echo_rising==1'b1)beginflag1=1'b1; //echo已经变为高电平endelseif(echo_falling==1'b1)beginflag1=1'b0; //echo已经变为低电平endend//在flag1=1期间计时,即对时钟进行计数。(4m的距离会是25ms,1mm是125个时钟周期)always@(posedgeiclk)beginif(flag1==1'b1)beginif(cnt3==124) //1mmcnt3<=1'b0;elsecnt3<=cnt3+1'b1;endelseif(echo_rising==1'b1)always@(posedgeiclk)beginif(flag1==1'b1)beginif(cnt3==124)if(data1==9) //1cmdata1<=4'd0;elsedata1<=data1+1'b1;endelseif(echo_rising==1'b1)data1<=1'b0;endalways@(posedgeiclk)beginif(flag1==1'b1)beginif(data1==9&&cnt3==124)if(data2==9) //1dmdata2<=1'b0;elsedata2<=data2+1'b1;endelseif(echo_rising==1'b1)data2<=1'b0;endalways@(posedgeiclk)beginif(flag1==1'b1)beginif(data2==9&&data1==9&&cnt3==124)if(data3==9) //1mdata3<=1'b0;elsedata3<=data3+1'b1;endelseif(echo_rising==1'b1)data3<=1'b0;endalways@(posedgeiclk)beginif(flag1==1'b1)beginif(data3==9&&data2==9&&data1==9&&cnt3==124)if(data4==9) 〃说明书上最远是测距4mdata4<=1'b0;elsedata4<=data4+1'b1;endelseif(echo_rising==1'b1)〃产生显示用的时钟信号always@(posedgeiclk)beginif(cnt5==5)beginclk=~clk;cnt5=1'b0;endelsecnt5=cnt5+1'b1;end//00-11为一个周期,每个周期点亮一个数码管always@(posedgeclk)begincnt4=cnt4+1'b1;end//我的板上共有6个数码管,让其中4个数码管显示四位数字,单位是毫米。always@(posedgeclk)beginif(flag1==1'b0)case(cnt4)2'b00:begindata7=dis[data1];data6=6'b111110;end2'b01:begindata7=dis[data2];data6=6'b111101;end2'b10:begindata7=dis[d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- D2S+离子的紫外光解动力学与激光光路准直部件的设计
- 信息干预、风险认知与农户绿色技术采纳行为
- 不同调压设施作用下水电站过渡过程稳定性和控制策略研究
- 环保企业绿色并购三重绩效研究
- 河长制下L市水环境治理绩效审计评价研究
- 2025年度珠宝首饰货款打折销售合同
- 地方财政科技支出对企业全要素生产率的影响研究
- 山西厂房钢筋套筒施工方案
- 茂名锅炉热喷涂施工方案
- 2025年度新能源充电桩过桥垫资服务合同
- 湖北省黄石市阳新县2024-2025学年八年级上学期数学期末考试题 含答案
- 硝化棉是天然纤维素硝化棉制造行业分析报告
- 央视网2025亚冬会营销方案
- 《00541语言学概论》自考复习题库(含答案)
- 《无砟轨道施工与组织》 课件 第十讲双块式无砟轨道施工工艺
- 江苏省南京市、盐城市2023-2024学年高三上学期期末调研测试+英语+ 含答案
- 2024新版《药品管理法》培训课件
- 《阻燃材料与技术》课件 第7讲 阻燃橡胶材料
- 爆炸物运输安全保障方案
- 江苏省南京市2025届高三学业水平调研考试数学试卷(解析版)
- 2024年黑龙江省哈尔滨市中考数学试卷(附答案)
评论
0/150
提交评论