出租车计价器Multisim课程设计

2024-06-28

出租车计价器Multisim课程设计(精选7篇)

出租车计价器Multisim课程设计 篇1

组员:杨天乐

闫帅铮 艾文杰

一、题目:出租车计价器

        设计内容:1)进行需求分析,确定总体框架;

2)画出逻辑图;

3)对设计的电路进行仿真;

设计要求:1)根据出租车上的速度传感器传来的脉冲个数和设置的里程单价来计算对应的总价格,并将总价格通过LED实时显示;

2)起步价可以设置;

3)里程单价可以设置;

4)可以对总价格进行复位,从而为下次计费做好准备;

设计提示:本设计应主要实现两个功能,显示行驶里程与总价。行驶里程的计算可由计数器实现,每一个脉冲假设为1Km。实验系统有标准时钟信号,因此通过分频可以获得脉冲信号。

总价格可由可控制条件的累加器实现,然后予以输出。累加器可由一个加法器和一个可复位的寄存器组成,最后设计译码器,将2位的十六进制转化为BCD码。

二、设计原理及Multisim电路图

电路分两部分,一部分用于记录行车里程,一部分用于记录费用。

所用器件:74LS163,74LS283,2输入与门,4输入与门,1输入非门,2输入与非门,4输入与非门,6输入与非门,DCD-HEX-BLUEx6,74LS77。

(1)里程单价:

电路有2个时钟,一个用于里程,一个用于价格,单价为第二个时钟与第一个时钟的比值,比如第一个时钟为3HZ,第二个1HZ,则单价为3元,以此来调整价格。

(2)行车里程

三个163计数器从左到右依次为个,十,百位计数器,通过:

当个位为9时使十位使能;

当个位与十位同时为9时使下一个计数器使能。

均采用163接成模十计数器。

(3)价格

起步价部分:通过4个与门分别接一根总线接出到个位输出9,其他接起步价0-9,当计数到9时,使起步价无效,则不会产生当起步价为1时,计数不会出现10的情况,其中采用了D锁存器。整体相当于一个起步价输入的使能端。具体电路图如下:

(4)实例:

起步价为0,里程单价为3时:

单价为1时:

出租车计价器Multisim课程设计 篇2

如今出租车计价器计价不精确, 而且容易磨损, 功能也不是很多, 没有区分短途计费和远途计费, 中途停车也没有根据时间来收费。出租车计价器以MSP430F149 为核心部件, 通过使用时钟电路、掉电保护电路、数码管显示电路, 以及路程测量等电路, 实现了短途计费和远途计费, 中途停车计费和调价等一系列的功能, 具有很好的实用性。

1 系统主要功能

(1) 出租汽车计费方法:白天 (早5:00-晚22:59) 起步价7 元 (3公里以内) , 超出3 公里至35 公里以内的公里数每公里按2.6 元计费。超出35 公里以外的公里数按3.5 元计费。夜间 (晚23:00-早4:59) , 起步价8 元 (3 公里以内) 其它计费方式同上。总价=起步价+行驶费用+候车费用。

(2) 显示功能:显示行驶里程, 单位为公里, 精确度为1 公里;显示等候时间, 单位为分钟, 精确到1 分钟;显示总费用, 单位为元, 精确到0.1 元。

(3) 按键功能:具有计价开始、结束, 价格调整等功能。

2 系统硬件设计

系统硬件包括时钟模块, 电源模块, 继电保护模块, 显示模块, 路程测量模块以及按键模块, 其硬件设计框图如图1 所示。

2.1 电源模块

单片机所需的工作电压为+3.3V, 而出租车上电瓶提供的是+12V电源, 为此采用ASM1117 的经典稳压电路, 从而获得+3.3V电压[1]。同时很多器件需要采用5V供电, 为此需采用7805 经典电路。

2.2 时钟模块

由于单片机内部时钟误差较大且非常的不稳定, 为此采用DS1302 作为外部时钟电路, 其电路如图2 所示。

2.3 掉电保护模块

掉电保护模块的作用是在电源断开的时候, 存储当前设定的单价信息。采用AT24C02 是ATMEL公司的2KB字节的可擦除存储芯片, 其掉电保护电路如图3 所示。

2.4 路程测量模块

