欢迎来到天天文库
浏览记录
ID:23165703
大小:293.50 KB
页数:13页
时间:2018-11-04
《出租车计费系统的设计好》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、1.所选题目:出租车计费器2.设计要求:设计一个出租车计费器,能按路程计费,具体要求如下:(1)实现计费功能,计费标准为:按行驶里程计费,起步价为7.00元,并在汽车行驶2km后按1.2元/km计费,当里程数达到15km后,没千米加收50%的空驶费,车辆停止和暂停时不计费。(2)现场模拟汽车的启动、停止、暂停和换挡等状态。(3)设计数码管显示电路,将车费和路程显示出来,各有1位小数。3.设计原理:设计该出租车有启动键、停止键、暂停键和档位键。启动键为脉冲触发信号,当其为一个脉冲时,表示汽车已启动,并根据车速的选择和基本车速发出相应频率的脉冲(计费脉冲)以此来实现车费和路
2、程的计数,同时车费显示起步价;当停止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和路程计数暂停;档位键用于改变车速,不同的档位对应着不同的车速,同时路程计数的速度也不同。4.模块设计:出租车计费器可分为两大模块,即控制模块和译码显示模块。系统框图如下:计费时钟档位启动控制模块显示模块暂停停止5.电路符号:出租车计费器的输入信号有:计费时钟脉冲clk;汽车启动键start;汽车停止键stop;档位speedup。输出信号:7段显示控制信号seg7;小数点dp。6.具体设计流程:(1)根据出租
3、车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。①计数器A完成车费百位。②计数器B完成车费十位和个位。③计数器C完成车费角和分(显示时只显示角)。④计数器D完成计数到20(完成车费的起步价)。⑤计数器E完成模拟实现车行驶100m的功能。(1)当超出起步价时就自动在起步价的基础上每增加一个100m脉冲就增加相应的费用,而当总里程达到或超过一定的数值时,能按新的收费标准进行收费。(3)译码/动态扫描电路模块将路程与费用的数值译码后用动态扫描的方式驱动6只数码管,即所连接的数码管共用
4、一个数据端,由片选信号依次选择输出,轮流显示。(4)数码管显示将千米数和计费金额均用3位LED数码管显示(2位整数,1位小数)。7.具体模块设计:7.1车速控制模块当启停键为启动状态(高电平时),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于暂停状态,暂停发出脉冲,此时里程计数模块和计费模块相应地停止计数。当处于停止状态时,停止发出脉冲,此时计费器和里程显示模块数清零。如图所示。程序代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENT
5、ITYSPEEDISPORT(CLK,RESET,START,STOP:INSTD_LOGIC;SPEEDUP:INSTD_LOGIC_VECTOR(4DOWNTO0);CLKOUT:OUTSTD_LOGIC);ENDSPEED;ARCHITECTUREAOFSPEEDISSIGNALCOUNT1:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALTEMPCLK,CLKS:STD_LOGIC;SIGNALKINSIDE:STD_LOGIC_VECTOR(4DOWNTO0);BEGINKINSIDE<="00000"-SPEEDUP;CLKS_LABEL:
6、PROCESS(RESET,CLK)VARIABLECOUNT2:STD_LOGIC_VECTOR(4DOWNTO0);BEGINIFSTOP='1'THENTEMPCLK<='0';ELSIFRESET='1'andstop='0'THENCOUNT2:="00000";ELSIFCLK'EVENTANDCLK='1'ANDSTOP='0'THENIFSTART='1'THENIFCOUNT2=KINSIDETHENCOUNT2:="00000";ENDIF;IFNOT(SPEEDUP="00000")THENCOUNT2:=COUNT2+1;ENDIF;IFCOUN
7、T2="00001"THENTEMPCLK<=NOTTEMPCLK;ENDIF;ENDIF;ENDIF;ENDPROCESSCLKS_LABEL;CLKOUT<=TEMPCLK;ENDA;仿真结果:启动后(包括暂停)复位后停止后7.2里程计数模块由车速控制模块发出的脉冲作为计数脉冲,行驶里程大于3KM时,本模块中信号变为1,并将计数动态显示出来,每来一个脉冲,里程值加0.1(每收到一个脉冲代表运行了0.1公里)。程序中要将计数值从十六进制转换成十进制,即在十六进制的数上加7或6,同时产生了相应的进位信号。如图所示。程序代码:LIBRARY
此文档下载收益归作者所有