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

合集下载

出租车自动计费器EDA设计

出租车自动计费器EDA设计

6.7出租车自动计费器设计6.7.1 设计要求设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用三位数码管显示金额,最大值为999.9元,最小计价单元为0.1元,行程3公里内,且等待累计时间3分钟内,起步费为8元,超过3公里,以每公里1.6元计费,等待时间单价为每分钟1元。

用两位数码管显示总里程。

最大为99公里,用两位数码管显示等待时间,最大值为59。

6.7.2原理描述根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块计量模块、译码和动态扫描显示模块,其系统框图如图6-63所示,各模块功能如下:图6-63出租车自动计费器系统框图1分频模块分频模块对频率为240的输入脉冲进行分频,得到的频率为16,10和1的三种频率。

该模块产生频率信号用于计费,每个1脉冲为0.1元计费控制,10信号为1元的计费控制,16信号为1.6元计费控制。

2 计量控制模块计量控制模块是出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分种的等待计时使能控制信号1, 行程 3公里外的使能控制信号0。

其中计价功能主要完成的任务是:行程 3公里内,且等待累计时间3分钟内,起步费为8元;3公里外以每公里1.6元计费,等待累计时间3分钟外以每分钟1元计费;计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零;计程功能主要完成的任务是:计算乘客所行驶的公里数。

计程器的量程为99公里,满量程自动归零。

3 译码显示模块该模块经过8选1选择器将计费数据(4位码)、计时数据(2位码)、计程数据(2位码)动态选择输出。

其中计费数据4~ 1~送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9元;计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为59秒;计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。

EDA课程设计——出租车计费器

EDA课程设计——出租车计费器

EDA技术课程设计题目: 出租车自动计费器班级:电子 xxx班姓名: xxx学号: ******** 成绩:[目录] Ⅰ、绪论1.1 前言1.2 电子系统设计任务书1.3 题目分析及构思Ⅱ、方案论证2.1 总体方框图2.2 功能描述及方案选择Ⅲ、系统设计详述3.1 各模块设计原理及仿真3.2 整个系统的原理图及仿真Ⅳ、程序设计历程4.1 系统设计工作进程4.2 仿真实现过程中遇到的问题及排除措施4.3 设计收获和体会Ⅴ、附录:参考文献Ⅰ、绪论1.1前言古人云:“百尺竿头,更进一步。

”也就是说:我们不要满足于已取得的成就,还要继续努力,不断勇往直前。

但高中的时候,高考这块敲门砖就是你的指明灯。

而进入大学,我一下子被什么协会、什么学生会、什么球队、学习上的难题……冲昏了头脑,我甚至不知道什么时候该干些什么了。

有时候更会发自内心的支持“读书无用论”,因为高中学的是基本知识,而大学学的是理论,因此,对学习的兴趣也就随着变淡了。

但深知大学四年不能就这样孤独、寂寞、迷惘、恐惧地度过,所以,还一直端正自己的态度,努力地做好一切事。

而课程设计正好弥补大学这种纯理论学习的弊端,也是适应社会主义建设人才的一项重要的实践环节,是理论联系实际的有效方式。

高校是工程师的摇篮,要培养德才兼备的合格工程师,必须进行理论知识和实践动手能力的正规会培训。

课程设计是我们必须参与的一项实践教学环节。

通过课程设计,学生可以综合运用所学的电子设计的理论知识和方法,掌握设计的一般规律,培养解决电子工程中实际问题的能力。

还可以学会从机器的功能要求出发,合理选择系统或零件的类型,制定设计方案,正确计算零件的工作能力,工作要求,并考虑制造工艺、使用、维护、经济、安全等问题,训练设计能力。

另外,在课程设计的过程当中,学生可以通过查阅、分析、计算、绘图等过程,学习正确运用标准、规范、手册、图册等技术资料,训练设计的基本技能。

同时,把在理论教学中学到的知识具体运用到实际工作中,提高学生的综合素质,从而达到电子工程师基本培训的目的,使学生成为既有理论知识,又有实际动手能力的工程技术管理人才。

EDA课程设计出租车计价器(1)

EDA课程设计出租车计价器(1)

目录1引言 (1)2系统组成及原理 (2)2.1系统组成方框图 (2)2.2出租车计价器原理图 (3)3.3出租车自动计价原理 (3)3模块设计 (4)3.1控制模块 (4)3.2计量模块 (4)3.3译码显示模块 (4)4程序调试运行 (5)4.1仿真结果 (5)5硬件验证 (6)5.1引脚锁定 (6)5.2硬件验证情况 (6)6课程设计结束语 (6)参考文献 (8)附录 (9)31引言为培养学生树立正确的设计思想和实事求是的工作作风,学习运用所学基础知识理论、专业知识、基本技能去分析和解决工程技术实际问题,提高学生的综合素质,使学生成为工程应用型合格人才,故进行《EDA技术及应用》的课程设计。

