EDA课程设计--出租车自动计费器(共11页).docx

上传人:飞****2 文档编号:12181248 上传时间:2022-04-24 格式:DOCX 页数:11 大小:336.70KB
返回 下载 相关 举报
EDA课程设计--出租车自动计费器(共11页).docx_第1页
第1页 / 共11页
EDA课程设计--出租车自动计费器(共11页).docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《EDA课程设计--出租车自动计费器(共11页).docx》由会员分享,可在线阅读,更多相关《EDA课程设计--出租车自动计费器(共11页).docx(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上课 程 设 计课程设计名称: EDA课程设计 专 业 班 级 : 电科1002班 学 生 姓 名 : XXX 学 号 : XX 指 导 教 师 : XXX 课程设计时间: 2013-2-252013-3-8电子信息科学与技术专业课程设计任务书学生姓名XXX专业班级电科1002班学号XX题 目出租车自动计价器设计课题性质A课题来源D指导教师王胜轩同组姓名主要内容设计一个出租车计价器,该计价器计费系统要求:行程3公里内,且等待累计时间3分钟内,起步费10元;3公里以外以每公里1.6元计费,等待累计时间3分钟外以每分钟1.5元计费。并能显示行驶公里数、等待累计时间、总费用。

2、设计的主要技术指标:(1)计价范围:0999.9元 计价分辨率:0.1元(2)计程范围:099公里 计程分辨率:1公里(3)计时范围:059分 计时分辨率:1分任务要求(1) 制定完整地设计方案,结合框图进行说明。(2) 给出主要模块的VHDL程序。(3) 如有可能,在实验箱上进行下载验证。(4) 给出完整地设计报告。参考文献(1)黄智伟. FPGA系统设计与实践 电子工业出版社 2005.1(2)焦素敏. EDA课程设计指导书 河南工业大学 2008.2(3)焦素敏. EDA应用技术 清华大学出版社 2005.4审查意见指导教师签字:教研室主任签字:张庆辉 2013年 2月 25日一、 设计

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

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

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

6、为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 begin pr

7、ocess(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=1; el

8、se 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_arith.all;

9、 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); -时间的

10、计量 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 m1=01

11、01 then m1=0000; else m1=m1+1; end if; else m0then 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 k0 then en0=1; -当路程大于3km时使能信号 en0开始发挥作用 else en0=0; end if; else en1=0;en0=0;

12、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; -输入脉冲 clk_out:out st

13、d_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; use IEEE.STD_LOGIC_ARITH

14、.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;c1=0000;c0=0000; elsif

15、(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)、译码显示模块:译码显示模块是应用实验工具箱上的自带的硬件电路显示译码。6)顶层原理

16、图:仿真波形: 五、 硬件调试与结果分析在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分别锁定到PIO47PIO44, PIO43PIO40

17、上。仿真后下载到硬件实验箱的电路上,选择图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专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com