ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:37.23KB ,
资源ID:24128809      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24128809.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(超声波测身高.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

超声波测身高.docx

1、超声波测身高超声波身高测量仪,该测量仪是由单片机组成的单片机中央控制系统,超声波发 射电路由发射驱动电路和设于该驱动电路输出端的超声波换能器构成,超声波 接收 电路由超声波接收换能器、限位电路和超声波接收集成块电路构成。1 传感器超声波传感器是利用超声波的特性研制而成的传感器。以超声波作为检测手 段,必 须产生和接收超声波,完成这种功能的装置就是超声波传感器。超声波传感器主要 由压电晶片组成,既可以发射超声波,也可以接收超声波。超声波传感器的核心是其塑料外套或者金属外套中的一块压电晶片。超声波传感 器的主要性能指标是工作频率、工作温度、灵敏度。2.超声波发生器为了研究和利用超声波,人们已经设计

2、和制成了许多超声波发生器。超声波发生 器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。 电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋 笛等。目前较为常用的是压电式超声波发生器。压电式超声波发生器的原理:利用压电晶体的谐振来工作的。超声波发生器内部 结构由两个压电晶片和一个共振板构成。当它的两极外加脉冲信号,其频率等于压 电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生 超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,讲压迫压电晶 片做振动,讲机械能转换为电信号,这时它就成为超声波接收器了。3.超声波测量仪

3、原理本设计是以超声波作为检测手段,必须产生超声波和接收超声波。传感器通过声 波的波长和发射声波以及接收到返回声波的时间差就能确定人体的身高,在发送脉 冲的同时,接收器的计时器启动并计数,直至接收传感器接收反射回波后,计数停 止,该时间差相当于测量的距离,从而可测算出测量仪与头顶之间的距离,即人体 的身高。4.EDA设计思路该超声波测量仪有2个子模块:测距、显示数据。其中显示数据模块有3局部构 成:计数、显示、信号处理。测量主要由超声波传感器完成。将发射和接收的时间差转换为电信号,再有 A/D转换器得到数字信号,然后将数字信号送入到计数局部,再到显示。5.EDA设计(1)VHDL顶层设计顶层文件

4、就是用原件例化格式将显示模式、计时模块、分频模块组合在一起。其源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.stdogic_unsigned.all;entity clock isport(clk:in stdjogic;enable:in stdjogic;sekout stdogic_vector(2 downto 0);choose:out std_logic_vector(7 downto 0); segment:out std_logic_vector(6 downto o); -end clock;architect

5、ure rt1 of clock is component clk_div100 -分频器 port(clk:in stdjogic;clk_div:out stdjogic);end component;component time_counter -计数器(产生各分秒显示位)port(enable:in stdogic; clk0:in stdjogic;sec10:out stdogic_vector(2 downto 0); sec:out stdogic_vector(3 downto 0);seec10:out stdogic_vector(3 downto 0); seec:ou

6、t std_logic_vector(3 downto 0););-与数码管连接,显示分秒位在其上end component; component display port(clk:in stdogic; sec10:in stdogic_vector(2 downto 0);sec:in std_logic_vector(3 downto 0); seec10:in std_logic_vector(3 downto 0);seec:in std_logic_vector(3 downto 0);sekout stdogic_vector(2 downto 0);choose:out std

7、_logic_vector(7 downto 0); segment:out std_logic_vector(6 downto0); end component;signal sec10:stdogic_vector(2 downto 0); signal sec:stdogic_vector(3 downto 0);signal seec10:stdogic_vector(3 downto 0); signal seec:stdogic_vector(3 downto 0);signal clkO:stdI Jo gic;begin u0:clk_div100 port map(clk,c

8、lk0);u1:time counter port map(enable,clk0,sec10,sec,seed 0,seec); u2:display port map(clk,sec10,sec,seec,seec10,choose,segment); u2:display port map(clk,sec10,sec,seec10,seec,sel,segme nt);end rt1;(2) 传感器产生信号elk源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.stdogic_unsigned.all;entity clk_d

9、iv10 is port(clk:in stdjogic;clk_div:out stdjogic);end clk_div10; architecture rt1 of clk_div10 is signal q_tmp :integer range 0 to 9; begin process(clk) beginif(clk * eve nt and clk= 11 *)then if(q_tmp=9)the nq_tmp=0;elseq_tmp=q_tmp+1;end if;end if;end process; process(clk) begi n if(clk eve nt and

10、 clk= 11 )then if(q_tmp=9)then clk_div= 1 r ;elseclk_div= O;end if;end if;end process;end rt1;计时模块源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.stdogic_unsigned.all;entity countIO isport(enable :in std_Jogic; elk: in stdjogic; cout: out stdjogic; q:out stdogic_vector(3 downto 0);end count1

11、0; architecture rt1 of countIO is signal qmp:stdogic_vector(3 downto 0); begin process(clk)beginif(clk * event and clk= 11 *)thenif(enable= 1 1 f)then if(q_tmp= n 1001 )thenq_tmp 1 0 ); elseq_tmp=q_tmp+1;end if;end if;end if;q=q_tmp;end process;cout= 1 1 when q_tmp=M 1001 and enable= * 1 else O cout

12、 O);elsesei tmp=sel tmp+1;end if;end if;selqqqqqchoosechoosechoosechoosev=when end case; end process;end rt1;library ieee;-将要显示的数据译码成能点亮数码管的二进制码use ieee.stdo gic_1164.all;entity seg7 is port(q:in std_logic_vectoe(3 downto 0); segment:out stdJogic_vectoe(6 downto 0);end seg7; architecture rt1 of seg7

13、 is begin process(q) begincase q iswhen 0000=segme ntv=0111111 0对应的数码管码元为when 000T=segme ntv= 0000110n,一“when 0010=segme ntv=1011011,一when 001T=segme ntv=1001111,一“3,when 0100=segme ntv=1100110,一“4when 010T=segmentsegme ntv=11111015 一6when 0111=segme ntv=0100111M,一“7when 1 ooon=segmentsegme ntv=1101

14、1115 一“9,when others=segmentv= xxxxxxx end case; end process;end rt1;library ieee;use ieee.std_logic_1164.all;entity display isport(clk:in stdjogic; sec10:in stdogic_vector(2 downto 0); sec:in stdogic_vector(3 downto 0); seec10:in std_logic_vector(3 downto 0);seec:in std_logic_vector(3 downto 0); se

15、kout std_logic_vector(2 downto 0); choose:out std_logic_vector(7 downto 0); segment:out std_logic_vector(6 downto0);end display; architecture rt1 of display is comp on ent count8 -丿进制Ji十数器 port(clk:in stdjogic;sekout std_logic_vector(2 downto 0);end component;comp on ent choose_decoder -三丿睪码器 port(s

16、el:in std_logic_vector(2 dow nto 0); choose:out std_logic_vector(7 downto 0); end component;component time choose port(sel: in std_logic_vector(2 downto 0);sec10: in stdjogic_vector(2 downto 0); sec: in stdogic_vector(3 downto 0); seec10: in stdogic_vector(3 downto 0);seec: in std_logic_vector(3 dow

17、nto 0); q: out std_logic_vector(3 downto 0);end component; comp orient seg7 port(q: in std_logic_vector(3 downto 0);segment:out std_logic_vector(6 downto 0);end component;signal sel_tmp: stdogic_vector(2 downto 0);signal q: stdogic_vector(3 downto 0);signal choose_tmp: stdogic_vector(7 downto 0); signal segment_tmp:stdogic_vector(6 downto 0);begin u0:count8 port map(clk,sel_tmp);u1:choose_decoder port map(sel,choose_tmp); u2:time_choose port map(sel_tmp,sec10,sec,seed0,seec,q); u3:seg7 port map(q,segment_tmp); sel=sel_tmp; choose=choose_tmp;segment=segme nt_tmp;end rt1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1