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位小数)。
7.具体模块设计:
7.1车速控制模块。
当启停键为启动状态(高电平时),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于暂停状态,暂停发出脉冲,此时里程计数模块和计费模块相应地停止计数。当处于停止状态时,停止发出脉冲,此时计费器和里程显示模块数清零。如图所示。
程序**:library ieee;
use use
entity speed is
port(clk,reset,start,stop: in std_logic;
speedupin std_logic_vector(4 downto 0);
clkoutout std_logic
end speed;
architecture a of speed is
signal count1 :std_logic_vector(1 downto 0);
signal tempclk,clks:std_logic;
signal kinside :std_logic_vector(4 downto 0);
beginkinside<="00000"-speedup;
clks_label:
process(reset,clk)
variable count2: std_logic_vector(4 downto 0);
beginif stop='1' then tempclk <=0';
elsif reset = 1' and stop='0' then
count2:="00000";
elsif clk'event and clk='1' and stop='0' then
if start='1' then
if count2=kinside then count2:="00000";
end if;
if not (speedup="00000") then count2:= count2+1;
end if;
if count2="00001" then tempclk <=not tempclk;
end if;
end if
end if;
end process clks_label;
clkout <=tempclk;
end a;
**结果:启动后(包括暂停)
复位后。停止后。
7.2里程计数模块。
由车速控制模块发出的脉冲作为计数脉冲,行驶里程大于3km时,本模块中信号变为1,并将计数动态显示出来,每来一个脉冲,里程值加0.1(每收到一个脉冲代表运行了0.1公里)。
程序中要将计数值从十六进制转换成十进制,即在十六进制的数上加7或6,同时产生了相应的进位信号。如图所示。
程序**:library ieee;
use use
use entity jicheng is
port (clk,reset,stop: in std_logic;
count1:out std_logic_vector (3 downto 0);
count2:out std_logic_vector (3 downto 0);
count3:out std_logic_vector (3 downto 0));
end jicheng;
architecture aa of jicheng is
beginprocess(clk,reset,stop)
variable mm: std_logic_vector (11 downto 0);
beginif reset ='1' then
mm:="000000000000";
elsif clk='0' and stop='1' then mm:="000000000000";
elsif clk'event and clk='1' and stop='0' then
if mm(3 downto 0)="1001" then
mm:=mm+7; else mm:=mm+1; end if;
if mm(7 downto 4)="1010" then
mm:=mm+"01100000"; end if;
end if;
count1 <=mm(3 downto 0);
count2 <=mm(7 downto 4);
count3 <=mm(11 downto 8);
end process;
end aa;
**结果:开始计程。
个位开始计数。
十位开始计数。
停止后。7.3计费模块。
计费模块启动reset信号,根据输入的clk信号变化,调节费用的计数,用c1、c2、c3显示费用。其初值为6,当里程数超过2km后,才接受计数车速控制模块发出的脉冲的驱动,并且将计数显示动态显示出来,每一个脉冲其数值加0.12,当里程超过15km时数值加0.
18。当启动键为启动状态(高电平时),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时,暂停发出脉冲,此时计费器和里程显示模块相应的停止计数,全部归零。如图所示。
程序**:library ieee;
use use
use entity jifei is
port(clk,reset,stop:in std_logic;
judge2:in std_logic_vector(3 downto 0);
judge3:in std_logic_vector(3 downto 0);
count1:out std_logic_vector(3 downto 0);
count2:out std_logic_vector(3 downto 0);
count3:out std_logic_vector(3 downto 0);
count4:out std_logic_vector(3 downto 0));
end jifei;
architecture aa of jifei is
signal en :std_logic;
signal money :std_logic_vector(7 downto 0);
signal mcount :std_logic_vector(15 downto 0);
beginmoney<="00011000" when ((mcount(15)='1') or (mcount(14)='1') or (mcount(13)='1'))else "00010010";
en<='0' when judge3="0000" and judge2(3 downto 1)="000" else '1';
process(clk,reset)
variable mm: std_logic_vector(15 downto 0);
EDA大作业出租车计费器
课程报告。课程名称 eda设计技术。设计题目 出租车计费器。学院 信息工程与自动化学院。专业。年级。学生姓名。学号。指导教师 江虹。日期 2015年6月10日。目录。前言。一 设计要求。二 设计原理。三 系统具体模块实现。控制模块。译码显示模块。四 课程设计的心得与体会。五 参考资料。附源程序 前言...
出租车年度总结
2005年是不同寻常的一年,通利公司在局党委的正确领导下,克服市场竞争激烈 资金短缺等困难,亦步亦趋,稳扎稳打,以 重要思想为指导,以发展主业为中心,多元经营,紧紧围绕 六大工程 深入开展了第五个市民满意年工作,不断促进了三个文明建设。现将工作总结如下。主业方面 千方百计筹集资金,贷款315.2万元...
出租车的温暖作文
下午和同窗去公园玩,涂石膏涂过了头,出公园时,已是五点四十了,天亮的早,大街上灯火阑珊。出租车此时,都到了要交车的工夫了,有的车,虽然拉的有人,也是亮着 空车 的牌子,很分明一幅 生人勿近 的容貌,还有的司机,心甘情愿被拦下后,也是一脸不耐烦的容貌,意味性地问了问目的地,一句敷衍的 去不成 便是驾着...