单片机出租车计价器设计Word文档下载推荐.docx
《单片机出租车计价器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机出租车计价器设计Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
3.显示及开关启动电路设计
4.程序流程图设计及程序清单编写
技术参数:
1.白天:
元/公里,晚上2元/公里
2.工作电源12V
设计要求:
1、分析系统功能,选择合适的单片机及传感器,里程检测电路设计等;
2、应用专业绘图软件绘制硬件电路图和软件流程图;
3、按规定格式,撰写、打印设计说明书一份,其中程序开发要有详细的软件设计说明,详细阐述系统的工作过程,字数应在4000字以上。
进度计划
第1天查阅收集资料
第2天总体设计方案的确定
第3-4天CPU最小系统设计
第5天测距传感器选择及接口电路设计
第6天显示及开关启动电路设计
第7天程序流程图设计
第8天软件编写与调试
第9天设计说明书完成
第10天答辩
指导教师评语及成绩
平时:
论文质量:
答辩:
总成绩:
指导教师签字:
年月日
注:
成绩:
平时20%论文质量60%答辩20%以百分制计算
摘要
出租车计价器的硬件设计以AT89S51单片机为核心控制元件,利用灵敏的霍尔开关型器件A44E霍尔传感器测距,采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,时钟电路采用12MHz的晶振输出,在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。
通过按键模拟出租车的运行,暂停,停止。
在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。
在这里主要是以AT89S52单片机为核心控制器,P0口接1602液晶显示模块,P1口接按键的,通过按键输入。
关键词:
AT89S51,霍尔传感器,AT24C02,;
1602液晶
第1章绪论
出租车计价器概况
出租车行业在我国是八十年代初兴起的一项新兴行业,随着出租车行业的发展,出租车已经是城市交通的重要组成部分,出租车计费器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计费器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有一个应用价值的。
要将出租车计价系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节单价以及计价方式。
因此,研究出租车计价器及扩大其应用,有着非常现实的意义。
多年来国内普遍使用的计价器只具备单一的计量功能。
目前全世界的计价器中有90%为台湾所生产。
现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。
我国第一家生产计价器的是重庆市起重机厂,最早的计价器全部采用机械齿轮构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。
随着科学技术的发展,产生了第二代计价器。
它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。
此时它在计程的同时还可完成计价的工作。
大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。
它的功能也在不断完善。
出租汽车计价器是一种专用的计量仪器,它安装在出租汽车上,能连续累加,并指示出行程中任一时刻乘客应付费用的总数,其金额值是计程和计时时间的函数。
出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好。
随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能。
例如:
(1)LED显示功能,数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;
(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;
(3)存储功能,可存储多项营运数据,便于查询。
新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年。
本文研究内容
所设计的出租车计价系统,要求可以设置起步价,(如5公里内10元),以后开始按每公里增加费用,白天每公里的单价元,晚上每公里的单价2元。
在出租车运营过程中,当遇到堵车等情况而导致出租车处于等待状态,则每等到五分钟(时速低于每小时5公里)费用加1元。
当总计费金额达到30元后,每公里将加收50%的空驶费,遇有特殊情况停车时,可设为不计费,以保证乘客权益。
该电路系统能够模拟实际出租汽车的启动、停止、暂停、空车等状态,可以显示计费金额、行驶公里数、计费开始时间等参数,而且各关键参数可以进行调整,以适应在实际应用中起步价、每公里价格和计费方式等参数的变化。
本课题研究的主要内容是设计出租车计价器的硬件电路。
设计的整体电路框图如图2-4所示,整个系统由单片机AT89S51控制电路、A44E霍尔传感器电路、AT24C02存储电路、8563时钟电路、按键键盘电路、液晶显示电路及电源电路组成。
单片机采集并判断空车灯信号及路程检测传感器信号,当出租车启动时,单片机检测到霍尔传感器的脉冲信号并进行里程计算。
当无乘客时,单片机调用实时时间芯片8563程序和8255串口显示驱动程序;
当空车灯掰下乘客上车时,通过8563获取时间信息分辨白天/晚上,然后调用AT24C02程序获取白天/晚上的单价及起始价,便开始计价并显示时间、里程和金额等信息;
当空车灯打上乘客下车时,打印好票据,单片机将营运数据信息存储到AT24C02中,等待出租车再次启动后单次金额与里程等信息清零复位,就此完成一次计价。
本设计由硬件设计和软件设计两部分组成。
系统的硬件主要由以下几个部件组成:
主机电路、掉电保护模块、显示模块、传感器信号采集模块、键控模块、电源模块。
其方框原理图如图所示。
图总体设计电路框图
第2章硬件设计
振荡电路
单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容和一般取33PF),这样构成一个稳定的自激振荡器。
振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。
振荡电路如图所示:
图振荡电路
复位电路设计
复位操作有两种基本形式:
一种是上电复位,另一种是按键复位。
按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
按键复位电路图如图所示。
图复位电路
按键电路设计
采用行列式键盘,每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×
M个按键的键盘。
键控电路设计如下图所示。
图键控电路设计
当电路中某一个按键被按下时候相应的行线输出为高电平,列先输出为低电平,如图中按键“1启动”被按下时候,P14通过按键连同,接VCC,输出高电平,P12输出低电平,通过单片机P1口产生二进制代码,通过按键查询程序从而实现按键功能。
显示电路
对于现实电路我们可以采用数码管,也可以采用液晶显示,液晶又分字符型和点阵型,我们使用的液晶是字符型液晶,并且带字符库的,不需要查找代码。
英文字符就可。
液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变液晶的亮度。
显示电路如图所示:
图显示电路
AT24C02存储模块电路
AT24C02的外围电路中有R3、R4两个上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;
当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。
如图为AT24C02存储模块电路设计。
图AT24C02存储模块
直流电机电路
该直流电机主要是通过驱动芯片L298来驱动,这款芯片可以同时驱动2个直流电机,可以用直流电或PWM脉冲波驱动第5,7脚为控制电机的正反转,一个接负电压,一个接正电压,第6脚ENA控制电机的转速,通过PWM可以控制转速,这里我们给它一个高电平就可以了。
直流电机电路如图所示:
图直流电机电路
功能介绍
AT89S51有40个引脚,与MCS-51系列单片机引脚完全兼容。
AT89S51的引脚如图所示。
图AT89S51的引脚结构
其各自引脚功能如下:
VCC:
电源电压。
GND:
地。
P0口:
P0口是一组8位漏极开路型双向I/O接口,即地址/数据总线复用口。
当访问外部数据存储器或程序存储器时,这组口线分时转换地址和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1口是一个带内部上拉电阻的8位双向I/O接口,P1的输出缓冲级可驱动4个TTL逻辑门电路。
端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),FLASH编程和程序校验时,P1接收低8位地址。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号,更重要是它的第二功能,如下表所示:
表P3口的引脚及功能
端口引脚
第二功能
RXD(串行输入口)
TXD(串行输出口)
(外部中断0)
(外部中断1)
T0(定时器0的外部输入)
T1(定时器1的外部输入)
(外部数据存储器写选通)
(外部数据存储器读选通)
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
ALE/
:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
F1ash存储器编程时,该引脚加上+12V的编程电压VPP。
程序储存允许。
输出是外部程序存储器的度选通信号。
XTAL1:
振荡器反相放大及内部是钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
第三章流程图设计
主程序流程图设计
主程序中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。
另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。
然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。
若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。
当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。
主程序流程图如图所示。
图主程序流程图
定时中断服务程序
在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。
定时中断服务程序流程图如图所示。
图定时中断服务程序流程图
第四章系统调试与测试结果分析
使用的仪器仪表
数字万用表 DT9203
单片机仿真器 WAVE6000
烧写器GF2100
双踪稳压稳流电源 DH1718E-5
数字示波器 TDS1002
在软件调试过程中,因为AT89S51与MCS—51系列相兼容,所以在调试WAVE6000调试过程中,我们采用8751来进行调试。
系统调试
本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试。
里程计价测试
由于试验条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3V的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转动1米,当电机转动达到1000圈时,就表示已经到达了一公里,系统自动将当前的单价加到总金额上。
表的测试条件是:
设定白天的单价是元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表白天单价测试
4
10
15
37
49
59
总金额
理论
35
90
120
145
实际
行驶
路程
表测试条件是:
晚上的单价设定为元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表晚上单价测试
8
26
41
107
143
173
设定在单价为的情况下已经行驶了10()公里,进行中途等待,分别等待不同的时间(10分钟为一个单位),起步价为5元(包含3公里)。
表中途等待价格测试
时间
当前金额
20
40
50
60
70
80
里程测试数据的分析:
通过表、表、表的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。
掉电存储测试
表显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的存储单元。
表掉电存储测试
白天单价
晚上单价
中途等待单价
掉电前数据
重新上电后数据
总结
本款出租车计价器使用的是单片机作为核心的控制元件,以及灵敏的霍尔开关型器件,具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。
在设计计价规则时,我们所设定的规则更加公平,基本能实现实时计价,更加人性化。
然而,该系统还有一些不足之处,譬如计价的金额位数有限,实际的里程可能会很远,会超出我们的显示范围。
计价器的设计还可以更加完善,比如加上语音的提示功能或打印车票,可能会更有生命力。
通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。
经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。
通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。
这在以前的学习过程中是不曾学到的。
参考文献
[1]阎石.数字电子技术基础[M].北京:
北京:
高等教育出版社,2007年7月
[2]华成英,童诗白.模拟电子技术基础[M].北京:
高等教育出版社,2006年1月
[3]高鹏,安涛,寇怀成.Protel99SE入门与提高[M].北京:
人民邮电出版社,2004[4]黄宏安.AllegroPCBLayout.高速电路版设计[M].台科大图书股份有限公司.2003年3月
[5]徐争颖.Protell99SEEDA技术及应用[M].北京:
机械工业出版社,2005[12]李广弟.单片机基础[M].第3版.北京航空航天大学出版社,2007年1月
[6]胡辉,单片机原理及应用设计—21世纪高等院校规划教材[M],水利水电出版社,;
[7]张鑫、华臻、陈书谦.《单片机原理及应用》[M].电子工业出版社,2005
[8]戴佳,陈斌,苗龙.51单片机应用系统开发典型实例.中国电力出版社,2005
[9]余发山,王福忠.单片机原理及应用技术.中国矿业大学出版社,
[10]侯玉宝,陈忠平,李成群.基于Proteus的51系列单片机设计与仿真.电子工业出版社,2008
[11]李玉梅.基于MCS-51系列单片机原理的应用设计.国防工业出版社,2006
[12]边春元,李文涛,江杰.C51单片机典型模块设计与应用.机械工业出版社,2008
[13]楼然苗,胡佳文,李光飞等.单片机实验与课程设计.浙江大学出版社,
[14]李群芳,肖看.单片机原理接口与应用.北京:
清华大学出版社,2005