欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    eda课程设计-出租车自动计费器.docx

    • 资源ID:853209       资源大小:267.12KB        全文页数:9页
    • 资源格式: DOCX        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    eda课程设计-出租车自动计费器.docx

    1、 一、 设计任务及要求设计一个出租车计价器:计费包括起步价、行车里程计费、等待时间计费3部分。用3位数码管显示金额,最大值为999.9元,最小计价单元为0.1元;行程3公里内,且等待时间累计3分钟内,起步价10元,超过3公里,以每公里1.6元计费,等待时间单价为每分钟1.5元;用两位数码管显示总里程,最大值为99公里用两位数码管显示等待时间,最大值为59min。 二、设计原理及总体框图出租车自动计费器分为分频模块、控制模块、计量模块、计费模块、译码和显示模块。 A)、设计原理:(1)分频模块 分频模块对频率为240HZ的输入脉冲进行分频,得到的频率为16HZ、15HZ、和1HZ的3种频率。该模

    2、块产生频率信号用于计费,每个脉冲为0.1元计费控制,其中15Hz信号为1.5元的计费控制,16Hz信号为1.6元计费控制。 (2)计量控制模块 计量控制模块式出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。其中计价功能主要完成的任务是:行程3公里内且等待累计时间在3分钟内起步价为10元3公里以外每公里1.6元计费,等待时间3分钟以外每分钟1.5元计费。计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零。计程主要完成的任务是:计算乘客所行驶的公里数,计

    3、价器的量程为99公里,满量程自动归零。 (3)译码显示模块该模块利用实验板上的译码器和数码管分别将输出的计费数据(4位BCD码)、计时数据(2位BCD码)和计程数据(2位BCD码)显示输出。其中计费数据最后以百元、十元、元、叫、角为单位对应的数码管上显示,最大显示为999.9元;计时数据最后送至以分为单位对应的数码管上显示,最大显示为59s;计程数据最后送至以公里为单位的数码管上显示,最大公里为99公里。B)、总体框图: 根据层次化设计理论将该问题自顶向下可分为分频模块、计量模块、控制模块、译码和显示模块各模块功能如下:三、程序设计及编译仿真1)、分频模块:对频率为240HZ的输入脉冲进行分频

    4、,得到的频率为16HZ、15HZ、和1HZ的3种频率。程序如下:library IEEE; use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity fp is port ( clk :in std_logic; q16: out std_logic; -频率为16的时钟 q15: out std_logic; -频率为15的时钟 q1: out std_logic); -频率为1的时钟 end fp; architecture qq of fp is be

    5、gin process(clk) variable cout16:integer range 0 to 14; variable cout15:integer range 0 to 15; variable cout1:integer range 0 to 239; begin if (clkevent and clk=1) then if cout16=14 -240hz分频为16hz then cout16:=0;q16=1; else cout16:=cout16+1;q16=0; end if; if cout15=15 -240hz分频为15hz then cout15:=0;q15

    6、=1; else cout15:=cout15+1;q15=0; end if; if cout1=239 -240hz分频为1hz then cout1:=0;q1=1; else cout1:=cout1+1;q1=0; end if; end if; end process; end qq;仿真波形:2)计量模块:该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。以及进行满量程清零。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arit

    7、h.all; use ieee.std_logic_unsigned.all; entity jiliang is port( s: in std_logic; -计量开始信号 fin: in std_logic; - 计量路程的信号 stop: in std_logic; -等待信号 clk1: in std_logic; -计量驱动信号 en1,en0: buffer std_logic; -计量控制信号 k1,k0: buffer std_logic_vector(3 downto 0); -路程的计量 m1,m0: buffer std_logic_vector(3 downto 0)

    8、; -时间的计量 end jiliang; architecture rt2 of jiliang is signal w:integer range 0 to 59; begin process(clk1) begin if (clk1event and clk1=1) then -驱动信号发挥作用 if s=0 then w=0;en1=0;en0=0;m1=0000;m0=0000;k1=0000;k0=0000; -初始化值 elsif stop=1 then -等待信号为高时间控制信号开始计时 if w=59 then w=0; if m0=1001 then m0=0000; if

    9、 m1=0101 then m1=0000; else m1=m1+1; end if; else m000000010then en1=1; -当时间大于3min时使能信号 en1开始使能 else en1=0; end if; else w=w+1;en1=0; end if; elsif fin=1 then if k0=1001 then k0=0000; if k1=1001 then k1=0000; else k1=k1+1; end if; else k000000010 then en0=1; -当路程大于3km时使能信号 en0开始发挥作用 else en0=0; end

    10、if; else en1=0;en0=0; end if; end if; end process; end rt2;仿真波形:3)、控制模块:该模块主要进行时间和里程的切换。library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity kongzhi is port(ent0,ent1:in std_logic; -输入的使能选择信号 clk_in1:in std_logic; -输入脉冲 clk_in2:in std_logic

    11、; -输入脉冲 clk_out:out std_logic); -输出脉冲 end kongzhi; architecture rt4 of kongzhi is begin process(ent0,ent1)begin if ent0=1 then -根据条件选择所需的通道 clk_out=clk_in1; elsif ent1=1 then clk_out=clk_in2; end if; end process; end rt4; 仿真波形:4)、计费模块: 该程序主要进行起步价设置,和计费功能。library IEEE; use IEEE.STD_LOGIC_1164.ALL; us

    12、e IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity jifei is port(clk2:in std_logic; -计费驱动信号 start: in std_logic; -计费开始信号 c0,c1,c2,c3: buffer std_logic_vector(3 downto 0);-费用显示信号 end jifei; architecture rt3 of jifei is begin process(clk2,start) begin if start=0 then c3=0000;c2=0001;c

    13、1=0000;c0=0000; elsif (clk2event and clk2=1) then if c0=1001 then c0=0000; if c1=1001 then c1=0000; if c2=1001 then c2=0000; if c3=1001 then c3=0000;-计费功能 else c3=c3+1; end if; else c2=c2+1; end if; else c1=c1+1; end if; else c0=c0+1; end if; end if; end process; end rt3; 仿真波形:5)、译码显示模块:译码显示模块是应用实验工

    14、具箱上的自带的硬件电路显示译码。6)顶层原理图:仿真波形: 五、 硬件调试与结果分析在MAX+plus II中对顶层文件进行编辑、编译、综合、适配和仿真。选择实验电路结构NO.5,进行引脚锁定,CLK接到CLOCK0上,开始计费键START锁定到键3(PIO0)上,里程控制信号FIN锁定到键2(PIO1)上,等待时间控制信号锁定到键1(PIO)上。计费输出信号c0,c1,c2,c3分别锁定到PIO31PIO28, PIO27PIO24, PIO23PIO20, PIO19PIO16上;时间输出信号M1,M0分别锁定到PIO39PIO36,PIO35PIO32上;里程输出信号K1,K0分别锁定到

    15、PIO47PIO44, PIO43PIO40上。仿真后下载到硬件实验箱的电路上,选择图NO.5,按键3为高电平计费开始,此时显示起步价10.0元,然后按键2为高电平,当里程超过3公里后,开始按每公里1.6元计费,再按键2为低电平,计费暂停,当按下键1等待时间STOP为高电平时,开始时间计费,当超过3分钟时,则按每分钟1.5元计费,当按下键1等待时间STOP为低电平时,暂停计费,再次按下键3为低电平计费停止,并复位到起步价10.0元,里程显示,和等待时间显示同时清零。 六、心得体会七、 参考文献1 焦素敏. EDA课程设计指导书 河南工业大学 2008.2 2 焦素敏. EDA应用技术 清华大学出版社 2009.13 黄智伟. FPGA系统设计与实践 电子工业出版社 2005.1


    注意事项

    本文(eda课程设计-出租车自动计费器.docx)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922