ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:1MB ,
资源ID:1873420      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1873420.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于C语言的出租车计价器程序设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于C语言的出租车计价器程序设计.docx

1、基于C语言的出租车计价器程序设计目 录1 前言 32 系统设计方案 42.1 系统的设计需求 42.2 系统的工作原理 43 系统硬件设计 53.1 单片机介绍 73.2 硬件组成 84 系统软件设计 145 仿真调试 166 结 论 177 参考文献 188 心得体会及致谢 20附录A 设计总图 24附录B 源程序 251 前言随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注1。相对于公共汽车拥挤与缓慢以及私家车高昂的费用,出租车无疑是一种低价高质的出行交通工具。近年来越来越多的人为了出行方便舒适愿意选择使用出租车,出租车行业得以快速发展2。出租车计价器是出

2、租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器的技术在不断进步和提高3。最初的计价器计费模式较为单一,不便于在不同的运营环境下选取不同的计费模式。考虑到出租车行驶可能会出现从市区行驶到郊区或者行驶到偏僻地区,郊区或偏僻区打车的人少的现象,司机空车行驶返回成本较高,这时需要乘客为空车返回的路程承担一定的费用,这就需要区分单程/往返不同计价模式。“单程”模式是指目的地在郊区或者比较偏僻的地方,到达目的地后打车的人比较少,需要乘客乘客承担一定的空车返回的费用;“往返”模式是指目的地在市区,到达目的地后还会有乘客乘车返回,这种情况下司机不需要空车返回,乘客不需要承担回程费用。考虑到夜晚

3、时出租车的灯光需要消耗能源以及司机夜间服务比白天较为辛苦,所以一般夜晚出租车的价格需要比白天高一点。早期的出租车计价器均采用模拟电路和数字电路设计。计价器整体电路的规模较大,需要器件多,容易出故障,难调试。和模拟电路和数字电路设计相比而言,基于单片机进行设计的计价器,用较少的硬件和适当的软件相互配合就可以很容易的实现设计需求,硬件电路简单,稳定性好,灵活性强4,通过软件编程就可以实现计费模式的切换。2 系统设计方案2.1 系统的设计需求1、用数码管实时显示里程数及金额数。2、出租车计价器计价器具有多种计费模式,白天/夜晚模式及单程/往返模式。3、设计出租车计价器白天模式下起步公里数为3Km,价

4、格为8元;若实际里程大于3Km,大于3Km的部分单程价格为2.4元/Km,返价格为1.6元/Km。4、设计出租车计价器夜晚模式下起步公里数为3Km,价格为10元;若实际里程大于3Km,大于3Km的部分单程价格为3元/Km,返价格为2元/Km。5、 具有工作模式指示灯,指示当前工作模式状态。出租车价目表如表1所示:模式起步里程(Km)起步价(元)单程(元/Km)返程(元/Km)白天382.41.6夜晚310322.2 系统的工作原理出租车计价是根据出租车所行驶的路程以及乘客乘车的方式综合计算的。出租车行驶路程在起步里程内按照起步价收费,超过起步里程时超出起步里程的路程按照相应模式下的单价收取附加

5、费用,最后收取起步价及附加费用的总和。出租车的行驶路程可以通过车轮的周长乘以车轮旋转圈数得到。然后经过系统对相关数据的计算处理得出总的路程及计价金额,最后再通过显示电路将相关信息显示出来。本设计采用AT89C51单片机作为系统核心处理器,以A44E霍尔传感器作为里程测量仪,设计控制按键以便选择相关的计费模式,并采用74HC138译码器进行地址译码为8位8段数码管提供片选码,采用8段数码显示出租车行驶的里程及应付总金额,通过LED指示灯指示出租车当前工作状态,便于乘客监督司机。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性4,不仅能实现基本的计价功能,而且能在很大程度上扩展功能,方

6、便以后对系统进行升级。系统设计框图如图1所示:图1 系统设计框图里程测量是通过安装在车轮上的霍尔传感器A44E检测到的信号5,送到单片机,经过处理输送到显示电路。 车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数6。P3.4引脚作为信号的输入端,内部采用定时/计数器0计数7,通过计算接收到的脉冲个数,计算出当前所行驶的路程。根据不同的收费模式,选择相应的起步价、单价等收费标准进行计算得出乘客应付总金额。假设出租车的车轮的周长是1m,那么出租车车轮旋转1000转,也就是行驶1Km(实际应用时以车轮实际周长计算,这里为了仿真方便假设车轮周长为1m)。通过对定时/计数器0的TL0

7、和TH0的初值设置使得定时/计数器计数一定数量的脉冲时计数器溢出产生中断,在中断服务程序中完成里程计算。本设计为了仿真方便做如下设置TMOD=0x06,TL0=255 ,TH0=255;即单片机定时/计数器0工作于工作方式2,8位自动重装模式,作计数器使用,单片机收到一次脉冲触发一次中断,里程增加0.1Km。通过按键能够实现启动、停止/结算以及选择不同的计费模式。显示电路使用8位LED数码管来显示,左边4位显示行车里程,小数点后面一位为百米位,右边4为显示应付金额,小数点后面一位为角位。由于现实生活中一角使用的比较少,而五角钱使用的相对较多,为了司机与乘客之间交易方便,小数点后面的角位数字小于

