出租车自动计费器

合集下载

出租车计费器设计与实现

出租车计费器设计与实现

出租车计费器设计与实现随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定计费准确,乘客乘坐出租车时,其费用分成起步价、行车里程费和等候时间费三部分,由自动计费器自动记录。

安装在与汽车轮相连接的传感器在汽车行进时向自动计费器发送脉冲信号,在一定的公里数(即一定的脉冲数)内,按起步价计费;超过这一里程后,自动计费器按里程计费;如果停车等候,按等候时间的多少计费。

二、设计任务与要求设计一个出租车自动计费器。

(1)用3位数码管显示总的金额,最大值为99.9元。

(2)起步价为6元,里程为3公里。

(3)车轮旋转一圈(设周长为3米),里程传感器发一个脉冲。

单价为1.60元/公里。

(4)等待单价是0.1元/分钟。

车行过程中的等待也计费。

(5)计费器按1角为单位累加,不足1角不加。

(6)单价显示,等待计费,正常行驶计费。

(7)行驶速度动态显示,四位显示,精度0.1公里/小时(8) 可以在当地的物价调整时改变起步价和每公里的单价三、设计方案论证方案一:利用大规模的数字逻辑器件来实现,简单的汽车计费器功能,其原理是利用计数器来实现对汽车车轮旋转时按在车轮上的传感器产生的计数脉冲进行计数,通过计数值达到33次可以认为近似0.1公里(车轮的周长为3米),每0.5公里显示0.8,用数字逻辑器件设计电路,电路的很复杂,成本很高,没有什么实际的运用价值。

方案二:利用89C51片机实现汽车计费器的设计,大部分的功能可以用单片机来实现,这样可以使整个电路比较简单,而且成本也比较低,(使用单片机的外围电路比较简单),而且在时间计数和速度的计算上精度大,扩展功能很方便。

但如果系统设计的不好,则系统不是很稳定,这样就为系统设计提出了挑战。

方案三:利用CPLD/FPGA来实现-------电子EDA技术,实现汽车计费器。

可行性很高,而且电路简单,可以用软件完全仿真,但设计实现比较困难,对设计者的要求很高。

软件要求高。

出租车自动计费器的设计方案

出租车自动计费器的设计方案

出租车自动计费器的设计方案自动计费器是出租车行业中必不可少的工具之一,它的设计方案对于提高出租车行业的效率和服务质量至关重要。

本文将介绍一个出租车自动计费器的设计方案,以满足行业的需求。

首先,出租车自动计费器应该具备准确计算乘客乘车费用的功能。

它应能够根据车辆的行驶路程、时间以及夜间加价等因素自动计算费用,并显示在计费器的屏幕上。

计费器的算法应精确可靠,以避免因计费错误导致的纠纷。

其次,出租车自动计费器的设计应该考虑便捷性和易用性。

计费器应有清晰易懂的界面和操作按钮,司机和乘客能够迅速明了地了解当前费用和支付方式。

此外,计费器应该支持多种支付方式,如现金、刷卡和移动支付等,以满足不同乘客的需求。

另外,出租车自动计费器应具备实时定位功能。

通过与GPS导航系统的结合,计费器可以准确获取车辆的位置信息,并根据不同地区的收费标准自动进行计费。

这样不仅可以避免司机的作弊行为,还可以提供乘客行程的准确记录,方便后续的服务投诉和纠纷解决。

在安全方面,出租车自动计费器应具备防拆功能和数据保护功能。

计费器的设计应考虑到在恶劣的工作环境中仍能正常运行,并能够防止被破坏或盗取。

同时,计费器应有密码保护和数据加密功能,以确保司机和乘客的个人信息和交易数据的安全。

为增加出租车自动计费器的实用性和便利性,可以考虑加入车辆监控和导航导航功能。

车辆监控功能可以帮助车辆管理部门实时获取车辆的行驶状态和位置信息,以便调度和监管;导航功能则可以帮助司机选择最短路径和避开拥堵路段,提高行程效率。

此外,出租车自动计费器还应具备自动上传数据的功能。

它可以将每次乘车的费用、行程、时间等数据自动上传至管理平台或相关部门,以便实时统计和分析。

这样可以提供经营者和有关部门的数据支持,并用于行业监管和评估。

