(整理)出租车计费系统的设计好

合集下载

出租车计费系统的设计

出租车计费系统的设计

设计目的随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定,计费准确,有防作弊功能;同时还要求其具有车票资料打印、IC卡付费和电脑串行通信功能。

不同国家和地址的计费方式存在差异,如有些地区有夜间收费及郊区收费等,而有些地区则无夜间收费和郊区收费。

本次设计采用硬件和软件相结合的方法,以单片机为核心,从圈脉冲信号的产生到营业信息的打印都做了详细的介绍,并对MAX813L看门狗、复位电路、行车里程检测电路、掉电存储电路、IC卡读写电路、分屏显示电路以及操作面板进行了详细的设计。

该系统还具有防止干扰和防死机的功能,系统的电源是专门为出租车设计的,具有相当强的稳压效果,系统采用了EEPROM存储器,可以方便且安全的记录顾客和车主的信息。

关键词: 89C51;里程检测;分屏显示;EEPROM;设计背景随着出租车行业的发展,对出租车计费器的要求也越来越高。

二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。

同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而ASIC以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。

目前,业界大量可编程逻辑器件(PLD),尤其是现场可编程逻辑器件(FPLD)被大量地应用在ASIC的制作当中。

在可编程集成电路的开发过程中,以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果的电子设计自动化(EDA)技术主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。

理想的可编程逻辑开发系统能符合大量的设计要求:它能够支持不同结构的器件,在多种平台运行,提供易于使用的界面,并且有广泛的特征。

此外,一个设计系统应该能给设计师提供充分自由的设计输入方法和设计工具选择。

出租车计费系统的设计

出租车计费系统的设计

目录一课程设计目的 (3)二课程设计内容和要求 (3)2.1设计内容 (3)1 设计过程 (3)2 所用器件简介 (3)3 设计所需器件归纳 (6)2.2 设计要求 (6)三设计方案 (6)3.1设计思路 (6)3.2工作原理及硬件框图 (7)3.3硬件电路原理图 (8)3.4 PCB版图设计 (8)四课程设计总结 (10)五参考文献 (10)1、课程设计目的1 掌握电子电路的一般设计方法和设计流程;2 学习使用NI Multisim10软件绘制电路原理图及PROTEL软件绘制印刷板图;3 掌握应用NI Multisim10对所设计的电路进行仿真,通过仿真结果验证设计的正确性。

2、课程设计内容和要求:2.1、设计内容1 设计过程1)使用NI Multisim10软件绘制原理图。

2)使用PROTEL制作PCB版图。

3)应用NI Multisim10对所设计的电路进行仿真。

2 所用器件简介(1) 74LS160计数器的功能图1 74LS160芯片图74LS160 是一个具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器,共有54/74160 和54/74LS160 两种线路结构型式。

74LS160异步清零端/MR1 为低电平时,不管时钟端CP信号状态如何,都可以完成清零功能。

74LS160的预置是同步的。

当置入控制器/PE为低电平时,在CP上升沿作用下,输出端Q0-Q3与数据输入端P0-P3一致。

对于54/74160,当CP由低至高跳变或跳变前,如果计数器控制端CEP、CET为高电平,则/PE应避免由低至高电平的跳变,而54/74LS160无此种限制。

74LS160的计数是同步的,靠CP同时加在四个触发器上而实现的。

当CEP、CET均为高电平时,在CP上升沿作用下Q0-Q3同时变化,从而消除了异步计数器中出现的计数尖峰。

对于54/74LS160的CEP、CET跳变与CP无关。

74LS160有超前进位功能。

出租车计费系统的设计 设计

出租车计费系统的设计 设计