在汽车联轴器按圆周间隔嵌入磁钢, 车轮每转一圈, 霍尔传感器集成芯片A44E就产生一个标准的脉冲信号送入单片机的定时/计数器T1 即P3.5 引脚, 利用单片机的T1 的计数功能完成100 次的计数后完成一次路程的测量。霍尔传感器集成芯片A44E有信号转换、电压放大等功能, 为增加其抗干扰的能力, 使用74LS14 对信号进行整形后通过光偶送入单片机的定时/计数器引脚[2]。路程测量电路如图4 所示。

2.5 按键模块

使用三个按键分别实现行车计费模式、停车等候模式以及手动调节单价。

2.6 显示模块

系统需要显示时间、单价、总价、路程、等待时间等, 采用8 个LED数码管显示, 可以实现时间显示, 路程显示以及总价显示。

3 软件设计

3.1 主程序的设计

在主程序模块中, 需要对出租车起步计价、启动中断、计算时间、计算路程及显示的初始化、循环运行工作。当按下S1 按钮时, 就进入载客模式, 开始计算路程和费用。当按下S2 按钮时, 进入停车计费模式显示路程的显示单元变成显示停车时间, 并按停车计费标准计算费用, 累加到总价[3]。总价在计费显示单元中显示。主流程如图5所示。

3.2行车计费程序的设计

白天 (早5:00--晚22:59) 行车计费程序模块流程图6所示, 夜间 (晚23:00-早4:59) 程序设计与白天相似。

3.3按键程序的设计

系统中按键S1与S2分别控制两种状态。第一按下S1出租车计费启动, 第二次按下S1清零。第一次按下S2出租车进入停车计费模式, 第二次按下S2则返回行车计费模式。按键模块流程图如图7所示。

4结束语

采用MSP430芯片为核心器件, 结合了芯片AT24C02、DS1302和霍尔传感器集成芯片A44E等使用, 实现了短途计费和远途计费, 中途停车计费和调价等功能, 其精确度和可靠性得到明显的提高。

参考文献

[1]蒋志海.单片机原理及应用[M].电子工业出版社, 2009:121-131.

[2]肖卫初, 陈伟宏, 杨明.基于单片机的多功能出租车计价器的设计[J].现代电子技术, 2008, 8:15-17.

出租车计价器Multisim课程设计 篇3

关键词:出租车计价器;AT89C52;Proteus

中图分类号:TP368.12 文献标识码:A文章编号:1007-9599 (2011) 03-0000-01

Proteus-based the Taximeter Simulation Design

Liu Yue

(College of Physics and Electronic Engineering,Hainan Normal University,Haikou571158,China)

Abstract:With economic development,the automobile industry by leaps and bounds up the taxi is also increasingly common.Understanding the application of the taxi on the billing system,on our daily lives can also help.For us to better understand the principles of the taxi meter pricing, we use the Proteus simulation software to AT89C52 microcontroller as the core and some other extension of software,design and simulation of the taximeter pricing principles.

Keywords:Taximeter;AT89C52;Proteus

简要说明当前出租车计价器存在的问题,在此基础上以AT89C52单片机为核心,以ISD2560、DS1302、MAX7219等芯片为外设的出租车计价器仿真实验设计成功,并把KeilC与Proteus连接调试。模拟结果表明出租车计价器除了一般的计价计费功能外,还有多种计量功能,并且有超速提醒等功能。

一、proteus 软件介绍

Proteus仿真软件是电路分析和实物仿真软件,可以仿真、分析、模拟各种模拟器件和集成电路,在世界范围内应用很广泛,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。用proteus软件仿真实验,可以对实验初级阶段进行评估,通过对各个元器件的参数分析和改变,电路就具有了最优化性能。和传统的仿真模拟相比,单片机的仿真有了明显的优势,实验内容丰富,仿真和实践更相近,另外还可以防止器件的损坏,方便快捷,能提供多种仪表的虚拟实验。本仿真实验以单片机为核心,在计价器的控制中有积极的现实意义。

二、系统硬件结构

整体硬件连接框图如图1所示,整个系统由单片机 AT89C52控制电路、AT24C02存储电路、A44E霍尔传感器电路、I SD2560语音播报电路、DS1302 时钟电路、MAX7219驱动显示电路组成。