综上所述,一个出租车自动计费器的设计方案应包括准确计算费用、便捷易用、实时定位、安全防护、车辆监控和数据上传等功能。

这样的设计方案将能够满足出租车行业的需求,提高行业的效率和服务质量。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

出租车计费器自动化方案的发展趋势

出租车计费器自动化方案的发展趋势

出租车计费器自动化方案的发展趋势随着科技的不断进步和技术的不断创新,出租车计费器自动化方案的发展趋势已经逐渐显现出来。

出租车计费器是出租车行业中的重要设备之一,它对于乘客和出租车司机来说都具有重要的意义。

传统的出租车计费器需要司机手动输入里程和时间等信息进行计费,容易出现误操作和纠纷。

而自动化方案的发展将极大地提高计费的准确性和效率,为出租车行业带来巨大的便利和改善。

首先,随着车辆定位技术的发展,出租车计费器将实现自动定位功能。

通过将出租车和计费器与GPS系统相连,可以实时获取出租车位置信息,自动计算行驶里程、路程时间和行车速度等关键指标,从而精确计算费用。

这种自动化的定位技术不仅可以减少司机的工作负担,还可以减少人为操作错误和欺诈行为,提高计费的公正性和可靠性。

其次,出租车计费器的自动化方案将更加智能化。

随着人工智能技术的发展,出租车计费器可以通过学习和分析大量的乘车数据,自动识别乘客的上下车地点和行车路线,并根据道路拥堵情况和时间变化自动调整计费参数。

这种智能化的计费方案能够更好地适应不同的道路和交通状况,提高计费的准确性和合理性。

此外,出租车计费器的自动化方案还需要与支付系统相结合,实现无现金支付。

通过与移动支付平台的对接,乘客可以使用手机扫码或小程序进行支付,避免了携带现金的麻烦和安全风险。

同时,支付系统还可以与出租车计费器进行实时对账,确保计费的准确性和清晰度,提高服务质量和用户满意度。

而在用户方面,出租车计费器的自动化方案将提供更加便捷的乘车体验。

例如,乘客可以通过手机APP预约出租车并实时追踪车辆位置,不再需要在路边等待。

同时,出租车计费器可以自动识别乘客目的地并提供优惠折扣和推荐服务,增加用户对出租车的使用频率和黏性。

然而,出租车计费器自动化方案在发展过程中也面临着一些挑战。

首先是技术问题,比如GPS信号不稳定、数据传输延迟等,可能导致计费误差或异常。

其次是监管和隐私问题,自动化方案需要与政府监管机构和乘客的个人信息进行合规和保护,确保数据安全和使用透明度。

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

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

出租车自动计费器设计原理分析出租车自动计费器是现代交通工具中普遍使用的设备,它可以根据行驶的里程和时间自动计算乘客应支付的费用。

本文将分析出租车自动计费器的设计原理。

出租车自动计费器是一个复杂的系统,主要由计费单元、传感器、显示屏和控制单元等部分组成。

计费单元是整个系统的核心,通过收集行车数据并进行计算,确定乘客应支付的费用。

传感器用于检测车辆的里程和时间,传输这些数据给计费单元。

显示屏用于展示乘客应支付的费用和当前的行车数据。

控制单元则负责整个系统的控制与管理。

首先,出租车自动计费器需要收集并处理车辆的里程和时间数据。

这一过程主要依靠车载传感器实现,例如车辆速度传感器、里程传感器和时钟模块等。

车辆速度传感器可以实时监测车辆的速度,并将速度数据传输给计费单元。

里程传感器则用于测量车辆行驶的距离,并将里程数据传输给计费单元。

时钟模块则用于记录车辆的行驶时间。

通过收集这些数据,计费单元可以准确计算出乘客应支付的费用。

其次,计费单元需要根据收集到的数据进行计算。

其中,里程计算是计费单元最重要的部分。

计费单元需要将行驶的里程数据与预设的收费标准进行比对,并根据里程进行费用的累加。

同时,计费单元还需要考虑行驶时间的影响。

一些地区的收费标准还会考虑高峰时段的加价。

计费单元还需要处理行驶距离超过规定范围的情况,例如长途距离的计费方式可能与短途不同。

通过精确的计算,计费单元可以准确、公正地计算出乘客应支付的费用。

