基于单片机的出租车计价器设计.docx
- 文档编号:28369767
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:77
- 大小:491.94KB
基于单片机的出租车计价器设计.docx
《基于单片机的出租车计价器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的出租车计价器设计.docx(77页珍藏版)》请在冰豆网上搜索。
基于单片机的出租车计价器设计
基于单片机的出租车计价器设计
摘要
出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有应用价值的。
而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
针对计费模式的切换,通过软件编程就可以轻易而举的实现。
避免了机械开关带来的不稳定因素。
数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的界面。
该课题主要设计一款计价器,实现对出租车计价统计,采用时钟芯片DS1302实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
本课题设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价。
同时在不计价的时候还能作为时钟为司机同志提供方便。
关键词:
出租车计价器;多功能;AT89C52;软硬件设计
TheDesignOfTaximeterBasedOnMCU
Abstract
Taximeteristhetradingofbothpassengersanddriverstandards,itisanimportantindicatorintaxiindustry,anditisthemostimportanttoolofataxi.Itrelatestotheinterestsofbothtransactions.Goodperformanceofthemeter,whetherthevastnumberoffriendsandpassengers,taxidriversareverynecessary.Agoodperformanceofthemeterisverynecessarytopassengersandtaxidrivers.Therefore,theresearchtotaximeterisveryvaluable.Thedesignofthemeterbytheanalogcircuitanddigitalcircuithavealargerscale,usingalotofdevice,resultinginhighfailurerate,difficulttodebug,themodeswitchneedtousemechanicalswitches,mechanicalswitchesovertimewillcausepoorcontact,functionisnoteasytoachieve.TheuseofMCUdesignandrelativelypowerful,withlesshardwareandappropriatesoftwarecanbeeasilycomplementeachothertoachievethedesignrequirements,andflexibility,canbeprogrammedthroughsoftwaretoperformadditionalfunctionality.Billingmodelfortheswitchcanbeeasilyprogrammedthroughthesoftware.Avoidingtheinstabilitycausedbymechanicalswitches.Datainformationcanbeunderstandataglance,andeventhefinishedproductcaneasilymodifytheuserinterface,butalsoaccordingtodifferentcustomersusingdifferentinterfaces.
Inthepaperwedesignedataximeterrealizeofametertaxivaluationstatistics,usingthesystemclockchipDS1302achievedwhenthepower-downunitandthesystemsavedtimeandotherinformation,theoutput8-segmentdigitaldisplaytube.Thesubjectofthemeterdesigncannotonlyrealizethebasicvaluation,butalsoaccordingtodayandnight,halfwaytowaittoadjusttheunitprice.Whilenotdenominatedastheclockforthedriverwhenthecomradescanfacilitate.
Keywords:
taximeter;multifunction;AT89C52;software/hardwaredesign
插图清单
表格清单
引言
随着生活水平的提高,人们已不在满足于衣食住行的享受,出行的舒适已受到越来越多人的关注。
于是,出租车行业以低价高质的服务给人们带来了出行的享受。
但总是存在着买卖纠纷困扰着行业的发展。
而在出租车行业中解决这一矛盾的最好方法就是改良计价器。
用更加精良的计价器来为乘客提供更加方便快捷的服务。
我国在70年代开始出现出租车,但那时的计费系统大都是国外进口,不但不够准确,价格还十分昂贵。
但随着改革的日益深入,出租车行业的发展势头已十分突出。
出租车计价器的功能从刚开始的只显路程,到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。
现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。
汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有应用价值的。
采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合就可以实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
第1章绪论
1.1出租车计价器的意义
出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有应用价值的。
而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
针对计费模式的切换,通过软件编程就可以轻易而举的实现。
避免了机械开关带来的不稳定因素。
数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的界面。
1.2出租车计价器的发展历程
我国在70年代开始出现出租车,但那时的计费系统大都是国外进口,不但不够准确,价格还十分昂贵。
但随着改革的日益深入,出租车行业的发展势头已十分突出。
出租车计价器的功能从刚开始的只显路程,到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。
国内出租车计价器已经经历了4个阶段的发展。
从传统的全部由机械元器件组成的机械式,到DS1302时钟电路、ISD2560语音半电子式即用电子线路代替部分机械元器件的出租车计价器;再从集成电路式到目前的单片机系统设计的出租车计价器。
1.3本课题研究现状
目前市场上出租车计价器主要还是由传统的全部由机械元器件组成的机械式和由DS1302时钟电路、ISD2560语音半电子式即用电子线路代替部分机械元器件的出租车计价器。
其功能主要有具有数据的复位功能、白天、晚上转换功能、数据输出功能、计时计价功能等等。
随着单片机技术的发展和普及,由单片机所构成的出租车计价器必将逐步占领市场,并且功能会越来越强大,就目前而言,单片机控制的出租车计价器系统主要具有计量、显示等功能。
少数城市的出租车计价器则已经具有语音、打印等更高级的功能,同时电路越来越简单,成本也越来越低,编程调试和系统升级也越来越方便,系统也越来越可靠。
在不久的将来,具有上述优点的出租车计价器必将得到进一步的普及。
1.4论文的研究内容
该系统由以下几个部件组成:
单片机AT89C52、键盘控制部件、存储控制部件DS1302、里程计算单元A44E、数码显示单元等。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
当车子启动,计价开关闭合,由霍尔传感器A44E检测到的脉冲信号,经过处理送到单片机里程寄存器中进行计算,判断出行驶里程是否已超过起价公里数。
若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,再将时间和当前累计价格送LED显示电路显示出来。
显示系统采用由移位寄存器74HC164驱动的静态显示方式。
当到达目的地的时候,由于霍尔传感器没有送来脉冲信号,就停止计价,这时计价开关断开,显示当前所应该付的金额和对应的单价、里程。
到下次重启计价时,系统自动对显示清零,并重新进行初始化过程。
论文的总体结构:
第1章:
概述出租车计价器的发展历程,剖析其研究现状,引出本论文的研究内容。
第2章:
首先综述了几种设计方案,然后提出一种基于单片机芯片AT89C52的出租车计价器的方案,分析计价器的设计原理与实现方法。
第3章:
详细阐述系统各个模块的设计,本章是全文的重点,包括存储控制模块,里程计算单元电路,键盘输入,LED输出显示电路的设计等。
第4章:
对系统采用的控制算法进行研究,并简要阐述软件流程图。
第2章系统总体设计
方案一:
采用数字电路控制。
其原理方框图如图2-1所示。
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。
图2-1数字电路方案
方案二:
采用单片机控制。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
通常采用MCS-51芯片,在EEPROM中预先已写入了有关程序和数据的信息,如基本距离、续程距离、候时时间的规定值,与收费标准规定相应的收费价格值,不同出租条件下收费的变化比率,附加车费值计费方式等数据和与收费办法相应的车费计算与控制程序等。
计价器的原理结构如图2-2所示。
图2-2单片机控制方案
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求而且相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
针对计费模式的切换,通过软件编程就可以轻易而举的实现。
避免了机械开关带来的不稳定因素。
数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的界面。
本设计中采用DS1302实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
所设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价。
同时在不计价的时候还能作为时钟为司机同志提供方便。
本课题所设计的系统由以下几个部件组成:
单片机AT89C52、键盘控制部件、存储控制部件、里程计算单元、数码显示单元等。
第3章系统的硬件设计
3.1单片机功能介绍
本课题采用ATMEL公司的AT89C52单片机作为控制系统的核心。
AT89C52是一个低功耗、高性能CMOS8位单片机,引脚图如图3-1所示。
图3-1AT89C52引脚图
3.1.1主要功能特性
●兼容MCS-51指令系统
●32个双向I/O口
●3个16位可编程定时/计数器
●全双工UART串行中断口线
●2个外部中断源
●中断唤醒省电模式
●看门狗(WDT)电路
●灵活的ISP字节和分页编程
●8k可反复摖写(>1000次)ISPFlashROM
●4.5-5.5V工作电压
●时钟频率0-33MHz
●256×8bit内部RAM
●低功耗空闲和省电模式
●3级加密位
●软件设置空闲和省电功能
●双数据寄存器指针
AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其他功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP、和PLCC三种封装式,以适应不同产品的需求。
3.1.2引脚功能说明
(1)主电源引脚
VCC:
+5V电源端
GND:
接地端
(2)输入/输出引脚
P0端口(P0.0~P0.7):
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0可用作多路复用的低字节地址/数据总线。
在这种模式下,P0具有内部上拉电阻。
在对flash存储器行编程时,P0口用于接收指令字节;在程序校验时,输出指令字节;这时需要外部上拉电阻。
P1端口(P1.0~P1.7):
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作输为入使用时,被输入信号拉低的引脚由于内部上拉电阻的原因,将输出电流IIL。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3-1所示。
在flash编程和校验时,P1口接收低8位地址字节。
表3-1P1端口第二功能
口线
第二功能
信号名称
P1.0
T2
定时器/计数器T2的外部计数输入,时钟输出
P1.1
T2EX
定时器/计数器T2的捕捉/重载触发信号和方向控制
P1.5
MOSI
在系统编程用
P1.6
MISO
在系统编程用
P1.7
SCK
在系统编程用
P2端口:
P2口也是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,输入信号拉低的引脚由于内部上拉电阻的原因,将输出电流IIL。
在访问外部程序存储器或用16位地读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3端口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电基于单片机控制的直流恒流源的设计对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被输入信号拉低的引脚由于内部上拉电阻的原因,将输出电流IIL。
P3口亦作为AT89C52特殊功能(第二功能)使用,如表3-2所示。
在flash编程和校验时,P3口也接收一些控制信号。
表3-2P3端口第二功能
口线
第二功能
信号名称
P3.0
RXD
串行输入
P3.1
TXD
串行输出
P3.2
INT0
外部中断0
P3.3
INT1
外部中断1
P3.4
T0
定时器0外部输入
P3.5
T1
定时器1外部输入
P3.6
WR
外部数据存储器写选通
P3.7
RD
外部数据存储器读选通
(3)控制信号引脚
RST:
复位输入端。
晶振工作时,RST引脚的输入高电平有2个机器周期就会对单片机复位。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
:
地址锁存控制信号。
存取外部程序存储器时,这个输出信号用于锁存低8位地址。
在对flash存储器编程时,此引脚也用作编程输入脉冲
。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用作外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,会跳过一个ALE脉冲。
在需要时,可以将地址为8EH的SFR寄存器的第0位置为“1”,从而屏蔽ALE的工作。
而只有在MOVX或MOVC指令执行时ALE才被激活。
在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。
:
外部程序存储器选通信号。
当AT89C52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据存储器时,
的两次激活会被跳过。
/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
为了执行内部程序指令,
应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
(4)振荡器引脚
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.1.3时钟电路及复位电路
AT89C52中有一个构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图3.2左图所示[7]。
外接石英晶体(或陶瓷谐振器)及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。
对外电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作稳定性、起振的难易程度及温度的稳定性。
如果使用石英晶体,电容使用30pF士l0pF,如果使用陶瓷谐振器,电容使用40pF士l0pF。
用户也可以使用外部时钟。
采用外部时钟的电路如图3-2右图所示。
在这种情况下,外部时钟脉接到XTAL1端,即内部时钟发生器的输入端,XTAL2端悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空没有特殊要求,但最小高电平持续时间和最大低电平持续时间应符合产品技术条件的额定要求。
本课题用到的晶振频率为12MHz。
本课题所用的时钟电路如图3-2左图所示。
a)内部振荡电路b)外部振荡电路
图3-2AT89C52振荡电路
复位是单片机的初始化操作。
其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。
在运行中,外界干扰等因素可使单片机的程序陷入死循环状态或跑飞。
为摆脱困境,可将单片机复位,以重新启动。
复位也使单片机退出低功耗工作方式而进入正常工作状态。
RST引脚是复位信号的输入端,高电平有效。
其有效时间应持续24个振荡周期(即两个机器周期)以上。
振荡周期就是晶振的振荡周期。
a)传统复位电路b)改进复位电路
图3-3复位电路图
从原理上讲,一般采用上电复位电路。
这种电路的工作原理是:
通电时,电容两端相当于时短路,于是RESET引脚上为高电平,然后电源通过电阻对电容充电,RESET端电压慢慢下降,降到一定程度,即为低电平,单片机开始止常工作。
图3-3左图为传统的复位电路。
本课题使用的复位电路是由22uF的电容,开关按键,1千欧的电阻及IN4148二极管组成。
在满足单片机可靠复位的前提下,该复位电路的优点在于降低复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。
二极管可以实现快速释放电容电量的功能,满足短时间复位的要求。
既可以手动按键复位,也可上电自动复位。
如图3-3右图所示。
3.1.4单片机时序
单片机时序就是CPU在执行命令时所需要控制信号的时间顺序。
单片机在执行指令时,CPU首先要到程序存储器中取出需要执行指令的指令码,然后对指令码译码,并由时序部件产生一系列控制信号去完成指令的执行。
这些控制信号在时间上的相互关系就是CPU时序。
CPU发出的时序信号有两类。
一类用于片内各功能部件的控制,这类信号很多,但与本课题关系不大,故不作专门介绍。
另一类用于片外存储器或I/O端口的控制,需要通过器件的控制引脚送到片外,这部分时序对于分析本课题硬件电路原理至关重要。
AT89C52单片机专门有两类可以访问对外存储器的指令。
一类是读片外ROM指令,本课题硬件电路没有涉及到片外ROM,所以在此不作介绍。
另一类是访问片外RAM指令,由于本课题主要功能模块都是作为外部RAM来访问,所以在此介绍一下CPU的访问片外RAM指令时序。
图3-4片外RAM读/写时序
CPU先将数据指针中的低八位地址数据送到P0口上,高八位地址数据送到P2口上,在第一个ALE的下降沿时锁存P0口地址。
CPU在第一个ALE和第二个ALE信号之间使RD/WR有效,选中片外RAM工作。
然后CPU把从外部RAM中读出的数据经P0口送到CPU的累加器中或者把累加器中的数据经P0口送到外部RAM中,最后终止指令的执行。
3.2存储控制模块设计
本设计中存储控制模块采用时钟芯片DS1302,实现在系统掉电的时候保存单价和系统时间等信息,并且实现了系统在不计价的时候还能作为时钟为司机同志提供方便。
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 出租车 计价器 设计