基于单片机的出租车计价器设计_第1页
基于单片机的出租车计价器设计_第2页
基于单片机的出租车计价器设计_第3页
基于单片机的出租车计价器设计_第4页
基于单片机的出租车计价器设计_第5页
已阅读5页,还剩55页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

张鹏:基于单片机的出租车计价器设计安徽工程大学毕业设计(论文)52-PAGEV基于单片机的出租车计价器设计摘要出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有应用价值的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的界面。该课题主要设计一款计价器,实现对出租车计价统计,采用时钟芯片DS1302实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。本课题设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价。同时在不计价的时候还能作为时钟为司机同志提供方便。关键词:出租车计价器;多功能;AT89C52;软硬件设计TheDesignOfTaximeterBasedOnMCUAbstractTaximeteristhetradingofbothpassengersanddriverstandards,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目录引言 -1-第1章绪论 -2-1.1出租车计价器的意义 -2-1.2出租车计价器的发展历程 -2-1.3本课题研究现状 -2-1.4论文的研究内容 -2-第2章系统总体设计 -4-第3章系统的硬件设计 -6-3.1单片机功能介绍 -6-3.1.1主要功能特性 -6-3.1.2引脚功能说明 -7-3.1.3时钟电路及复位电路 -9-3.1.4单片机时序 -10-3.2存储控制模块设计 -11-3.3里程计算、计价单元的设计 -15-3.4显示单元设计 -16-3.5键盘电路设计 -18-第4章系统的软件设计 -19-4.1主程序模块 -19-4.2时钟程序、掉电存储程序模块 -19-4.3里程计数中断服务程序 -20-4.4中途等待服务程序 -21-结论与展望 -23-致谢 -24-参考文献 -25-附录A总原理图 -26-附录B外文文献及其翻译 -27-附录C主要参考文献的题录及摘要 -33-附录D主要原程序 -35-插图清单TOC\o"4-4"\f\h\z\u图2-1数字电路方案 -4-图2-2单片机控制方案 -4-图3-1AT89C52引脚图 -6-图3-2AT89C52振荡电路 -9-图3-3复位电路图 -10-图3-4片外RAM读/写时序 -11-图3-5DS1302的外部引脚分配 -12-图3-6DS1302的内部结构 -12-图3-7控制字示意图 -14-图3-8数据读写时序 -14-图3-9DS1302电路原理图 -15-图3-10传感器测距示意图 -15-图3-11集成开关型霍耳传感器原理图 -16-图3-12集成霍耳开关外形及接线 -16-图3-13LED数码管的分屏显示示意图 -17-图3-1474HC164引脚配置图 -17-图3-15按键电路接线图 -18-图4-1主程序流程图 -20-图4-2DS1302工作流程图 -21-图4-3里程计数中断流程图 -22-图4-4中途等待计价流程图 -22-表格清单TOC\o"5-5"\f\h\z\u表3-1P1端口第二功能 -7-表3-2P3端口第二功能 -8-表3-3DS1302有关日历、时间的寄存器 -13-表3-4DS1302静态RAM的地址 -13-表3-5DS1302突发模式寄存器 -13-表3-674HC164引脚功能说明 -18-53-引言随着生活水平的提高,人们已不在满足于衣食住行的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但总是存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。我国在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所示。AT89C52AT89C52单片机键盘电路DS1302时钟电路里程计算单元霍尔传感器A44E显示电路图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.0T2定时器/计数器T2的外部计数输入,时钟输出P1.1T2EX定时器/计数器T2的捕捉/重载触发信号和方向控制P1.5MOSI在系统编程用P1.6MISO在系统编程用P1.7SCK在系统编程用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.0RXD串行输入P3.1TXD串行输出P3.2INT0外部中断0P3.3INT1外部中断1P3.4T0定时器0外部输入P3.5T1定时器1外部输入P3.6WR外部数据存储器写选通P3.7RD外部数据存储器读选通(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。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。DS1302的外部引脚分配如图3-5所示,内部结构如图3-6所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。图3-5DS1302的外部引脚分配图3-6DS1302的内部结构各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高电平。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。DS1302有下列几组寄存器:①DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如表3-3所示。表3-3DS1302有关日历、时间的寄存器读寄存器写寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范围81h80hCH10秒秒00-5983h82h10分分00-5985h84h12/240时时1-12/0-2387h86h0日1-3189h88h0010月月1-128Bh8Ah00000周日1-78Dh8Ch10年年00-998Fh8EhWP0000000——小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在24小时模式时,位5是第二个10小时位。秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟或RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。②DS1302有关RAM的地址DS1302中附加31字节静态RAM的地址如表3-4所示。表3-4DS1302静态RAM的地址读地址写地址数据范围C1hC0h00-FFhC3hC2h00-FFhC5hC4h00-FFh…………00-FFhFDhFCh00-FFh③DS1302的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如表3-5所示。表3-5DS1302突发模式寄存器读地址写地址数据范围C1hC0h00-FFhC3hC2h00-FFhC5hC4h00-FFh…………00-FFhFDhFCh00-FFh④读写时序说明DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如图3-7所示。图3-7控制字示意图控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4~A0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图3-8。图3-8数据读写时序DS1302电路原理图如图3-9,DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。图3-9DS1302电路原理图3.3里程计算、计价单元的设计出租车中需要一个能准确获得车轮转动即路程计量信号的装置,以得到标准的脉冲信号送入单片机的定时/计数器T0,即P3.4引脚,利用单片机的T0的计数功能完成1000次的计数后产生中断来完成对路程的测量。汽车联轴器按圆周间隔嵌入磁铁,用霍尔传感器集成芯片A44E检测并输出脉冲,其工作原理如图3-10所示。图3-10传感器测距示意图由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHZ。A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压Vcc,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到“工作点”(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC图3-11集成开关型霍耳传感器原理图门输出端输出低电压,通常称这种状态为“开”。当施加的磁场达到“释放点”(即Bop)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为“关”。这样两次电压变换,使霍耳开关完成了一次开关动作。其集成霍耳开关外形及接线如图3-12所示。图3-12集成霍耳开关外形及接线我们选择了P3.4口作为信号的输入端,车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,单片机就对脉计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的增加,其计算公式:当前单价×公里数=金额。3.4显示单元设计由于设计要求有单价(2位)、路程(2位)、总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用LCD液晶段码显示,在距离屏幕1米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6位LED数码管的分屏显示,如图3-13所示:图3-13LED数码管的分屏显示示意图数据的分屏的显示是通过按键S1来实现切换的在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。本系统显示驱动器选用的是74HC164。74HC164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。74HC164引脚信息如图3-15所示。图3-1474HC164引脚配置图引脚说明如表3-6所示:表3-674HC164引脚功能说明符号引脚说明符号引脚说明DSA1数据输入CP8时钟输入(低电平到高电平边沿触发)DSB1数据输入/M/R9中央复位输入(低电平有效)Q0~Q33~6输出Q4~Q710~13输出GND7地(0V)VCC14正电源3.5键盘电路设计电路共采用了四个按键,S1、S2、S3、S4,其功能分别是:S1启动按键,S2功能设定按键,S3金额、单价显示与路程、金额显示的切换按键,另外S3、S4配合S2键完成对系统时间、单价的设定。如图3-15所示。图3-15按键电路接线图第4章系统的软件设计该系统软件采用可以采用汇编语言或C语言编制,模块化设计,分为主程序,里程计数中断程序,键盘服务程序,时钟程序、掉电存储程序,中途等待中断服务程序,显示子程序。在脉冲中断程序中完成计量计价工作,日历时钟芯片每秒钟向单片机发中断请求,在中断程序中完成等候计时工作或者时钟显示工作。键盘中断程序用于完成各次营运数据的查寻工作。4.1主程序模块在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。当主程序判断出有“启动计程中断”发生时,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将已行走的里程数和当前累计价格送显示电路显示出来。当主程序判断出有“清除计程中断”产生时,将显示电路中的当前行驶里程数和运行累计价格清0,并重新进行初始化过程。其程序流程如图4-1所示。当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。4.2时钟程序、掉电存储程序模块计价器在出租车空车行驶时需要显示时钟时间,因为它的时钟作为白天/晚上单价自动转换的一个基准,而且计价器的时钟显示能为司机和乘客提供方便,所以选择一个好的时钟芯片对计价器很重要。通过设置DS1302的控制/状态寄存器选择日历,时钟方式经过初始校准后即可工作使用,可以提供秒、分、时、日、星期、月和年。同时DS1302可以用于数据记录,能实现数据与出现该数据的时间同时记录,可以用于记录系统在突然掉电是的单价、金额、里程等信息。其工作流程图如图4-2所示。图4-1主程序流程图4.3里程计数中断服务程序当里程计数器对里程脉冲计满一定数值时,就由里程计数中断电路向单片机发出中断请求,使单片机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数的累加操作,并将结果存入里程寄存器中。每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。如图4-3所示。4.4中途等待服务程序当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。如图4-4所示。图4-2DS1302工作流程图图4-3里程计数中断流程图图4-4中途等待计价流程图结论与展望由于使用的是AT89C52单片机作为核心的控制元件,使用全双工串行口进行通信,其外接显示电路由74HC614和共阳极数码管构成,实现了扩展并行I/O接口的功能,来实现单价、起步价、白天价、夜间价、中途等待价,显示和修改时间等功能,是一个低成本的出租车计价系统。并且使用了灵敏的霍尔开关型器件。本出租车计价器具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。但是计价器的设计还不够人性化,比如加上语音的提示功能,可能会更有市场,更有实用性。争取使该系统慢慢趋向完美。本系统解决了以往计价器计价不准确、使用寿命短等缺点,现在采用以单片机为主控制单元的编码解码技术,使每个出租车的计价器拥有不同的编码,从而防止出租车之间计价器的相互盗用,便于出租车公司对出租车的管理。我们可以随时对单片机的外围电路进行扩展,并通过软件编程实现本系统的不断更新。本系统在软硬件设计上仍然有很多需要完善之处。进入21世纪,随着信息技术一日千里的发展,计价器也必会实现更多的功能。特别是计算机技术的发展必将出现智能化技术。比如说实现票据的打印功能、语音报价及报时功能、昼夜单价自动转换功能、防作弊功能等。并且系统性能更稳定、体积更小、成本更低,操作更方便。这种新型多功能计价器是新一代计价器的发展方向。致谢本次毕业设计论文是在我的指导老师张国友老师的精心指导和悉心关怀下完成的。从课题的选取、开题报告的撰写、设计到论文的完成每一个细节无不凝聚着张国友老师的辛劳。张老师严肃的科学态度、严谨的治学精神、精益求精的工作作风,深深的感染和激励着我。他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。在此谨向张老师表示衷心的感谢和诚挚的敬意!感谢安徽工程大学电气工程学院为我提供了这次难得的学习机会,院里的领导和老师为我提供了良好的环境,我向这些敬爱的老师表示诚挚的敬意!正是他们热情的关怀和帮助,才使我顺利的完成学业。感谢自动化064班全体同学,正是由于他们的帮助和支持,才使我顺利克服一个个的困难和疑惑,直至本文的顺利完成。在我读大学期间,我的家人始终如一的支持和鼓励我,我的成功离不开他们所倾注的心血。为此,我衷心感谢他们给予我的关怀。感谢所有关心和帮助过我的人们。最后,衷心感谢能耐心看完我的论文并提出宝贵意见和建议的您!作者:2010年6月16日参考文献[1]徐淑华,程退安,姚万生主编.单片机微型机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,2002[2]童诗白,华成英主编.模拟电子技术基础[M].北京:高等教育出版社.2003[3]阎石主编.数字电子基础[M].北京:高等教育出版社,2006[4]何立民主编.MCS251单片机应用系统设计技术[M].北京:北京航天航空大学,1999[5]杨建潮主编.出租汽车计价器使用、维修与检定问答[M].北京:中国计量出版社,2002[6]陈爱文.基于AT89C51单片机的多功能出租车计价器[J].机电工程技术,2008,12:16-17[7]马鸿文.新一代出租车计价器微机设计系统[J].微计算机应用,2005,11:27-28[8]孙晓琳.16位单片机在出租车计价器中的应用[J].计量与测试技术,2009,36:13-14[9]肖玉芳,吴伟福,洪达德,李新梅.出租车计价器数据管理系统[J].计量技术,2005,5:32-33[10]孙秀娥,叶哲江,戚勇.出租车计价器的软件设计[J].山西电子技术,2007,4:25-26[11]韩衍鹏.出租车计价器传感器原理及维护[J].计量技术,2008,1:08-09[12]张颖.多功能出租车计价器的设计[J].广西轻工业,2009,25:9-10[13]WeiYongqin,GaoJianfeng.Artfuldesignofaconstantcurrentsourcecircuit.collegeofInfor.&Elec.Eng,SUST,Qingdao266510,China[14]HEYan-fei.ConstantCurrentSourceAnalysis.DepartmentofPhysicsandElectronicScience,HunanCityUniversity,Yiyang,Hunan413049,China[15]求是科技编著.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004.[16]宋浩,田丰.单片机原理及应用[M].北京:北京交通大学出版社,2005.附录A总原理图附录B外文文献及其翻译引用的外文文献:AT89C52Chipexplains

Features:CompatiblewithMCS-51TMProducts

8KbytesofIn-SystemReprogrammableFlashMemory

Endurance:1,000Write/EraseCycles

FullyStaticOperation:0Hzto24MHz

Three-LevelProgramMemoryLock

256x8-BitInternalRAM

32ProgrammableI/OLines

Three16-BitTimer/Counters

EightInterruptSources

ProgrammableSerialChannel

LowPowerIdleandPowerDownModes

Description:

TheAT89C52isalow-power,high-performanceCMOS8-bitmicrocomputerwith8KbytesofFlashprogrammableanderasablereadonlymemory(PEROM).ThedeviceismanufacturedusingAtmel’shighdensitynonvolatilememorytechnologyandiscompatiblewiththeindustrystandard80C51and80C52instructionsetandpinot.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithFlashonamonolithicchip,theAtmelAT89C52isapowerfulmicrocomputer,whichprovidesahighlyflexibleandcosteffectivesolutiontomanyembeddedcontrolapplications.

TheAT89C52providesthefollowingstandardfeatures:8KbytesofFlash,256bytesofRAM,32I/Olines,three16-bittimer/counters,asix-vectortwo-levelinterruptarchitectureafullduplexserialport,on-chiposcillator,andclockcircuitry.Inaddition,theAT89C52isdesignedwithstaticlogicforoperationdowntozerofrequencyandsupportstwosoftwareselectablepowersavingmodes.TheIdleModestopstheCPUwhileallowingtheRAM,timer/counters,serialport,andinterruptsystemtocontinuefunctioning.ThePowerDownModesavestheRAMcontentsbutfreezestheoscillator,disablingallotherchipfunctionsuntilthenexthardwarereset.

PinDescription

VCCSupplyvoltage.

GNDGround.

Port0

Port0isan8-bitopendrainbidirectionalI/Oport.Asanoutputport,eachpincansinkeightTTLinputs.When1sarewrittentoport0pins,thepinscanbeusedashigh-impedanceinputs.

Port0canalsobeconfiguredtobethemultiplexedlow-orderaddress/databusduringaccessestoexternalprogramanddatamemory.Inthismode,P0hasinternalpullups.

Port0alsoreceivesthecodebytesduringFlashprogrammingandoutputsthecodebytesduringprogramverification.Externalpullupsarerequiredduringprogramverification.

Port1

Port1isan8-bitbidirectionalI/Oportwithinternalpullups.ThePort1outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort1pins,theyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port1pinsthatareexternallybeingpulledlowwillsourcecurrentbecauseoftheinternalpullups.Inaddition,P1.0andP1.1canbeconfiguredtobethetimer/counter2externalcountinput(P1.0/T2)andthetimer/counter2triggerinput(P1.1/T2EX),respectively,asshowninthefollowingtable.

Port1alsoreceivesthelow-orderaddressbytesduringFlashprogrammingandprogramverification.

Port2

Port2isan8-bitbidirectionalI/Oportwithinternalpullups.ThePort2outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort2pins,theyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port2pinsthatareexternallybeingpulledlowwillsourcecurrentbecauseoftheinternalpullups.Port2emitsthehigh-orderaddressbyteduringfetchesfromexternalprogrammemoryandduringaccessestoexternaldatamemorythatuse16-bitaddresses(MOVX@DPTR).Inthisapplication,Port2usesstronginternalpullupswhenemitting1s.Duringaccessestoexternaldatamemorythatuse8-bitaddresses(MOVX@RI),Port2emitsthecontentsoftheP2SpecialFunctionRegister.Port2alsoreceivesthehigh-orderaddressbitsandsomecontrolsignalsduringFlashprogrammingandverification.

Port3

Port3isan8-bitbidirectionalI/Oportwithinternalpullups.ThePort3outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort3pins,theyarepulledhighbytheinternalpullupsandcanbeusedasinputs.Asinputs,Port3pinsthatareexternallybeingpulledlowwillsourcecurrentbecauseofthepullups.

Port3alsoservesthefunctionsofvariousspecialfeaturesoftheAT89C51,asshowninthefollowingtable.

Port3alsoreceivessomecontrolsignalsforFlashprogrammingandprogrammingverification.

RST

Resetinput.Ahighonthispinfortwomachinecycleswhiletheoscillatorisrunningresetsthedevice.

ALE/PROG

AddressLatchEnableisanoutputpulseforlatchingthelowbyteoftheaddressduringaccessestoexternalmemory.Thispinisalsotheprogrampulseinput(PROG)duringFlashprogramming.

Innormaloperation,ALEisemittedataconstantrateof1/6theoscillatorfrequencyandmaybeusedforexternaltimingorclockingpurposes.Note,however,thatoneALEpulseisskippedduringeachaccesstoexternaldatamemory.

Ifdesired,ALEoperationcanbedisabledbysettingbit0ofSFRlocation8EH.Withthebitset,ALEisactiveonlyduringaMOVXorMOVCinstruction.Otherwise,thepinisweaklypulledhigh.SettingtheALE-disablebithasnoeffectifthemicrocrontrollerisinexternalexecutionmode.

PSEN

ProgramStoreEnableisthereadstrobetoexternalprogrammemory.

WhentheAT89C52isexecutingcodefromexternalprogrammemory,PSENisactivatedtwiceeachmachinecycle,exceptthattwoPSENactivationsareskippedduringeachaccesstoexternaldatamemory.

EA/VPP

ExternalAccessEnable.EAmustbestrappedtoGNDinordertoenablethedevicetofetchcodefromexternalprogrammemorylocationsstartingat0000HuptoFFFFH.Note,however,thatiflockbit1isprogrammed,EAwillbeinternallylatchedonreset.

EAshouldbestrappedtoVCCforinternalprogramexecutions.Thispinalsoreceivesthe12-voltprogrammingenablevoltage(VPP)duringFlashprogrammingwhen12-voltprogrammingisselected.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论