VHDL实现的出租车计价器设计与应用

5星 · 超过95%的资源 需积分: 9 20 下载量 87 浏览量 更新于2024-11-23 3 收藏 138KB DOC 举报
"CPLD/FPGA 出租车计价器的设计" 本设计涉及使用CPLD(复杂可编程逻辑器件)或FPGA(现场可编程门阵列)技术来构建一个出租车计价器,该计价器能够根据行驶里程计算费用,并在3位数码管上动态显示费用和里程。设计的主要目标是实现一个基于VHDL编程的模块化系统,该系统能够准确计费并具备起动、停止和暂停功能。 设计要求如下: 1. **里程计费**:计费规则为起步价6.00元,行驶3公里后每公里收费1.5元。当行驶距离超过10公里时,每公里额外收取50%的费用。车辆暂停或停止时不计费。 2. **显示部分**:采用3位数码管动态扫描电路分别显示车费和里程,每位都能显示一位小数。 3. **操作模拟**:通过开关模拟出租车的起动、停止和暂停状态。起动时,计价器开始计费;停止时,计费停止;暂停时,计费暂时冻结。 设计中,系统分为控制模块和译码显示模块。控制模块负责计费和里程计数,而译码显示模块则处理费用和里程的显示。 **控制模块**的核心是里程计数和费用计数。计费开始于车辆启动信号,停止或暂停时停止计费。考虑到20MHz的晶振频率,需要将频率分频为1Hz、15Hz和23Hz。1Hz用于里程计数,15Hz和23Hz分别用于不同里程段的费用计数。 **里程计数**通过1Hz脉冲累加实现,当有上升沿脉冲时,从个位开始逐位加“1”,直至满十进位。 **费用计数**则更为复杂,15Hz脉冲在3至10公里区间内对应每公里1.5元的费用,即每增加一公里,费用计数器增加15次。而23Hz脉冲用于10公里以上,每次里程增加时,费用计数器增加的次数等于23,以实现每公里增加50%车费的效果。 **译码显示模块**使用数码管动态扫描技术,确保在3位数码管上正确显示当前的里程和费用,每个数码管均显示一位小数。 总体而言,这个设计项目旨在通过CPLD/FPGA技术实现一个符合实际需求的出租车计价器模型,同时训练学生使用VHDL语言进行硬件描述和模块化设计的能力。通过这样的实践,学生能够深入理解数字逻辑系统的设计和实现过程,以及如何将复杂的计费逻辑转化为硬件描述语言。