另外,出租车自动计费器还需要具备一定的显示功能。

显示屏可以实时展示乘客应支付的费用、车辆的行驶数据以及其他相关信息。

这样可以方便乘客了解行程费用,并避免争议。

此外,显示屏还可以提供一些额外的服务,例如显示天气信息、提供导航功能等,提升乘客的乘车体验。

最后,控制单元负责整个系统的控制与管理。

它可以根据乘客的需求,实现计费单元和显示屏的协调工作。

同时,控制单元还需要记录行车数据、维护系统的稳定运行以及处理异常情况。

出租车计费器

出租车计费器

出租车计费器设计要求计费标准为武汉起步3元,1公里后为4元/公里,1.5公里后为5元/公里,2公里后为6元/公里,2.5公里后为7元/公里,3公里后为8元/公里,以后1.4元/公里。

当计费达到20元后,每公里加收50%的车费,车停止每3分钟增加0.7元。

车费显示出来,有一位小数。

1、 设计原理及方法如图1所示,包含运算控制模块、分频器、显示模块这三大部分。

图1系统框图运算控制器模块将其他两个进行连接,是本次设计的核心。

它包含计程器、计时器、计价器,同时还有读取外部的拨码开关控制信号,提供当前显示信号与显示位选信号,从而周期性交替显示计价/计时信息、等时信息。

计程器、计时器、计价器根据位选信号,输出相应数据的当前选中数字,由顶层模块根据显示数据类型变换信号进行选择,传输给显示模块。

实验箱的时钟信号为20MHz方波,由分频器分为10Hz的计时信号(一个周期代表现实中的1s)、10Hz的计程信号(一个周期代表现实中的10m)、500Hz的数码管扫描信号(扫描频率62.5Hz)、0.2Hz的显示数据类型变换信号(变化周期5s)。

显示模块由实验箱上的3/8译码器、五个LED灯构成状态的指示灯、程序编写的一个七段数码管译码器。

2、主要模块设计2.1、速度模块速度模块首先根据start信号判断是否开始计费,然后根据输入的速度档位sp[2..0]的判断,确定行驶100m所需要的时钟数,每前进100m,输出一个clkout 信号。

同时由cnt对clk进行计数,当cnt等于kinside时,把clkout信号置1,cnt清0。

其模块框图如图2图2速度模块框图2.1.1、速度模块仿真速度模块的仿真波形图如图3示。

该模块根据出租车所处的运行状态和不同的形式速度,对相应数目的时钟周期进行计数,车每行驶100m时输出信号clkout 输出高电平。

图3速度模块仿真波形图2.2、计程模块主要用于记录行进的距离,其模块框图如图4所示。

出租车计费器

出租车计费器

出租车计费器一、设计任务出租车自动计费器是根据客户用车的实际情况而自动计算、显示车费的数字表。

数字表根据用车起步价、行车里程计费及等候时间计费三项显示客户用车总费用,打印单据,还可设置起步、停车的音乐提示或语言提示。

1.自动计费器具有行车里程计费、等候时间计费和起步费三部分,三项计费统一用4位数码管显示,最大金额为99.99元。

2.行车里程单价设为1.80元/km,等候时间计费设为1.5元/10分钟,起步费设为8.00元。

要求行车时,计费值每公里刷新一次;等候时每10分钟刷新一次;行车不到1km或等候不足10分钟则忽略计费。

3.在启动和停车时给出声音提示。

二、设计方案方案1 采用计数器电路为主实现自动计费。

分别将行车里程、等候时间都按相同的比价转换成脉冲信号,然后对这些脉冲进行计数,而起价可以通过预置送入计数器作为初值,如图1的原理框图所示。

行车里程计数电路每行车1km输出一个脉冲信号,启动行车单价计数器输出与单价对应的脉冲数,例如单价是1.80元/km,则设计一个一百八十进制计数器,每公里输出180个脉冲到总费计数器,即每个脉冲为0.01元。

等候时间计数器将来自时钟电路的秒脉冲作六百进制计数,得到10分钟信号,用10分钟信号控制一个一百五十进制计数器(等候10分钟单价计数器)向总费计数器输入150个脉冲。

这样,总费计数器根据起步价所置的初值,加上里程脉冲、等候时间脉冲即可得到总的用车费用。