帮助学生全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。

本文借助EDA实验室的仿真软件以及试验箱设计一个出租车计价器,要求显示里程和金额。

行程小于基本里程时,显示起步价,基本里程、起步价要求可通过按键自己设定;行程大于基本里程时,每多行一公里,在起步价上加X元,X可由按键设定;当出租车等待时,由司机按下等候键,每等待一分钟加Y元,Y可由按键设定系统中所需脉冲均由实验箱的晶振分频提供。

2系统组成及设计原理2.1系统组成方框图出租车自动计价器的系统方框图如图1所示:它有分频模块、控制模块、计时模块、计费模块及显示等模块组成。

图1.出租车自动计价器的系统方框图2.2出租车自动计价器原理图出租车自动计价器原理图如图2所示:它有输入信号clk,start,single,stop,mile;输出信号min1,min2,km1,km2,price1, price2, price3, price4。

图2.出租车自动计价器原理图2.3出租车自动计价器原理(1) 车速控制模块当起停键为启动状态时(高电平),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停止计数。

EDA课程设计报告--出租车计价器

EDA课程设计报告--出租车计价器

EDA课程设计报告--出租车计价器课程设计课程设计名称:出租车计价器专业班级学生姓名:学号:指导教师:课程设计时间:1 设计任务及要求出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。

从起步开始,行程3公里内,且等待累计时间2分钟内,起步费10元;3公里以外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。

并能显示行驶公里数、等待累计时间、总费用。

设计的主要技术指标:(1)计价范围:0—999.9元计价分辨率:0.1元(2)计程范围:0—99公里计程分辨率:1公里(3)计时范围:0—59分计时分辨率:1分本次设计中假设出租车的速度传感器具有出租车每行驶1Km提供1000个脉冲信号的特性。

当行驶速度小于等于6KM/h时为等待。

本设计的最终任务是显示出租车的等待时间和行驶里程,并计算出所需费用。

根据要求需要进行如下分工,首先要有一个分频模块(FPQ)产生系统工作用的基准信号1HZ,供系统中的有关模块计时用。

其次要有一个判断等待与否的模块(DDPB),再者就是要有计时和计程模块(DDSJ和LCJS),最后要有计费模块和显示译码模块(JFZ和YIMA)。

2设计原理及总体框图(1)设计总体框图图1总设计框图(2)设计总原理图图2设计总原理图设计总原理:测控FPGA芯片通过采集速度传感器脉冲信号WCLK进行行驶里程计算,利用外部脉冲信号CLK1产生标准时钟信号,用来计算等待时间,最后根据行驶里程、等待时间来计算计价值。

并用译码电路显示行驶里程、等待时间和计价值。

3 程序设计1.VHDL语言简单介绍VHDL语言(VHSIC Hardware Description Language,甚高速集成电路硬件描述语言)是一种设计、仿真、综合的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,其优点是:支持自上而下和基于库的设计,支持范围广,具有多层次描述系统硬件功能的能力。

EDA设计-出租车自动计费系统

EDA设计-出租车自动计费系统

EDA设计-出租车自动计费系统课程设计2010年3 月12日课程设计任务书课程EDA技术课程设计题目出租车自动计费系统专业电子信息工程姓名学号主要内容、基本要求、主要参考资料等主要内容:设计一个最大量程为99.99元的出租车自动计费,计费器具有行车里程计费、等候时间计费及起价三部分功能,并用数码管显示车费的数目。

基本要求:1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元;2、行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)均能通过人工输入。

3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然后用BCD码比例乘法器将里程脉冲乘以每公里单价的比例系数,比例系数可由开关预置。

例如单价是1.0元/公里,则脉冲当量为0.01元/脉冲。

4、用LED显示行驶公里数,两个数码管显示收费金额。

主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限2010.3.12指导教师专业负责人2010年3月8日一、总体设计思想1.基本原理根据设计要求,系统的输入信号有:系统时钟信号CLK,计价开始信号START,等待信号STOP,里程脉冲信号FIN。

系统的输出信号有:总费用数CHA0-CHA3,行驶距离(数)KM0-KM1和等待时间MIN0-MIN1等。

2.设计框图系统组成方框图如下所示,它由外部输入模块、控制模块和显示模块三部分组成。

控制模块是整个系统的核心,它由分频模块、控制模块、计量模块和译码显示模块构成。

系统框图二、设计步骤和调试过程1、总体设计电路(1)分频模块分频模块是对系统时钟频率进行分频,分别得到16HZ ,15HZ 和1HZ 三种频率。