(一)计价器模拟計价控制顺序:单片机采集空车灯信号和路程检测器信号,空车时,单片机调用DS1302芯片和MAX7219串口显示驱动程序;当有乘客时,ISD2560语音播报电路进行语音播报1(欢迎乘坐),然后调用DS1302计算时间信息,在不同时间段,调用AT24C02程序分别获取不同的单价及起始价,并及时显示在LED显示器上;当乘客下车时,进行播报2(谢谢再次乘坐本出租车,请交金额 ),单片机将本次相关数据存储到24C02中,出租车再次启动后,单次金额与里程等信息清零复位,完成一次计价。

(二)实验电路设计。实验电路设计的原理图如图2所示。它由电源电路、霍尔传感器路程测量电路、数据显示电路、语音播报电路、时钟电路、票据打印电路和数据存储电路等组成,各电路端口分别与单片机AT89C52的输出口相连,通过单片机的控制来实现计价器的功能。

三、Proteus IS IS6的系统仿真步骤

(一)连线方法。P1口接矩阵键盘,P0口接LM016L的D0-D7和74HC573的D0-D7。LM016L的RS和RW分别接74HC573的Q0、Q1。AT89C52的P3.6和P3.7经过与非门74HC00然后再与P2.7口与非后取反,接LM016L的E端口。P3.0接数字信号发生器的输出端。

(二)仿真操作步骤。第一,画出电路原理图,如图2所示,第二,用KeilC µVision2把设计好的程序编译成机器语言。第三,打开Proteus的ISIS,点击菜单“Debug”,选“use romote debuger monitor”,此时KeilC和Proteus的连接调试。然后双击单片机AT89C52,KeilC下生成的.HEX文件导入AT89C52中,完毕后再单击仿真运行按钮,仔细观察,可以看到芯片上高低电平(红色和蓝色)在互相转化,高电平每转换成低电平一次,表示出租车车轮转了一圈,转化为里程数在LED显示器上显示。如果现象不正确, 则利用KeilC进行程序调试,并在Proteus观察现象,不断修改、调试,直到仿真完全成功。

电路仿真调试过程为:启动计价器,在空车灯没有掰下时空车灯亮,只显示时间;当超速行驶时,发光二极管发出红色的光进行提醒。仿真结果表明Proteus的仿真实验结果达到初步预期效果。

四、结束语

本文介绍了Proteus软件在单片机中的应用优势,仿真模拟了以AT89C52 单片机为核心,以ISD2560、DS1302、MAX7219等芯片为外设的出租车计价器实验。本文中KeilC与Proteus的连接调试成功,对于单片机的仿真模拟应用、电子电路的集成性开发有很大的使用价值。

参考文献:

[1]陈伟宏,肖卫初,邱飚.基于Proteus的多功能出租车计价器设计[J].重庆工学院学报(自然科学),2009,23(6):83-86

[2]李学君,李波.基于PI C单片机的多功能出租车计价器设计[J].仪表技术,2010,2:36-42

[3]韩迎辉,杨文新.Proteus 软件在单片机虚拟仿真中的应用[J].常州轻工职业技术学院学报,2007,4:20-23

基于CPLD的出租车计价器设计 篇4

论文编号:2303 用户评价:

本店售价:¥50元

论文摘要 商品属性 商品标签

摘 要

本文论述了一种基于CPLD的出租车计价系统的设计。该计价器通过数码管和按键可以显示时间、单价、起步价、里程数,并用扫描电路显示所走路程需要的费用。本论文主要工作是软件设计,它主要包括四个子模块:按键模块,控制模块,译码模块和显示模块。设计时采用VHDL硬件描述语言,通过软件Quartus II对本设计进行设计,下载到芯片EPM7128SLC84-l5中,从而实现计价器的计费功能。关键词:CPLD 出租车计价器 VHDL QuartusII