图1 出租车计费器原理框图一上述方案中,如果将里程单价计数器和10分钟等候单价计数器用比例乘法器完成,则可以得到较简练的电路。

它将里程脉冲乘以单价比例系数得到代表里程费用的脉冲信号,等候时间脉冲乘以单位时间的比例系数得到代表等候时间的时间费用脉冲,然后将这两部分脉冲求和。

如果总费计数器采用BCD码加法器,即利用每计满1km的里程信号、每等候10分钟的时间信号控制加法器加上相应的单价值,就能计算出用车费用。

图2 出租车计费器原理框图二方案2 采用单片机为主实现自动计费。

出租车自动计费器的设计原理分析

出租车自动计费器的设计原理分析

出租车自动计费器的设计原理分析出租车自动计费器是一种应用于出租车行业的设备,用于准确计算乘客的车费并提供相关信息。

它是出租车行业中不可或缺的一部分,通过自动化计费系统,确保乘客和司机之间的交易公平、透明。

出租车自动计费器的设计原理可以大致分为以下几个方面:1. 计价规则与费率表:出租车自动计费器的设计需要根据当地的法规和政策,在其内部设置相应的计价规则和费率表。

这些规则和费率表通常由政府部门制定,并根据当地的交通、燃油价格等因素进行调整。

计费器根据行驶距离、时间、等候时间等因素来计算车费,并根据费率表提供准确的计费信息。

2. 里程计算与定位系统:自动计费器通过里程计算,精确地测量出租车行驶的距离。

这通常通过车辆上安装的里程传感器来实现,它可以实时监测车辆的行驶状况,并将数据传输给计费器进行计算。

同时,定位系统(如GPS)也被应用于自动计费器中,以便准确计算出租车行驶的距离和时间。

3. 时间计算与时钟系统:除了里程计算,自动计费器还需要正确计算出租车的行驶时间。

为此,计费器内置了精确的时钟系统,可以准确记录出租车的行驶开始和结束时间,以便计算行驶时间。

时钟系统通常会自动校准以确保准确性。

4. 显示器与用户界面:出租车自动计费器通常会配备一个显示器和用户界面,用于向乘客显示当前的车费和其他相关信息。

乘客可以根据显示器上的信息来了解乘车费用,并可以通过用户界面进行一些操作,如选择付款方式等。

5. 结算与支付:自动计费器设计需要支持多种支付方式,如现金、刷卡等。

计费器通过连接支付终端或电子支付平台,实现与支付系统的集成,以便乘客可以方便地完成支付。

同时,自动计费器还需记录每一笔交易的信息,以便司机和乘客在需要时进行查阅和核对。

除了以上的设计原理,出租车自动计费器还需要考虑耐用性、安全性和易使用性等因素。

例如,设计师需要选择高品质的材料来保证计费器的稳定性和耐用性,还需要考虑防水、防尘等特性以适应车辆使用环境。

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

天津工业大学EDA 课程设计课程 EDA 课程设计题目出租车自动计费器学院电子与信息工程学院专业班级学生姓名学生学号指导教师2012年6月22日题目出租车自动计费器摘要本系统是基于FPGA的模拟出租车计费系统,是在实验室实验箱EP1C6P240C8芯片及其外围电路的基础上完成程序的下载仿真。

本系统模拟了出租车计费系统的过程,其中出租车的状态分为等待、行驶,系统能够完成起步价计费,等待、行驶状态计费。

关键字:出租车计费系统起步价等待行驶一、设计目的1.掌握出租车计费的工作原理2.进一步熟悉用VHDL语言编写出租车计费程序二、开发软件: QuartusII三、设计任务1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用三位数码管显示总金额,最大值为99.9元;2、行车里程单价1.7元/公里,等候时间单价1.7元/5分钟,起价8元(3公里起价)。

3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然后用乘法器将里程数乘以每公里单价的比例系数,从而计算出具体费用。

4、用数码管显示行驶公里数,三个数码管显示行驶里程。

提示:1、等候时间计费需将等候时间转换成脉冲个数,用每个脉冲表示的金额与脉冲数相乘即得计费数,脉冲周期为1秒,例如60个脉冲表示1分钟,而5分钟收费1.7元。

2、用2个LED显示等候时间。

3、用加法器将几项收费相加,P=P1+P2+P34、 P1为起价,P2为行车里程计费,P3为等候时间计费,用四个数码管表示总的计费结果。

