基于单片机的出租车计价器(毕业论文).doc_第1页
基于单片机的出租车计价器(毕业论文).doc_第2页
基于单片机的出租车计价器(毕业论文).doc_第3页
基于单片机的出租车计价器(毕业论文).doc_第4页
基于单片机的出租车计价器(毕业论文).doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

桂林航天工业学院毕业设计(论文) NO: 桂林航天工业学院毕业论文 题目:基于单片机出租车计价器的设计 专业:电子测量技术与仪器 姓名: 学号: 指导教师: 2016年 5月 28日 毕 业 设 计( 论 文 )评 语指导教师评语 签字: 201 年 月 日评阅教师评语 签字: 201 年 月 日III毕业设计(论文)答辩记录成绩及评语答辩提问记录 记录人: 201 年 月 日答辩委员会评语成 绩:主任签字: 201 年 月 日桂林航天工业学院电子信息与自动化学院 毕 业 设 计 任 务 书装 订 线专业:年级: 姓名学号指导教师(签名)毕业设计题目任务下达日期设计提交期限设计主要内容主要技术参数指标成果提交形式论文设计进度安排 教研室意见 签名: 201 年 月 日 院长意见签名: 201 年 月 日桂林航天工业学院电子信息与自动化学院毕 业 设 计 开 题 报 告装 订 线姓名学号指导教师毕业设计题目同组设计目的意义方案论证 时间安排 指导教师意见 签字: 年 月 日 审核小组意见 组长签字: 年 月 日IV摘 要出租车计价器是一种计量器具,用于测量出租持续时间及依据里程传感器传送的信号测量里程,并以测得的计时时间及里程为依据,计算并显示乘客出租车应付的费用。本设计的是一个基于单片机STC89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。通过光电传感器测得出租车的运动数据,在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,里程收费,等待时间收费。通过按键模拟出租车的运行,暂停,停止。在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。在这里主要是以STC89C52单片机为核心控制器,P2口接1602液晶显示模块,P3口接按键的,通过按键输入。关键字单片机,液晶,里程,光电传感器ABSTRACTTaximeter is a kind of measuring instrument for measuring rental continuing time and according to mileage sensor sends the signal measurement range, and to the measured time and mileage as the basis, calculate and show the taxi passengers to cope with the cost of. This design is based on a single chip STC89C52 of the taxi automatic billing design, with reset circuit, clock circuit, keyboard circuit, etc. Reset circuit is a single chip initialization operation, in addition to the normal initialization, to get rid of difficulties, through the reset circuit can be re started. The clock circuit using 12MHz crystal as the system clock source, with high accuracy. The motion data of the taxi is measured by the photoelectric sensor, and the character type liquid crystal display 1602 displays the initial starting price, the mileage charge, the waiting time charge three kinds of charge, the mileage charge, the waiting time charge. Through the button to simulate the operation of a taxi, pause, stop. In the 1602 liquid crystal display running time, running time of the suspension, the calculation can be drawn from the total cost and the total distance. Here is mainly to STC89C52 microcontroller as the core controller, P2 port 1602 LCD module, P3 port connected to the button, through the button input.Keywords: singlechip,liquid crystal,mileage,photoelectric sensorV桂林航天工业学院毕业设计(论文)目 录第1章 引言11.1 课题背景与意义11.2 计价器的现状1第2章 方案论证22.1 概述22.2 方案论证与比较22.2.1出租车计价器方案论证22.2.2单片机芯片的选择方案论证3第3章 电路框图设计4第4章 电路分析设计54.1主要单元电路设计54.1.1单片机主控电路设计54.1.2 光电传感器电路设计94.1.3 LCD1602显示电路设计104.1.4 按键控制系统设计134.2软件部分设计134.2.1程序流程图134.2.2内部运算的说明14第5章 调试、测试分析及结果155.1系统调试测试155.1.1 软件调试155.1.2程序调试工具KEIL155.1.3单片机仿真软件调试PROTEUS165.2系统运行结果17第6章 小结18参 考 文 献19附录20源程序:20VI第1章 引言1.1 课题背景与意义 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。我们知道,只要乘坐的出租车启动,随着行驶里程的增加,就会看到司机旁边的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如2KM)计费数字显示开始从起步价(如4元)增加。当乘客到站时,按下停止按键,计费数字显示总里程和总金额,它可以很直观的反映用户使用情况。出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的,因此,汽车计价器的研究也是十分有一个应用价值的。通过本次设计,可以增进对单片机的感性认识,加深对其理论方面的理解,掌握单片机的内部功能模块的应用,了解掌握单片机的软硬件设计过程、方法及实现。1.2 计价器的现状出租车计价器是出租车营运收费的专用智能仪表,目前市面所使用的计价器大都功能较少。随着人们生活水平的不断提高,出租车的使用频率也越来越高,出租车行业也以高质量的服务给人们带来了出行的享受。但是由于行业的特殊性,出租车行业总存在着买纠纷,困扰着行业的发展。给服务质量及管理带来一定影响。随着电子技术的发展,出租车计价器技术也在不断进步和提高。国内出租车计价器已经经历了4个阶段的发展。从传统的全部由机械元器件组成的机械式到半电子式,即用电子线路代替部分机械元器件的出租车计价器。而功能齐全的计价器大都采用双CPU结构,这就提高了计价器的生产成本。在考虑成本和使用的基础上,本设计介绍了一种以STC89C52单片机为核心的,具有计时、计价、性能可靠、电路简单、成本低等特点的多功能出租车计价器,能够很好的满足市场对出租车计价器的要求。本设计的目的就是通过对现有计价器的分析,解决计价器的问题,同时完成具有单价输出、路程输出等功能的新型计价器的硬件和软件设计。第2章 方案论证2.1 概述出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高,国内出租车计价器已经经历了4个阶段的发展。从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器。出租车计价器计费是否正确、出租车司机是否超速才是乘客最关心的问题,而计价器营运数据的管理是否方便才是出租车司机最关注的。随着出租车行业的发展,对出租车计费器的要求也越来越高。二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,设计方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而ASIC以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。目前,业界大量可编程逻辑器件(PLD),尤其是现场可编程逻辑器件(FPLD)被大量地应用在ASIC的制作当中。在可编程集成电路的开发过程中,以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果的电子设计自动化(EDA)技术主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。理想的可编程逻辑开发系统能符合大量的设计要求:它能够支持不同结构的器件,在多种平台运行,提供易于使用的界面,并且有广泛的特征。此外,一个设计系统应该能给设计师提供充分自由的设计输入方法和设计工具选择。现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场还是十分有潜力的。2.2 方案论证与比较2.2.1出租车计价器方案论证方案一:采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。方案二:利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以采用后一种方案更好些。在过去,出租车采用机械式的计价器,用齿轮比的方式来计算出租车所跑的里程数,并由里程数来换算车费;由于机械的齿轮体积比较大,计算不是很准确,而且容易磨损,所以选用用了传感器的方式,利用传感器接收车的跑动信息,从而计算里程数和车费,这样计价就会非常准确。完成此装置所需期间简单,成本也非常低,技术上也容易实现。2.2.2单片机芯片的选择方案论证方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,而且与MCS-52系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术;当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要捎入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89S52,片内ROM全都采用Flash ROM;同时也与MCS-52系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89S51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要写入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统。第3章 电路框图设计本设计采用STC89C52作为主控系统;采用对射式光电传感器进行测速;采用LCD1602液晶屏进行显示;采用独立按键进行控制。本电路是由STC89C52 单片机为控制核心,具有操作简单、成本低的优点;测速使用的对射式光电传感器广泛用于电机转速检测,脉冲计数,位置限位等。使用进口槽型,光耦模块槽中无遮挡时,接收管导通,模块DO输出低电平,遮挡时,DO输出高电平。显示的LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。图3-1 电路设计框图第4章 电路分析设计4.1主要单元电路设计本次电路设计主要包括以下几个模块:单片机主控电路设计;光电测速传感器电路设计;LCD1602液晶显示电路设计;按键控制电路设计。4.1.1单片机主控电路设计STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。主要特性:8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载。(1)STC89C52参数:1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.1 2. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机)3.工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片8. 具有EEPROM 功能9. 共3 个16 位定时器/计数器。即定时器T0、T1、T210.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒11. 通用异步串行口(UART),还可用定时器软件实现多个UART12. 工作温度范围:-40+85(工业级)/075(商业级)13. PDIP封装(2)STC89C52芯片的管脚、引线与功能:引脚信号介绍:P0.0P0.7 :P0口8位双向口线 P1.0P1.7 :P1口8位双向口线 P2.0P2.7 :P2口8位双向口线 P3.0P3.7 :P3口8位双向口线P1口的第二功能如表41:表41 P1口第二功能表引脚号第二功能P1.0T2(定时器计数器T2的外部记数输入),时钟输出P1.1T2EX(定时器计数器T2的捕捉重载触发信号和方向控制)访问程序存储器控制信号:当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。 ALE地址锁存控制信号:在系统扩展时,ALE用于控制把P0口输出低8位地址锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲作用。外部程序存储器读选取通信号:在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。 XTAL1和XTAL2外接晶体引线端:当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于拉外部的时钟脉冲信号。 RST复位信号:当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。 VSS:地线 VCC:+5V电源 P3口的第二功能如表42: 表42 P3口第二功能表引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通)STC89C52的总线结构: STC89C52的管脚除了电源、复位、时钟接入、用户I/O口部分P3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即:地址总线(AB):地址总线宽度为16位,因此,其外部存储器直接地址外围为64K字节。16位地址总线由P0经地址锁存器提供低8位地址(A0A7);P2口直接提供高8位地址(A8A15)。 数据总线(DB):数据总线宽度为8位,由P口提供。 控制总线 (CB):由部分P3口的第二功能状态和4根独立控制线RST、ALE、组成。STC89C52结构框图如图43所示。图42 STC89C52芯片图图43 STC89C52结构图(3)时钟电路设计: 时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。(1)时钟信号的产生单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。电容器C1和C2的作用是稳定频率和快速起振,电容值的范围在5pF-30pF,典型值为30pF。晶振的频率通常选择两种6MHz和12MHz。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。 (2)时钟振荡电路如图44所示:图44 时钟振荡电路(4)复位电路设计: 复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。它利用的是电容充电的原理来实现的。按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。如果要实现复位的话,只要按下RST键即可。它主要是利用电阻的分压来实现的,在此设计中,采用按键复位电路。电路图如图45所示。图45 按键复位电路复位电路工作原理:上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RST引脚的高电平将逐渐下降。RST引脚的高电平只要保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。本设计选用上电复位电路。4.1.2 光电传感器电路设计光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电元件三部分组成。光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。槽型光电传感器把一个光发射器和一个接收器面对面地装在一个槽的两侧的是槽形光电。发光器能发出红外光或可见光,在无阻情况下光接收器能收到光。但当被检测物体从槽中通过时,光被遮挡,光电开关便动作。输出一个开关控制信号,切断或接通负载电流,从而完成一次控制动作。槽形开关的检测距离因为受整体结构的限制一般只有几厘米。模块槽中无遮挡时,接收管导通,模块DO输出低电平,遮挡时,DO输出高电平;模块DO可与继电器相连,组成限位开关等功能,也可以与有源蜂鸣器模块相连,组成报警器。通过使用槽型光电传感器实现计数,将传感器信号输入STC89C52的P0.0,通过内部程序判断计数。槽型光电传感器内部电路如图4-6所示。图4-6槽型光电传感器电路图(1)槽型光电传感器参数1. 传感器槽宽度10mm。2. 有输出状态指示灯,输出高电平灯灭,输出低电平灯亮。3. 有遮挡,输出高电平;无遮挡,输出低电平。4. 比较器输出,信号干净,波形好,驱动能力强,超过15mA。5. 工作电压3.3V-5V6. 输出形式 :数字开关量输出(0和1)7. 设有固定螺栓孔,方便安装8. 小板PCB尺寸:3.2cm x 1.4cm4.1.3 LCD1602显示电路设计LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。在单片机编程中还可以用字符型常量或变量赋值,如A。因为CGROM储存的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1=A这样的方法。PC在编译时就把A先转换为41H代码了。字符代码0x000x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。0x200x7F为标准的ASCII码,0xA00xFF为日文字符和希腊文字符,其余字符码(0x100x1F及0x800x9F)没有定义。 出租车计价信息是通过LCD1602显示出来的,包含了里程、计时时间、单价、总价的信息。连接电路如图4-7所示,显示地址如图4-8所示。图4-7 LCD1602接线图图4-9 LCD1602显示地址(1)LCD1602参数1. 3.3V或5V工作电压,对比度可调2. 内含复位电路3. 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能4. 有80字节显示数据存储器DDRAM5. 内建有192个5X7点阵的字型的字符发生器CGROM6. 8个可由用户自定义的5X7的字符发生器CGRAM(2) LCD1602管脚功能1602采用标准的16脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。LCD1602管脚如图4-9所示。图4-9 LCD1602管脚图LCD1602标准字库如图4-10所示。图4-10 LCD1602标准字库4.1.4 按键控制系统设计按键采用3个独立的按键,一个外部中断S4、一个暂停计价键S1、S2一个继续计价键,通过这三个按键可以来合理的设置出租车计价器暂停计价和继续计价以及是否按时间计价。S3键启动功能,与单片机的连接电路如图411所示。图4-11按键连接图4.2软件部分设计51单片机的程序设计语言主要有两种:一是汇编程序设计;二是C语言编程设计,两种程序设计语言都有各自的优点。用汇编语言编写和高级语言(C语言)比较起来节省空间,这样对于存储空间仅4Kb的芯片来说是极之有利的,51单片机能更高速的运行。C语言编写的程序,虽然不象汇编那样速度快、但程序简单易行、并且需要较小的存储空间。C语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。此外,C语言程序还具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的主流。本设计就是采用C语言编写的,由于采用模块化操作,使得程序在修改,执行的时候显得方便易行。4.2.1程序流程图本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我设计了整体程序流程图:在main函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态。通过槽型光电传感器测得出租车的路程以及速度数据,通过判断是否计费,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后LCD1602根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。程序流程图如图4-12所示。图4-12 程序流程图4.2.2内部运算的说明通过对实际车辆轮胎周长的计算,大部分出租车轮胎的周长都接近于2m,所以为了方便处理数据,程序内设定出租车轮胎周长为2m。当然,不可避免地存在着一些误差。每当出租车的轮胎每转一圈,程序变量b就会加1,通过内部其他变量来实现对路程的计算。对于车速的判断是利用每当轮胎转了一圈后,开始计时,到轮胎再转了一圈,用于判断速度的时间清零。一旦当时间超过某个值,程序就认定速度低于设定的值,开始低速状态计时,并收费。对于收费是这样做的:起步价为7元,当里程低于3公里时,收费7元,当里程大于3公里时,费用是每公里2元收费,再加上低速状态以及停车等待的时间计费,得到总价。第5章 调试、测试分析及结果5.1系统调试测试系统调试包括软件调试和硬件调试。硬件调试的任务是排除电路故障。软件调试是利用开发工具进行在线仿真调试。调试的一般过程如图5.1所示:系统调试硬件调试软件调试系统联调现场调试调试结束图5.1 系统调试流程图系统调试的一般过程是上电运行后观察其运行状态,数码管是否点亮等。软件调试先是各个模块、各个子程序分别调试,最后进行系统联机调试。5.1.1 软件调试编程工具C51语言STC89C52单片机的应用程序设计,使用C51语言进行程序设计虽然相对于汇编语言代码效率有所下降,但可以方便地实现程序设计模块化,代码结构清晰、可读性强,易于维护、更新和移植,适合较大规模的单片机程序设计。近年来,随着C51语言的编译器性能的不断提高,在绝大多数应用环境下,C51程序的执行效率已经非常接近汇编语言,因此,使用C51进行单片机程序设计已经成为单片机程序设计的主流选择之一。5.1.2程序调试工具KEIL本设计的软件都是在Keil u Vision 7.5上进行编写,编译,调试以及运行操作。5.1.3单片机仿真软件调试PROTEUS1.打开Proteus软件。2.选择file菜单下的 open design选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存。3.将用keil编译产生的hex文件下载到单片机中:双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。 4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。图5-2为仿真过程图,图5-3为仿真过程图。图中4个按键的作用分别是S1:暂停计价、计时、计里程,S2:继续计价、计时、计里程,当S1按下后才会去检测S2是否按下。S3:启动计价按钮。S4:暂停/继续计时按钮(外部中断)。图5-2 仿真开始图图5-3仿真过程图LCD1602中“S=000.0km”是所显示的里程;“2元/km”是所显示的单价;“007”代表的是起步价以及当前的总的费用;“00.00.18”指的是计时时间,如图5-4所示。图5-4 仿真过程中的LCD16025.2系统运行结果通过对系统的综合调试,计价器实现了任务书所要求的技术指标,系统可靠性相对较高。第6章 小结在本次设计中,我们采用STC89C55芯片为核心器件,设计出了简单的出租车计价器,能够实现显示总金额和总里程,按键控制清零。选题后,我便开始复习单片机方面的知识,也查阅、搜索了很多相关资料,进行总体设计与具体设计,同时也学习仿真软件Protues和编程软件KeilC。由于以前都采用汇编语言实现编程,对用C语言来实现单片机的编程不太习惯,花费了一些时间来熟悉C语言的编程。在设计开始,要形成流程图,它可以使设计有一定的逻辑性与严密性,使得设计思路明确。采用模块化的设计思想很重要,它方便编写、修改与调试,另外加上必要的注释,便于交流与理解。这次毕业设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。通过自身的努力以及相关图书资料的帮助,逐渐熟悉了KEIL、PROTEUS和C语言等软件的使用以及硬件检测过程中的一些小技巧。本次设计我学习到不少单片机的知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题。恳请各位老师批评指正,以使我在以后的学习和实践中加以改进和提高。毕业设计培养了我们独立思考问题,分析问题与解决问题的能力,在设计中我明白了理论与实践有很大的区别,理论上可以实现的,但要做具体的实物,却要多方面考虑。在老师的指导下,加上同学的讨论与分析,使所遇到的问题逐步得到解决。感谢我的指导老师老师,从课题的选择到项目的最终完成,老师都给予了我们细心的指导和不懈的支持。他严谨细致、一丝不苟的作风一直是我学习中的榜样,并将继续影响我今后的学习和工作。在此谨向老师致以诚挚的感谢。我们的大学即将结束,今天的成绩也一直以来关心、教导我的父母、老师密不可分,在此祝愿他们身体健康、工作顺利、万事如意!我再次感谢学校和老师给了我这次实践锻炼的机会,以及很多同学对我的帮助,为此我将尽最大的努力,并以最好的心态来回报社会,服务祖国。参 考 文 献1 孙俊喜LCD驱动电路、驱动程序设计及经典应用人民邮电出版社,2009 年4月2王静霞,杨宏丽,刘俐单片机应用技术(C语言版)第2版,电子工业出版社,2014年5月3于永,戴佳,刘波51单片机C语言常用模块与综合系统设计实例精讲第2版,电子工业出版社,2008年10月4张新强点阵LCD驱动显控原理与实践北京航空航天大学出版社,2010年3月5谭浩强C程序设计第4版,清华大学出版社,2010年6月6张靖武单片机原理应用与PROTEUS仿真电子工业出版社,2009年7杨恢先,黄辉先单片机原理及应用国防科技大学出版社,2003年8姚凯学单片机原理及应用重庆大学出版社,1998年9陈启美外设接口清华大学出版社,2002年10何小艇电子系统设计浙江大学出版社,2006年11华成英模拟电子技术基础高等教育出版社,2006年附录源程序:#include#includesbit RS=P07;/P0.7sb

温馨提示

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

最新文档

评论

0/150

提交评论