EDA大作业-出租车计费系统的设计

EDA大作业-出租车计费系统的设计

1。

所选题目:出租车计费器2.设计要求:设计一个出租车计费器,能按路程计费,具体要求如下:(1)实现计费功能,计费标准为:按行驶里程计费,起步价为6。

00元,并在汽车行驶2km后按1.2元/km计费,当里程数达到15km后,没千米加收50%的空驶费,车辆停止和暂停时不计费。

(2)现场模拟汽车的启动、停止、暂停和换挡等状态。

(3)设计数码管显示电路,将车费和路程显示出来,各有1位小数。

3。

设计原理:设计该出租车有启动键、停止键、暂停键和档位键。

启动键为脉冲触发信号,当其为一个脉冲时,表示汽车已启动,并根据车速的选择和基本车速发出相应频率的脉冲(计费脉冲)以此来实现车费和路程的计数,同时车费显示起步价;当停止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和路程计数暂停;档位键用于改变车速,不同的档位对应着不同的车速,同时路程计数的速度也不同。

4.模块设计:出租车计费器可分为两大模块,即控制模块和译码显示模块.系统框图如下:5。

电路符号:出租车计费器的输入信号有:计费时钟脉冲clk;汽车启动键start;汽车停止键stop;档位speedup.输出信号:7段显示控制信号seg7;小数点dp。

6.具体设计流程:(1)根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。

①计数器A完成车费百位。

②计数器B完成车费十位和个位.③计数器C完成车费角和分(显示时只显示角)。

④计数器D完成计数到20(完成车费的起步价)。

⑤计数器E完成模拟实现车行驶100 m的功能。

(2)当超出起步价时就自动在起步价的基础上每增加一个100m脉冲就增加相应的费用,而当总里程达到或超过一定的数值时,能按新的收费标准进行收费。

(3)译码/动态扫描电路模块将路程与费用的数值译码后用动态扫描的方式驱动6只数码管,即所连接的数码管共用一个数据端,由片选信号依次选择输出,轮流显示.(4)数码管显示将千米数和计费金额均用3位LED数码管显示(2位整数,1位小数)。

eda课程设计出租车计费器

eda课程设计出租车计费器

eda课程设计出租车计费器一、引言随着城市化进程的加速,出租车已成为人们出行的重要交通工具之一。

出租车计费器作为出租车运营的核心设备,其设计的合理性和精确性直接关系到乘客和司机的利益。

因此,设计一款高效、准确的出租车计费器具有重要的实际意义。

本次EDA课程设计,我们以出租车计费器为研究对象,对其进行模拟设计。

二、计费器功能需求分析出租车计费器应具备以下基本功能:1.起步价计费:按照规定的起步价格进行计费。

2.里程计费:根据行驶里程计算费用,一般按每公里单价进行累加。

3.等待时间计费:在等待或红绿灯等情况下,应按设定的单价计算费用。

4.计费显示:将乘客应支付的总费用实时显示在计费器上。

5.声音提示:在计费过程中,应有声音提示,如“谢谢”等。

6.夜间服务费:在夜间或特殊时间段,可设定额外服务费用。

7.故障保护:当计费器出现故障时,应能够自动进入保护模式,停止计费。

三、计费器系统设计基于上述功能需求,我们设计了以下出租车计费器系统:1.主控模块:采用微控制器作为核心控制单元,负责接收传感器信号、计算费用、控制显示和声音输出等功能。

2.里程传感器:用于检测出租车的行驶里程,一般通过轮速传感器实现。

里程数据被传送到主控模块进行计算。

3.时间传感器:用于检测出租车的运行时间,可选用霍尔传感器等实现。

时间数据也需传送到主控模块进行处理。

4.显示模块:选用液晶显示屏(LCD),用于显示总费用、行驶里程、时间等信息。

通过主控模块驱动LCD显示。

5.声音提示模块:选用蜂鸣器作为声音输出设备,由主控模块控制发出提示音。

6.夜间服务费模块:通过软件编程实现夜间服务费的设定和计算。

主控模块根据时间传感器信号判断是否进入夜间模式。

7.故障保护模块:在系统检测到故障时,如计费器出现异常过热或长时间无里程/时间信号,主控模块将自动进入保护模式,停止计费并发出报警信号。

四、计费算法设计根据上述功能需求和系统设计,我们采用以下计费算法:1.起步价费用 = 起步价 * 计费时间(3分钟)2.里程费用 = 每公里单价 * 行驶里程3.等待时间费用 = 单价 * 等待时间(秒)4.总费用 = 起步价费用 + 里程费用 + 等待时间费用 + 夜间服务费(如有)5.每公里单价、起步价、等待时间单价、夜间服务费等参数均可根据实际需求进行设定。

