版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. . . 课 程 设 计课程设计名称: EDA课程设计 专 业 班 级 : 电科1002班 学 生 姓 名 :XXX 学号 : 2010483602XX 指 导 教 师 : XXX 课程设计时间:2013-2-252013-3-8电子信息科学与技术专业课程设计任务书学生XXX专业班级电科1002班学号2010483602XX题目出租车自动计价器设计课题性质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种频率。该模块产生频率信号用于计费,每个脉冲为0.
4、1元计费控制,其中15Hz信号为1.5元的计费控制,16Hz信号为1.6元计费控制。 (2)计量控制模块 计量控制模块式出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。其中计价功能主要完成的任务是:行程3公里且等待累计时间在3分钟起步价为10元3公里以外每公里1.6元计费,等待时间3分钟以外每分钟1.5元计费。计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零。计程主要完成的任务是:计算乘客所行驶的公里数,计价器的量程为99公里,满量程自动归零。(3
5、)译码显示模块该模块利用实验板上的译码器和数码管分别将输出的计费数据(4位BCD码)、计时数据(2位BCD码)和计程数据(2位BCD码)显示输出。其中计费数据最后以百元、十元、元、叫、角为单位对应的数码管上显示,最大显示为999.9元;计时数据最后送至以分为单位对应的数码管上显示,最大显示为59s;计程数据最后送至以公里为单位的数码管上显示,最大公里为99公里。B)、总体框图: 根据层次化设计理论将该问题自顶向下可分为分频模块、计量模块、控制模块、译码和显示模块各模块功能如下:三、程序设计与编译仿真1)、分频模块:对频率为240HZ的输入脉冲进行分频,得到的频率为16HZ、15HZ、和1HZ的
6、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 of fp is begin process(clk) variable
7、 cout16:integer range 0 to 14; variable cout15:integer range 0 to 15; variable cout1:integer range 0 to 239; begin if (clk'event 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 th
8、en cout15:=0;q15<='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 ;仿真波形:2)计量模块:该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。以与进行满量程清零。
9、library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.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_vec
10、tor(3 downto 0); -路程的计量 m1,m0: buffer std_logic_vector(3 downto 0); -时间的计量 end jiliang; architecture rt2 of jiliang is signal w:integer range 0 to 59; begin process(clk1) begin if (clk1'event and clk1='1') then -驱动信号发挥作用 if s='0' then w<=0;en1<='0'en0<='0'
11、;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="0101" then m1<="0000" else m1<=m1+1; end if; el
12、se m0<=m0+1; end if; -计时 if m1&m0>"00000010"then 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&l
13、t;="0000" else k1<=k1+1; end if; else k0<=k0+1; end if; -记路程 if k1&k0>"00000010" then en0<='1' -当路程大于3km时使能信号 en0开始发挥作用 else en0<='0' end if; else en1<='0'en0<='0' end if; end if; end process; end rt2;仿真波形:3)、控制模块:该模块主要进行时间
14、和里程的切换。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 std_logic); -输出脉冲 end kongzhi; architecture rt4 of kongzhi is
15、 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.ALL; use IEEE.STD_LOGIC_UNSIGNE
16、D.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<="00
17、00"c0<="0000" elsif (clk2'event 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 c
18、3<=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; endrt3;仿真波形:5)、译码显示模块:译码显示模块是应用实验工具箱上的自带的硬件电路显示译码。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分别锁定到PIO47PIO44, PIO43PIO40上。仿真后下载到硬件实验箱的电路上,选择图NO.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级英语Whatisyourfavorite课件
- 驾考题库-70岁以上老年人C2驾照年审三力测试题
- 《证券销户宝典》课件
- 单位管理制度集粹选集【职工管理篇】十篇
- 2024服务合同范文(32篇)
- 单位管理制度合并选集【人员管理】
- 单位管理制度范例选集人事管理十篇
- 七年级英语Nationalheroes课件
- 3ds Max动画制作实战训练(第3版)教学教案
- 2024年医院个人工作总结范文
- 肌萎缩侧索硬化症查房课件
- 数学与语言学、语言艺术的交叉研究
- 医院“无陪护”病房试点工作方案
- 清华大学大学物理-光的偏振
- 心理健康教育-网络与青少年
- 高中英语人教版(2019) 选择性必修一 Unit 3 课文语法填空(含答案)
- 2021-2022学年陕西省宝鸡市陈仓区北师大版六年级上册期末考试数学试卷(含答案解析)
- 水工-建筑物课件
- 应用PDCA提高入院宣教的知晓率
- 线性系统理论郑大钟307张课件
- 2019-2020学年第一学期广东省广州市天河区3年级数学期末考试卷
评论
0/150
提交评论