目 录 1 绪论.1 1.1 出租车计价器的发展概况.1 1.2 出租车行业的管理现状.1 2 出租车计价器系统硬件结构.2 2.1 硬件系统概述.2 2.1.1 EDA概述.2 2.1.2 CPLD器件MAX7000系列.2 2.1.3 霍尔传感器.3 2.2 VHDL硬件描述语言.4 2.2.1 VHDL概述.4 2.2.2 VHDL语言基础知识.4 3 软件编程环境.5 3.1 QuartusII软件的特点.6 3.2 QuartusII软件的集成工具.6 3.3 设计输入.7 3.4 综合.7 3.5 布局布线.8 3.6 仿真.8 3.7 编程与配置.8 4 出租车计价器的软件设计过程.9 4.1 出租车计费器工作原理.9 4.2 基本的设计思想.9 4.2.1 控制模块.9 4.2.2 译码显示模块.12 4.3 设计的整个过程.15 4.4 各个模块的仿真结果.22 4.4.1 控制模块仿真结果.22 4.4.2 译码显示模块仿真结果.23 5 出租车计价器存在的问题和改进工作.25 5.1 出租车计价器存在的问题.25 5.2 改进方法.25 结束语.25 参考文献.27 英文摘要.28 附录一 出租车计价器软件设计的流程图.29 附录二 软件设计的源代码.30 致谢.37 仲恺农业工程学院毕业设计成绩评定表..38

绪论

1.1 出租车计价器的发展概况

出租车行业在我国是八十年代初兴起的一项新兴行业,随着我国国民经济的高速发展,出租汽车已成为城市公共交通的重要组成部分[1]。多年来国内普遍使用的计价器只具备单一的计量功能。目前全世界的计价器中有90%为台湾所生产。现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。

我国第一家生产计价器的是重庆市起重机厂,最早的计价器全部采用机械齿轮构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程的同时还可完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善。出租汽车计价器是一种专用的计量仪器,它安装在出租汽车上,能连续累加,并指示出行程中任一时刻乘客应付费用的总数,其金额值是计程和计时时间的函数[2]。出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好。随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能。例如:(1)LED显示功能,数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;(3)存储功能,可存储多项营运数据,便于查询。新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年。1.2 出租车行业的管理现状

随着我国国民经济的高速发展,出租汽车已成为城市公共交通的重要组成部分。近几年来,出租车汽车行业在各地蓬勃发展,出租车经营也从无序状态逐渐走入正轨。出租车计价器成为出租车运营中必配的、可靠的计量器具,其使用准确性直接关系到经营者与乘客的经济利益。但在实际运营中,总有不少经营者或乘客反映相同路径,不同的出租车的收费有较大的出入[3]。本课题采用CPLD芯片为核心,用较少的硬件和适当的软件相互配合主要解决以下问题:

(1)不同地区的计费方式存在差异;即使同一地区,不同车型的出租车,其计费方式也有差别;另一方面,出租车还面临几年一次的调价或调整计费方式等问题。因此,所设计的计费器不仅要能满足不同地区的要求,而且计费方式的调整也应当很方便。

(2)由于个别地区对计费器有特殊要求,有时必须修改软件;另外,计费器还面临软件的升级;因而,所设计的计费器应能很方便地重新编程。

出租车计价器信息 篇5

切实规范运营行为

近期,霍市质监局下属检测中心对全市范围内具有交通主管部门颁发经营许可证的500余辆出租车计价器进行统一更换、安装和检定。

目前,我市城区共有出租车546台,均未安装计价器,出租车运营过程中多是约定俗成定价或协议运价,由于出租车运价不规范,乘客和营运车辆之间关于计费的分歧争论不断,拒载现象时有发生。随着我市城区规模不断扩大,市区出租车行驶距离逐渐增加,安装出租车计价器已势在必行。为切实加强我市出租车行业的规范管理,规范出租车行业的有序运营,保障乘客和出租车经营者的合法权益,市质监局、工商局、交通局等多个部门联合举行了听证会,并对出租车计价器更换等相关事宜进行了协调,由质监局统一负责对全市出租车计价器的安装和检定任务,确保2015年1月1日后,全市所有的出租车均实行计价打表收费。

单片机出租车计价器源程序 篇6

设计并制作一台出租车计价器。调试时采用10Hz方波信号模拟,每个方波代表10m。基本要求:

(1)不同情况具有不同的收费标准

白天 1元/公里 晚上 2元/ 公里 途中等待(30s)1元/30s

(2)数据输出(6位LED数码管显示)

单价输出2位 路途输出2位 总金额输出2位

(3)按键(3个)

启动计价开关 数据复位(清零)白天/晚上转换

3.4.1模块1:系统设计

(1)分析任务要求,写出系统整体设计思路

通过分析,需要实现四个主要的功能模块,分别为脉冲计数模块、定时器计时模块、按键的处理以及