EDA课程设计—出租车计价器

EDA课程设计—出租车计价器

燕山大学EDA课程设计报告书题目:出租车计价器姓名:班级: 12级通信工程1班学号:成绩:一、设计题目及要求要求:1.2 Km起计价,起始价5元,每公里1.2元;2.传感器输出脉冲为0.5m/个(用适当频率的时钟信号代替即可);3.每0.5km改变一次显示,且钱数提前显示(例如运行到2Km时,应显示5.6元);4. 分别用三位数码管显示公里数和钱数,另可设置其他必要的按钮。

二、设计过程及内容1.题目分析该题模拟出租车计价器,显示路程及对应价格,要求每经0.5km更新显示,传感器输出脉冲为0.5m/个,即每经过1000个脉冲,路程增加了0.5km,价格增加0.6元。

其中,价格起始价5元,即需要价格在路程2km 之前显示固定值5元。

二者分别用三位数码管显示,分析可知,路程的小数位显示0或5,在5→0时,向个位进位;价格的小数位依次显示6、2、4、8、0,在6→2,8→4,4→0的转变中,产生进位,价格的个位从起始价5开始计数。

2.设计总述依据设计要求出租车计价器型可分为四个模块:分频模块,路程计数模块,价格计数模块和二者的显示模块。

①分频模块分频模块功能是每经过1000个脉冲,即0.5km,输出一个脉冲信号,并且产生一控制输出,该控制信号在2km前,输出为0,而在2km处及2km之后输出1,该控制信号控制价格计数器从2km处开始累加钱数。

②路程计数模块路程计数模块的功能是显示路程,路程包含了十位,个位和小数位,其中,小数位显示0或5,并在固定位置5→0处向个位进位,十位个位为常规0~99计数器。

③价格计数模块价格计数模块的功能是显示与路程对应的价格,且价格提前显示。

价格同样包含十位,个位和小数位,其中小数位依次显示6、2、8、4、0,并在6→2,8→4,4→0时,向个位产生进位,价格的个位为从5开始计数的10进制计数器,在9→0时产生向十位的进位,十位是常规的0~9计数器。

④路程、价格显示模块路程、价格显示模块的功能是使用试验箱中的6个数码管(编号为1~6的数码管)显示路程和价格,使用编号为3、2、1的数码管显示路程,使用编号为6、5、4的数码管显示价格。

出租车计费器eda课程设计

出租车计费器eda课程设计

出租车计费器eda课程设计一、教学目标本课程旨在通过学习出租车计费器的设计与实现,使学生掌握以下知识目标:1.理解出租车计费器的原理和结构;2.学习相关的电子技术和电路知识;3.掌握编程语言和嵌入式系统的基本应用。

4.能够独立设计和搭建出租车计费器的电路;5.能够编写程序实现计费器的功能;6.能够进行实验操作,并对实验结果进行分析。

情感态度价值观目标:1.培养学生对科学研究的兴趣和热情;2.培养学生团队合作意识和沟通能力;3.培养学生对工程实践的责任感和安全意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.出租车计费器的原理和结构;2.相关的电子技术和电路知识;3.编程语言和嵌入式系统的基本应用;4.出租车计费器的实验操作和结果分析。

具体安排如下:第1-2周:介绍出租车计费器的原理和结构,学习相关的电子技术和电路知识;第3-4周:学习编程语言和嵌入式系统的基本应用;第5-6周:进行出租车计费器的实验操作,并对实验结果进行分析。

三、教学方法为了更好地实现教学目标,我们将采用以下教学方法:1.讲授法:通过讲解出租车计费器的原理和结构,相关的电子技术和电路知识,以及编程语言和嵌入式系统的基本应用;2.实验法:让学生亲自动手进行出租车计费器的实验操作,培养学生的实践能力;3.讨论法:在课堂上引导学生进行思考和讨论,激发学生的学习兴趣和主动性。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材和参考书:为学生提供系统的理论知识;2.多媒体资料:通过视频、图片等形式,为学生提供丰富的学习材料;3.实验设备:为学生提供实践操作的机会,培养学生的实践能力。

五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解能力;2.作业:布置相关的编程练习和实验报告,评估学生的掌握程度和实践能力;3.考试:通过期末考试,全面评估学生对课程知识的掌握情况。

出租车计费器eda课程设计

出租车计费器eda课程设计

出租车计费器eda课程设计一、课程目标知识目标:1. 学生理解出租车计费器的基本工作原理,掌握其计费算法。

2. 学生掌握EDA(电子设计自动化)的基本概念,学会使用相关软件工具进行简单电路设计和仿真。

