EDA出租车自动计费器[范文大全]

时间:2019-05-12 03:43:33下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《EDA出租车自动计费器》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《EDA出租车自动计费器》。

第一篇:EDA出租车自动计费器

EDA课程设计报告

题目:出租车自动计费器

院系:

信工系

班级:

电信二班

学号:

111608060211

姓名:

陈森

目录

摘要...............................................................3 引言...............................................................4 第1章整体设计说明............................................5

1、设计要求................................................................5

2、设计内容及思路.................................................5 第2章各模块的介绍............................................6

1、电平转换模块.........................................................6

2、等待时间显示模块..................................................7

3、行驶里程显示模块..................................................8

4、计费显示模块.........................................................9

5、调用的计数器模块................................................10

6、顶层模块..............................................................10 第3章管脚锁定及硬件连线.................................12 第4章程序下载与调试.......................................14 设计心得体会..................................................15

摘要

Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种用文本形式来描述数字系统硬件的结构和行为的Verilog语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。现在,随着系统级FPGA以及片上系统的出现,软硬件协同设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。

本文介绍了一种采用单片FPGA芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法,利用FPGA的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行车里程计费、等待时间计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包括采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品升级。

引言

人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是EDA技术[1]。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对EDA技术提出新要求。EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(Verilog HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件[2]。

Verilog HDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此Verilog HDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用Verilog HDL来完成。另外,Verilog HDL还有以下优点:Verilog HDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;Verilog HDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;Verilog HDL的设计不依赖于特定的器件,方便了工艺的转换。Verilog HDL是一个标准语言,为众多的EDA场上支持,因此移植性好。

第1章整体设计说明

1、设计要求

设计一个出租车自动计费器,计费包括起步价,行车里程计费、等待时间三部分,用三位数码管显示总金额,最大值为99.9元。起步价位5.0元,3km之内按起步价计费,超过3km,每km增加1元,等待时间计费为每分钟0.1元。用两位数码管显示总里程,最大值为99km,用两位数码管显示等待时间,最大值为99min。

2、设计内容及思路

此设计问题分为主控模块、里程计数模块、等待时间计数模块、计费模块和扫描显示模块。

在行车计费模块中,将行驶的里程数转换为与之成正比的脉冲个数。每100个clk1·模拟1km,输出100个脉冲。3km之内为起步价,即300个clk1之内为起步价,以后每km增加1元,即每10个clk1增加0.1元。在等待时间计数模块中,设置行驶状态输入信号为drive,行驶显示信号run,起步价预先固定在电路中,由drive信号异步置数至计费模块,同时使系统显示为当前行驶状态run,里程计数工作,到3km后,每10 个clk1脉冲使计费增

加0.1元,计费显示在数码管上。设置刹车信号break,等待状态显示信号pause,有break信号使系统显示为当前状态pause,等待时间计数模块工作,每分钟计费增加0.1元。

第2章各模块的介绍

1、电平转换模块

module EDGE_TO_PULSE(CLK,IN,OUT);input IN,CLK;output OUT;reg OUT,temp;always@(posedge CLK)

//上升沿有效

begin

if(!temp&&IN)

//上衣一个状态与当前状态不一样 OUT<=1;

//输出以为1 else if(temp==IN)

//上一个状态与当前状态一样 OUT<=0;

//输出为你0 temp<=IN;end endmodule 此模块的在输入行驶的前一个状态与后一个状态不一样时,在上升沿到来时输出高电平,当前一个状态与后一个状态一样时,在上升沿到来时,输出低电平。输出端接计费器的同步置位端,在开车时,将费用置到起步价5元。

模块如下

inst4INCLKOUTEDGE_TO_PULSE

仿真波形如下

2、等待时间显示模块

module TO_BCD2(IN,OUT_H,OUT_L);input [6:0]IN;output [3:0]OUT_H,OUT_L;assign OUT_H=IN/10;

//把输入的十进制数除以10取整得到十位数。assign OUT_L=IN%10;

//把输入的十进制数数除以10取余得个位数。Endmodule 此模块的功能是把7位二进制表示的十进制的输入数据输出成4为二进制表示的16进制数,显示在数码管上。把输入的十进制数除以10取整得到十位数。把输入的十进制数数除以10取余得个位数。模块如下:

TO_BCD2IN[6..0]OUT_H[3..0]OUT_L[3..0]inst7

仿真波形如下所示:

3、行驶里程显示模块

module TO_BCD(IN,OUT_H,OUT_L);input [6:0]IN;output [3:0]OUT_H,OUT_L;assign OUT_H=IN/100;

//行驶里程除以100取整得到最高位。

assign OUT_L=IN%100/10;//行驶里程除以100取余再除以10取整得到个位数,最低位为0.1千米位,就不再显示了。endmodule 此模块的功能跟等待时间显示模块类似,为了计费方便,把里程用三位十进制数表示,最低位表示0.1千米位,不再显示在数码管中,将行驶里程除以100取整得到最高位,除以100取余再除以10取整得到个位数。模块的图形如下所示:

TO_BCDIN[6..0]OUT_H[3..0]OUT_L[3..0] inst11 其仿真波形如图所示:

4、计费显示模块

module TO_BCD_B(IN,OUT_B,OUT_S,OUT_G);input [9:0]IN;output [3:0]OUT_B,OUT_S,OUT_G;assign OUT_B=IN/100;

//金额除以100得到最高位

assign OUT_S=IN%100/10;//金额除100取余再除10取整得到个位数。assign OUT_G=IN%10;//金额除以10取余得到最低位数据 endmodule 此模块的功能是把用10位二进制表示的3位十进制费用,转换为每一位都是用4位二进制表示的16进制数。用于显示在数码管上面。能够显示的最大金额为99.9元。金额除以100得到最高位,金额除100取余再除10取整得到个位数,金额除以10取余得到最低位数据。模块的形状如下所示:

TO_BCD_BIN[9..0]OUT_B[3..0]OUT_S[3..0]OUT_G[3..0]inst 其仿真波形如图所示:

5、调用的计数器模块

以上为调用的三个计数器模块,模块里程计数CNT_TIME和费用计数CNT_KM的输出接在一个或门上,当里程计数和等待时间任何一个计数溢出,都向计费CHARGE模块进位。CHARGE模块上面接着aclr异步清零和aset同步置位端。使得在车启动时把费用置位到5起步价5元,在清零信号发生后,把费用清零。

6、顶层模块

module CONTROLLER(clear,brake,drive,K_OR_T,pause,run,EN_T,EN_K,min,km,CH

ARGE_EN);input clear,brake,drive,K_OR_T;output pause,run,EN_T,EN_K,min,km,CHARGE_EN;reg [6:0] min,km;reg pause,run,EN_T,EN_K;assign CHARGE_EN=(km>=30);always@(brake,drive)case({drive,brake})//定义2位二进制数来表示车的行驶状态

2'b10 :begin EN_K=1;EN_T=0;pause=0;run=1;end //drive为1,break为0的时候车处于行驶状态 2'b11 :begin EN_K=0;EN_T=1;pause=1;run=0;end //drive为1,break为1的时候车处于行驶过程中的等待状态

default :begin EN_K=0;EN_T=0;pause=0;run=0;end endcase always@(posedge K_OR_T,posedge clear)if(clear)begin km=0;min=0;end //当按下清零键的时候,使路程和等待时间都清零

else

case({drive,brake})2'b10 :km=km+1;

2'b11 :min=min+1;default :begin km=km;min=min;end endcase endmodule 该模块的功能是把其他模块连接起来,整体过程是drive信号出现时,车开始行驶,同时计费器初始化起步价为5元。当行驶路程达到3KM后,每增加1KM费用增加0.1元。在此同时,如果brake信号出现后,行驶里程停止计数,等待时间开始计时,每增加1分钟,费用增加0.1元。按下clear清零键后,行驶里程、等待时间和费用全部清零。模块如下: CONTROLLERclearbrakedriveK_OR_TpauserunEN_TEN_Kmin[6..0]km[6..0]CHARGE_ENinst5

顶层模块连线后的图形如下:

仿真波形如下所示:

第3章管脚锁定及硬件连线

所有模块写好,顶层模块连接好,编译无误,仿真以后就可以进行锁定

引脚了。

根据硬件资源和需要选择合适的引脚进行锁定,再根据实验手册锁定好以后的结果如下所示:

引脚锁定好以后,编译无误以后,接下来把导线连接好以后就可以下载了。

第4章程序下载与调试

点击programmer按钮进入下载页面:

选择好硬件以后,点击Start开始下载。调试好以后的结果如下:

设计心得体会

感谢学校给我们提供的EDA课程设计课程,通过本次课程设计,从中感触到了很多。

在课程设计的过程中,增强了同学之间的互动性,在此同时,也对以前学过的EDA知识有了更加深刻的理解。在设计过程中,总是遇到这样或那样的问题。有时发现一个问题的时候,需要做大量的工作,花大量的时间才能解决。自然而然,我的耐心便在其中建立起来了。为以后的工作积累了经验,增强了信心。

我认为,不仅仅是此次考查设计,在整个这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

通过这次设计,本人在多方面都有所提高。同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。

第二篇:出租车自动计费器设计(课程设计报告)

目 录 绪论....................................................................................................................................................1 1.1设计背景......................................................................................................................................1 1.2QUARTUS II简介.......................................................................................................................1 1.3VHDL语言基础..........................................................................................................................2 2 出租车计费器总体设计结构.............................................................................................................2 2.1

系统设计要求和目的..................................................................................................................2 2.2.1 系统设计要求......................................................................................................................2 2.2.1 系统设计目的......................................................................................................................2 2.2

设计思路......................................................................................................................................3 2.3

系统总体结构..............................................................................................................................3 2.4出租车计费器系统工作流程图..................................................................................................4 3 出租车计费器的实现........................................................................................................................5 3.1

出租车计费器的顶层原理图......................................................................................................5 3.2

系统各功能模块的实现..............................................................................................................5 3.2.1 计费模块JIFEI....................................................................................................................5 3.2.2 计量模块JILIANG..............................................................................................................6 3.2.3 显示控制模块SELTIME.....................................................................................................7 3.2.4 显示模块DELED................................................................................................................7 4 出租车计费器系统仿真及分析.........................................................................................................8 4.1

计费系统的仿真..........................................................................................................................8 4.2

单元模块的仿真及分析............................................................................................................10 4.2.1 译码显示模块的仿真及分析............................................................................................10 4.2.2 显示控制模块的仿真及分析............................................................................................12 4.2.3 计量模块的仿真及分析....................................................................................................13 4.2.4 计费模块的仿真及分析....................................................................................................13 5 锁定管脚及硬件实现......................................................................................................................14 5.1

锁定管脚图................................................................................................................................14 5.2

硬件实现....................................................................................................................................14 5.2.1 显示结果的几种情况........................................................................................................15 5.2.2 硬件实现总结....................................................................................................................16 6 设计体会与总结..............................................................................................................................17 参考文献................................................................................................................................................18 附

录................................................................................................................................................19 1

JILIANG模块的VHDL编程......................................................................................................19 2

JIFEI模块的VHDL编程............................................................................................................21 3

SELTIME控制模块的VHDL编程.............................................................................................22 4

DELED模块的VHDL编程........................................................................................................23

出租车自动计费器设计 绪论

1.1 设计背景

随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具,它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是具有一定意义的。出租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规范化,标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备,简单易用,计量准确的出租车计费器是加强出租车行业管理,提高服务质量的必需品。本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到一种出租车计价系统的软件结构,通过Quartus II 6.0软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求,具有一定的实用性。

1.2 QUARTUS II简介

QUARTUS II 是Altera公司的综合性CPLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整CPLD设计流程。QUARTUS II 支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera QUARTUS II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

出租车自动计费器设计

1.3 VHDL语言基础

一般而言,一个相对完整的VHDL语言程序至少应三个基本组成部分:①库(Library)、程序包(Package)使用说明;②实体(Entity)说明;③实体对应的结构体(Architecture)说明。其中,库、程序包使用说明用于打开(调用)本设计实体将要用到的库、程序包;实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,允许含有一个或多个结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。出租车计费器总体设计结构

2.1 系统设计要求和目的

2.2.1 系统设计要求

1.起步价为5.0元,起步公里为3公里;

2.超过3公里,每公里按1元收费,也可每0.1公里按0.1元收费; 3.等候时间累计1分钟,按每分钟0.1元收费;

4.用三个数码管显示总金额,最大值为99.9元;用三个数码管显示总里程,最大值99.9公里;用两个数码管显示等待时间,最大值99分钟。2.2.1 系统设计目的

1.通过这次实验设计使我们加深对EDA技术与数字系统设计相关理论和概念的理解,培养我们的理论联系实际的能力,特别是实际动手能力。

2.学习使用QUARTUS II软件设计。

3.根据原理图学会用VHDL语言设计时序电路。4.学会绘制功能仿真波形图。

出租车自动计费器设计

2.2 设计思路

根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、等待时间、收费金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转换成与之成正比的计费脉冲,然后由计费电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每0.1公里产生一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,1分钟即60个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。

2.3 系统总体结构

图2-1 系统总体结构图

出租车计费器的组成如上图所示,通过控制模块以高低脉冲模拟出租汽车启动、行驶、暂停,具有控制作用;通过控制模块控制出租车的状态来选择出租车是计里程还是计等待时间,相应产生的时间计费脉冲信号和里程脉冲信号来计费,译码/动态扫描模块将等待时间、路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将里程数、等待时间和计费金额用数码管显示。

出租车自动计费器设计

2.4 出租车计费器系统工作流程图

图2-2 出租车计费系统工作流程图

出租车载客后,启动计费器,整个系统开始工作,进入初始化状态,即计程从0开始,计费从5.0元开始。再根据BREAK信号判断行驶还是暂停。若是行驶状态,计费器开始进行里程计数,当里程超过3公里时,计费器开始累加,按每0.1公里收费0.1元计算,计程器则继续,否则计费器不变。若是暂停状态,计费器开始进行等候时间计数,当等候时间累计1分钟,则每分钟0.1元计费。最后将等候时间、里程、计费都显示出来。

出租车自动计费器设计 出租车计费器的实现

3.1 出租车计费器的顶层原理图

图3-1 出租车计费器顶层原理图

原理图中输入部分分别是CLK:秒脉冲信号,1个脉冲代表1秒,则60个脉冲表示1分钟。CLK1:10米脉冲信号,1个脉冲代表10米,则10个脉冲表示100米,100个脉冲代表1公里。START:计程车开启信号;DRIVE:计费器启动信号;BREAK:等待信号,SEL为计数控制信号输出端。

3.2 系统各功能模块的实现

3.2.1 计费模块JIFEI 计费(JIFEI)模块也是本系统的核心,完成起步价计费,等待时间计费,里程计费功能。计费器启动,显示起步价5.0元,之后每来一个行驶里程计费脉冲或者等待时间计费脉冲,计费金额自动加0.1元。计费显示用3位数码管,所

出租车自动计费器设计

以计费最大值为99.9元。其中CH2表示费用的十位,CHI表示费用的个位,CH0表示费用的十分位。B为等待时间计费脉冲信号或里程计费脉冲信号。

图3-2 JIFEI模块图

3.2.2 计量模块JILIANG

图3-3 JILIANG模块图

本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。因为行驶距离每脉冲代表10米,所以计满100个数就输出一个行驶距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行驶距离最小分辨率为0.1公里,行驶距离脉冲每计10个数,行驶距离输出加0.1,行驶距离最大值为99.9公里。其中KM2为里程的十位,KM1为里程的个位,KM0为里程的十分位。等待时间脉冲频率为1HZ,所以一个脉冲代表1秒,60个等待脉冲是1分钟,输出等待时间加1,等待时间满1分钟计一次费,所以对等待时间脉冲计数,计满60个数就输出一个等待计费脉冲。等待时间最大值为99分钟。MIN1为等待时间的十位,MIN0为等待时间的个位。将行驶距离、等待时间送到SELTIME模块,时间与里程计费脉冲送到计费模块完成里程、等待时间的计费功

出租车自动计费器设计

能。B1为超过3公里后,每0.1公里产生的计费脉冲。B2为每等待一分钟产生的计费脉冲。

3.2.3 显示控制模块SELTIME

图3-4 SELTIME模块图

SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在数码管上的显示位置。sel为计数控制信号输出端,功能主要是利用其计数的八个状态,使daout在其每个状态下选择某一输入数据,进而将选择的的数据送入到DELED模块。dp为小数点脉冲控制信号,当该模块输出的值为里程的个位、费用的个位时,需要考虑小数点的存在,即此时dp=‘1’,在其他不需要小数点的情况下,dp=‘0’,最后dp将信号输出到DELED模块。3.2.4 显示模块DELED

图3-5 DELED模块图

出租车自动计费器设计

DELED模块把送入的每个四位数据转换为7段码送出显示,能够使数码管正常显示送入的数据。其中DP为小数点输入信号。出租车计费器系统仿真及分析

4.1 计费系统的仿真

图4-1 出租车启动时计费系统功能仿真图

由图4-1 可知,当出租车未启动时,里程、等待时间、费用均为0。出租车刚启动时,里程、等待时间为0,费用为出租车起步价5元。

出租车自动计费器设计

图4-2 出租车等待时计费系统功能仿真图

由图4-2可知,当出租车在等待过程中,行驶里程16.2公里,等待时间为32分钟时,出租车的费用为:5+(16.2-3)×1+32×0.1=21.4元,与仿真结果一致。

图4-3 出租车行驶时计费系统功能仿真图

由图4-3可知,当出租车行驶到66.6千米,等待时间60分钟时,由仿真结果可得出费用为74.6元;根据设计要求计算可得费用为:5+(66.6-3)×1+60×0.1=74.6元。仿真结果与计算值一致,验证了设计的正确性。

出租车自动计费器设计

图4-4 出租车停车时计费系统功能仿真图

当出租车停车时,出租车上的时间、里程和费用清零,为下次计费的开始做准备。

4.2 单元模块的仿真及分析

4.2.1 译码显示模块的仿真及分析

图4-5 译码显示模块的功能仿真图

图4-5为译码显示模块的功能仿真波形图,DP、S为信号输入端,也是显示

出租车自动计费器设计

控制模块的信号输出端口,ABCDEFGH八个端口为八位二进制的输出端口。假设DOUT=“HGFEDCBA”,由上图可以看出:

1.DP=0时:

当S(3 downto 0)=”0000”,则DOUT=”00111111”; 当S(3 downto 0)=”0001”,则DOUT=”00000110”; 当S(3 downto 0)=”0010”,则DOUT=”01011011”; 当S(3 downto 0)=”0011”,则DOUT=”01001111”; 当S(3 downto 0)=”0100”,则DOUT=”01100110”; 当S(3 downto 0)=”0101”,则DOUT=”01101101”; 当S(3 downto 0)=”0110”,则DOUT=”01111101”; 当S(3 downto 0)=”0111”,则DOUT=”00000111”; 当S(3 downto 0)=”1000”,则DOUT=”01111111”; 当S(3 downto 0)=”1001”,则DOUT=”01101111”;

当S(3 downto 0)等于上述值以外的值时,则DOUT=”00000000”。2.DP=1时:

当S(3 downto 0)=”0000”,则DOUT=”10111111”; 当S(3 downto 0)=”0001”,则DOUT=”10000110”; 当S(3 downto 0)=”0010”,则DOUT=”11011011”; 当S(3 downto 0)=”0011”,则DOUT=”11001111”; 当S(3 downto 0)=”0100”,则DOUT=”11100110”; 当S(3 downto 0)=”0101”,则DOUT=”11101101”; 当S(3 downto 0)=”0110”,则DOUT=”11111101”; 当S(3 downto 0)=”0111”,则DOUT=”10000111”; 当S(3 downto 0)=”1000”,则DOUT=”11111111”; 当S(3 downto 0)=”1001”,则DOUT=”11101111”;

当S(3 downto 0)等于上述值以外的值时,则DOUT=”10000000”。

出租车自动计费器设计

4.2.2 显示控制模块的仿真及分析

图4-6 显示控制模块的功能仿真图

图4-6为显示控制模块功能仿真图,其中clk为时钟脉冲输入端,sel为计数控制信号输出端,daout为sel所控制状态下的输出到数码管的位选信号,dp为小数点控制输出信号。可以看出,当时钟沿上升时刻到来时,计数器的输出sel就自动加1,当计数器输出端加到“111”时,再来一个脉冲上升沿,则计数的输出端sel变为“000”,该显示控制模块的功能主要是利用其计数的八个状态,进而去轮流控制数码管的位选信号。由图4-6可知:当sel=“000”时,则daout=CH0;当sel=“001”时,daout=CH1;当sel=“010”时,daout=CH2;当sel=“011”时,daout=KM0;当sel=“100”时,daout=KM1;当sel=“101”时,daout=KM2;当sel=“110”时,daout=MIN0;当sel=“111”时,daout=MIN1。由于KM1、CH1表示里程的个位和费用的个位,其后都存在小数,故在设计中当显示KM1、CH1时须加入小数点,此时dp=‘1’,在其他没有小数点的情况时dp=‘0’。

出租车自动计费器设计

4.2.3 计量模块的仿真及分析

图4-7 计量模块的功能仿真图

图4-7为计量模块的功能仿真图,START信号为高电平时(即出租车启动)。当DRIVE为高电平且BREAK为低电平时,出租车为行驶状态,此时里程计数模块开始计数,每经过10个CLK1脉冲信号,里程加0.1公里,当里程计数大于3公里时,每计0.1公里产生1个B1脉冲信号。当DRIVE为高电平且BREAK为高电平时,出租车为暂停状态,此时等待时间计数模块开始计数,每经过60个CLK脉冲信号,时间加1分钟,每计1分钟产生一个B2脉冲信号。B1和B2分别为里程计费脉冲和等待时间计费脉冲。4.2.4 计费模块的仿真及分析

图4-8 计费模块的功能仿真图

图4-8为计费模块的功能仿真图当START处于高电平且DRIVE处于高电平时,每送入一个计费脉冲且计费脉冲处于上升沿时,CH0自动加1(即每送入一

出租车自动计费器设计

个计费脉冲加0.1元)。CH0、CH1、CH2为十进制计数。CH2表示费用的十位,CH1表示费用的个位,CH0表示费用的十分位,计费的最大值为99.9元。锁定管脚及硬件实现

5.1 锁定管脚图

在验证出租车计费器系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:

图5-1 顶层原理图

5.2 硬件实现

通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑.pin文件。完成管脚定义后选择器件,编译后生成.sof文件。选择.sof文件进行下载。

下载完成后,将第一全局时钟CLK1的跳线器接1Hz(作为秒脉冲信号),将第二全局时钟CLK2的跳线器接1Hz(作为十米脉冲信号),将第三全局时钟CLK3的跳线器接32768Hz,用拨位开关模拟控制出租车的启动、行驶、暂停。观察数

出租车自动计费器设计

码管上数据的变化是否符合设计标准。在试验箱上八个数码管从左至右分别显示的是:等待时间的十位、等待时间的个位、里程的十位、里程的个位、里程的十分位、费用的十位、费用的个位、费用的十分位。5.2.1 显示结果的几种情况

图5-2 验证结果1 图5-2表示出租车等待了1分钟,行驶了3.9公里,即时车费为6.0元。根据设计要求计算所得费用为:5元+(3.9-3)公里×1元/公里+1分钟×0.1元/分钟=6.0元,计算结果与试验箱上所得显示结果相同。

图5-3 验证结果2

出租车自动计费器设计

图5-3表示出租车等待了3分钟,行驶了6.8公里,即时车费为9.1元。根据设计要求计算所得费用为:5元+(6.8-3)公里×1元/公里+3分钟×0.1元/分钟=9.1元,计算结果与试验箱上所得显示结果相同。

在试验箱验证过程中,我们可以看到,八位数码管的右三位显示起步价05.0,中间三个数码管在以0.1为步长进行加法显示行驶里程,当行驶里程超过3公里之后,每0.1公里计费金额加0.1元,当我们按下等待暂停键,每分钟左边两个数码管加1,其显示的等待时间,当等待时间到1分钟时,计费金额加0.1元,由此我们可以判断,系统设计符合要求。5.2.2 硬件实现总结

通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个模块的正确性。在出租车计费系统的4个模块中,重点在于计量模块(JILIANG),计费模块(JIFEI),显示控制模块(SELTIME),译码显示模块(DELED)。JILIANG模块主要有汽车的开始、运行、暂停,JILIANG模块主要记录出租车的行驶里程和等待时间,并将等待时间计费脉冲和行驶里程计费脉冲送入JIFEI模块;JIFEI模块主要是完成起步价计费、等待时间计费、行驶里程计费,并完成总费用;SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在八个数码管上的位置。DELED模块是把送入的每个四位数据转换为7段码,从而能在数码管上正确的显示。这四个模块的组合成完整的出租车系统,在设计过程中还需要改进的是控制出租车计费系统的控制功能。

出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车开始、启动、暂停、停止等功能,由数码管显示出租车等待时间,行驶里程,费用。车暂等待时停止行驶里程计费,车费仅由等待时间计费;出租车正常行驶时,仅根据里程收费方式。若停止则车费清零,等待下一次计费的开始。出租车计费系统的设计中体现了VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言本设计在实用方面具有一定的价值。

该计费器实现了按预置参数自动计费(最大计费金额为99.9元)、自动计程(最大计程公里数为99.9公里)等功能;能够实现起步价、每公里收费、等待时间计费的参数预置(如:起步价5.0元;3公里后1元每公里;等待时间0.1元每分钟),且预置参数可调范围广。由于采用CPLD大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。

出租车自动计费器设计 设计体会与总结

通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅。我们所做的课题是出租车计费器的设计。老师给了我们课程设计题目,在这半个月的实验操作中,不断的完善自己的设计要求,将自己的想法融入到实验的程序中去。最终通过仿真达到了自己预想的效果。有种先苦后甜的成就感。

同时在本次试验中,我们熟练的掌握了Quartus II软件的使用。学会了如何把自己所设计的程序,通过软件用波形仿真出来,再通过试验箱仿真出来。

在这次课程设计过程中,要感谢陈老师在课程设计上给予我的帮助,提供给我的支持与建议,特别是帮助我解决了我半个月来一直遇到的运行程序警告多的问题,这是我能顺利完成这次报告的主要原因,让我能把课程设计做得更加完善。在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学们,他们也为我解决了不少难题。这些东西是无法再平时上课的过程中学到的,实践出真知,只有在实验中我们才能更好的学到东西,不用纸上谈兵,做无用功。

出租车自动计费器设计

参考文献

[1] 徐飞.EDA技术与实践[M].北京:清华大学出版社,2011.[2] 王行,李衍.EDA技术入门与提高[M].西安:西安电子科技大学出版社,2005.[3] 刘昌华.数字逻辑EDA设计与实践[M].北京:国防工业出版社,2011.[4] 李蓉.基于VHDL语言的出租车自动计费器的设计[J].科技风,2008,24:33.出租车自动计费器设计

附 录 JILIANG模块的VHDL编程

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JILIANG IS PORT(CLK,CLK1 : IN STD_LOGIC;START : IN STD_LOGIC;DRIVE : IN STD_LOGIC;BREAK : IN STD_LOGIC;B1,B2 : OUT STD_LOGIC;KM2,KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN1,MIN0 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END JILIANG;

ARCHITECTURE BEHAVE OF JILIANG IS SIGNAL R1:INTEGER RANGE 0 TO 9;SIGNAL K:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL W1:INTEGER RANGE 0 TO 59;SIGNAL M1:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL M0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RUN:PROCESS(CLK1,DRIVE,BREAK,K0,K1,K2)BEGIN IF START='1' THEN IF DRIVE='0' THEN K0<=“0000”;K1<=“0000”;K2<=“0000”;R1<=0;ELSIF CLK1'EVENT AND CLK1='1' THEN IF DRIVE='1'AND BREAK='0' THEN IF R1=9 THEN R1<=0;IF K0=“1001” THEN K0<=“0000”;k1<=k1+1;

IF K1=“1001” THEN K1<=“0000”;k2<=k2+1;

IF K2=“1001” THEN K2<=“0000”;ELSE K2<=K2+1;

END IF;ELSE K1<=K1+1;END IF;

出租车自动计费器设计

ELSE K0<=K0+1;END IF;ELSE R1<=R1+1;B1<='0';END IF;K<=K2&K1;IF K>“00000010” THEN

IF R1<9 THEN R1<=R1+1;B1<='0';

ELSE R1<=0;B1<='1';

END IF;END IF;END IF;END IF;ELSE K0<=“0000”;K1<=“0000”;K2<=“0000”;END IF;KM0<=K0;KM1<=K1;KM2<=K2;END PROCESS;

PAUSE:PROCESS(CLK,DRIVE,BREAK,M0,M1)BEGIN IF START='1' THEN IF DRIVE='0' THEN M0<=“0000”;M1<=“0000”;W1<=0;ELSIF CLK'EVENT AND CLK='1' THEN IF DRIVE='1' AND BREAK='1'THEN IF W1=59 THEN W1<=0;B2<='1';

IF M0=“1001”THEN M0<=“0000”;M1<=M1+1;

IF M1=“1001”THEN M1<=“0000”;

ELSE M1<=M1+1;

END IF;ELSE M0<=M0+1;END IF;ELSE W1<=W1+1;B2<='0';END IF;END IF;END IF;ELSE M0<=“0000”;M1<=“0000”;END IF;MIN0<=M0;MIN1<=M1;END PROCESS;END ARCHITECTURE;

出租车自动计费器设计 JIFEI模块的VHDL编程

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIFEI IS PORT(B :IN STD_LOGIC;START:IN STD_LOGIC;DRIVE:IN STD_LOGIC;CH2,CH1,CH0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END JIFEI;ARCHITECTURE BEHAVE OF JIFEI IS SIGNAL C2,C1,C0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(B,DRIVE,C0,C1,C2)BEGIN IF DRIVE='0' THEN C0<=“0000”;C1<=“0101”;C2<=“0000”;ELSIF DRIVE='1' THEN IF B'EVENT AND B='1' THEN

IF C0=“1001” THEN C0<=“0000”;

IF C1=“1001”THEN C1<=“0000”;

IF C2=“1001”THEN C2<=“0000”;

ELSE C2<=C2+1;

END IF;

ELSE C1<=C1+1;

END IF;

ELSE C0<=C0+1;

END IF;END IF;END IF;ELSE C0<=“0000”;C1<=“0000”;C2<=“0000”;END IF;CH0<=C0;CH1<=C1;CH2<=C2;END PROCESS;END;

出租车自动计费器设计 SELTIME控制模块的VHDL编程

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity seltime is port(clk : in std_logic;CH2,CH1,CH0 : in std_logic_vector(3 downto 0);KM2,KM1,KM0 : in std_logic_vector(3 downto 0);MIN1,MIN0 : in std_logic_vector(3 downto 0);dp : OUT STD_LOGIC;daout : out std_logic_vector(3 downto 0);sel : out std_logic_vector(2 downto 0));end seltime;

architecture behav of seltime is signal sec : std_logic_vector(2 downto 0);begin process(clk)begin if(clk'event and clk='1')then

if(sec=“111”)then sec<=“000”;else sec<=sec+1;end if;end if;end process;process(sec,MIN1,MIN0,CH2,CH1,CH0,KM2,KM1,KM0)begin case sec is when “000”=>daout<=CH0(3 downto 0);dp<='0';when “001”=>daout<=CH1(3 downto 0);dp<='1';when “010”=>daout<=CH2(3 downto 0);dp<='0';when “011”=>daout<=KM0(3 downto 0);dp<='0';when “100”=>daout<=KM1(3 downto 0);dp<='1';when “101”=>daout<=KM2(3 downto 0);dp<='0';when “110”=>daout<=MIN0(3 downto 0);dp<='0';

when “111”=>daout<=MIN1(3 downto 0);dp<='0';when others=>daout<=“XXXX”;end case;end process;

出租车自动计费器设计

sel<=sec;end behav;DELED模块的VHDL编程

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;

ENTITY DELED IS PORT(DP: IN STD_LOGIC;S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);A,B,C,D,E,F,G,H: OUT STD_LOGIC);END DELED;

ARCHITECTURE BEHAV OF DELED IS SIGNAL DATA : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DOUT : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN DATA<=S;PROCESS(DATA,DP)BEGIN IF DP='0' THEN

CASE DATA IS

WHEN “0000”=>DOUT<=“00111111”;

WHEN “0001”=>DOUT<=“00000110”;

WHEN “0010”=>DOUT<=“01011011”;

WHEN “0011”=>DOUT<=“01001111”;

WHEN “0100”=>DOUT<=“01100110”;

WHEN “0101”=>DOUT<=“01101101”;

WHEN “0110”=>DOUT<=“01111101”;

WHEN “0111”=>DOUT<=“00000111”;

WHEN “1000”=>DOUT<=“01111111”;

WHEN “1001”=>DOUT<=“01101111”;

WHEN OTHERS=>DOUT<=“00000000”;

END CASE;ELSE

CASE DATA IS

WHEN “0000”=>DOUT<=“10111111”;

WHEN “0001”=>DOUT<=“10000110”;

WHEN “0010”=>DOUT<=“11011011”;

WHEN “0011”=>DOUT<=“11001111”;

WHEN “0100”=>DOUT<=“11100110”;

WHEN “0101”=>DOUT<=“11101101”;

出租车自动计费器设计

WHEN “0110”=>DOUT<=“11111101”;

WHEN “0111”=>DOUT<=“10000111”;

WHEN “1000”=>DOUT<=“11111111”;

WHEN “1001”=>DOUT<=“11101111”;

WHEN OTHERS=>DOUT<=“10000000”;

END CASE;END IF;END PROCESS;H<=DOUT(7);G<=DOUT(6);F<=DOUT(5);E<=DOUT(4);D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);END BEHAV;

第三篇:出租车自动计费器设计(课程设计报告)课件

目录 绪论....................................................................................................................................................1 1.1设计背景......................................................................................................................................1 1.2QUARTUS II简介.......................................................................................................................1 1.3VHDL语言基础..........................................................................................................................2 2 出租车计费器总体设计结构.............................................................................................................2 2.1

系统设计要求和目的..................................................................................................................2 2.2.1 系统设计要求......................................................................................................................2 2.2.1 系统设计目的......................................................................................................................2 2.2

设计思路......................................................................................................................................3 2.3

系统总体结构..............................................................................................................................3 2.4出租车计费器系统工作流程图..................................................................................................4 3 出租车计费器的实现.........................................................................................................................5 3.1

出租车计费器的顶层原理图......................................................................................................5 3.2

系统各功能模块的实现..............................................................................................................5 3.2.1 计费模块JIFEI....................................................................................................................5 3.2.2 计量模块JILIANG..............................................................................................................6 3.2.3 显示控制模块SELTIME.....................................................................................................7 3.2.4 显示模块DELED................................................................................................................7 4 出租车计费器系统仿真及分析.........................................................................................................8 4.1

计费系统的仿真..........................................................................................................................8 4.2

单元模块的仿真及分析............................................................................................................10 4.2.1 译码显示模块的仿真及分析............................................................................................10 4.2.2 显示控制模块的仿真及分析............................................................................................11 4.2.3 计量模块的仿真及分析....................................................................................................12 4.2.4 计费模块的仿真及分析....................................................................................................12 5 锁定管脚及硬件实现.......................................................................................................................13 5.1

锁定管脚图................................................................................................................................13 5.2

硬件实现....................................................................................................................................13 5.2.1 显示结果的几种情况........................................................................................................14 5.2.2 硬件实现总结....................................................................................................................15 6 设计体会与总结...............................................................................................................................16 参考文献................................................................................................................................................17 附

录................................................................................................................................................18 1

JILIANG模块的VHDL程序......................................................................................................18 2

JIFEI模块的VHDL程序............................................................................................................19 3

SELTIME控制模块的VHDL程序.............................................................................................20 4

DELED模块的VHDL程序........................................................................................................21 巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计 绪论

1.1 设计背景

随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具,它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是具有一定意义的。出租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规范化,标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备,简单易用,计量准确的出租车计费器是加强出租车行业管理,提高服务质量的必需品。本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到一种出租车计价系统的软件结构,通过Quartus II 6.0软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求,具有一定的实用性。

1.2 QUARTUS II简介

QUARTUS II 是Altera公司的综合性CPLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整CPLD设计流程。QUARTUS II 支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera QUARTUS II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

1.3 VHDL语言基础

一般而言,一个相对完整的VHDL语言程序至少应三个基本组成部分:①库(Library)、程序包(Package)使用说明;②实体(Entity)说明;③实体对应的结构体(Architecture)说明。其中,库、程序包使用说明用于打开(调用)本设计实体将要用到的库、程序包;实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,允许含有一个或多个结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。出租车计费器总体设计结构

2.1 系统设计要求和目的

2.2.1 系统设计要求

1.起步价为5.0元,起步公里为3公里;

2.超过3公里,每公里按1元收费,也可每0.1公里按0.1元收费; 3.等候时间累计1分钟,按每分钟0.1元收费;

4.用三个数码管显示总金额,最大值为99.9元;用三个数码管显示总里程,最大值99.9公里;用两个数码管显示等待时间,最大值99分钟。2.2.1 系统设计目的

1.通过这次实验设计使我们加深对EDA技术与数字系统设计相关理论和概念的理解,培养我们的理论联系实际的能力,特别是实际动手能力。

2.学习使用QUARTUS II软件设计。

3.根据原理图学会用VHDL语言设计时序电路。4.学会绘制功能仿真波形图。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

2.2 设计思路

根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、等待时间、收费金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转换成与之成正比的计费脉冲,然后由计费电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每0.1公里产生一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,1分钟即60个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。

2.3 系统总体结构

图2-1 系统总体结构图

出租车计费器的组成如上图所示,通过控制模块以高低脉冲模拟出租汽车启动、行驶、暂停,具有控制作用;通过控制模块控制出租车的状态来选择出租车是计里程还是计等待时间,相应产生的时间计费脉冲信号和里程脉冲信号来计费,译码/动态扫描模块将等待时间、路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将里程数、等待时间和计费金额用数码管显示。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

2.4 出租车计费器系统工作流程图

图2-2 出租车计费系统工作流程图

出租车载客后,启动计费器,整个系统开始工作,进入初始化状态,即计程从0开始,计费从5.0元开始。再根据BREAK信号判断行驶还是暂停。若是行驶状态,计费器开始进行里程计数,当里程超过3公里时,计费器开始累加,按每0.1公里收费0.1元计算,计程器则继续,否则计费器不变。若是暂停状态,计费器开始进行等候时间计数,当等候时间累计1分钟,则每分钟0.1元计费。最后将等候时间、里程、计费都显示出来。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计 出租车计费器的实现

3.1 出租车计费器的顶层原理图

图3-1 出租车计费器顶层原理图

原理图中输入部分分别是CLK:秒脉冲信号,1个脉冲代表1秒,则60个脉冲表示1分钟。CLK1:10米脉冲信号,1个脉冲代表10米,则10个脉冲表示100米,100个脉冲代表1公里。START:计程车开启信号;DRIVE:计费器启动信号;BREAK:等待信号,SEL为计数控制信号输出端。

3.2 系统各功能模块的实现

3.2.1 计费模块JIFEI 计费(JIFEI)模块也是本系统的核心,完成起步价计费,等待时间计费,里程计费功能。计费器启动,显示起步价5.0元,之后每来一个行驶里程计费脉冲或者等待时间计费脉冲,计费金额自动加0.1元。计费显示用3位数码管,所以计费最大值为99.9元。其中CH2表示费用的十位,CHI表示费用的个位,CH0表示费用的十分位。B为等待时间计费脉冲信号或里程计费脉冲信号。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

图3-2 JIFEI模块图

3.2.2 计量模块JILIANG

图3-3 JILIANG模块图

本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。因为行驶距离每脉冲代表10米,所以计满100个数就输出一个行驶距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行驶距离最小分辨率为0.1公里,行驶距离脉冲每计10个数,行驶距离输出加0.1,行驶距离最大值为99.9公里。其中KM2为里程的十位,KM1为里程的个位,KM0为里程的十分位。等待时间脉冲频率为1HZ,所以一个脉冲代表1秒,60个等待脉冲是1分钟,输出等待时间加1,等待时间满1分钟计一次费,所以对等待时间脉冲计数,计满60个数就输出一个等待计费脉冲。等待时间最大值为99分钟。MIN1为等待时间的十位,MIN0为等待时间的个位。将行驶距离、等待时间送到SELTIME模块,时间与里程计费脉冲送到计费模块完成里程、等待时间的计费功能。B1为超过3公里后,每0.1公里产生的计费脉冲。B2为每等待一分钟产生的计费脉冲。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

3.2.3 显示控制模块SELTIME

图3-4 SELTIME模块图

SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在数码管上的显示位置。sel为计数控制信号输出端,功能主要是利用其计数的八个状态,使daout在其每个状态下选择某一输入数据,进而将选择的的数据送入到DELED模块。dp为小数点脉冲控制信号,当该模块输出的值为里程的个位、费用的个位时,需要考虑小数点的存在,即此时dp=‘1’,在其他不需要小数点的情况下,dp=‘0’,最后dp将信号输出到DELED模块。3.2.4 显示模块DELED

图3-5 DELED模块图

DELED模块把送入的每个四位数据转换为7段码送出显示,能够使数码管正常显示送入的数据。其中DP为小数点输入信号。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计 出租车计费器系统仿真及分析

4.1 计费系统的仿真

图4-1 出租车启动时计费系统功能仿真图

由图4-1 可知,当出租车未启动时,里程、等待时间、费用均为0。出租车刚启动时,里程、等待时间为0,费用为出租车起步价5元。

图4-2 出租车等待时计费系统功能仿真图

由图4-2可知,当出租车在等待过程中,行驶里程16.2公里,等待时间为32分钟时,出租车的费用为:5+(16.2-3)×1+32×0.1=21.4元,与仿真结果一巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

致。

图4-3 出租车行驶时计费系统功能仿真图

由图4-3可知,当出租车行驶到66.6千米,等待时间60分钟时,由仿真结果可得出费用为74.6元;根据设计要求计算可得费用为:5+(66.6-3)×1+60×0.1=74.6元。仿真结果与计算值一致,验证了设计的正确性。

图4-4 出租车停车时计费系统功能仿真图

当出租车停车时,出租车上的时间、里程和费用清零,为下次计费的开始做准备。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

4.2 单元模块的仿真及分析

4.2.1 译码显示模块的仿真及分析

图4-5 译码显示模块的功能仿真图

图4-5为译码显示模块的功能仿真波形图,DP、S为信号输入端,也是显示控制模块的信号输出端口,ABCDEFGH八个端口为八位二进制的输出端口。假设DOUT=“HGFEDCBA”,由上图可以看出:

1.DP=0时:

当S(3 downto 0)=”0000”,则DOUT=”00111111”; 当S(3 downto 0)=”0001”,则DOUT=”00000110”; 当S(3 downto 0)=”0010”,则DOUT=”01011011”; 当S(3 downto 0)=”0011”,则DOUT=”01001111”; 当S(3 downto 0)=”0100”,则DOUT=”01100110”; 当S(3 downto 0)=”0101”,则DOUT=”01101101”; 当S(3 downto 0)=”0110”,则DOUT=”01111101”; 当S(3 downto 0)=”0111”,则DOUT=”00000111”; 当S(3 downto 0)=”1000”,则DOUT=”01111111”; 当S(3 downto 0)=”1001”,则DOUT=”01101111”;

当S(3 downto 0)等于上述值以外的值时,则DOUT=”00000000”。2.DP=1时: 巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

当S(3 downto 0)=”0000”,则DOUT=”10111111”; 当S(3 downto 0)=”0001”,则DOUT=”10000110”; 当S(3 downto 0)=”0010”,则DOUT=”11011011”; 当S(3 downto 0)=”0011”,则DOUT=”11001111”; 当S(3 downto 0)=”0100”,则DOUT=”11100110”; 当S(3 downto 0)=”0101”,则DOUT=”11101101”; 当S(3 downto 0)=”0110”,则DOUT=”11111101”; 当S(3 downto 0)=”0111”,则DOUT=”10000111”; 当S(3 downto 0)=”1000”,则DOUT=”11111111”; 当S(3 downto 0)=”1001”,则DOUT=”11101111”;

当S(3 downto 0)等于上述值以外的值时,则DOUT=”10000000”。4.2.2 显示控制模块的仿真及分析

图4-6 显示控制模块的功能仿真图

图4-6为显示控制模块功能仿真图,其中clk为时钟脉冲输入端,sel为计数控制信号输出端,daout为sel所控制状态下的输出到数码管的位选信号,dp为小数点控制输出信号。可以看出,当时钟沿上升时刻到来时,计数器的输出sel就自动加1,当计数器输出端加到“111”时,再来一个脉冲上升沿,则计数的输出端sel变为“000”,该显示控制模块的功能主要是利用其计数的八个状态,进而去轮流控制数码管的位选信号。由图4-6可知:当sel=“000”时,则daout=CH0;当sel=“001”时,daout=CH1;当sel=“010”时,daout=CH2;当sel=“011”时,daout=KM0;当sel=“100”时,daout=KM1;当sel=“101”时,daout=KM2;巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

当sel=“110”时,daout=MIN0;当sel=“111”时,daout=MIN1。由于KM1、CH1表示里程的个位和费用的个位,其后都存在小数,故在设计中当显示KM1、CH1时须加入小数点,此时dp=‘1’,在其他没有小数点的情况时dp=‘0’。4.2.3 计量模块的仿真及分析

图4-7 计量模块的功能仿真图

图4-7为计量模块的功能仿真图,START信号为高电平时(即出租车启动)。当DRIVE为高电平且BREAK为低电平时,出租车为行驶状态,此时里程计数模块开始计数,每经过10个CLK1脉冲信号,里程加0.1公里,当里程计数大于3公里时,每计0.1公里产生1个B1脉冲信号。当DRIVE为高电平且BREAK为高电平时,出租车为暂停状态,此时等待时间计数模块开始计数,每经过60个CLK脉冲信号,时间加1分钟,每计1分钟产生一个B2脉冲信号。B1和B2分别为里程计费脉冲和等待时间计费脉冲。4.2.4 计费模块的仿真及分析

图4-8为计费模块的功能仿真图当START处于高电平且DRIVE处于高电平时,每送入一个计费脉冲且计费脉冲处于上升沿时,CH0自动加1(即每送入一个计费脉冲加0.1元)。CH0、CH1、CH2为十进制计数。CH2表示费用的十位,CH1表示费用的个位,CH0表示费用的十分位,计费的最大值为99.9元。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

图4-8 计费模块的功能仿真图 锁定管脚及硬件实现

5.1 锁定管脚图

在验证出租车计费器系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:

图5-1 顶层原理图

5.2 硬件实现

通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑.pin文件。完成管脚定义后选择器件,编译后生成.sof文件。选择.sof文件进巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

行下载。

下载完成后,将第一全局时钟CLK1的跳线器接1Hz(作为秒脉冲信号),将第二全局时钟CLK2的跳线器接1Hz(作为十米脉冲信号),将第三全局时钟CLK3的跳线器接32768Hz,用拨位开关模拟控制出租车的启动、行驶、暂停。观察数码管上数据的变化是否符合设计标准。在试验箱上八个数码管从左至右分别显示的是:等待时间的十位、等待时间的个位、里程的十位、里程的个位、里程的十分位、费用的十位、费用的个位、费用的十分位。5.2.1 显示结果的几种情况

图5-2 验证结果1 图5-2表示出租车等待了1分钟,行驶了3.9公里,即时车费为6.0元。根据设计要求计算所得费用为:5元+(3.9-3)公里×1元/公里+1分钟×0.1元/分钟=6.0元,计算结果与试验箱上所得显示结果相同。

图5-3表示出租车等待了3分钟,行驶了6.8公里,即时车费为9.1元。根据设计要求计算所得费用为:5元+(6.8-3)公里×1元/公里+3分钟×0.1元/分钟=9.1元,计算结果与试验箱上所得显示结果相同。

在试验箱验证过程中,我们可以看到,八位数码管的右三位显示起步价05.0,中间三个数码管在以0.1为步长进行加法显示行驶里程,当行驶里程超过3公里之后,每0.1公里计费金额加0.1元,当我们按下等待暂停键,每分钟左边两个数码管加1,其显示的等待时间,当等待时间到1分钟时,计费金额加0.1元,由此我们可以判断,系统设计符合要求。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

图5-3 验证结果2 5.2.2 硬件实现总结

通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个模块的正确性。在出租车计费系统的4个模块中,重点在于计量模块(JILIANG),计费模块(JIFEI),显示控制模块(SELTIME),译码显示模块(DELED)。JILIANG模块主要有汽车的开始、运行、暂停,JILIANG模块主要记录出租车的行驶里程和等待时间,并将等待时间计费脉冲和行驶里程计费脉冲送入JIFEI模块;JIFEI模块主要是完成起步价计费、等待时间计费、行驶里程计费,并完成总费用;SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在八个数码管上的位置。DELED模块是把送入的每个四位数据转换为7段码,从而能在数码管上正确的显示。这四个模块的组合成完整的出租车系统,在设计过程中还需要改进的是控制出租车计费系统的控制功能。

出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车开始、启动、暂停、停止等功能,由数码管显示出租车等待时间,行驶里程,费用。车暂等待时停止行驶里程计费,车费仅由等待时间计费;出租车正常行驶时,仅根据里程收费方式。若停止则车费清零,等待下一次计费的开始。出租车计费系统的设计中体现了VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言本设计在实用方面具有一定的价值。

该计费器实现了按预置参数自动计费(最大计费金额为99.9元)、自动计程(最大计程公里数为99.9公里)等功能;能够实现起步价、每公里收费、等待时间计巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

费的参数预置(如:起步价5.0元;3公里后1元每公里;等待时间0.1元每分钟),且预置参数可调范围广。由于采用CPLD大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。设计体会与总结

通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅。我们所做的课题是出租车计费器的设计。老师给了我们课程设计题目,在这半个月的实验操作中,不断的完善自己的设计要求,将自己的想法融入到实验的程序中去。最终通过仿真达到了自己预想的效果。有种先苦后甜的成就感。

同时在本次试验中,我们熟练的掌握了Quartus II软件的使用。学会了如何把自己所设计的程序,通过软件用波形仿真出来,再通过试验箱仿真出来。

在这次课程设计过程中,要感谢陈老师在课程设计上给予我的帮助,提供给我的支持与建议,特别是帮助我解决了我半个月来一直遇到的运行程序警告多的问题,这是我能顺利完成这次报告的主要原因,让我能把课程设计做得更加完善。在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学们,他们也为我解决了不少难题。这些东西是无法再平时上课的过程中学到的,实践出真知,只有在实验中我们才能更好的学到东西,不用纸上谈兵,做无用功。巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

参考文献

[1] 徐飞.EDA技术与实践[M].北京:清华大学出版社,2011.[2] 王行,李衍.EDA技术入门与提高[M].西安:西安电子科技大学出版社,2005.[3] 刘昌华.数字逻辑EDA设计与实践[M].北京:国防工业出版社,2011.[4] 李蓉.基于VHDL语言的出租车自动计费器的设计[J].科技风,2008,24:33.巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计

录 JILIANG模块的VHDL程序 巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计 JIFEI模块的VHDL程序 巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计 SELTIME控制模块的VHDL程序 巢湖学院2013级《EDA技术》课程设计

出租车自动计费器设计 DELED模块的VHDL程序

第四篇:EDA课程设计—自动售票机

燕 山 大 学

EDA课程设计报告书

题目:

自动售票机

姓名: 班级: 学号:

成绩:

(注:此文件应以同学学号为文件名)

一、设计题目及要求 1.设计题目:自动售票机 2.设计要求:

⑴、每次投一枚硬币,但可以连续投入数枚硬币。硬币种类两种:1元和5角,各用一个按键表示。

⑵、设定票价为2.5元,每次售一张票。购票时先投入硬币,当投入的硬币总金额达到或超过票的面值时,用LED发出指示,这时可以按取票键取出票。

⑶、如果所投硬币超过票的面值则会有LED提示找零钱,取完票以后按找零键则可以取出零钱。

⑷、用两位数码管显示已投币金额,若刚好投币2.5元,取票后金额归零;若投币超过2.5元,取票后显示找零金额,按下找零键后金额再归零。

1总体设计的文字描述,即由哪几个部分构

二、设计过程及内容(包括○

2主要模块比较详尽的文字描成的,各个部分的功能及如何实现方法;○述,并配以必要的图片加以说明,但图片数量无需太多)1.总体结构如下:

总体设计思路:此自动售票系统总共有5个主要模块,分别是:累加模块,比较器模块,找零模块,数字转换模块,显示器模块。⑴、累加模块实现金额的累加功能。

实现方法:该模块设置3个输入口(包括5角、1元、复位),8个输出口(B1—B8)。该模块将在给五角或一元高电平的同时实现金额的累加,复位则会将会对其进行清零。该模块由一片8位的加法器,2片4位寄存器及简单门电路组成,利用8位加法器将输入的金额(5、10)进行二进制相加(00000101、00001010),通过寄存器后返回到加法器实现累加功能。复位键则与寄存器复位清零短CLRN相连,实现复位的功能。

⑵、比较器模块实现与票价进行比较的功能。

实现方法:该模块设置了8个输入口(A0—A7)1个取票口,4个输出口。该模块 将累加的钱币与2.5元的票价比较,如果累加金额高于票价则黄灯亮,小于票价则红灯亮,等于票价则绿灯亮。给取票输入端高电平则会出票。该模块由一片八位比较器及门电路组成,输入的信号与二进制的票价相比较(00011001)。⑶、找零模块实现大于票价找零钱的功能。

实现方法:该模块设置了2个输入口(zhaoling,H),8个输出口(E1—E8)。该模块将在输入金额大于票价及出票之后的时候给予高电平,使在显示器中显示5。该模块由两个四位寄存器及少量门电路组成。给zhaoling输入口高电平,使寄存器工作,之后输出所找的零钱(二进制输出),通过数码管显示出来。⑷、数字转换模块实现TTL 二进制—BCD代码转换的功能。

实现方法:该模块设置了8个输入口(S1—S8),和8个输出口(C1—C8)。该模块由3个TTL 二进制—BCD码转换器及门电路组成。将需要数码管显示的数字二进制代码输入将输出相应的BCD码。即用4位二进制数来表示1位十进制数中的0~9这10个数码。

⑸、显示器模块实现将在数码管上显示数字的功能。

实现方法:该模块设置了8个输入口(A1—A7)输入相应的BCD码,7个输出口(Y1—Y7)输出相应的使数码管亮的代码及另外3个输出口(str1,str2,str3)控制相应的数码管亮。该模块由1个四位二进制计数器和双四选一数据选择器和1个七段译码器及相应门电路组成。将BCD码输入进去,通过计数器控制双位四选一数据选择器的输入端(00或01)。s0—s3通过00控制IC0的输出,此时str2 str1 str0通过000来控制第一个数码管亮,s4—s7通过01控制IC1口的输出,此时str2 str1 str0通过001来控制第二个数码管亮,将选择的输输入到七段译码器中将进行译码使数码管显示相应数字。2.各个模块电路图及仿真模型 总体电路图:

超过2.5元即3元时结果如下:

当正好为2.5元时,结果如下:

⑴、累加模块

累加模块仿真结果如下: ⑵、比较器模块

比较器模块仿真模型:

⑶、找零模块

找零模块仿真结果:

⑷、数字转换模块

数字转换模块仿真结果:

⑸、显示器模块

显示器模块仿真结果:

三、设计结论(包括设计过程中出现的问题;对EDA课程设计感想、意 见和建议)

经过一周多的课程设计,我受益匪浅,学到了团队合作,提高信息检索能力的重要性。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。在实验过程中,根据任务书的要求,查找资料,设计了电路方案,在差额计算模块、投币模块、选票模块,有几种预想方案,和同组人员仔细分析后确定了一套简单实用的方案。

在课程设计过程中,其中最具有代表性的错误就是累加模块。当信号输入时,输入信号与寄存器储存信号相加时出现严重的延时问题,后来在老师以及同组同学的努力下,加入了延时器,解决了这个问题。还有在试验箱进行仿真时,发现显示数字很不准确,在查阅资料和老师的帮助下,意识到是输入抖动问题,我们在输入端口加入了防抖动电路,很好的解决了这个问题。

在进行硬件方面测试的过程中,也遇到了一些问题,在进行数据累加的过程中,数据很不稳定,我们在摁键处加入了防抖动电路,便解决了这一问题。对设计的建议:

⑴课程设计是理论与实际相结合的应用,对我们的学习帮助很大,让我们更好的掌握所学知识,希望以后能更多的开展这样的活动,让我们有更多的机会运用所学的知识。

⑵实际电路中,有些模块在模拟软件中无法进行模拟仿真,这让我们对自己设计的电路的可用性有些疑惑,希望学校能给我们提供能让我们进行实际仿真的实验室,让我们能更加完善自己的电路。

同时在整个EDA的设计中,老师给予了无私的,耐心的教导,在此感谢老师的教诲,愿老师工作顺利,身体健康。

第五篇:EDA实习报告(自动售卖机)

EDA技术及应用实习报告

自动售卖机

信息13-2班06号

GMH

北华大学电气信息工程学院

目 录

一、设计任务功能简介............................................................................2

1、设计任务......................................................................................2

2、主要功能......................................................................................2

二、原理、方案、框图及任务分解........................................................2

1、原理...............................................................................................2

2、方案...............................................................................................2

3、框图...............................................................................................3

4、任务分解......................................................................................3

三、关键任务的设计代码及注释............................................................4

四、调试中出现的问题及解决方案........................................................8

1、问题一...........................................................................................8

2、问题二...........................................................................................8

五、产业化市场分析及预测....................................................................8

六、测试及运行结果................................................................................9

七、参考文献...........................................................................................1

一、设计任务功能简介

1、设计任务

自动售货机设计。利用软件QuartusII软件,使用VHDL语言结合硬件要求对本题目设计功能进行编程,并在完成整个硬件程序设计后,在软件平台上进行编译和电路仿真,最后生成的目标文件下载到DE2-70实验板上实现上述所有功能并验证程序的可行性。

2、主要功能

本设计主要实现的功能为:货物信息存储功能、商品选择功能、输入钱数处理功能、货架商品更换功能、语音提示功能、信息显示等功能。

二、原理、方案、框图及任务分解

1、原理

自动售货机(Vending Machine,VEM)是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。自动售货机是台机电一体化的自动化装置,在接受到货币已输入的前提下,靠触摸控制按 扭输入信号使控制器启动相关位置的机械装置完成规定动作,将货物输出。

2、方案

根据题目要求机器设有2个投币孔,机器可以接受1元和5元的纸币,分别有八种商品,价格分别为1元,4元,2元,3元,6元,7元,5元,8元,机器采用拨码开关模拟机器的复位键、确认购买键和商品选择,并且通过开发板上的LED等分别显示购买的不同情况,数码管实时显示购买金额,包括投入的价钱,找零的价钱。此设计按照EDA课程设计 的流程进行源代码的编写、仿真。本设计主要利用QuartusⅡ等设计软件进行设计。

3、框图 依题目要求设计流程框图如下所示:

图2-1 程序流程图

4、任务分解

本设计主要包括按键模块、显示模块、语音提示模块。设计程序任务如下图:

图2-2 程序任务图

任务一:存储商品信息。商品名称及商品价格等信息。

任务二:响应用户选择商品的操作。用户用过按键选择商品,售卖机要实时显示商品名称及价格信息。任务三:货币处理。待用户选择商品结束,售卖机要接收用户投币,包括判断纸币的面额、总金额、是否投币结束等信息。

任务四:人性化设计。售卖机要有良好的人性化交互界面,以及必要的文字、语音等提示信息。

三、关键任务的设计代码及注释

10000“;

elsif item =”100“ then item_dis <=”10011001“;money_dis<=”11111001“;

elsif item =”101“ then item_dis <=”10010010“;money_dis<=”10011001“;

elsif item =”110“ then item_dis <=”10000010“;money_dis<=”10110000“;

elsif item =”111“ then item_dis <=”11111000“;money_dis<=”10000000“;end if;end if;else

item_dis<=”11111111“;money_dis 商品选择进程设计: data:process(START,sel_add)begin

if START='1' then

f sel_add'event and sel_add='1' then item<=item+1;if item =”000“ then item_dis <=”11000000“;money_dis<=”10011001“;elsif item =”001“ then item_dis <=”11111001“;money_dis<=”11111000“;elsif item =”010“ then item_dis <=”10100100“;money_dis<=”10100100“;elsif item =”011“ then item_dis <=”10110000“;money_dis<=”101<=“11111111”;price <=“0000”;end if;end process data;-------------------------付钱进程设计:

pay:process(finish ,one,five)begin if finish='1' then if one'event and one ='1' then pay_money_one<=pay_money_one+1;

if five'event and five ='1' then pay_money_five<=pay_money_five+5;end if;pay_money

<=

when “0001” => <=

pay_money_dis_g

“11111001”;pay_money_dis_s <= “11000000”;when

“0010”

=> <=

pay_money_dis_g

“10100100”;pay_money_dis_s <= “11000000”;when

“0011”

=> <=

pay_money_dis_g

“10110000”;pay_money_dis_s <= “11000000”;when

“0100”

=> <=

pay_money_dis_g

“10011001”;pay_money_dis_s <= “11000000”;when

“0101”

=> <= pay_money_five+pay_money_one;case pay_money is when “0000”

=> <=

pay_money_dis_g

“10010010”;pay_money_dis_s <= “11000000”;when

“0110”

=> <= pay_money_dis_g “11000000”;pay_money_dis_s <= “11000000”;

pay_money_dis_g “10000010”;pay_money_dis_s <= “11000000”;when “0111”

=> <=

when “1100” => <=

pay_money_dis_g

“10100100”;pay_money_dis_s <= “11111001”;when

“1101”

=> <= pay_money_dis_g “11111000”;pay_money_dis_s <= “11000000”;when “1000”

=> <=

pay_money_dis_g

“10110000”;pay_money_dis_s <= “11111001”;when

“1110”

=> <= pay_money_dis_g “10000000”;pay_money_dis_s <= “11000000”;when “1001”

=> <=

pay_money_dis_g

“10011001”;pay_money_dis_s <= “11111001”;when

“1111”

=> <= pay_money_dis_g “10010000”;pay_money_dis_s <= “11000000”;when “1010”

=> <=

pay_money_dis_g

“10010010”;pay_money_dis_s <= “11111001”;

when others => pay_money_dis_g <=“11000000”;pay_money_dis_g “11000000”;pay_money_dis_s <= “11111001”;when “1011”

=> <=

pay_money_dis_s <= pay_money_dis_g “11000000”;end case;

if pay_money >= price then “11111001”;pay_money_dis_s <= “11111001”;back <= pay_money-price;case back is when “0000” => money_back_dis <= “11000000”;when “0001” => money_back_dis <= “11111001”;when “0010” => money_back_dis <= “10100100”;when “0011” => money_back_dis <= “10110000”;when “0100” => money_back_dis <= “10011001”;when “0101” => money_back_dis <= “10010010”;when “0110” => money_back_dis <= “10000010”;when “0111” => money_back_dis <= “11111000”;when “1000” => money_back_dis <= “10000000”;

when “1001” => money_back_dis <= “10010000”;

when others => money_back_dis <=“11000000”;

----------------------声音提示进程设计:

int:process(START,finish)

begin

if

START ='1' and

finish = '0' then sound<=“01”;

elsif START ='1' and

finish = '1' then sound<=“10”;

elsif START ='0' and

finish = '0' then sound<=“11”;

end if;

end process int;

----------------------end architecture behav;

四、调试中出现的问题及解决方案

1、问题一 问题描述:本设计语音芯片采用LJ600,选择扬声器输出模式,可存储6段语音片段,对应6个引脚下降沿触发且低电平至少维持1ms,语音触发之后必须处于高电平状态,否则影响其他语音输出。综上描述,触发信号应为一个门信号。由于系统未引入时钟,且在同一进程中不可对输出信号重复赋值,产生问题。

解决办法:代码如下图,在if语句中实现状态跳转。

2、问题二 变量初始化状态必须明确定义高低电平。即状态输出时,必须考虑高低电平两种状态,不可以出现不确定状态。完全按照语法要求。

五、产业化市场分析及预测

随着信息技术的发展及人们生活水平的不断提高,人们的消费观念及消费需求都在不断地改变和提高。自动售卖机正是为了满足人们的这种需求而在多年前被引入国内的。但早期的自动售卖机在国内并未获得预期的市场反应及消费者的广泛使用。现阶段大多数的自动售 卖机只投放在国内一线城市,销售的货品也只停留在零食、饮料、饮用水、计生用品等有限的几样品种。在零售业市场竞争日趋白热化的今天,压缩经营成本是增强企业市场竞争力的一个主要手段。然而无论是连锁超市还是便利店,日益高涨的店面租金及人力成本,已经成为他们无法忽视也无法回避的沉重负担。而自动售卖机却完全没有上述所说的麻烦,它24小时营业、售货便利、方便找零,占地面积小(一般仅需1平方米)、移动性强,无须常驻人员盯守、省人工成本,时尚新颖、个性独特、集高科技于一体,有利于树立品牌形象,养护费用低,日常免维护……这些优势势必引领潮流,使得自动售卖机日发成为市场新宠,在零售业市场占领一席之地。

六、测试及运行结果

售卖机整体结构如下图所示:

图6-1 整体结构

商品0的价格为4元。

商品1价格为7元。

商品7价格为8元,输入11元,找零3元。

商品选择按钮及确定按键。

七、参考文献

[1]潘松,黄继业.EDA技术与VHDL.第4版.北京:清华大学出版社,2013.4 [2]潘松,王国栋.VHDL实用教程(修订版).成都:成都电子科技大学出版社,2001 [3]曾繁泰,陈美金.VHDL程序设计.北京:清华大学出版社,2001.1

下载EDA出租车自动计费器[范文大全]word格式文档
下载EDA出租车自动计费器[范文大全].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    EDA课程设计-简易出租车计价器设计5则范文

    HBQY #20080230403 课程设计 EDA 课 程 设 计 [RTX于2012/2/22] 简 易 出租车计价器设计 要求:  计价器按1.2元/公里计费,超过10公里后,则按1.8元/公里收费。  起步价6元(3公......

    基于EDA的自动售货机系统的设计 开题报告

    毕业设计开题报告 课题名称:基于学院: 专业: EDA的自动售货机系统的设计 电子电气工程学院 电子信息工程 一 自动售货机设计简介 自动售货是20世纪70年代在日本、欧美发展起来......

    EDA实验报告

    实验一:QUARTUS II 软件使用及组合电路设计仿真 实验目的: 学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。 实验内容: 1.四选一多路......

    EDA学习心得

    EDA 专业; 姓名;学号;学习心 得 刘华 201530220109 电气自动化技术 本学期对EDA技术的学习为我的专业知识学习打开了一个全新的窗口——微电子技术领域。对EDA技术,我更......

    EDA学习心得

    EDA 学习心得 姓名:贺鑫 学号:20081001164 班号:072085-10 在本学期短短5周的EDA学习中,我初步对这一新的领域有了一个较为系统的理解,也为我的专业学习打开了一个新的思路,那就......

    EDA毕业论文

    现代EDA技术及其发展 引言 随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,E......

    EDA 课程设计

    《电子系统设计自动化》课程设计报告 学 院: 机电工程学院 题 目: 数字时钟电路设计 课 程: 《电子系统设计自动化》课程设计 专业班级: 电信10级2 班 学生姓名: 刘星 秦玉杰 王......

    《EDA课程设计》

    《EDA课程设计》 课程设计题目: 基于单片机的温湿度采集系统 姓 名: xxx 学班时地 号:xxxx 级: xxxx 间:2014.4.21~ 2013.5.5 点: xxxxx 指 导老师: xxxxx 目录 一、电路原理......