出租车自动计费器设计课程设计报告模板Word文档格式.docx

上传人:b****2 文档编号:2964676 上传时间:2023-05-01 格式:DOCX 页数:25 大小:509.91KB
下载 相关 举报
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第1页
第1页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第2页
第2页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第3页
第3页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第4页
第4页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第5页
第5页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第6页
第6页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第7页
第7页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第8页
第8页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第9页
第9页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第10页
第10页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第11页
第11页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第12页
第12页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第13页
第13页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第14页
第14页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第15页
第15页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第16页
第16页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第17页
第17页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第18页
第18页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第19页
第19页 / 共25页
出租车自动计费器设计课程设计报告模板Word文档格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

出租车自动计费器设计课程设计报告模板Word文档格式.docx

《出租车自动计费器设计课程设计报告模板Word文档格式.docx》由会员分享,可在线阅读,更多相关《出租车自动计费器设计课程设计报告模板Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。

出租车自动计费器设计课程设计报告模板Word文档格式.docx

用两个数码管显示等待时间,最大值99分钟。

2.2.1系统设计目的

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

2.学习使用QUARTUSII软件设计。

 

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出租车计费器的实现

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-2JIFEI模块图

3.2.2计量模块JILIANG

图3-3JILIANG模块图

本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。

因为行驶距离每脉冲代表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-4SELTIME模块图

SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在数码管上的显示位置。

sel为计数控制信号输出端,功能主要是利用其计数的八个状态,使daout在其每个状态下选择某一输入数据,进而将选择的的数据送入到DELED模块。

dp为小数点脉冲控制信号,当该模块输出的值为里程的个位、费用的个位时,需要考虑小数点的存在,即此时dp=‘1’,在其他不需要小数点的情况下,dp=‘0’,最后dp将信号输出到DELED模块。

3.2.4显示模块DELED

图3-5DELED模块图

DELED模块把送入的每个四位数据转换为7段码送出显示,能够使数码管正常显示送入的数据。

其中DP为小数点输入信号。

4出租车计费器系统仿真及分析

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(3downto0)=”0000”,则DOUT=”00111111”;

当S(3downto0)=”0001”,则DOUT=”00000110”;

当S(3downto0)=”0010”,则DOUT=”01011011”;

当S(3downto0)=”0011”,则DOUT=”01001111”;

当S(3downto0)=”0100”,则DOUT=”01100110”;

当S(3downto0)=”0101”,则DOUT=”01101101”;

当S(3downto0)=”0110”,则DOUT=”01111101”;

当S(3downto0)=”0111”,则DOUT=”00000111”;

当S(3downto0)=”1000”,则DOUT=”01111111”;

当S(3downto0)=”1001”,则DOUT=”01101111”;

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

2.DP=1时:

当S(3downto0)=”0000”,则DOUT=”10111111”;

当S(3downto0)=”0001”,则DOUT=”10000110”;

当S(3downto0)=”0010”,则DOUT=”11011011”;

当S(3downto0)=”0011”,则DOUT=”11001111”;

当S(3downto0)=”0100”,则DOUT=”11100110”;

当S(3downto0)=”0101”,则DOUT=”11101101”;

当S(3downto0)=”0110”,则DOUT=”11111101”;

当S(3downto0)=”0111”,则DOUT=”10000111”;

当S(3downto0)=”1000”,则DOUT=”11111111”;

当S(3downto0)=”1001”,则DOUT=”11101111”;

当S(3downto0)等于上述值以外的值时,则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锁定管脚及硬件实现

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大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。

6设计体会与总结

通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅。

我们所做的课题是出租车计费器的设计。

老师给了我们课程设计题目,在这半个月的实验操作中,不断的完善自己的设计要求,将自己的想法融入到实验的程序中去。

最终通过仿真达到了自己预想的效果。

有种先苦后甜的成就感。

同时在本次试验中,我们熟练的掌握了QuartusII软件的使用。

学会了如何把自己所设计的程序,通过软件用波形仿真出来,再通过试验箱仿真出来。

在这次课程设计过程中,要感谢陈老师在课程设计上给予我的帮助,提供给我的支持与建议,特别是帮助我解决了我半个月来一直遇到的运行程序警告多的问题,这是我能顺利完成这次报告的主要原因,让我能把课程设计做得更加完善。

在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了自己的设计能力。

其次,我要感谢帮助过我的同学们,他们也为我解决了不少难题。

这些东西是无法再平时上课的过程中学到的,实践出真知,只有在实验中我们才能更好的学到东西,不用纸上谈兵,做无用功。

参考文献

[1]徐飞.EDA技术与实践[M].北京:

清华大学出版社,2011.

[2]王行,李衍.EDA技术入门与提高[M].西安:

西安电子科技大学出版社,2005.

[3]刘昌华.数字逻辑EDA设计与实践[M].北京:

国防工业出版社,2011.

[4]李蓉.基于VHDL语言的出租车自动计费器的设计[J].科技风,2008,24:

33.

附录

1JILIANG模块的VHDL编程

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYJILIANGIS

PORT(CLK,CLK1:

INSTD_LOGIC;

START:

DRIVE:

BREAK:

B1,B2:

OUTSTD_LOGIC;

KM2,KM1,KM0:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

MIN1,MIN0:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDJILIANG;

ARCHITECTUREBEHAVEOFJILIANGIS

SIGNALR1:

INTEGERRANGE0TO9;

SIGNALK:

STD_LOGIC_VECTOR(7DOWNTO0);

SIGNALK2,K1,K0:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALW1:

INTEGERRANGE0TO59;

SIGNALM1:

SIGNALM0:

BEGIN

RUN:

PROCESS(CLK1,DRIVE,BREAK,K0,K1,K2)

BEGIN

IFSTART='

1'

THEN

IFDRIVE='

0'

THENK0<

="

0000"

;

K1<

K2<

R1<

=0;

ELSIFCLK1'

EVENTANDCLK1='

THEN

IFDRIVE='

ANDBREAK='

IFR1=9THENR1<

IFK0="

1001"

k1<

=k1+1;

IFK1="

THENK1<

k2<

=k2+1;

IFK2="

THENK2<

ELSEK2<

=K2+1;

ENDIF;

ELSEK1<

=K1+1;

ENDIF;

ELSEK0<

=K0+1;

ENDIF;

ELSER1<

=R1+1;

B1<

='

K<

=K2&

K1;

IFK>

"

00000010"

IFR1<

9THENR1<

ELSER1<

B1<

ELSEK0<

ENDIF;

KM0<

=K0;

KM1<

=K1;

KM2<

=K2;

ENDPROCESS;

PAUSE:

PROCESS(CLK,DRIVE,BREAK,M0,M1)

IFSTART='

THENM0<

M1<

W1<

ELSIFCLK'

EVENTANDCLK='

IFDRIVE='

ANDBREAK='

THEN

IFW1=59THENW1<

B2<

IFM0="

THENM0<

M1<

=M1+1;

IFM1="

THENM1<

ELSEM1<

ELSEM0<

=M0+1;

ELSEW1<

=W1+1;

ELSEM0<

MIN0<

=M0;

MIN1<

=M

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2