目录摘要 (1)第1章绪论 (2)第2章系统设计 (3)2.1系统组成 (3)2.1.1 计费及显示 (3)2.1.2 时钟及显示 (3)2.1.3 计费开始提示 (1)2.2功能模块设计 (1)第3章硬件及软件实现 (3)3.1传感器 (3)3.1.1 光电传感器电路设计 (3)3.1.2车轮光电开关检测电路 (4)3.2单片机 (4)3.2.1 8051 单片机功能方块图 (5)3.2.2 AT89S51单片机简介 (7)3.2.3 AT89S5l与51系列单片机相比具有如下特点 (8)3.2.4 89S51的内部框图 (9)3.2.5 中断控制 (11)3.2.6 单片机控制程序设计 (12)3.2.7 单片机汇编语言源程序 (16)3.3显示及按键控制系统 (31)3.3.1 LED数码管 (31)3.3.2 数据显示电路的设计 (32)第4章系统检测及分析 (34)4.1系统仿真/硬件验证 (34)4.1.1 系统的调试方法 (34)4.1.2 系统的硬件验证 (34)4.2设计技巧分析 (35)结论 (36)附录A: FPGA芯片引脚 (37)摘要本系统电源电压为+16V,速度传感器具有汽车每运行1㎞提供1000个脉冲信号的特性。

显示器可以采用LED数码管。

系统采用单片机和FPGA的结合进行系统的主体设计,测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算,里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间,等待费用,并产生里程标志(LCBZ),等待标志(DDBZ),熄灯标志(XDBZ)等有关控制标志信号,同时根据单片机发出的开始信号(START),时段标志(SDBZ),传输数据选择(SEL)等控制信号将有关计算结果传送给FPGA芯片。

单片机MCU除了完成键盘扫描,显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。

本设计方案利用单片机和FPGA的结合,发挥它们各自的长处,分工清晰,实际使用和操作符合大众逻辑,容易被人接受。

出租车计费系统设计

出租车计费系统设计

4.8 出租车计费系统的设计4.8.1 设计要求设计出租车计费系统,实现出租车按照行驶里程计费,行驶里程在3公里以 内,预置起步费为7元,3公里以上以1.6元/公里计费,当计费总额超过30元, 以 2.4 元/公里计费,车停止结束计费。

车费总额可显示最大值为 99.9 元,能同 步显示对应行驶里程。

模拟出租车启动、暂停、停止等状态,通过动态扫描显示 电路,显示行驶里程和车费总额。

4.8.2 设计过程1.出租车计费系统的设计原理出租车计费系统整体设计框图如图 4.8.1 所示,主要模块包括车轮脉冲计数 模块、里程计数模块、计费模块、动态扫描模块及译码模块。

图 4.8.1 出租车计费系统整体设计框图车轮脉冲计数模块接收来自车轮传感器的脉冲信号, 以及出租车运营过程的 启动、暂停、停止等信号,根据车轮的型号,转换得到百米行驶信号。

里程计数 模块负责统计百米行驶信号,得到行驶里程数据信号,计费模块根据行驶里程以 车轮脉冲计数模块计费模块 里程计数模块动态扫 描及译 码模块车轮脉冲 信号 启动/暂停 停 止 时钟信号及车费规则,得到车费总金额数据信号,将行驶里程和车费总金额数据信号,送 入动态扫描模块及译码模块,供外部数码管显示。

2.车轮脉冲计数模块车路脉冲计数模块接收来自车轮传感器的脉冲信号,经过计数分频,产生出 租车行驶100米的输出信号。

由于不同型号的车轮,直径大小不同,行驶100米车轮转的圈数不同,即车 轮传感器发出的脉冲信号个数不同,对不同车轮应区别对待。

如表4­8­1所示, 车轮直径与每公里所转圈数对应表。