3. 学生了解出租车计费器在实际生活中的应用,掌握相关电子元件的功能和连接方式。

技能目标:1. 学生能够运用所学知识,设计并搭建一个简单的出租车计费器电路。

2. 学生能够运用EDA软件进行电路仿真,验证计费器的功能。

3. 学生能够通过小组合作,解决实际设计过程中遇到的问题,提高团队协作能力。

情感态度价值观目标:1. 学生培养对电子技术学科的兴趣,激发学习热情。

2. 学生培养创新意识和动手能力,提高自信心和成就感。

3. 学生学会关注生活中的实际问题,培养学以致用的价值观。

课程性质:本课程为电子技术学科的课程设计,旨在让学生通过实际操作,掌握出租车计费器的工作原理和设计方法,提高学生的动手能力和团队协作能力。

学生特点:学生具备基本的电子技术知识,对实际操作和设计有一定兴趣,喜欢探索新事物。

教学要求:教师需引导学生主动参与,注重理论与实践相结合,关注学生的个体差异,提高学生的自主学习能力。

同时,注重培养学生的团队协作能力和创新意识。

通过本课程的学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。

二、教学内容根据课程目标,本章节教学内容如下:1. 出租车计费器原理介绍- 计费器的基本工作原理- 计费算法及其实现2. EDA软件工具使用- EDA软件的安装与基本操作- 电路设计原理及仿真方法3. 电子元件及其功能- 常用电子元件的识别与使用- 元件连接方式及其在出租车计费器中的应用4. 出租车计费器电路设计- 设计要求与电路框图- 电路搭建与调试5. 小组合作与问题解决- 团队协作能力的培养- 实际设计过程中问题的发现与解决教学大纲安排:第一课时:出租车计费器原理介绍第二课时:EDA软件工具使用第三课时:电子元件及其功能第四课时:出租车计费器电路设计第五课时:小组合作与问题解决教材章节关联:本教学内容与教材中“电子技术应用”章节相关,涉及计费器原理、EDA软件应用、电子元件使用等方面的内容。

EDA课程设计-简易出租车计价器设计

EDA课程设计-简易出租车计价器设计

EDA 课程设计[RTX于2012/2/22]简易出租车计价器设计要求:●计价器按1.2元/公里计费,超过10公里后,则按1.8元/公里收费。

●起步价6元(3公里),超过3公里后,计价累加0.6元,10公里内以后每过0.5公里累加0.6元。

●过10公里后, 计价累加0.9元, 以后每过0.5公里累加0.9元。

●公里数4位数字显示,精确到0.1公里; 出租车计价4位数字显示,精确到0.1元。

