出租汽车里程计价表.docx

上传人:b****8 文档编号:9311896 上传时间:2023-02-04 格式:DOCX 页数:27 大小:293.17KB
下载 相关 举报
出租汽车里程计价表.docx_第1页
第1页 / 共27页
出租汽车里程计价表.docx_第2页
第2页 / 共27页
出租汽车里程计价表.docx_第3页
第3页 / 共27页
出租汽车里程计价表.docx_第4页
第4页 / 共27页
出租汽车里程计价表.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

出租汽车里程计价表.docx

《出租汽车里程计价表.docx》由会员分享,可在线阅读,更多相关《出租汽车里程计价表.docx(27页珍藏版)》请在冰豆网上搜索。

出租汽车里程计价表.docx

出租汽车里程计价表

电子技术课程设计任务书

1.课程设计的内容和要求(包括原始数据、技术要求、工作要求等):

出租车自动计费器设计

(1)设计一个出租车自动计费器,具有行车里程计费,等候时间计费及起价等三部分。

用四位数码管显示总金额,最大值为99.99元。

(2)行车里程单价(0.##元/公里)、等候时间单价(0.##元/10分钟)、起价(#.##元)均能通过数码BCD管拨盘输入。

(3)在车辆启动与停止时发出音响信号,以提醒顾客注意。

(4)采用外部直流电源供电。

(5)***联接微型打印机打印收据接口电路。

电子技术课程设计任务书

2.对课程设计成果的要求〔包括图表、实物等硬件要求〕:

设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。

要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件选择要有计算依据。

3.主要参考文献:

[1]谢自美。

电子线路设计、实验、测试[M]华中理工大学,2001

[2]彭介华.电子技术课程设计指导[M].北京:

高等教育出版社,1997

[3]毕满清.电子技术实验与课程设计[M].北京:

机械工业出版社,1995

[4]陈明义.电工电子技术课程设计指导[M].长沙:

中南大学出版社,2002

[5]陈永甫.新编555集成电路应用800例[M].北京:

电子工业出版社2000

4.课程设计工作进度计划:

序号

起止日期

工作内容

1

2011-1-3

布置任务,教师讲解设计方法及要求

2

2011-1-4

学生查找阅读资料,并确定方案

3

2011-1-5

学生设计小组会议,讨论方案

4

2011-1-6~11

设计、仿真实验

5

2010-1-12~13

写说明书,小组讨论

6

2010-1-14

答辩

指导教师

苏泽光

日期:

2010年12月日

2.工作原理3

摘要

本设计阐述了以多数地区的出租车计价器为例,采用VHDL硬件描述语言编写主程序并利用EDA技术仿真设计的出租车计费器,使其具有计量功能、漏电保护功能、语音功能等。

本设计是以单片机AT89C51为核心,以8279、7407,75451等智能芯片为外设的出租车计价器的微机系统设计。

给出了硬件电路图及主程序流程图,阐述了软硬件设计过程中关键技术的处理。

关键词:

出租车计价器,单片机AT89S51,VHDL,EDA

Thisdesignexpatiatedinmostareasofthetaxidevicesasanexample,theauthorsVHDLVHDLwritemain-levelprogramsandusingEDAtechnologysimulationdesigntaxipiece,makeitshavemetering,leakageprotectionfunction,thespeechfunctionetc.Thisdesignbasedonsingle-chipmicrocomputerAT89C51asthecore,with75451etc,8279,7407intelligentchipsforperipheraltaximeterofmicrocomputersystemdesign.Italsopresentsthehardwarecircuitdiagramandmainprogramflowchart,elaboratedthehardwareandsoftwaredesignprocessofkeytechnologiesoftheprocessing.

Keywords:

taximeter,microcontroller,VHDL,EDAAT89S51

 

引言

凡是坐过出租车的人都知道,只要出租车一开动,随着行驶里程的增加,都会看到出租车前面的计价器里程数字显示的读数从零开始逐渐增大,而当行驶到某一数值(如3km)时计费数字显示开始从起步价(如8元)增加。

到达目的地时,便可以按计价器显示的数字收费。

随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。

于是,出租车行业以低价高质的服务给人们带来了出行的享受。

但是总存在着买卖纠纷困扰着行业的发展。

而在出租车行业中解决这一矛盾的最好方法就是改良计价器。

用更加精良的计价器来为乘客提供更加方便快捷的服务。

汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。

它关系着交易双方的利益。

具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。

因此,汽车计价器的研究也是十分有一个应用价值的。

电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。

为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。

针对计费模式的切换,通过软件编程就可以轻易而举的实现。

避免了机械开关带来的不稳定因素。

现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。

而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。

 

1系统设计

1.1设计内容

(1)设计秒信号、0.1分信号脉冲产生器。

(2)选用十进制系数乘法器。

(3)设计四级BCD码计数、译码和显示器。

(4)选用产生行驶里程信号的干簧继电器作为脉冲产生电路。

1.2设计目的

(1)掌握出租汽车里程计价表的设计、组装与调试方法。

(2)掌握同步十进制系数乘法计数芯片74167的工作原理。

(3)进一步加深对计数、寄存器、译码及显示电路的理解。

1.3设计要求

(1)根据任务,设计整机逻辑电路,画出详细框图和总原理图。

(2)选用中小规模集成器件,实现所选定的电路。

提出器材清单。

(3)在逻辑箱上接插电路,并进行单元电路调试和整机调试。

(4)检查设计结果。

1.4设计思路

本次设计以51单片机作为控制器,用霍尔传感器集成芯片44E检测并输出脉冲,送到单片机,由单片机完成计程数及车费的换算及显示。

输出采用7段数码显示管。

通过人工按键的方式进行情况的切换。

1.5设计框图

 

图1-1程序设计框图

1.6设计所需的元件

AT89S51单片机一个,喇叭一个,七段显示器4个,M24C02DW6芯片一个,RESPACK3原件四个,74HC164芯片四个,行程开关SW-PB若干个,con2,3,4插针各一个,电源若干,接地若干,电阻若干,无极性电容若干个。

 

2.工作原理

2.1总体构想

它由以下几个部件组成:

单片机AT89S51、总金额及单价显示部件、键盘控制部件,AT24C02掉电存储控制、里程计算单元、串中显示驱动电路等。

利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。

不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。

具体电路参见“总体电路图”。

 

图2-1单片机控制方案

2.2AT89S51单片机及其引脚说明

AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,具有很高性价比。

AT89S51是一个有40个引脚的芯片,引脚配置如下图所示。

 

图2-2AT89S51引脚配置

 

AT89S51芯片的40个引脚功能为:

VCC电源电压。

GND接地。

RST复位输入。

当RST变为高电平并保持2个机器周期时,将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISKRTO位缺省为RESET输出高电平打开状态。

XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2来自反向振荡放大器的输出。

P0口一组8位漏极开路型双向I/O口。

也即地址/数据总线复用口。

作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

Flash编程和程序校验期间,P1接收低8位地址。

P1口部分端口引脚及功能如表1所示。

表1P1口特殊功能

P1口引脚

特殊功能

P1.5

MOSI(用于ISP编程)

P1.6

MOSI(用于ISP编程)

P1.7

SCK(用于ISP编程)

P2口一个带内部上拉电阻的8位双向I/O口。

P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。

Flash编程和程序校验期间,P2亦接收低8位地址。

P3口一个带内部上拉电阻的8位双向I/O口。

P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。

作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示。

P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号。

表2P3口特殊功能

P3口引脚

特殊功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

T0(定时器0外部输入)

P3.5

T1(定时器1外部输入)

P3.6

(外部数据存储器写选通)

P3.7

(外部数据存储器读选通)

PSEN程序储存允许输出是外部程序存储器的读先通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN/有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效的PSEN/信号。

EA/VPP外部访问允许。

欲使CPU仅访问外部程序存储器,EA端必须保持低电平,需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

Flash存储器编程时,该引脚加上+12V的编程电压VPP。

2.3AT24C02引脚图及其引脚功能

AT24C02芯片引脚配置如下图所示:

图2-3AT24C02引脚配置图

AT24C02芯片DIP封装,共有8个引脚,下表是其引脚功能表:

引脚名

功能

A0~A2

地址引脚

SDA/SCL

连续数据信号/连续时钟信号

WP

写保护引脚

VCC/GND

电源端/接地端

WP接VSS时,禁止写入高位地址,WP接VDD时,允许写入任何地址;

2.3.1AT24C02掉电存储单元的设计

掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。

AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

其电路如下图:

图2-4掉电存储电路原理图

图中R8、R9是上拉电阻,其作用是减少M24C02的静态功耗,由于M24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。

2.4里程计算、计价单元的设计

里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。

其原理如下:

 

图2-5传感器测距示意图

由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。

(a)(b)

图2-6集成开关型霍耳传感器原理图

A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成,如上图所示。

(1)、

(2)、(3)代表集成霍耳开关的三个引出端点。

在输入端输入电压VCC,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。

当施加的磁场达到『工作点』(即BOP)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为『开』。

当施加的磁场达到『释放点』(即BrP)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为『关』。

这样两次电压变换,使霍耳开关完成了一次开关动作。

其集成霍耳开关外形及接线如下图:

(a)(b)

图2-7集成霍耳开关外形及接线

 

我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的加增加,其计算公式:

当前单价×公里数=金额。

2.5按键单元的设计

电路共采用了四个按键,S1、S2、S3、S4,其功能分别是:

S1分屏显示切换按键,S2功能设定按键,S3『+』/白天晚上切换按键,S4『-』/中途等待开关。

2.6语音功能的设计

语音功能主要用于语音提示:

为降低计价器成本,节省单片机I/O资源,语音功能的实现没有采用专用语音芯片,而是由4个权电阻构成。

如下图所示:

图2-8语音功能电路

语音信号经A/D采集处理后压缩成4位,存储在程序存储器中,由软件使用。

程序存储器中可存储70K的语音数据,共60个汉语词汇。

 

3.系统的软件设计

本系统的软件设计主要可分为主程序模块、定时计数中断程序、里程计数中断服务程序、中途等待中断服务程序、显示子程序服务程序、键盘服务程序六大模块。

下面对各部分模块作介绍。

3.1系统主程序设计

在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。

另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。

然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。

其程序流程如主程序流程图所示。

当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。

若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。

当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。

3.2定时中断服务程序设计

在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。

其程序流程如定时中断服务程序图所示。

3.3里程计数中断服务程序设计

每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。

在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。

其程序流程如定时中断服务程序图所示。

3.4中途等待中断服务程序设计

当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。

当中途等待结束的时候,也就自动切换到正常的计价。

3.5显示子程序服务程序设计

由于是分屏显示数据,所以就要用到2个显示子程序,分别是:

时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)。