8、5的一律按5计算,大于5的一律向元位上进1。由于8位数码管静态显示需要许多I/O端口,和静态显示相比动态显示仅需要少量I/O端口就可以实现,所以这里采用动态显示方式。使用74HC138译码器对单片机输出的3位片选码进行译码并输送到8段LED片选端实现对8位LED的片选。3 系统硬件设计设计电路时,考虑到用霍尔传感器价格昂贵,且不便于试验检测仿真,在设计中采用一个模拟开关来代替。模拟开关一端接在P3.4引脚,另一端接地,通过来回高低电平的变化,每按一次,对应的里程数加0.1Km。通过程序计算出里程和金额的信息,再加上驱动电路的设计,就可以在数码管上分别显示总金额和总里程。在显示方面,可以用液晶显

9、示,也可以用数码管进行显示。由于液晶显示在距离一米多远以外就不怎么能看清楚8,而数码管能清晰的显示、经济适用并且在这次设计中只需要显示里程和金额信息,所以本设计采用数码管进行显示。这样既节约了成本,又可以达到显示的目的。为了减少硬件的复杂度,设计中采用了动态显示方式。另外设计LED指示灯来实时指示各项状态,如出租车有客/待运状态,白天/夜晚状态,单程/往返状态,便于乘客监督司机作弊。设计中设计了控制按键,能够很好的对出租车计价器控制,如启动/停止按键,白天/夜晚按键,单程/往返按键,清零按键等。3.1 单片机介绍AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理

10、器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器9。3.2.1 AT89C51的特点 AT89C51具有以下几个特点:AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;全静态工作:0Hz24MHz;三级程序存储器加密;数据保留时间:10年;片内有4k字节在线可重复编程快擦写程序存储器;1288位内部RAM;32位双向输入输出线;五个中断源,两级中断优先级;两个十六位定

11、时器/计数器;一个全双工的异步串行口;间歇和掉电两种工作方式。3.2.2 AT89C51引脚功能AT89C51单片机为40引脚芯片,其实物图与引脚图如图所示: 图2 AT89C51实物与引脚图.口线:P0、P1、P2、P3共四个八位口。P0口是三态双向口,通称数据总线口,只有该口能直接用于对外部存储器的读/写操作。P0口也用以输出外部存储器的低8位地址。由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。P1口是一个内部提供上拉电阻的8位专门供用户使用的I/O口,是准双向口。P2口是系统扩展时作高8位地址线用。不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口

12、也是准双向口。P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。作为第一功能使用时操作同P1口。P3口的第二功能如表2所示:端口引脚各个功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INT0(外部中断0请求输入端,低电平有效)P3.3INT1(外部中断1请求输入端,低电平有效)P3.4T0(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器1计数脉冲输入端)P3.6WR(外部数据存储器写选通信输出端,低电平有效)P3.7RD(外部数据存储器读选通信号输出端,低电平有效)控制口线:PSEN(片外选取控制)、ALE(地址锁存控制)、E

13、A(片外存储器选择)、RESET(复位控制);电源:VCC:供电电压。GND:接地3.2.3 设计中使用的管脚VCC:接+5V电源。GND:接地。时钟引脚:XTAL1和XTAL2两端接晶振和30PF的电容,构成时钟电路。RST:复位信号输入端,高电平有效。在此引脚加两个机器周期的高电平时,就可以完成复位操作。P1.0:接启动/停止按键。P1.1:接白天/夜晚按键。P1.2:接单程/往返按键。P1.3:接清零键。P0口接数码管段选端,P2口接驱动芯片。P3.4(T0):接模拟开关按键,替代了出租车计价器中的霍尔传感器。3.2 硬件组成硬件组成主要包括:时钟模块、复位模块、按键及指示模块、里程测量

14、模块、显示驱动模块、显示模块。3.2.1 时钟模块单片机工作是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作10,为了保证系统内各部分稳定工作,系统需要一个稳定的时钟信号。时钟电路产生振荡脉冲,经过二分频之后,为单片机提供时钟脉冲信号。振荡频率取决于石英晶体的振荡频率,频率范围可取1.2MHz12MHz。C1、C2具有频率微调和稳定作用,电容值可取530pF。单片机运行速度取决于晶体振荡频率,晶体振荡频率越高,系统的时钟频率越高,单片机运行速度越快。本设计中使用的时钟电路,由两个约30PF的电容和12MHZ晶体振荡器组成,将晶体跨接在XTAL1和XTAL2两端。

15、在整个系统中为系统各个部分提供基准频率信号,以防因其工作频率不稳定而影响相关设备工作的稳定性,晶振可以在电路中产生振荡电流,发出时钟信号。时钟模块的电路图如图所示。图3 单片机时钟电路图3.2.2 复位模块单片机在启动时需要进行复位操作,使系统处于初始状态,并从这个状态开始工作。单片机的复位是由外部的复位电路实现的, 复位电路通常有两种复位模式,一是采用上电自动复位,二是按键手动复位11。上电自动复位是通过复位电路的电容充电来实现的。按键手动复位有电平方式和脉冲方式两种。复位信号是高电平有效,持续24个振荡脉冲周期(即二个机器周期)以上,即可完成复位操作。本次设计中采用手动复位的电平复位。图4 单片机复位电路 3.2.3按键及指示模块本设计中设有按键控制电路及LED指示部分,通过按键可以控制启动/停止计价以及根据乘客使用出租车情况选择不同的计费模式。LED指示模块可以实时的指示当前出租车所采用的计价模式状态,可以让乘客一目了然,监督司机,防止司机作弊。按键控制电路中,单片机的P1.0引脚接启动/停止按键,通过软件编程,当按下按键计数器

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

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