●即:一.设计方案二.硬件部分:(1)硬件环境: 东南大学SE-5型EDA试验箱,其中核心元件是Altera公司的EPF10K10LC84-4):三.软件部分:(1)软件环境: Altera公司的MAX+plusII(2)程序源代码:1.顶层设计:2.各元件源代码:元件kms2money--kms2money.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;--0.1公里表示为1, 0.1元表示为1entity kms2money isport( rst, clk, enf, dispclk :in std_logic;data4 :out std_logic_vector(3 downto 0);ctl8 :out std_logic_vector(7 downto 0));--data4 :按dispclk的上升沿周期性的依次输出kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0--ctl8 :分别为控制动态扫描显示的8个LED的使能端,高电平使能end kms2money;architecture art_kms2money of kms2money issignal kms3,kms2,kms1,kms0:std_logic_vector(3 downto 0);--公里百位,十位,个位,十分位signal mon3,mon2,mon1,mon0:std_logic_vector(3 downto 0);--金额百位,十位,个位,十分位begin------------------------------------------------------------------------------------------------------ dynctl:process(dispclk,kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0) --动态显示--dispclk上升沿依次来临时data4依次为kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0,周而复始variable times:std_logic_vector(2 downto 0); --3位可表征8种状态,非'0'且非'1'除外beginif dispclk'event and dispclk='1' thentimes:=times+1;case times iswhen "000"=> data4<=kms3; ctl8<="10000000";--使能左起第1位LEDwhen "001"=> data4<=kms2; ctl8<="01000000";--使能左起第2位LEDwhen "010"=> data4<=kms1; ctl8<="00100000";--使能左起第3位LEDwhen "011"=> data4<=kms0; ctl8<="00010000";--使能左起第4位LEDwhen "100"=> data4<=mon3; ctl8<="00001000";--使能左起第5位LEDwhen "101"=> data4<=mon2; ctl8<="00000100";--使能左起第6位LEDwhen "110"=> data4<=mon1; ctl8<="00000010";--使能左起第7位LEDwhen "111"=> data4<=mon0; ctl8<="00000001";--使能左起第8位LEDwhen others=> data4<="ZZZZ";ctl8<="00000000";--无效为高阻都不选中end case;end if;end process;------------------------------------------------------------------------------------------------------ kmsdisp:process(rst,clk) --clk每来一次上升沿认为公里数加0.1公里,即加1beginif rst='1' then kms3<="0000";kms2<="0000";kms1<="0000";kms0<="0000";--初始数据elsif clk'event and clk='1' thenif enf='1' thenif kms0="1001" then --按十进制相加规律加1kms0<="0000";if kms1="1001" thenkms1<="0000";if kms2="1001" thenkms2<="0000";if kms3="1001" then kms3<="0000";else kms3<=kms3+1;end if;else kms2<=kms2+1;end if;else kms1<=kms1+1;end if;else kms0<=kms0+1;end if;end if;end if;end process;------------------------------------------------------------------------------------------------------ mondisp:process(rst,clk)variable kms: std_logic_vector(15 downto 0); --公里数的十六进制值或二进制值variable times:std_logic_vector(2 downto 0);--记录clk上升沿的次数,即有几个0.1公里beginif rst='1'then mon3<="0000";mon2<="0000";mon1<="0110";mon0<="0000";kms:=(others=>'0');times:="000";elsif clk'event and clk='1' thenif enf='1' thentimes:=times+1;if times=1 thenkms:=kms+5; --kms可能为0,5,10,..,6,65,...(5的倍数)--kms+1(0.1公里)与kms+5在价格的角度上看是等价的--XXX.1-XXX.5公里均按XXX.5公里看待,XXX.6-XXX.9公里均按(XXX.9+0.1)看待If kms<=30 then mon3<="0000";mon2<="0000";mon1<="0110";mon0<="0000";--不超过3公里,收起步价6.0元elsif kms<=100 then --超过3公里不超过10公里,每0.5公里金额加0.6元;--------------------------------------------------------if mon0>3 then --按十进制相加规律加6mon0<=mon0-4; --XXX4-XXX9加6后为YZW0-YZW5if mon1="1001" thenmon1<="0000";if mon2="1001" thenmon2<="0000";if mon3="1001" then mon3<="0000";else mon3<=mon3+1;end if;else mon2<=mon2+1;end if;else mon1<=mon1+1;end if;else mon0<=mon0+6; --XXX0-XXX3加6后为XXX6-XXX9end if;--------------------------------------------------------else --超过10公里,每0.5公里金额加0.9元;--------------------------------------------------------if mon0>0 then --按十进制相加规律加9mon0<=mon0-1; --XXX1-XXX9加9后为YZW0-YZW8if mon1="1001" thenmon1<="0000";if mon2="1001" thenmon2<="0000";if mon3="1001" then mon3<="0000";else mon3<=mon3+1;end if;else mon2<=mon2+1;end if;else mon1<=mon1+1;end if;else mon0<=mon0+9; --XXX0加9后为XXX9end if;--------------------------------------------------------end if;elsif times=5 then times:="000";--每计数5次clk就重新计数以便下次"循环"使用--times=0,2,3,4时参数不变,而只在times=1时一笔带过,被包含了.times=0与times=5是等效的end if;end if;end if;end process;------------------------------------------------------------------------------------------------------end art_kms2money;3.元件seg7bcd--seg7bcd.vhdlibrary ieee;use ieee.std_logic_1164.all;entity seg7BCD isport( turn_on :in std_logic;x :in std_logic_vector(3 downto 0);y :out std_logic_vector(6 downto 0));--声明:-- 共阴极7段显示-- turn_on :显示使能开关,高电平有效-- x :4位BCD码,x(3)为最高位,x(0)为最低位-- y :7段显示码,y(6)..y(0)对应g f e d c b aend seg7BCD;architecture art_seg7BCD of seg7BCD isbeginprocess(x,turn_on)beginif turn_on='1' thencase x is --"gfedcba"when "0000"=>y<="0111111";--0when "0001"=>y<="0000110";--1when "0010"=>y<="1011011";--2when "0011"=>y<="1001111";--3when "0100"=>y<="1100110";--4when "0101"=>y<="1101101";--5when "0110"=>y<="1111101";--6when "0111"=>y<="0000111";--7when "1000"=>y<="1111111";--8when "1001"=>y<="1101111";--9when others=>y<="ZZZZZZZ";--无效end case;else y<="0000000";--熄灭end if;end process;end art_seg7BCD;3.仿真结果4.管脚绑定Port Num Name---------------------------------------- [+]LedEN[7..0]LedEN7 80LedEN6 81LedEN5 83LedEN4 3LedEN3 72LedEN2 73LedEN1 78LedEN0 79---------------------------------------- [+]g2a[6..0]g2a6 6 gg2a5 7 fg2a4 8 eg2a3 9 dg2a2 10 cg2a1 11 bg2a0 16 a---------------------------------------- [+]inputCLK 1 CP1dispCLK 43 CP2RST 28 K1nPause 29 K25.下载程序---------------------------------------------------------------------------------------------------------------------- 本程序十分简易,仅供交流与学习。