3.6键盘服务程序设计

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。

其程序流程如图所示.

图3-1程序设计流程图

4.系统测试

4.1测试使用的仪器或软件

由于目前制作上的困难,该系统只作计算机仿真。

仿真时我们采用VHDL对系统进行仿真。

4.2出租汽车里程计价表VHDL程序

4.2.1模块设计

(1)秒分频模块

秒分频模块对频率为240Hz的输入脉冲进行分频,得到16Hz、15Hz、1Hz三种频率。

(2)控制模块

控制模块是系统的核心部分,对计价器的状态进行控制。

(3)计量模块

计量模块完成计价、计时、计程功能。

计价部分:

当出租车的起价为5元,当里程小于3km时,按起价计算;当里程大于3km时,按1.3元/km计算。

等待时间累计超过2min时,按1.5元/min计算。

计费数据送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示。

计时部分:

计算乘客的等待累计时间。

计时器的量程为59min,满量程自动归零。

计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管显示。

计程部分:

计算乘客所行驶的公里数。

计程器的量程为99km,满量程自动归零。

计程数据送入显示译码模块进行译码,最后送至以公里为单位对应的数码管显示。

(4)译码显示模块

完成计价、计时、计程数据显示。

4.2.2VHDL程序设计

--文件名:

taxi.hd。

