版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.所选题目:出租车计费器2.设计要求:设计一个出租车计费器,能按路程计费,具体要求如下:()实现计费功能,计费标准为:按行驶里程计费,起步价为6.00元,并在汽车行驶2km后按1.2元km计费,当里程数达到15km后,没千米加收50%的空驶费,车辆停止和暂停时不计费。()现场模拟汽车的启动、停止、暂停和换挡等状态。()设计数码管显示电路,将车费和路程显示出来,各有位小数。3.设计原理:设计该出租车有启动键、停止键、暂停键和档位键。启动键为脉冲触发信号,当其为一个脉冲时,表示汽车已启动,并根据车速的选择和基本车速发出相应频率的脉冲(计费脉冲)以此来实现车费和路程的计数,同时车费显示起步价;当停
2、止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和路程计数暂停;档位键用于改变车速,不同的档位对应着不同的车速,同时路程计数的速度也不同。4.模块设计:出租车计费器可分为两大模块,即控制模块和译码显示模块。系统框图如下:计费时钟档位启动控制模块显示模块暂停停止5.电路符号:出租车计费器的输入信号有:计费时钟脉冲clk;汽车启动键start;汽车停止键stop;档位speedup。输出信号:段显示控制信号seg7;小数点dp。6.具体设计流程:(1) 根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为cou
3、nterA,counterB,counterC,counterD,counterE。计数器A完成车费百位。计数器B完成车费十位和个位。计数器C完成车费角和分(显示时只显示角)。计数器D完成计数到20(完成车费的起步价)。计数器E完成模拟实现车行驶100 m的功能。(2) 当超出起步价时就自动在起步价的基础上每增加一个100m脉冲就增加相应的费用,而当总里程达到或超过一定的数值时,能按新的收费标准进行收费。(3)译码/动态扫描电路模块将路程与费用的数值译码后用动态扫描的方式驱动6只数码管,即所连接的数码管共用一个数据端,由片选信号依次选择输出,轮流显示。(4)数码管显示将千米数和计费金额均用3位
4、LED数码管显示(2位整数,1位小数)。7.具体模块设计:7.1车速控制模块当启停键为启动状态(高电平时),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于暂停状态,暂停发出脉冲,此时里程计数模块和计费模块相应地停止计数。当处于停止状态时,停止发出脉冲,此时计费器和里程显示模块数清零。如图所示。程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SPEED IS PORT( CLK,RESET,START,STOP: IN STD_LOGIC
5、; SPEEDUP : IN STD_LOGIC_VECTOR(4 DOWNTO 0); CLKOUT : OUT 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); BEGIN KINSIDE<="00000"-SPEEDUP; CLKS_LABEL: PROCESS(RESET,
6、CLK) VARIABLE COUNT2: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN IF 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
7、 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时,本模块
8、中信号变为1,并将计数动态显示出来,每来一个脉冲,里程值加0.1(每收到一个脉冲代表运行了0.1公里)。程序中要将计数值从十六进制转换成十进制,即在十六进制的数上加7或6,同时产生了相应的进位信号。如图所示。程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jicheng IS PORT (CLK,RESET,STOP: IN STD_LOGIC; COUNT1:OUT STD_LOGIC_VECTOR (3 DOWN
9、TO 0); COUNT2:OUT STD_LOGIC_VECTOR (3 DOWNTO 0); COUNT3:OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END jicheng;ARCHITECTURE AA OF jicheng ISBEGIN PROCESS(CLK,RESET,STOP) VARIABLE MM: STD_LOGIC_VECTOR (11 DOWNTO 0); BEGIN IF RESET ='1' THEN MM:="000000000000" ELSIF CLK='0' AND STOP=&
10、#39;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); COUN
11、T2 <=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。当启动键为启动状态(高电平时),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时,
12、暂停发出脉冲,此时计费器和里程显示模块相应的停止计数,全部归零。如图所示。程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;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_VECTO
13、R(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 ISSIGNAL EN :STD_LOGIC;SIGNAL MONEY :STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL MCOUNT :STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINMONEY<=&q
14、uot;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);BEGIN
15、 if stop='1'and clk='0' THEN mm:="0000000000000000" elsIF reset='1' and stop='0'THEN ELSIF clk'event and clk='1' and stop='0' THEN IF en='1' THEN mm:=mm+money; -里程超过2公里 IF (mm(1)='1'or(mm(3 downto 1)="000")or(mm(
16、3 downto 2)="11")THEN mm:=mm+6;END IF; -十六进制转换成十进制 IF mm(7)='1'and (not(mm(6 downto 5)="00")THEN mm:=mm+"01100000"END IF; IF mm(11)='1'and(not(mm(10 downto 9)="00")THEN END IF;END IF; count1<=mm(3 downto 0);count2<=mm(7 downto 4);count3&l
17、t;=mm(11 downto 8);count4<=mm(15 downto 12);mcount<=mm;END PROCESS;END aa;仿真结果:起步后开始计费行驶2公里后行驶15公里后停止后7.4 动态扫描模块动态扫描电路将计数器A、B、C的计费状态用数码管显示出来,所连接的数码管共用一个数据端,由片选信号依次选择输出,轮流显示。该模块经过6选1选择器将计费数据(3位BCD码)、计程数据(3位BCD码)动态选择输出。其中计费数据送入显示译码模块进行译码,最后送至十元、元、角为单位对应的数码管上显示;计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示。
18、如图所示: 程序代码:片选:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY pianxuan IS PORT(CLK: IN STD_LOGIC; A: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END pianxuan;ARCHITECTURE RT1 OF pianxuan ISBEGIN PROCESS(CLK) VARIABLE B:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN IF(CLK'EVENT AND CLK
19、='1')THEN IF(B="101")THEN B:="000" ELSE B:=B+1; END IF; END IF; A<=B; END PROCESS; END RT1;六选一:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY liuxuanyi IS PORT(C:IN STD_LOGIC_VECTOR(2 DOWNTO 0); DP: OUT STD_LOGIC; A1,A2,A3,B1,B2,B3:IN S
20、TD_LOGIC_VECTOR(3 DOWNTO 0); D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END liuxuanyi;ARCHITECTURE RT1 OF liuxuanyi ISBEGIN PROCESS(C,A1,A2,A3,B1,B2,B3) VARIABLE COMB:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN COMB:=C; CASE COMB IS WHEN"000"=>D<=A1; DP<='0' WHEN"001"=>D<=
21、A2; DP<='1' WHEN"010"=>D<=A3; DP<='0' WHEN"011"=>D<=B1; DP<='0' WHEN"100"=>D<=B2; DP<='1' WHEN"101"=>D<=B3; DP<='0' WHEN OTHERS=>NULL; END CASE; END PROCESS;END RT1;译码:LIBRARY IE
22、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yima IS PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END yima;ARCHITECTURE RT1 OF yima ISBEGIN PROCESS(D) BEGIN CASE D IS WHEN"0000"=>Q<="0111111" WHEN"0001"=>Q<="0000110" WHEN"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 21506:2024 EN Project,programme and portfolio management - Vocabulary
- 小学中队队干部竞选主题班会《我们是少先队的小主人》
- 2022年三年级语文下册第七单元主题阅读+答题技巧(含答案、解析)部编版
- 2024年汕头小型客运从业资格证考试
- 2024年双鸭山客运资格证仿真考试题
- 2024年西安客运从业资格证理论考试题库
- 2024年石家庄客运从业资格证的考题
- 吉首大学《国际市场营销》2021-2022学年第一学期期末试卷
- 《机械设计基础》-试卷13
- 吉林艺术学院《舞蹈教育学》2021-2022学年第一学期期末试卷
- 店长转正考核(员工评价)
- 9-2 《第三方过程评估淋蓄水检查内容》(指引)
- 铁路企业高技能人才队伍建设的对策与措施
- 亚马逊品牌授权书(英文模板)
- 《现代汉语修辞》PPT课件(完整版)
- TTJCA 0007-2022 住宅室内装饰装修工程施工验收规范
- 构造柱工程施工技术交底
- 流体力学笔记整理
- 现代简约风格发展趋势
- 路缘石滑模施工工法
- 设备稼动率如何计算
评论
0/150
提交评论