数码管动态扫描等功能。

定时器计时模块主要完成途中等待(即没有脉冲来时)30秒的计时。在启动键按下后,定时器就不停的计时,只要有脉冲来就将计时的值清除为零。如果没有脉冲来,当计时超过30秒时,相应的总金额要

按照收费标准计价。

中断的管理:尽管中断有嵌套以及优先级的功能,但是由于定时器已经使用一个了中断资源,脉冲检测不宜再采用中断方式,而是采用查询方式。由于需要不停的要清除30秒的计时,因此,脉冲的计数不

采用定时器的计数方式。

启动键触发定时器开始工作,而定时器的运行可以作为脉冲计数的标志,只要定时器计时在运行,每来一个中断都应该计数。

主程序完成键盘的扫描和按键的处理,查询脉冲产生的中断,并完成脉冲的计数。每个脉冲代表10米,则当计数到100时表示1千米的距离,相应的总金额要按照收费标准计价

(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图

采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、复位电

路等。硬件电路原理图如图3-9所示。

图3-11 出租车计价器的硬件电路原理图

数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。在74HC244的7段码输出线上串联100欧姆电阻起限流作用。

独立式按键使用上提拉电路连接,在没有键按下时,输出高电平。P0口用于输出7段LED共阴极显示代码,P2口用于输出低电平有效的位选码。0~9的7段LED共阴极显示代码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。

(3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图

软件的任务要求包括定时器的设置、按键的扫描、按键的功能处理、脉冲的计数、路途等待超30秒的计

时以及总金额的计算等。

程序设计的思路:使用中断方式对定时器的溢出进行计数实现30秒的计时。主程序采用查询外部中断标志实现脉冲的计数,由于每个脉冲代表10m,因此,当脉冲计数超过100时,计价器按照收费标准计价。主程序在初始化变量和定时器参数设置之后,进入一个循环结构,循环扫描键盘、查询脉冲的中断、数码管的动态扫描等功能,当脉冲的中断标志被查询到,若路途等待时间未超30秒时,要及时将路途等待时间的值清除为零。主程序的流程图如图3-12所示。

图3-12 出租车计价器的主程序流程图

中断服务程序主要实现计时功能,当启动键按下之后,定时器开始工作,用一个变量对定时器溢出中断的次数进行计数,达到计时功能,该变量在每次脉冲到来时被清零(在主程序中清零),当脉冲长时间没有来,则当该变量计数超过30秒时,总金额按照途中等待计费标准进行计价。中断程序的流程图如图

3-13所示。

图3-13 出租车计价器的中断服务程序流程图

(4)设计系统软件调试方案、硬件调试方案及软硬件联合调试方案

软件调试方案:伟福软件中,在“文件新建文件”中,新建C语言源程序文件,编写相应的程序。在“文件新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。

在 “项目编译”菜单中将C源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以 “*.hex”和“*.bin” 后缀的目标文件。

硬件调试方案:在设计平台中,将单片机的P1.0-P1.2分别与3个独立式键盘通过插线连接起来,将P3.2与脉冲信号源连接起来。

在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台上,运行“MCU下载程序”,选择相应的flash 数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash中。

然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。3.4.2 程序设计

/*晶振:11.0592M T1-250微秒溢出中断一次;P3.2(int0)-中断100次,查询IE0置位,P1^0为启动键;P1^1为清除键;P1^2为白天/晚上的切换键 变量的定义: key_val: 返回按键的值 255-无键

T1_cnt: 定时器溢出数计数

cnt_30: 30秒钟的计时

cnt_distance: 计算路程

cnt_cost: 总金额

state_val: 状态:0-白天 1 夜晚

cost_val[3]: 收费标准:白天单价cost_val[0]=1元/公里;晚上单价cost_val[1]=2元/公里; 等待单价cost_val[2]=1元/30s

led_seg_code:数码管7段码 */ //-------------------#include “reg51.h” unsigned char data cnt_30,cnt_distance,cnt_cost;unsigned int data T1_cnt,D_cnt;unsigned char data key_val,key_val_old;unsigned char data state_val;char code cost_val[3]={1,2,1};char code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//led_seg_code[0-9]代表0-9 //-------延时-----------------void delay(unsigned int i)//延时 { while(--i);} //-------初始化变量------------------void init_variant()//初始化一些变量的内容 {unsigned char i;cnt_30=0;//30秒的计时 D_cnt=0;//脉冲的个数 cnt_distance=0;//距离的计数

cnt_cost=0;//保存总价格 } //-------扫描键盘-----------------unsigned char scan_key(){ unsigned char i,k;i=P1;if(i==0xff){ k=255;} //无键按下

else //有键按下

{ delay(10);//延时去抖动

if(i!=P1){k=255;} else { switch(i){ case 0xfe: k=0;break;//P1.0按下,启动键

case 0xfd: k=1;break;//P1.1按下,清除键

case 0xfb: k=2;break;//P1.2按下,切换键

} } } return k;} //-------数码管动态扫描-------------void led_show(){unsigned char i,k;

//-----显示单价----k=cost_val[state_val];i=k%10;//暂存个位 P0=led_seg_code[i];P2=0xbf;delay(10);i=k%100/10;P0=led_seg_code[i];P2=0x7f;delay(10);//-----显示距离------k=cnt_distance;i=k%10;//暂存个位 P0=led_seg_code[i];P2=0xf7;delay(10);i=k%100/10;P0=led_seg_code[i];P2=0xef;delay(10);//-----显示总价格-----------k=cnt_cost;i=k%10;//暂存个位 P0=led_seg_code[i];P2=0xfe;delay(10);i=k%100/10;P0=led_seg_code[i];P2=0xfd;delay(10);} //-------计时----------------void timer1()interrupt 3 //T1中断 { T1_cnt++;if(T1_cnt>3999)//如果计数>3999, 计时1s { T1_cnt=0;if(cnt_30<30)//没有超过30秒,继续计时

{cnt_30++;} else //超过30秒,途中等待计价

{cnt_30=0;cnt_cost=cnt_cost+cost_val[2];} } } //---------主程序----------------