四、系统设计原理及过程1、基本原理本次设计首先在QuartusⅡ环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,生成模块。

而整个设计的核心部分就在里程、计时、计费处理模块。

里程、计时模块完成行驶距离和等待时间的处理以及起步距离之后和等待时间的计费脉冲的产生。

计费处理模块完成起步价计费、在计费脉冲来临之际累加计费的功能。

随后运用QuartusⅡ中的仿真功能对其予以仿真,从仿真的结果中分析程序的正确性。

待所有模块的功能正确之后,运用原理图搭建电路并进行整体仿真直至达到最初的设计要求,最后再在实验箱上综合下载检验设计的正确与否。

2、系统框图根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、等待时间、收费金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转换成与之成正比的计费脉冲,然后由计费电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每公里产生一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,5分钟即300个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。

实验箱中只有一个48MHZ的时钟,所以需要分频之后再送给其他模块,最后将等待时间、行驶里程、计费金额经过译码电路送到数码管显示。

其设计框图如图1所示:图1整体系统框图3、电路及模块分析系统总体设计电路如图2:图2 出租车自动计费器顶层电路原理图1)行驶里程、等待时间处理模块本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。

因为行驶距离每脉冲代表10米,所以计满100个数就输出一个行驶距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行驶距离最小分辨率为0.1公里,行驶距离脉冲每计10个数,行驶距离输出加0.1,行驶距离最大值为99.9公里。

等待时间脉冲频率为1HZ,所以一个脉冲代表1秒,60个等待脉冲是1分钟,输出等待时间加1,等待时间5分钟计一次费,所以对等待时间脉冲计数,计满300个数就输出一个等待计费脉冲。

等待时间最大值为99分钟。

将行驶距离、等待时间送到数据选择器,计费脉冲送到计费模块完成距离、时间的显示以及计费功能。

2)计费模块计费模块也是本系统的核心,完成起步价计费,等待时间,行驶计费功能。

计费器启动,显示起步价8元,之后每来一个行驶距离计费脉冲或者等待时间计费脉冲,计费金额自动加1.7元。

计费显示用3位数码管,所以计费最大值为99.9元。

将计费输出送到数据选择器,最后送到译码电路显示。

3)分频模块因为实验箱上只有一个48MHZ的时钟,所以我们要经过分频电路得到我们所需要的频率,本系统中用到了三个分频,1HZ分频用来作为等待时间脉冲,10HZ分频作为行驶距离脉冲,每个脉冲代表行驶10米。

还有一个分频是作为数码管动态显示的扫频脉冲,由此频率生成一个八进制计数器,作为数据选择器的选择信号,将各个数据位轮流送到数码管,利用人眼的视觉暂留实现动态显示。

4)八进制计数器模块八进制计数器模块完成八进制计数,从000计到111后,回到000重新计数,并将此数据送到数据选择器作为选择信号。

5)八选一数据选择器模块本模块主要是完成数码管的动态扫描,将八位数据在选择信号的作用下依次送到译码电路,完成动态显示。

本模块的主要特点是有一个小数点标志位输出以及段选信号。

6)译码模块本模块主要完成数据的译码,在段选信号,小数点标志位的共同作用下完成数据在八位数码管上的动态显示。

五、系统调试及下载完成个模块的设计之后,将各个模块封装成元件,建立一个原理图文件,将各个模块连接起来,即完成了整个系统的顶层设计,顶层设计框图如上图图2所示。

下面对系统的核心模块进行仿真。

1、里程、等待时间处理模块里程、行驶距离计费脉冲仿真图由图可以看出每10个脉冲里程数加0.1,三公里以后每公里有一个计费脉冲B1。

等待时间,等待计费脉冲仿真图由图可以看出每60个脉冲,等待时间加1。

等待时间每5分钟产生一个计费脉冲。

2、计费模块计费模块仿真图由图可以看出在计费脉冲来临之前,计费金额始终是起步价8元,之后每来一个计费脉冲,计费金额加1.7元。

其他模块较简单,这里就不一一仿真了,设计好顶层原理图之后,就可以配置引脚了,在配置引脚之前,先选择芯片EP1C6P240C8,然后配置好START、WR、RST按键,数码管位选、段选引脚就可以下载了。