EDA课程设计出租车计费器

EDA课程设计出租车计费器

EDA技术课程设计说明书出租车计费器设计院、部:电气与信息工程学院学生姓名:杨建雄指导教师:职称专业:电气工程及其自动化班级:电气本 1202班完成时刻: 2021年6月20日摘要本文介绍了一种采纳单片FPGA芯片进行出租车计费器的设计方式,要紧论述如何利用新兴的EDA器件取代传统的电子设计方式,利用FPGA的可编程性,简练而又多变的设计方式,缩短了研发周期,同时使出租车计费器体积更小功能更壮大。

本设计实现了出租车计费器所需的一些大体功能,计费包括起步价、行车里程计费、等待时刻计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。

要紧包括采纳了FPGA芯片,利用VHDL语言进行编程,使其具有了更强的移植性,加倍利于产品升级。

关键词:VHDL;计费器;QuartusⅡ;FPGA目录设计要求 ................................................. 错误!未定义书签。

一、方案论证与对照 ....................................... 错误!未定义书签。

、方案一.............................................. 错误!未定义书签。

、方案二.............................................. 错误!未定义书签。

、方案对照与选择...................................... 错误!未定义书签。

二、要紧模块设计 ......................................... 错误!未定义书签。

、速度模块............................................ 错误!未定义书签。

、计程模块............................................ 错误!未定义书签。

EDA课程设计出租车计价器

EDA课程设计出租车计价器

初始化:设置计价器 参数,如起步价、单 价、里程等
输入:获取乘客上车 地点、下车地点等信 息
计算:根据输入的信 息,计算车费
输出:显示车费结果, 并提示乘客支付
结束:乘客支付后, 结束计价器程序
计时模块设计
功能:记录出租车行驶时间
实现方法:使用定时器或系统时间 获取时间,并记录在数据库中
添加标题
添加标题
绿色化:EDA技术将更加绿色化,能够更 好地保护环境和资源
THANKS
汇报人:
EDA课程设计出租车计 价器
,a click to unlimited possibilities
汇报人:
目录
01 添 加 目 录 项 标 题 03 E D A 技 术 应 用 05 计 价 器 软 件 程 序 设 计 07 总 结 与 展 望
02 计 价 器 系 统 概 述 04 计 价 器 硬 件 电 路 设 计 06 计 价 器 系 统 测 试 与 验 证
计价器系统的基本组成
计价器硬件:包括显示屏、键盘、打印机等 计价器软件:包括操作系统、计价器应用软件等 数据存储:包括计价器数据、交易记录等 通信模块:用于与出租车管理系统进行数据传输和通信
计价器的工作原理
计价器通过GPS定位获取 车辆位置信息
根据行驶距离和时间计算 车费
计价器显示车费信息,包 括起步价、里程费、等待 费等
Part Four
计价器硬件电路设 计
硬件电路设计概述
计价器硬 件电路设 计主要包 括:主控 芯片、显 示屏、键 盘、传感 器等部分。
主控芯片 负责控制 整个系统 的运行, 包括数据 处理、显 示控制、 键盘输入 等。
显示屏用 于显示计 价信息, 如里程、 时间、金 额等。

EDA课程设计出租车自动计费器

EDA课程设计出租车自动计费器

课程设计课程设计名称:EDA课程设计专业班级:电科1002班学生姓名:XXX学号:2010483602XX指导教师:XXX课程设计时间:2013-2-25~2013-3-8电子信息科学与技术专业课程设计任务书参考文献(1)黄智伟. FPGA系统设计与实践电子工业出版社2005.1 (2)焦素敏. EDA课程设计指导书河南工业大学2008.2 (3)焦素敏. EDA应用技术清华大学出版社2005.4审查意见指导教师签字:教研室主任签字:张庆辉2013年2月25日一、设计任务及要求设计一个出租车计价器:计费包括起步价、行车里程计费、等待时间计费3部分。

用3用用用用用用用用,最大值为999.9元,最小计价单元为0.1元;行程3公里内,且等待时间累计3分钟内,起步价10元,超过3公里,以每公里1.6元计费,等待时间单价为每分钟1.5元;用两位数码管显示总里程,最大值为99公里用两位数码管显示等待时间,最大值为59min。