main(){//初始化各变量 T1_cnt=0;state_val=0;key_val_old=255;init_variant();//初始化51的寄存器

TMOD=0x20;//用T1计时 8位自动装载定时模式,不用T0 TH1=0x19;//250微秒溢出一次;250=(256-x)*12/11.0592-> x= 230.4 TL1=0x19;EA=1;//开中断 ET1=1;

TR1=0;//定时器T0 TCON=0x01;//Int0中断取边沿触发模式 while(1){ key_val=scan_key();// 255;// if(key_val!=key_val_old){ key_val_old=key_val;if(key_val!=255){ switch(key_val){ case 0: //启动键

TR1=1;//启动计时,TR1=1为启动了的标志

break;case 1: //清除键

init_variant();//清除变量

TR1=0;//关闭定时器

break;case 2: //白天/黑夜的切换

if(state_val==0){state_val=1;} else {state_val=0;} break;} } } if(IE0==1&& TR1==1)//每来1个脉冲,中断一次

{ IE0=0;cnt_30=0;//30秒的计时清零

if(D_cnt<100)

{D_cnt++;} else //计数100次,每次10米,表示一公里

{D_cnt=0;cnt_distance=cnt_distance+1;

出租车计价器Multisim课程设计 篇7

1 出租车里程计价器的方案设计

设计的出租车计费系统具有以下功能: (a) 能够实现计费功能, 其计费标准为:按行驶路程收费, 步价为10.0元, 并且车在行驶3公里以内, 只收起步价。超过3公里后按照2元/公里收费。当行驶路程达到或超过9公里 (或车费达到20元) 后, 每公里加收50%的车费, 即车费将按照3.0元/公里.车暂停时 (当遇到红绿灯或顾客有事需要停车等待) , 则按时间计费, 每3分钟计费0.5元。 (b) 有预置功能:能够预置起步价、每公里收费、车行计费里程、计时收费。 (c) 实现模拟功能:能模拟汽车的行驶、暂停、停止状态。

系统总体设计原理框图如图1所示。等待判别模块模拟产生脉冲信号WCLK, 经过分频模块处理后产生标准时钟信号, 等待判别模块同时负责产生里程标志LCBZ1和LCBZ2, 等待标志DDBZ, 熄灯标志XDBZ和亮灯标志LDBZ等有关控制标志信号, 同时根据开始信号START和传输数据选择SEL等控制信号将有关计算结果输出。

2 出租车里程计价器的主要模块设计

2.1 分频器模块

分频器模块FPQ, 核心部分为产生1HZ的频率信号。将200HZ的外部时钟信号SCLK分频, 得到1HZ的基准时钟信号CLK1HZ, 供系统中的等待判别模块DDPB等系统模块工作使用。

2.2 等待判别模块

等待判别模块DDPB, 核心部分为产生等待标志信号DDBZ。根据模拟脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ, 判别出租车是否处于等待状态。当速度大于12KM/h, 及速度大于200m/min时, 出租车处于运行状态, 这时等待标志信号DDBZ=0;当速度小于12KM/h, 及速度小于200m/min时, 出租车处于等待状态, 这时等待标志信号DDBZ=1。

2.3 等待计费模块

等待计费模块DDJF受等待标志信号DDBZ、亮灯标志信号LDBZ和熄灯标志信号XDBZ的共同控制, 其目的在于实现等待费用操作, 根据亮灯标志LDBZ和熄灯标志XDBZ进行加法计费操作。

2.4 里程计时模块

如果里程标志信号LCBZ1=0, 说明没有超过3KM, 按起步价10元计费, 反之LCBZ1=1和LCBZ2=0时, 说明行驶里程超出3KM而未超出9KM时, 每行驶1KM应该按2元/KM计费一次, 如果LCBZ2=1, 说明行驶里程超出9KM, 则有每行驶1KM应该按3元/KM计费一次。

3顶层模块的建模与仿真

分频器模块FPQ、等待判别模块DDPB、等待计时模块DDJS、等待计费模块DDJF、里程计时模块LCJS和里程计费模块LCJF等按照其先后逻辑顺序连接起来, 组成一个有完整功能的出租车里程计价器。在顶层模块接口图种:SCLK脉冲信号经过分频后产生脉冲CLK1HZ, 供等待判别模块, 等待计费模块, 等待计时模块使用。在WCLK脉冲信号的输入和CLK1HZ的控制下来产生等待判别标志信号DDBZ, 一个非常关键的逻辑信号, 供里程计时、里程计费、等待计时和等待计费四个模块使用。SEL选择信号通过其四个不同的值0, 1, 2, 3控制着结果的不同输出。

顶层模块仿真波形如图2所示:在行驶里程数3公里以内时, 计费价格为起步价10元, 并在计费标志信号JFBZ为高电平时计费 (即每公里计费一次) 。当等待标志信号来到时, 亮灯标志信号LDBZ1变为高电平, 即等待时间超出10s, 此时里程计费停止不变, 开始等待计费, 由于熄灯标志信号LDBZ2为低电平, 即等待时间未超出1小时, 所以等待计费按20分/min计费。仿真波形与设定的时序有关, 当SCLK设为15时, 当WCLK设为10以下时, 仿真波形几乎全为里程计价, 反之, 仿真波形几乎全为等待计价, 只有设置为10时, 等待计价和里程计价都会出现。

4结束语

出租车里程计价器利用VHDL硬件描述语言进行编程设计, 在MAX+PLUS的开发环境下进行编译和仿真, 最后将其正确的软件程序下载至芯片中, 实现了计程、计价和显示行驶路程及所消费费用等功能。本设计采用VHDL硬件描述语言开发, 缩短了研发周期, 使其具有了更强的移植性, 更加利于产品的升级。

摘要:出租车计价器是一种专门的计量仪器安装在出租车, 便于乘客直观清楚的了解自己的消费状况。论文详细介绍了采用VHDL硬件描述语言进行编程设计的出租车里程计价器设计过程, 提供了设计方案、主要模块设计和顶层模块的建模仿真结果。Max+PlusII软件环境下的仿真结果表明, 所设计的出租车里程计价器可以实现预定功能, 具有一定的实用性。

关键词:出租车,计价器,VHDL,MAX+PLUSⅡ

参考文献

[1]张志伟.模数混合信号集成电路自动设计技术研究[J].陕西理工学院学报 (自然科学版) , 2013, 2 (94) :25-28.

[2]潘松, 黄继业.EDA技术实用教程[M].北京:科技出版社, 2010.

[3]徐向民.数字系统设计及VHDL实践[M].北京:机械工业出版社, 2007.

上一篇:全省财政与编制政务公开工作情况报告下一篇:“能力素质提升年”活动心得体会