EDA课程设计出租车计价器Word文档下载推荐.docx
- 文档编号:21422638
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:14
- 大小:100.29KB
EDA课程设计出租车计价器Word文档下载推荐.docx
《EDA课程设计出租车计价器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA课程设计出租车计价器Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
计费模块:
该模块是基于等待时间模块和路程模块对费用进行控制的。
通过内部使能信号分别计算3公里以内、3-20公里以及20公里以后的费用。
译码显示模块:
该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态选择输出。
本设计是基于VHDL进行编程,然后在QuartusⅡ进行波形仿真,实现出租车计价器的基本功能。
2原理描述
根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块计量模块、译码和动态扫描显示模块,其系统框图如图6-63所示,各模块功能如下:
图6-63出租车自动计费器系统框图
2.1分频模块
分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,10Hz和1Hz的三种频率。
该模块产生频率信号用于计费,每个1HZ脉冲为0.1元计费控制,10HZ信号为1元的计费控制,16Hz信号为1.6元计费控制。
2.2路程和计费模块
计量控制模块是出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分种的等待计时使能控制信号en1,行程3公里外的使能控制信号en0。
其中计价功能主要完成的任务是:
行程3公里内,且等待累计时间3分钟内,起步费为8元;
3公里外以每公里1.6元计费,等待累计时间3分钟外以每分钟1元计费;
计时功能主要完成的任务是:
计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零;
计程功能主要完成的任务是:
计算乘客所行驶的公里数。
计程器的量程为99公里,满量程自动归零。
2.3译码显示模块
其中计费数据jifei4~jifei1~送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9元;
计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为59秒;
计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。
三、设计内容
1设计思路
输入2个时钟信号,分别模拟时间和路程。
对等待时间、路程计数,进而统计费用。
系统结构框图如图2-1。
显示
分频器
计费
时钟信号
等待信号
公里脉冲
计费/复位
图2-1自动计价器的系统方框图
2设计流程图
乘客上车后,按下启动按钮,计价器开始工作,首先进入初始化状态,即计程从0开始,计费从6开始。
再根据单程信号判断是否为单程,进而确定计费方式。
单程:
里程计数器开始计数,当路程超过3公里时,计费开始累加,按1.6元每公里计算,路程超过20公里时每公里2.4元。
乘客下车后,按下复位键,则所有计数器进入初始状态。
3总体设计封装图
总体设计封装图如下图所示。
4模块设计
4.1分频模块
秒分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,15Hz和1Hz的三种频率。
该模块产生频率信号用于计费,每个1HZ脉冲为0.1元计费控制,15HZ信号为1.5元的计费控制,16Hz信号为1.6元计费控制。
4.2计费模块
控制模块是系统的核心部分,对计价器的状态进行控制。
行程3公里内,起步费为8元;
3公里外以每公里1元计费,等待累计时间1分钟外以每分钟1元计费。
20公里外以每公里1.5元计费,等待累计时间1分钟外以每分钟1.5元计费。
计费数据送入显示译码模块进行译码,最后送至以百元、十元、元、角为单位对应的数码管上显示。
4.3译码显示模块
译码显示模块完成计价、计时、计程数据显示。
其中计费数据送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为
999.9元;
计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为99分钟;
5系统仿真结果及分析
仿真波形图分析
各信号说明:
输入信号:
clk:
系统时钟信号,频率32Hz;
mile:
车速时钟,频率8Hz;
start:
:
启动信号,当start=1时,出租车启动,计数器开始计数;
否则计数器停止计数;
rst:
复位信号,当rst=1时,各计数器清0;
当rst=0时,计数器可以开始计数,start=1表示计数开始;
one_way:
单程信号,单程时由司机输入;
输出信号:
km0,km1:
里程,单位为公里;
cost0,cost1,cost2,cost3:
费用,单位为元,其中cost0表示小数位。
启动键、单程键有效,由图可知,3公里之内计费显示为6元;
3-20公里之间每公里1.6元累计;
超过20公里每公里2.4元累计。
启动键、单程键有效,乘客下车时显示费用25元,复位信号有效,计数器清零,当启动信号有效时重新计数。
四、总结与致谢
通过为期两周的课程设计,出租车计价器系统的设计已基本完成,能按预期的效果模拟汽车启动、等待、停止、复位等功能,并显示车费数目等待时间及行驶路程。
出租车计费系统的设计中体现了VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言及CPLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。
在本次设计中还存在很多不足,可以改进的地方目前有以下几点:
一、该设计虽然实现了基本的计费和计程,但是很多问题并没有解决,如本设计只实了一种车速的计费。
若要实现出租车的不同档位下的计程计费,还需要进一步讨论。
二、该设计智能化水平较低,启动、等待、复位等信号需要人为输入,若在实际中出现操作偏差,会导致计费不准确。
同时,感谢课程设计过程中杨红娟老师的耐心指导,感谢同学们的相互纠正。
五、参考文献
[1]黄仁欣.EDA技术实用教程.北京:
清华大学出版社,2006
[2]潘松,黄继业.EDA技术与VHDL.北京:
清华大学出版社,2009
[3]江国强编著.EDA技术与应用(第三版)..北京:
电子工业出版社,2010
[4]夏宇闻编著.VerilogHDL数字系统设计教程..北京:
北京航空航天大学出版社,2008
[5]周祖成,程晓军,马卓钊编著.数字电路与系统教学实验教程.北京:
科学出版社,2010
[6]周润景,苏良碧.基于QuartusII的数字系统VerilogHDL设计实例详解.北京:
[7](美国)SanirPalnitkar译者:
夏宇闻胡燕祥刁岚松.VerilogHDL数字设计与综合(第2版).北京:
电子工业出版社,2009
[8]云创工作室.VerilogHDL程序设计与实践.北京:
人民邮电出版社,2009
[9]刘福奇,刘波.VerilogHDL应用程序设计实例精讲.北京:
[10]张延伟,杨金岩,葛爱学.veriloghdl程序设计实例详解.北京:
人民邮电出版社,2008
附录(程序源代码)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitytaxiis
port(clk:
instd_logic;
wait_signal:
rst:
cost0,cost1,cost2,cost3:
outstd_logic_vector(3downto0);
min0,min1:
km0,km1:
outstd_logic_vector(3downto0));
end;
architecturebhvoftaxiis
signalmile_r1,mile_r2,mile_clk,start_r,clk1hz:
std_logic;
signalcount:
integerrange0to29;
signalsec:
integerrange0to59;
signalc0,c1,c2,c3:
std_logic_vector(3downto0);
signalk0,k1,m0,m1:
signalen0,en1:
signalwait_clk,cost_clk:
begin
U1:
process(rst,clk)
begin
ifrst='
0'
then
ifclk'
eventandclk='
1'
ifcount=5then
count<
=0;
clk1hz<
='
;
else
count<
=count+1;
endif;
endprocess;
U2:
process(rst,clk1hz,start,wait_signal)
begin
m0<
="
0000"
m1<
elsifstart='
then
wait_clk<
elsifclk1hz'
eventandclk1hz='
ifwait_signal='
ifsec=5then
sec<
wait_clk<
ifm0="
1001"
m0<
ifm1="
0101"
m1<
=m1+'
else
=m0+'
sec<
=sec+1;
wait_clk<
U3:
process(rst,clk1hz,mile,start)
ifclk1hz'
mile_r2<
=mile_r1;
mile_r1<
=mile;
start_r<
=start;
mile_clk<
=mile_r1andnot(mile_r2);
cost_clk<
=wait_clkwhenwait_signal='
else
mile_clkwhenen0='
oren1='
'
U4:
process(rst,start,mile_clk)
k0<
k1<
en0<
en1<
elsifmile_clk'
eventandmile_clk='
ifk1&
k0>
00100000"
andone_way='
en1<
en0<
k0="
00000011"
ifk0="
ifk1="
=k1+'
=k0+'
U5:
process(rst,start,cost_clk,start_r)
c0<
c1<
c2<
c3<
andstart_r='
1000"
c2<
c3<
elsifcost_clk'
eventandcost_clk='
ifen1='
anden0='
ifc1="
c1<
ifc2="
ifc3="
=c3+'
=c2+'
=c1+'
if(c0="
andc1="
)orc1="
andc0="
0001"
elsifc1="
elsifc0="
=c1+"
0010"
min0<
=m0;
min1<
=m1;
km0<
=k0;
km1<
=k1;
cost0<
=c0;
cost1<
=c1;
cost2<
=c2;
cost3<
=c3;
end;
..
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 出租车 计价器