文档详情

出租车计费系统-VHDL..doc

发布:2017-01-09约6.89千字共16页下载文档
文本预览下载声明
EDA课程设计: 出租车计费系统 学生姓名: 所在班级: 指导老师: 完成时间: 一、课程设计目的 1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力; 2、结合理论知识,考察阅读参考资料、文献、手册的能力; 3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧; 二、课程设计要求 实际中出租车的计费工作原理一般分成3个阶段: (1)车起步开始计费。首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元。 (2)车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。 (3)行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始 三、基本设计思想 1、 根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。①计数器A完成车费百位。②计数器B完成车费十位和个位。③计数器C完成车费角和分。④计数器D完成计数到30(完成车费的起步价)。⑤计数器E完成模拟实现车行驶100 m的功能。 2、行驶过程中车费附加50%的功能:由比较器实现。 3、车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。 4、通过分析可以设计出系统的顶层框图如图3.1所示: 四、出租车计费系统的实现 1、 系统的总体框图 2、 程序流程图 3、系统各功能模块的实现 (1)模块JIFEI的实现: 模块JIFEI见图4.3。输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity jifei is port (clk,start,stop,pause,js:in std_logic; chefei,luc:out integer range 0 to 8000); end jifei; architecture rtl of jifei is begin process(clk,start,stop,pause,js) variable a,b:std_logic; variable aa:integer range 0 to 100; variable chf,lc:integer range 0 to 8000; variable num:integer range 0 to 9; begin if(clkevent and clk=1)then if(stop=0)then chf:=0; num:=0; b:=1; aa:=0; lc:=0; elsif(start=0)then b:=0; chf:=700; lc:=0; elsif(start=1 and js=1and pause=1)then if(b=0)then num:=num+1; end if; if(num=9)then lc:=lc+5; num:=0; aa:=aa+5; end if; elsif(start=1and js=0and pause=1)then lc:=lc+1; aa:=aa+1; end if; if(aa=100)then a:=1; aa:=0; else a:=0; end if; if(lc300)then null; elsif(chf2000 and a=1)then chf:=chf+220; elsif(chf=2000 and a=1)then chf:=chf+330; end if; end if; chefei=chf; luc=lc; end process; end rtl; (2)模块X的实现: 模块X见图4.4。该模块把车费和路程转化为4位十进制数,daclk的频率要比clk快得多 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity x is port
显示全部
相似文档