--功能:

出租汽车里程计价表。

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

entitytaxiis

port(clk_240:

instd_logic;--频率为240Hz的时钟

start:

instd_logic;--计价使能信号

stop:

instd_logic;--等待信号

fin:

instd_logic;--公里脉冲信号

cha3,cha2,cha1,cha0:

outstd_logic_vector(3downto0);

--费用数据

km1,km0:

outstd_logic_vector(3downto0);--公里数据

min1,min0:

outstd_logic_vector(3downto0));--等待时间

endtaxi;

architecturebehavoftaxiis

signalf_15,f_16,f_1:

std_logic;--频率为15Hz,16Hz,1Hz的信号

signalq_15:

integerrange0to15;--分频器

signalq_16:

integerrange0to14;--分频器

signalq_1:

integerrange0to239;--分频器

signalw:

integerrange0to59;--秒计数器

signalc3,c2,c1,c0:

std_logic_vector(3downto0);--制费用计数器

signalk1,k0:

std_logic_vector(3downto0);--公里计数器

signalm1:

std_logic_vector(2downto0);--分的十位计数器

signalm0:

std_logic_vector(3downto0);--分的个位计数器

signalen1,en0,f:

std_logic;--使能信号

begin

feipin:

process(clk_240,start)

begin

ifclk_240'eventandclk_240='1'then

ifstart='0'thenq_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';

else

ifq_15=15thenq_15<=0;f_15<='1';--此IF语句得到频率为15Hz的信号

elseq_15<=q_15+1;f_15<='0';

endif;

ifq_16=14thenq_16<=0;f_16<='1';--此IF语句得到频率为16Hz的信号

elseq_16<=q_16+1;f_16<='0';

endif;

ifq_1=239thenq_1<=0;f_1<='1';--此IF语句得到频率为1Hz的信号

elseq_1<=q_1+1;f_1<='0';

endif;

ifen1='1'thenf<=f_15;--此IF语句得到计费脉冲f

elsifen0='1'thenf<=f_16;

elsef<='0';

endif;

endif;

endif;

endprocess;

process(f_1)

begin

iff_1'eventandf_1='1'then

ifstart='0'then

w<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1