表 4­8­1 车轮直径与每公里所转圈数对应表车轮直径 500mm 520mm 540mm 560mm 580mm圈数/公里 637 612 590 569 549本设计中我们选取车轮直径为520mm进行讨论,设计程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count ISPORT(clk, reset, start : IN STD_LOGIC;clk_out : OUT STD_LOGIC);END count;ARCHITECTURE behave OF count ISSIGNAL mode : STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL temp : STD_LOGIC_VECTOR(5 DOWNTO 0);TYPE states IS (s0, s1);SIGNAL s_state : states;BEGINmode <= "111101";PROCESS(clk, start, reset)BEGINIF reset = '1' THEN s_state <= s0;temp <= "000000";ELSIF (clk'EVENT AND clk = '1') THENCASE s_state ISWHEN s0 => temp <= "000000";IF start = '1' THENs_state <= s1;ELSE s_state <= s0;END IF;WHEN s1 => IF start = '1' THENIF temp = mode THENtemp <= "000000"; s_state <= s1;ELSE temp <= temp + 1; s_state <= s1;END IF;ELSE s_state <= s0;END IF;END CASE;END IF;END PROCESS;clk_out <= '1' WHEN temp = mode ELSE '0';END behave;以上程序中,当停止键 reset 设为高电平,模块进入停止计数状态(s0);停止键 reset 设为低电平,同时启动/暂停键设为启动状态(start 高电平),进入;设置为暂停(start 低电平),回到s0状态,停止分频计数。

出租车计费器设计(部分)

出租车计费器设计(部分)

出租车计费器出租车的出现给人们的生活带来了极大的便利,日渐成为城市交通工具中重要的成员之一.本实验以日常所见的出租车计费器为设计目标,实现其计程、计时、预置、计费等功能。

一、系统设计要求设计一个满足日常生活所需功能的出租车计费器.该计费器能实现计费功能.车起步开始计费,首先显示起步价,起步费为3。

00元,车在行驶3KM以内,只收起步价。

车行驶超过3KM之后,没KM2元,车费依次累加。

当总费用达到或超过40元时,每KM收费4元。

当遇到红灯或客户需要停车等待时,则按时间计费,计费单价为每20s收费1元。

实现计费器预置功能,能够预置起步费、每公里收费、车行加费里程、计时收费等。

可以模拟汽车行驶、停止、暂停等状态,并根据不同状态进行计费.以十进制显示出租车行驶路程与车费。

二、系统设计方案分析系统设计要求不难得知,整个出租车计费系统按功能主要分为速度模块、计程模块、计时模块和计费模块。

速度模块:通过对速度信号sp的判断,决定变量kinside的值。

kinside即是进行100m所需要的时钟周期数,然后每行进100m,则产生一个脉冲clkout。

计程模块:由于一个clkout信号代表行进100m,故通过对clkout计数,可以获得共行进的距离kmcount.计时模块:在汽车启动后,当遇到顾客等人或红灯时,出租车采用计时收费的方式。

通过对速度信号sp的判断决定是否开始记录时间。

当sp=0时,开始记录时间。

当时间达到足够长时则产生timecount脉冲,并重新计时。

一个timecount脉冲相当于等待的时间达到了时间计费的长度。

这里选择系统时钟频率为500HZ,20s即计数值为1000。

计费模块由两个进程组成。

其中,一个进程根据条件对enable和price赋值:当记录的距离达到3公里后enable变为1,开始进行每公里收费,当总费用大于40元,则单价price 由原来的2元每公里变为4元每公里;第二个进程在每个时钟周期判断timecount和clkout的值。

(整理)出租车计费系统VHDL.

(整理)出租车计费系统VHDL.

EDA课程设计:出租车计费系统学生姓名:所在班级:指导老师:完成时间:一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;二、课程设计要求实际中出租车的计费工作原理一般分成3个阶段:(1)车起步开始计费。

首先显示起步价(本次设计起步费为7.00元),车在行驶3 km 以内,只收起步价7.00元。

(2)车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。

(3)行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。

车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。

若停止则车费清零,等待下一次计费的开始三、基本设计思想1、根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。

①计数器A完成车费百位。

②计数器B完成车费十位和个位。

③计数器C完成车费角和分。

④计数器D完成计数到30(完成车费的起步价)。

⑤计数器E完成模拟实现车行驶100 m的功能。

2、行驶过程中车费附加50%的功能:由比较器实现。

3、车费的显示:由动态扫描电路来完成。

用专用模块来实现,完成数据的输入即动态数据的显示。

4、通过分析可以设计出系统的顶层框图如图3.1所示:图3.1 系统的顶层框图四、出租车计费系统的实现1、系统的总体框图2、程序流程图图4.2程序流程图3、系统各功能模块的实现(1)模块JIFEI的实现:图 4.3 模块模块JIFEI见图4.3。

输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。

出租车自动计费器设计原理与优化分析

出租车自动计费器设计原理与优化分析出租车自动计费器是出租车行业中常见的计费工具,它能够自动根据乘客乘坐的里程和时间来计算费用。

理解和优化这一计费器的设计原理对于提高出租车计费的准确性和公平性具有重要意义。

本文将探讨出租车自动计费器的设计原理和可能的优化方法。

首先,我们了解出租车自动计费器的设计原理。

通常,计费器通过与车辆的里程计和时间计时装置相连,来实时获取里程数和乘车时间。

它的基本计费方式是根据行驶里程和乘坐时间进行累计,并按照一定的费率进行计算。

计费器还可以应用一些附加费用,如过路费和停车费等。

在进行计费时,有几个关键因素需要考虑。

首先是里程计算,计费器需要准确获取起始点和终点之间的行驶里程。

这通常可以通过车辆的里程计和GPS技术来实现。

其次是时间计算,计费器需要准确记录乘车时间,通常使用车辆上的计时装置实现。

最后是费率计算,计费器应该能够根据制定的费率表对里程和时间进行计算,确保费用的公平性和准确性。

然而,目前一些出租车自动计费器存在一些问题和潜在的优化空间。

首先,计费器的精度可能存在误差。

这可能是由于里程计的不准确性、时间计时装置的不精确或者GPS定位误差等原因造成的。

为了提高计费的准确性,可以使用更精确的计量装置,例如使用更准确的里程计和精确的时间计时装置。

其次,计费器的费率可能不够公平。

费率的制定应该能够充分考虑不同乘车距离和时间段的差异性,以确保乘客在不同情况下获得公平的计费。

优化的方法包括根据乘车距离和时间动态调整费率,或者基于交通拥堵情况进行优惠政策。

此外,还有优化空间可以通过引入更多的计费因素来实现。

例如,可以考虑乘客数量、车内空调使用时间等因素,来进一步增加计费的准确性和公平性。

这样可以使计费更加细致化,更加贴近乘客的实际需求。

最后,为了确保计费的透明度和公正性,应该加强对计费器的监管和审查。

政府部门可以设立相应的标准和检测机构,对计费器进行定期的检测和维护,以确保其功能的正常运行和准确计费。

出租车计价系统的设计要求与设计方案

第一章出租车计价系统的设计要求与设计方案1.1出租车计价器设计要求设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三局部,用七段数码管显示总金额,单价,运行里程,起步价为6 元,超过 6 元,每一公里增加 1 元或2 元,等待时间单价为每 30 秒钟1 元,计费功能:费用的计算是按行驶里程收费。

设起步价为 6 元。

1、当总金额<6 元时,按起价计算费用2、当总金额>6 元时,每公里按 1 元或2 元计费3、等待累计时间>30s 时,按 1 元/30s 计费4、S1 为启动按钮、S2 转换单价按钮、S3 复位按钮。

显示功能:1、显示行驶里程:用三位数字显示,显示方式为“XX.X”,单位为 km。

计程范围 0-99.9km,准确到 0.1km。

2、显示单价:用两位数字显示,显示方式为“X.X”,单位为元。

3、显示总费用:用三位数字显示,显示方式为“XX.X”,单位为元。

计价范围 0-99.9 元,准确到 0.1 元。

1.2系统主要功能本出租车自动计费,上电后显示最初的起步价,里程计费单价。

同时具有运行,复位,转换等状态,可以切换白天与晚上不同计费单价,可以实现每等待30s 收1 元功能。

出租车显示行驶的总费用,里程,单价。

1.3方案论证与比较方案一:承受数字电子技术,利用 555 定时芯片构成多谐振荡器,或承受外围的晶振电路作为时钟脉冲信号,承受计数芯片对脉冲尽心脉冲的计数和分频,最终通过译码电路对数据进展译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图 1-1 所示:图1-1 方案一方案二:承受 EDA技术,依据层次化设计理论,该设计问题自顶向下可分为分频模块,把握模块计量模块、译码和动态扫描显示模块,其系统框图如图 1-2 所示:图1-2 方案二方案三:承受MCU 技术,通过单片机作为主控器,承受外部晶振作为时钟脉冲,通过按键可以便利调整,以下是方案三的系统流程图,本方案主要是必需对于数字电路比较生疏,本钱又不高。

出租车计价器系统设计整理版


显示单元
• 在出租车中,乘客能够看到的计价系统就是显示单元,因 此,显示单元就是计价系统与乘客见面的门户,一个好的 显示单元不仅能够完美的显示单价,费用,里程等等我们 需要的信息,同时还能兼具美观等性能,显示单元设计的 好与坏直接关系到了整个计价系统设计的成败。使用6位 LED数码管来完成显示单元的设计。在数码管的工作方式 上,我们选择共阳极动态显示方式。
系统的软件设计
• 本次系统的软件设计主要可分三部分,它们分别为主程序 模块、里程计数服务程序、显示子程序服务程序三大模块 部件。
• 主程序模块需要完成对各接口芯片的初始化、出租车起价 和单价的初始化
设计的意义
• 现代社会中,出租车计价系统是乘客与司机都不可或缺的 设备,同时是出租车中相当重要的组成部分,没有了出租 车计价系统出租车便寸步难行,会给司机和乘客带来很大 的麻烦,出租车计价系统更是现代出租车行业发展的标志 性设备之一,出租车行业的发展有很大一部分都体现在计 价系统的更新和换代上。它对于交易双方即乘客和司机都 利益相关。一个设计不完善,性能不够优良,不够效率的 计价系统会使得乘客不满,并且使司机师傅工作更加复杂, 而整个行业都使用设计不完善,性能不够优良,不够效率 的计价系统会使得整个出租车行业的发展变得缓慢。因此, 在高速发展的今天,无论是出租车司机还是乘客都迫切的 需要性能良好的出租车计价系统。因此出租车计价系统设 计具有相当大的研究价值,同时也具有很深刻的社会意义。
总体设计框图
89S51单片机
AT24C02掉电 储存 里程计算单元
总金额 显示
单价显 示
锁存器 串口显示驱动电路
整体设计电路图
里程计算单元
• 霍尔传感器A44E的引脚3接51单片机的INT0接口用 以输入外部中断信号。霍尔传感器器具体的工作 原理是这样的:先把一个小磁铁固定在车轮上, 然后把霍尔传感器固定在车轮附近,这样车轮每 转动一周,磁铁就会经过霍尔传感器A44E一次, 引脚3输出一个脉冲信号,这样连接A44E的51单片 机就会获得一个外部中断信号。单片机记录并测 量脉冲信号的个数和周期。通过单片机记录的脉 冲周期我们就可以计算出速度和里程:1/脉冲周 期X车轮周长=速度;脉冲信号个数X车轮周长=里 程。这样我们就通过霍尔传感器A44E实现了里程 计算。

推荐-出租车计价系统的设计 精品 精品

出租车计价系统的设计摘要本在掌握出租车计价器的相关理论知识的基础上,设计了一种基于单片机的智能化出租车计价器。

在深入了解国内外相关技术研究现状之后,从硬件和软件两方面出发,完成了出租车计价系统的设计。

本课题具有一定的现实意义。

系统采用AT89C51单片机作为主控单元,实现时钟显示,里程统计和费用计算,语音播报,票据打印等功能,并且在液晶屏上显示信息。

系统充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12864E液晶模组,模拟实现带语音提示的出租车计价系统。

比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示等功能。

完成了系统的硬件设计,同时用C语言编写了源程序,对系统的软件进行了设计。

系统所设计的由单片机控制的出租车计价器,为出租车行业提供了新的应用领域,使计费功能得到了完善。

关键词:AT89C51单片机;TG12864E液晶模组;C语言Design of Taximeter SystemAbstractThis paper is on the design and function of a kind of intelligent taximeter I designed based on MCU,according to relevant theories of taximeter.This taximeter system is designed from the points of both hardware and software,on the basis of in-depth understanding of relevant domestic and foreign technology research. This issue has a practical significance.AT89C51 MCU used as a main control unit, this system has the function of displaying the clock, mileage statistics and cost, voice-broadcasting, printing papers, the information of which will be displayed on the LCD screen. From the point of hardware,this system gives the driver and the passengers relevant information about the conditions of the taxi and the different charging rates and charges on different condition by simulating human voice with the voice funtion of ISD1420 , the TG12864E LCD modules, and by simulating the real condition.From the point of software,the system is loaded with program in C-language.This kind of taximeter provides a new application area for the taxi industry and improves the billing functions.Key Words:AT89C51 MCU;TG12864E LCD Module;C Language目录引言随着科学技术的发展,计算机技术带来了科研和生产的许多重大飞跃,特别是单片机的应用已经渗透到生产和生活中的各个方面,有力的推动了社会的发展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.所选题目:出租车计费器2.设计要求:设计一个出租车计费器,能按路程计费,具体要求如下:(1)实现计费功能,计费标准为:按行驶里程计费,起步价为7.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 IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SPEED ISPORT(CLK,RESET,START,STOP: IN STD_LOGIC;SPEEDUP : IN STD_LOGIC_VECTOR(4 DOWNTO 0);CLKOUT : OUT STD_LOGIC);END SPEED;ARCHITECTURE A OF SPEED ISSIGNAL 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' THENCOUNT2:="00000";ELSIF CLK'EVENT AND CLK='1' AND STOP='0' THEN IF START='1' THENIF 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 IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jicheng ISPORT (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 ISBEGINPROCESS(CLK,RESET,STOP)V ARIABLE MM: STD_LOGIC_VECTOR (11 DOWNTO 0);BEGINIF RESET ='1' THENMM:="000000000000";ELSIF CLK='0' AND STOP='1' THEN MM:="000000000000";ELSIF CLK'EVENT AND CLK='1' AND STOP='0' THENIF MM(3 DOWNTO 0)="1001" THENMM:=MM+7; ELSE MM:=MM+1; END IF;IF MM(7 DOWNTO 4)="1010" THENMM:=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 IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jifei ISPORT(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 ISSIGNAL 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);BEGINif stop='1'and clk='0' THEN mm:="0000000000000000";elsIF reset='1' and stop='0'THENmm:="0000011000000000"; --复位,计费显示为起步费6.00 ELSIF clk'event and clk='1' and stop='0' THENIF en='1' THEN mm:=mm+money; --里程超过2公里IF (mm(1)='1'or(mm(3 downto 1)="000")or(mm(3 downto2)="11"))THENmm:=mm+6;END IF; --十六进制转换成十进制IF mm(7)='1'and (not(mm(6 downto 5)="00"))THENmm:=mm+"01100000";END IF;IF mm(11)='1'and(not(mm(10 downto 9)="00"))THENmm:=mm+"011000000000";END IF;END IF;END IF;count1<=mm(3 downto 0);count2<=mm(7 downto 4);count3<=mm(11 downto 8);count4<=mm(15 downto 12);mcount<=mm;END PROCESS;END aa;仿真结果:起步后开始计费行驶2公里后行驶15公里后停止后7.4 动态扫描模块动态扫描电路将计数器A、B、C的计费状态用数码管显示出来,所连接的数码管共用一个数据端,由片选信号依次选择输出,轮流显示。

相关文档
最新文档