六、结论下载完之后,我们可以看到,八位数码管的右三位显示起步价08.0,中间三个数码管在以0.1为步长进行加法显示行驶里程,当行驶里程超过3公里之后,每公里计费金额加1.7元,当我们按下K2键,每分钟左边两个数码管加1,其显示的等待时间,当等待时间到5分钟时,计费金额加1.7元,由此我们可以判断,系统设计符合要求。

实验感想:附:实验程序1.1HZ分频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pulse isport(clk: in std_logic;-- D: in std_logic_vector(7 DOWNTO 0);Fout: out std_logic);end;architecture one of pulse issignal full:std_logic;beginp_reg:process(clk)variable cnt8: integer range 24000000 downto 0;beginif clk'event and clk='1' thenif cnt8=24000000 thencnt8:=0;full<='1';else cnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process (full)variable cnt2:std_logic;beginif full'event and full='1' thencnt2:=not cnt2;If cnt2='1'then fout<='1';else fout<='0';end if;end if;end process p_div;end;2、10HZ分频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pulse10 isport(clk: in std_logic;-- D: in std_logic_vector(7 DOWNTO 0);Fout: out std_logic);end;architecture one of pulse10 issignal full:std_logic;beginp_reg:process(clk)variable cnt8: integer range 2400000 downto 0;beginif clk'event and clk='1' thenif cnt8=2400000 thencnt8:=0;full<='1';else cnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process (full)variable cnt2:std_logic;beginif full'event and full='1' thencnt2:=not cnt2;If cnt2='1'then fout<='1';else fout<='0';end if;end if;end process p_div;end;3、扫频分频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pulsesp isport(clk: in std_logic;-- D: in std_logic_vector(7 DOWNTO 0);Fout: out std_logic);end;architecture one of pulsesp issignal full:std_logic;beginp_reg:process(clk)variable cnt8: integer range 24000 downto 0;beginif clk'event and clk='1' thenif cnt8=24000 thencnt8:=0;full<='1';else cnt8:=cnt8+1;full<='0';end if;end if;end process p_reg;p_div:process (full)variable cnt2:std_logic;beginif full'event and full='1' thencnt2:=not cnt2;If cnt2='1'then fout<='1';else fout<='0';end if;end if;end process p_div;end;4、里程、等待时间处理模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIFEI ISPORT(CLK0,CLK1:IN STD_LOGIC;START:IN STD_LOGIC;WR:IN STD_LOGIC;RST:IN STD_LOGIC;B1,B2:OUT STD_LOGIC;KM0,KM1,KM2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN1,MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END JIFEI;ARCHITECTURE BEHA VE OF JIFEI ISBEGINRUN:PROCESS(CLK0,START,WR,RST)V ARIABLE R1:INTEGER RANGE 0 TO 9;V ARIABLE R2:INTEGER RANGE 0 TO 99;V ARIABLE K:STD_LOGIC_VECTOR (7 DOWNTO 0);V ARIABLE K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST='0' THEN K0:="0000";K1:="0000";K2:="0000";R1:=0;R2:=0; ELSIF CLK0'EVENT AND CLK0='1' THENIF START='1'AND WR='1' THENIF R1=9 THEN R1:=0;IF K0="1001" THENK0:="0000";IF K1="1001" THENK1:="0000";IF K2="1001" THENK2:="0000";ELSEK2:=K2+1;END IF;ELSEK1:=K1+1;END IF;ELSEK0:=K0+1;END IF;ELSE R1:=R1+1;END IF;K:=K2&K1;IF K>"00000001" THENIF R2<99 THEN R2:=R2+1;B1<='0';ELSE R2:=0;B1<='1';END IF;END IF;END IF;END IF;KM0<=K0;KM1<=K1;KM2<=K2;END PROCESS;W:PROCESS(CLK1,START,WR,RST)V ARIABLE W1:INTEGER RANGE 0 TO 59;V ARIABLE W2:INTEGER RANGE 0 TO 299;V ARIABLE M1:STD_LOGIC_VECTOR(3 DOWNTO 0);V ARIABLE M0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST='0' THEN M0:="0000";M1:="0000";W1:=0;W2:=0;ELSIF CLK1'EVENT AND CLK1='1' THENIF START='1' AND WR='0'THENIF W1=59 THEN W1:=0;IF M0="1001"THENM0:="0000";IF M1="1001"THENM1:="0000";ELSE M1:=M1+1;END IF;ELSE M0:=M0+1;END IF;ELSE W1:=W1+1;END IF;IF W2<299 THEN W2:=W2+1;B2<='0';ELSE W2:=0;B2<='1';END IF;END IF;END IF;MIN0<=M0;MIN1<=M1;END PROCESS;END ARCHITECTURE ;5、计费模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIN ISPORT(B:IN STD_LOGIC;START:IN STD_LOGIC;RST:IN STD_LOGIC;P0,P1,P2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END JIN;ARCHITECTURE BEHA VE OF JIN ISBEGINP:PROCESS(B,START,RST)V ARIABLE C2,C1,C0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='0' THEN C0:="0000";C1:="1000";C2:="0000";ELSIF START='1' THENIF B'EVENT AND B='1' THENIF C0>2 THEN --加0.7元IF C1="1001"THEN C1:="0000";IF C2="1001"THEN C2:="0000";ELSE C2:=C2+1;END IF;ELSE C1:=C1+1;END IF;C0:=C0-3;ELSE C0:=C0+7;END IF;IF C1="1001"THEN C1:="0000";IF C2="1001"THEN C2:="0000";ELSE C2:=C2+1;END IF;ELSE C1:=C1+1;END IF;END IF;END IF;P0<=C0;P1<=C1;P2<=C2;END PROCESS;END;6、八进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT8 ISPORT (CLK : IN STD_LOGIC;OUTY : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END CNT8;ARCHITECTURE behav OF CNT8 ISBEGINPROCESS(CLK)V ARIABLE CQI : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIF CLK'EVENT AND CLK='1' THENIF CQI < "111" THEN CQI := CQI + 1;ELSE CQI := "000";END IF;END IF;OUTY <= CQI;END PROCESS;END behav;7、八选一数据选择器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MAX81 ISPORT (P0,P1,P2,K0,K1,K2,M0,M1: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S : IN STD_LOGIC_VECTOR(2 DOWNTO 0);D : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);POINT:OUT STD_LOGIC);END MAX81;ARCHITECTURE body_mAx81 OF mAx81 ISBEGINprocess (P0,P1,P2,K0,K1,K2,M0,M1,S)begincase S isWHEN "000"=>D<= P0;B<="11111110";POINT<='0';WHEN "001"=>D<= P1;B<="11111101";POINT<='1';WHEN "010"=>D<= P2;B<="11111011";POINT<='0';WHEN "011"=>D<= K0;B<="11110111";POINT<='0';WHEN "100"=>D<= K1;B<="11101111";POINT<='1';WHEN "101"=>D<= K2;B<="11011111";POINT<='0';WHEN "110"=>D<= M0;B<="10111111";POINT<='0';WHEN "111"=>D<= M1;B<="01111111";POINT<='0';WHEN others => null;end case;end process;END body_MAX81;8、数码管译码程序Library ieee;use ieee.std_logic_1164.all;entity decl7s isport(a:in std_logic_vector(3 downto 0);POINT:IN STD_LOGIC;led7s:out std_logic_vector(7 downto 0));end decl7s;architecture one of decl7s isbeginprocess(a,POINT)beginIF POINT='0' THENcase a iswhen "0000"=>led7s<="11000000";when "0001"=>led7s<="11111001";when "0010"=>led7s<="10100100";when "0011"=>led7s<="10110000";when "0100"=>led7s<="10011001";when "0101"=>led7s<="10010010";when "0110"=>led7s<="10000010";when "0111"=>led7s<="11111000";when "1000"=>led7s<="10000000";when "1001"=>led7s<="10010000"; when others=>null;end case;ELSEcase a iswhen "0000"=>led7s<="01000000"; when "0001"=>led7s<="01111001"; when "0010"=>led7s<="00100100"; when "0011"=>led7s<="00110000"; when "0100"=>led7s<="00011001"; when "0101"=>led7s<="00010010"; when "0110"=>led7s<="00000010"; when "0111"=>led7s<="01111000"; when "1000"=>led7s<="00000000"; when "1001"=>led7s<="00010000"; when others=>null;end case;END IF;end process;end;。

相关文档
最新文档