二、设计原理及总体框图出租车自动计费器分为分频模块、控制模块、计量模块、计费模块、译码和显示模块。

A)、设计原理:(1)分频模块分频模块对频率为240HZ的输入脉冲进行分频,得到的频率为16HZ、15HZ、和1HZ的3种频率。

该模块产生频率信号用于计费,每个脉冲为0.1元计费控制,其中15Hz信号为1.5元的计费控制,16Hz信号为1.6元计费控制。

(2)计量控制模块计量控制模块式出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。

其中计价功能主要完成的任务是:行程3公里内且等待累计时间在3分钟内起步价为10元3公里以外每公里1.6元计费,等待时间3分钟以外每分钟1.5元计费。

计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零。

计程主要完成的任务是:计算乘客所行驶的公里数,计价器的量程为99公里,满量程自动归零。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子信息科学与技术专业课程设计任务书一、设计任务及要求设计一个出租车计价器:计费包括起步价、行车里程计费、等待时间计费3部分。

用3位数码管显示金额,最大值为999.9元,最小计价单元为0.1元;行程3公里内,且等待时间累计3分钟内,起步价10元,超过3公里,以每公里1.6元计费,等待时间单价为每分钟1.5元;用两位数码管显示总里程,最大值为99公里用两位数码管显示等待时间,最大值为59min。

二、设计原理及总体框图出租车自动计费器分为分频模块、控制模块、计量模块、计费模块、译码和显示模块。

A)、设计原理:(1)分频模块分频模块对频率为240HZ的输入脉冲进行分频,得到的频率为16HZ、15HZ、和1HZ的3种频率。

该模块产生频率信号用于计费,每个脉冲为0.1元计费控制,其中15Hz信号为1.5元的计费控制,16Hz信号为1.6元计费控制。

(2)计量控制模块计量控制模块式出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。

其中计价功能主要完成的任务是:行程3公里内且等待累计时间在3分钟内起步价为10元3公里以外每公里1.6元计费,等待时间3分钟以外每分钟1.5元计费。

计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零。

计程主要完成的任务是:计算乘客所行驶的公里数,计价器的量程为99公里,满量程自动归零。

(3)译码显示模块该模块利用实验板上的译码器和数码管分别将输出的计费数据(4位BCD码)、计时数据(2位BCD码)和计程数据(2位BCD码)显示输出。

其中计费数据最后以百元、十元、元、叫、角为单位对应的数码管上显示,最大显示为999.9元;计时数据最后送至以分为单位对应的数码管上显示,最大显示为59s;计程数据最后送至以公里为单位的数码管上显示,最大公里为99公里。

B)、总体框图:根据层次化设计理论将该问题自顶向下可分为分频模块、计量模块、控制模块、译码和显示模块各模块功能如下:时钟信号等待信号公里信号计费复位分频器计量控制计费计时计程显示译码三、程序设计及编译仿真1)、分频模块:对频率为240HZ的输入脉冲进行分频,得到的频率为16HZ、15HZ、和1HZ 的3种频率。

程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;entity fp isport ( 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 isbeginprocess(clk)variable cout16:integer range 0 to 14;variable cout15:integer range 0 to 15;variable cout1:integer range 0 to 239;beginif (clk'event and clk='1') thenif cout16=14 --240hz分频为16hzthen cout16:=0;q16<='1';else cout16:=cout16+1;q16<='0';end if;if cout15=15 --240hz分频为15hzthen cout15:=0;q15<='1';else cout15:=cout15+1;q15<='0';end if;if cout1=239 --240hz分频为1hzthen 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;use ieee.std_logic_unsigned.all;entity jiliang isport( 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)); --时间的计量end jiliang;architecture rt2 of jiliang issignal w:integer range 0 to 59;beginprocess(clk1)beginif (clk1'event 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="0101" then m1<="0000";else m1<=m1+1;end if;else 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' thenif k0="1001" then k0<="0000";if k1="1001" then k1<="0000";else k1<=k1+1;end if;else k0<=k0+1;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)、控制模块:该模块主要进行时间和里程的切换。

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity kongzhi isport(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 isbeginprocess(ent0,ent1)beginclk_out<=clk_in1;elsif ent1='1' thenclk_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_UNSIGNED.ALL;entity jifei isport(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 isbeginprocess(clk2,start)beginif start='0' then c3<="0000";c2<="0001";c1<="0000";c0<="0000"; elsif (clk2'event and clk2='1') thenif 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;end if;else c0<=c0+1;end if;end if;end process;end rt3;仿真波形:5)、译码显示模块:译码显示模块是应用实验工具箱上的自带的硬件电路显示译码。

相关文档
最新文档