基于单片机的出租车计价系统的设计.docx
- 文档编号:6767364
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:16
- 大小:406.09KB
基于单片机的出租车计价系统的设计.docx
《基于单片机的出租车计价系统的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的出租车计价系统的设计.docx(16页珍藏版)》请在冰点文库上搜索。
基于单片机的出租车计价系统的设计
基于单片机的出租车计价系统的设计
随着经济的高速发展,交通系统的完善出租车计价器的应用越来越广泛。
计价器计价准确与否,直接关系到司机和乘客的经济利益。
使用单片机实现出租车计价系统,是对单片机应用的深入学习。
本系统将会提高我们在C语言编写程序的能力有所提高,这里主要是以AT89C52单片机为核心控制器,单片机有着丰富的I/O端。
本文基于STC89C52单片机为系统的控制中心,利用传感器测量路程,设计了出租车计价器,具有自动计程、计价显示时间、调节起步价等功能。
对其进行了硬件设计,硬件设计包括复位电路,复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。
晶振电路、时钟电路,时钟电路作为系统的时钟源,具有较高的准确性。
按键电路,通过按键可以调整起步价,里程数。
通过按键模拟出租车的运行,暂停,停止。
显示电路,上电时LCD1602液晶显示屏显示最初的起步价,里程收费,当前时间。
然后采用C语言进行了软件设计,再通过软件设计接口芯片和参数的初始化按要求写入程序。
通过软硬件结合进行仿真,仿真结果表明此设计可以实现路程计价功能和价格调节、时钟显示功能。
关键词
出租车计价器;89C52单片机;液晶显示器;硬件设计;软件设计;仿真
0引言
随着科技和时代的进步,出租车在城市交通中发挥的作用越来越重要,可以说出租车行业的发展速度是迅速的,无论是从维护乘客以及司机的利益来说,还是从规范出租车行业的制度上来说,性能优异的出租车计价器对整个出租车行业的良性循环发展至关重要。
出租车行业是从1980年开始兴起的,属于新兴行业,重庆市起重机厂是中国第一家生产计价器企业。
在国内,最早的计价器最开始使用的是机械齿轮结构,但其实早期的计价器就是一个里程表,它仅仅只有计算里程功能。
在国内,机械齿轮结构是最早的计价器使用的结构,但其实早期的计价器其实就是一个里程表,它仅有计程功能。
仅仅能显示出租车行驶了的路程,不能准确的显示出更多的其他信息。
与此同时随着科技的发展,第二代计价器也随之诞生。
它为了实现半机械半电子化,通过将机械结构与手摇计算机两种方式相结合,它可以在实现计程的同时还可以计价。
在社会的发展大规模集成电路的推动下产生了全电子化的计价器,也就是第三代计价器。
通过以单片机为核心进行设计,将较少的硬件与软件编码结合不仅能到计价功能,同时还可以实现更多性能。
相对来说功能更强大。
它完全能够将出租车计程,计价,显示等基本功能一体化。
以单片机芯片为核心的出租车计价器,灵活性高,用较少的硬件和灵活性的软件编程互相配合就能容易的完成设计要求,相对来说功能较强大,能够通过软件编程来完成更多性能。
本设计以AT89C52单片机为核心,通过按键实现计·程模拟,完成了对出租车的多功能的设计,用LCD1602液晶显示屏来显示时间和金额数,不仅能达到基本的计价的目的,而且还可以灵活设置起步价来应对不同城市的不同需求;此设计为1公里内为设定的起步价,若实际驾驶里程超出1公里,超出1公里的部分进行累加。
1系统总体方案设计
1.1本课题研究的内容
该课题要求实现对出租车行驶里程的计费功能,并实时显示出来,方便乘客及时了解里程和费用的相关信息。
主要实现的功能
(1)无乘客时,计价器实时显示时间;
(2)要求计价器实时能够显示里程数以及金额数;
(3)起步公里数为1,可以根据不同城市的需求,灵活设置起步价;若实际里程数超出1公里,则超出1公里的部分进行累计;
(4)设置清零键,按下时计价器可以清除计价。
1.2方案选择
方案一:
采纳数字电子技术,根据555定时芯片组成多谐振荡器,或者通过外围的晶振电路将其作为时钟脉冲信号,之后时钟信号输出转化为等待信号、公里脉冲、计费脉冲等待信号,这些信号输出到计时计费译码器进行译码,最后的得到的数据通过数码管显示出来,该方案的流程框图如图1所示。
图1方案一总体结构框图
方案二:
通过EDA技术,将设计理论层次化,将需要解决的问题自上而下的分成几个模块,其中包含分频模块,信号输入模块、控制计时计程模块、译码器模块和动态扫描显示模块,它的系统设计框图如图2所示
图2方案二结构框图
方案三:
次课程设计主要是以AT89C51单片机为核心,该单片机有着丰富的I/O端口,不仅实现基本的里程计价功能的基础上还可以进行价格调节、时钟显示等功能。
图3方案三结构框图
方案总结:
经过每个方案之间优缺点的对比,明显可以看出方案三设计更简单,设计成本更低,所以本设计最终选用方案三。
方案三设计具体内容:
利用按键模拟行走键测距,实现对出租车计价功能完善,输出选取LGM12641图形点阵显示屏进行显示。
本课程设计的出租车计价器不仅仅可以实现最基本的计价功能,而且还可以根据行使的里程和每个城市的不同需求进行手动调节起步价。
经过单片机键盘上的按键来达到计价器开始、结束、复位等功能的实现。
基本步骤如下:
首先,程序初始化工作,然后等待键盘信号输入。
总共有三个按键控制:
设置键、上下车/+键、-/模拟行走键。
其功能如下:
设置键:
在显示时间的状态下:
按下此键进入设置界面;
在设置界面:
默认设置起步价,再次按下设置单价,再次按下返回时间界面。
上下车/+键:
在显示时间的状态下:
按下此键表示客人上车,进入计价界面;
在计价界面:
按下此键表示客人下车,返回时间界面;
在设置界面:
按下此键设置起步价和单价的加操作。
模拟行走键/-:
在设置界面:
按下此键设置起步价和单价的减操作;
时钟电路主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能。
里程计算是通过安装在车轮上的霍尔传感器检测到的信号,送到单片机经处理计算,送给显示单元,车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,单片机就控制将金额自动增加,其计算公式为:
当前单价×公里数=金额
1.3基于单片机出租车计价器的设计
基于单片机系统的总体设计
用按键模拟行走键测距,实现对出租车计价功能完善,输出选取LCD1602图形点阵显示屏进行显示。
本课程设计的出租车计价器不仅仅可以实现最基本的计价功能,而且还可以根据行使的里程和每个城市的不同需求进行手动调节起步价。
经过单片机键盘上的按键来达到计价器开始、结束、复位等功能的实现。
基本步骤如下:
首先,程序初始化工作,然后等待键盘信号输入。
整体系统包括按键模块、时钟显示模块、复位模块、C52单片机、液晶显示部分和霍尔传感器。
单片机的选型
本设计选用的单片机是AT89C52,是一种带4K字节闪烁可编程可擦除只读存储器,价格低廉而且灵活性高。
有着丰富的I/O端口,不仅实现基本的里程计价功能的基础上还可以进行价格调节、时钟显示等功能。
时钟芯片的选型
本设计选用DS1302片作为一个实时的时钟芯片,不仅仅提供年、月、日、小时、分、秒、等信息,而且还拥有像软件一样,可以自动调整的功能,它可以经过系统内部调整AM/PM的参数来决定时间格式(24小时或12小时)。
它一共有三十一格字节用来数据存储RAM。
就IO口的使用节省度来说,串行I/O通信方式比并行I/O通信方式节省。
DS1302的工作电压只要达到2.0V~5.5V就都可以正常工作,相对来说比较宽。
DS1302这种类型的时钟芯片通常功耗都比较低,当它处于工作状态的时候,电压一般达到2.0V,正常工作电流一般小于300nA。
DS1302芯片总共引脚数为8个,其引脚封装图如图4所示:
图4DS1302引脚封装图
Vcc1:
备用电源引脚。
Vcc2:
主电源引脚,正常情况下当Vcc2引脚电压低于Vcc1的时候,则通过Vcc1向其供电,当Vcc2引脚电压比Vcc1高出0.2v以上的时候,该芯片2则通过Vcc2向其供电。
X1,X2:
这两个引脚要连接一个晶振,其大小为32.768k,目的是向DS1302提供一个标准参数。
需要重点关注的是,这个晶振的引脚不是要加6Pf的电容,而是其负载电容要是6Pf。
若是这个晶振是有源晶振的话,那么需要接到X1引脚上,引脚X2处于悬空状态。
SCLK:
此引脚为输入引脚,SCLK可以被当成通信过程中的时钟信号,同时还有一个40k的下拉电阻在DS1302芯片这个引脚的内部。
I/O:
在应用中这个引脚具有读写数据的功能,同时该引脚也具有双向通信的功能。
同时还有一个40k的下拉电阻在DS1302芯片这个引脚的内部。
CE:
这是一个输入引脚。
当这个引脚处于高电平的状态,才能够读写DS1302,同时还有一个40k的下拉电阻在DS1302芯片这个引脚的内部。
GND:
接地。
显示芯片的选型
LCD1602是一种工业字符型液晶,能够同时显示16×2即32个字符。
原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可显示出图型。
具有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。
具有控制简单、成本较低和显示字母和数字方便等优点。
基于上述优点选择此芯片作为显示器。
主要技术参数和性能:
(1)显示容量:
16×2个字符。
(2)芯片工作电压:
4.5-5.5V。
(3)工作电流:
2.0mA(5.0V)。
(4)模块最佳的工作电压:
5.0V。
(5)字符尺寸:
2.95mm×4.35mm(宽×高)。
2系统的硬件设计
2.1单片机最小系统设计
单片机AT89C51是一种性能较高的CMOS8位的微处理器并且带有4K字节FLASH存储器的低电压,简称单片机。
此单片机可为大多数嵌入式系统提供灵活性高且性价比高的方案。
数据保留时间长。
AT89C52芯片引脚介绍
图5AT89C52引脚图
复位电路设计
所有单片机在启动的时候都需要经过复位这一过程的,主要目的是将系统各个部件以及CPU恢复到比较确定的初始状态,从这个初始状态下开始进行工作。
系统中各个软硬件都处于正常工作状态的情况下,振荡器也会处于稳定可靠的状态,如果要求CPU对系统进行复位并且做出响应,那么则需要在RST引脚上对它输入一个高电平同时还要求对它维持2个机器周期即24个振荡周期以上。
一般来说单片机系统有两种复位形式,手动复位和上电复位,此设计选择的是手动和上电复位。
其中复位电路图如6所示。
复位电路与单片机的REST引脚相连。
图6复位电路
晶振电路设计
时钟电路用来作为产生单片机的基本时钟信号。
不仅可以通过内部振荡器可以产生8051的时钟信号,外部电路也可以直接提供。
精确频率可以由给出负载电容值附近的调整来得出。
晶振取11.0592MHz可以得到19200波特率和9600波特率,因此选择12MHz可以精确到us级。
方便定时操作,其晶振电路图如图7所示
图7晶振电路
2.2时钟电路设计
DS1302芯片作为一个实时的时钟芯片,不仅仅提供年、月、日、小时、分、秒、等信息,而且还拥有像软件一样,可以自动调整的功能,它可以经过系统内部调整AM/PM的参数来决定时间格式(24小时或12小时)。
DS1302这种类型的时钟芯片通常功耗都比较低。
本设计选用DS1302时钟芯片,DS1302的时钟线与单片机P12相连接,复位线则与单片机的P10相连接,其中数据线与单片机的P11相连接。
DS1302中X1引脚和X2引脚外接一个32.768KHZ晶体,主电源与DS1302的VCC2引脚相连,备用电源与DS1302的VCC1引脚相连接,当单片机没有电流通过时,时钟芯片仍然可以正常工作,其中单片机与时钟电路图如图8所示。
图8单片机与时钟芯片连接图
2.3按键电路设计
在键盘电路的设计中,其中每一个按键都需要使用一根I/O口线,每一个按键电路彼此之间都是相对独立。
不受干扰,所使用的I/O(P30-P37)都有上拉电阻当按键按下时,该引脚端为低电平,当按键没有按下时,该引脚电平被拉高,其中I/O端口经过按键与地相连接,I/O口外部可以不用接上拉电阻,因为其内部自身携带了,总共有8个按键控制设置键、上下车/+键、-/模拟行走键。
图9按键电路
K1:
第一次按下开始计价,第二次按下停止计价,第三次按下计价数据清零,并返回时间显示页面。
K3:
暂停出租车(直流电机)的转动。
模拟出租车停车
K4:
启动出租车(直流电机)的转动。
模拟出租车启动
K5:
时间日期设置键。
K6:
里程单价和起步价的设置键。
K7:
在设置状态下,是增大键;在不设置的状态下按下显示当天的总价。
K8:
在设置状态下,是减小键;在显示当天总价的时候,按下使当天的总价清零。
2.4显示电路模块
1602液晶,是常用的显示器件,一共是16个管脚,其中有八个管脚是数据传输管脚,有三个管脚是数据命令使能端管脚,还有两组电源管脚,
其中一组电源管脚是给整个液晶进行供电的,还有一组电源是单纯的背景光电源,还剩下的最后一个管脚是对比度调节管脚,一般接上一个3K电阻再接地即可。
读状态:
令RS=L,RW=L,E=H输出:
D0~D7=状态字
读数据:
令RS=H,RW=H,E=H输出:
无
写指令:
令RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
D0~D7=数据
写数据:
令RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
8位排阻选用103欧。
图10单片机与显示电路连接图
3软件设计
3.1系统主程序
在主程序模块设计中,我们不单需要完成对各个接口芯片和参数的初始化、还需判断是否有乘客,以及出租车要根据不同城市生活水平而变化的起步价和单价的初始化等工作。
同时,我们要加入修改起步价和单价的程序在主程序模块中。
当有乘客上车之后,汽车开始运行产生行驶距离时,就会开始计价程序,同时感应器判断汽车的行驶距离是否已经超出一公里,若超出1公里,超出部分根据该城市每公里所需要的单价乘以里程数,再加上该城市的起步价,得出最终的需要支付的总金额;如果没有超出,就直接支付起步价,最终的金额数都会显示在显示屏上,程序流程如图11所示。
图11系统主程序流程图
3.2单价及起步价流程图
在设置界面:
在设置为起步价,再次按下为设置单价。
按下上下车(即+键)即可设置起步价和单价的加操作;按下模拟行走键(即-键)即可设置起步价和单价的减操作;单价及起步价的计算流程图如图12所示:
图12单价设置流程图
4仿真结果及分析
本实验主要使用Proteus软件进行仿真,Proteus软件和编译软件Keil联调的方式实现单片机系统的设计与仿真,用Proteus软件进行虚拟单片机实验,硬件投入少,实验过程中损耗小。
具有完善的电路仿真功能,支持通用外设模型、实时仿真、显示时间、没有乘客上车时,显示时间、日期。
在软件里写好各模块程序,在子程序调试,通过按键来改变起步价,显示屏显示总里程和总价格,结合仿真,显示实时数据。
图13为无乘客时,进行仿真,仿真结果显示可以显示实时时间,证明了可以实现无乘客时,计价器实时显示时间功能。
图13显示时间
当有乘客上车时,进行仿真,仿真结果显示可以显示实时里程和总价,同时还可以根据不同城市价格标准设置不同的起步价,标准起步价为6元,然后通过调节将其提升到了8元。
如图14、15所示。
证明了可以实现有乘客时可以实现标准起步价和调节起步价的功能。
图14设置起步a
图15设置起步b
图16为所示为显示里程和总价:
进行仿真,仿真结果显示行使的总路程、时间和总价,证明了可以实现超过起步公里数时进行路程、金额累加功能。
图16显示里程和总价
5结语
自从出租车计价器开始大规模在国内运行之后,其发展速度可谓是相当迅速,但是我国国内出租车使用的计价器大都相同,其操作运行繁琐不方便并且功能少,就目前而言世界上90%的出租车计价器都是中国台湾省生产的。
直到2020年国内出租车计价器生产的企业也不过区区上百家,这些企业主要分布在江苏以及珠江三角经济发达区域。
然而这些企业基本又都是一些中小型的企业,它们的研发技术水平创新能力都十分有限,与国际品牌厂家的竞争力不言而喻,但是这种计价器的需求基数又是庞大的,因为每一个商用出租车上都需要装有一个计价器,不然无法运作。
同时,我国社会发展形势较好,很多乡镇生活水平也逐渐上升,人们的出行方式也有了极大改善。
所以说出租车计价器的市场行情及未来发展趋势是无法估量的。
本课题设计的是基于单片机的出租车计价器系统的设计,通过各个模块之间的相互配合对路程的计数和对价格的计算进行研究设计开发和处理,并通过在keil软件进行后台程序的编写和使用proteus软件对硬件电路图进行仿真,并将仿真成功的程序烧录到焊接好的单片机面板子中去。
该系统主要选用的控制器为AT89C51单片机、DS1302时钟芯片、LCD液晶显示器以及按键模块,通过软硬件配合共同控制,完成出租车计价计里程过程。
本课题设计的出租车计价器系统的设计和仿真已经全部完成了,可以基本完成实验要求,能够达到理想中的效果,能够根据各个城市的不同需求设置起步价和单价,并通过LCD显示屏实时显示当前时间和所需支付的乘车费用。
除此之外,这种功能较多的出租车计价器电路设计相对十分简单、性能可靠、所需成本少在、实际生活中有很强的实用性等优势,后期再经过不断优化过的程序,未来可以达到一定的智能化水平。
通过本次毕业设计让我对单片机的功能和使用有了更深的认识,这是对我专业知识在实践中检验和提升。
本次课程设计收获颇多,学会了查找相关资料,进行数据分析,同时也提高了自己对相关知识的深入了解和使用。
让自己独立思考解决问题的能力不断得到提高。
同时,在本次设计中我存在不足的地方还有较多需要改善,本设计在路程计数上采用的是按键的加减,该做法在实用性方面欠佳。
如果采用霍尔测距会使设计更加完善。
在编写程序时,一直显示有误,经过多次改写仿真,最后终于完成。
都说实践是检验真理的唯一标准,只有在实际操作中不断的去发现问题,面对问题,才能够解决问题,在以后的学习生活中,我将会关注一些新技术新产品,并且不断学习,挑战自我。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 出租车 计价 系统 设计