出租汽车里程计价表Word格式文档下载.docx
- 文档编号:18849892
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:24
- 大小:294.05KB
出租汽车里程计价表Word格式文档下载.docx
《出租汽车里程计价表Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《出租汽车里程计价表Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
2020-1-6~11
设计、仿真实验
5
2020-1-12~13
写说明书,小组讨论
6
2020-1-14
答辩
指导教师
苏泽光
日期:
2020年12月日
引言1
1系统设计2
1.1设计内容2
1.2设计目的2
13设计要求2
1.4设计思路2
1.5设计框图2
1.6设计所需的元件3
2.工作原理3
2.1总体构想3
2.2AT89S51单片机及其引脚说明3
2.3AT24C02引脚图及其引脚功能、掉电储备单元设计5
2.4里程运算、计价单元的设计6
2.5按键单元的设计8
2.6语音功能的设计8
3.系统主程序设计8
3.2定时中断服务程序设计9
3.3里程计数中断服务程序设计9
3.4中途等待中断服务程序设计9
3.5显示子程序服务程序设计9
3.6键盘服务程序设计9
4.系统测试11
4.1测试使用的仪器或软件11
4.2出租汽车里程计价表VHDL程序11
4.2.1模块设计11
4.2.2VHDL程序设计11
4.3出租汽车里程计价表模块原理图符号14
4.4程序仿真图15
结论17
参考文献18
心得体会19
附录1要紧元器件清单20
附录2电路原理图及印制板图21
摘要
本设计阐述了以多数地区的出租车计价器为例,采纳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
P1.7
SCK〔用于ISP编程〕
P2口一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动〔吸取或输出电流〕4个TTL逻辑门电路。
在访问外部程序储备器或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门输出高电压,这种状态为『关』。
如此两次电压变换,使霍耳开关完成了一次开关动作。
其集成霍耳开关外形及接线如以下图:
图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:
--计价使能信号
stop:
--等待信号
fin:
--公里脉冲信号
cha3,cha2,cha1,cha0:
outstd_logic_vector(3downto0);
--费用数据
km1,km0:
--公里数据
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:
--公里计数器
signalm1:
std_logic_vector(2downto0);
--分的十位计数器
signalm0:
--分的个位计数器
signalen1,en0,f:
--使能信号
begin
feipin:
process(clk_240,start)
ifclk_240'
eventandclk_240='
1'
then
ifstart='
0'
thenq_15<
=0;
q_16<
f_15<
='
;
f_16<
f_1<
f<
else
ifq_15=15thenq_15<
--此I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租汽车 里程 计价
![提示](https://static.bdocx.com/images/bang_tan.gif)