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

下载本文档

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

文档简介

1、毕业设计报告 题 目:基于单片机的出租车计价器的 设计与实现 院 系: 专 业: 班级学号: 学生姓名: 指导教师: 成 绩: 2014 年 06 月 25日摘 要出租车计价器的硬件设计以STC89C52单片机为核心控制元件,利用灵敏的光电传感器对车轮的转数进行采集从而对行驶距离进行测量,输出采用LCD12864液晶显示器作为显示器件,可以显示路程信息,还可以设置计价的费用、等时费用、起价费用等,可以适合不同的车型。系统软件设计的主要部分有:主程序模块、运行里程计数中断程序、定时中断程序、中途等待中断程序,显示子程序和键盘程序。本电路设计的计价器所具备的重要方面有:显示数据电路、光电传感器电路

2、、按键输入电路、单片机最小系统电路与报警模块构成。本电路设计的里程表不但能实现基本的里程计数,而且还能设置轮胎的直径,可以计算里程并能够实时显示乘客所花费的价格,同时使用LCD12864作为显示器件,方便使用。关键词:单片机;光电传感器;液晶显示器AbstractWith STC89C52 Single-chip Microcomputer (SCM) as the core hardware control elements, the taxi meter uses sensitive photoelectric sensors to count the number of revoluti

3、ons of the wheel so as to measure the distance. In terms of output, LCD12864 display is leveraged as the display device, which can set denominated costs, isochronous costs, and starting fees and fit different models.The software design for the system mainly includes the main program module, mileage

4、count interrupt service program, timer interrupt service program, mid-way wait interrupt service program, display subroutine service program and keyboard service program.The main function of the meter designed in this circuit mainly contains data and photoelectric sensor display, key input circuit,

5、smallest single-chip module circuit and alarm system. The meter can not only achieve the basic mileage count, but also be able to set the diameter of the tire, calculate the mileage and display the real-time price passengers need to pay. Meanwhile, LCD12864 is used as the display device and is easy

6、to use. Keywords: Single-chip Microcomputer; Photoelectric Sensor; Display 目 录 TOC o 1-3 u 1 硬件部分设计 PAGEREF _Toc19931 11.1 硬件结构设计1 电源电路介绍21.3 电平转换电路21.4 液晶显示接口电路. 3 彩灯驱动电路. 31.6 按键部分电路. 41.7 最小系统部分电路. 51.7.1 复位电路设计. 61.7.2 晶振电路实际. 62 软件部分设计72.1 主程序模块. 72.2 中断子函数8 2.3 显示子函数. 93 系统测试10 3.1 硬件部分测试.10 3

7、.2 软件部分测试.11 3.3 综合测试. 11 结 论13参考文献14附录 A. 15附录 B16附录 C17毕业报告本装订顺序201 硬件部分设计本章节主要介绍此次设计硬件方面的实现过程和组成原理部分,主要讲解了硬件各个部分电路的组成与原理的分析,重点线路连接。在本次出租车计价器的整体设计中,所有的硬件电路方面的设计都是使用Protel 99 SE PCB设计软件来完成。1.1 硬件结构设计该系统包含了信号采集处理模块、芯片微处理器、显示模块、系统软件等重要部分。信号采集处理模块是以光电传感器为核心的器件,可以将不同的转速信号转换成相应的脉冲信号,并将其信号送达到单片机的T1引脚处;在进

8、行单片机的定时/计数设置时,在常规状态下使用必须保证其内部的定时器/计数器Timer0处于定时状态,Timer1处于在计数状态,然后使用内部定时器T0进行控制脉冲输入引脚T1,如此就可以比较精细地检测到在一个设定时间内加到单片机T1引脚的脉冲数,车前进一个轮子长度用一个脉冲数来表示,之后对统计的脉冲数进行的计算处理就可得到相应的里程和速度数据,且将里程值进行储存,将数据送到对应的显示模块进行数据显示。其系统结构原理框图如图所示。系统结构原理框图由图可以看出,系统结构主要由五个方面组成,即显示电路,复位电路,晶振电路,光电传感电路和按键电路;其中光电电路作为整个系统的传感器部分,用来检测车轮的输

9、入脉冲,显示电路作为和谐友好的人机交互界面,可以显示出行使的路程值,等待时间,总价格等计价器所需要的信息。通过C语言的编程将这五个主要部分合理结合,构成一个集设置、检测、显示,蜂鸣提示与按键功能为一体的出租车里程计价表,其中复位与晶振电路为单片机的外围最小系统电路。 电源电路介绍 图1.2 电源电路图电源部分电路图如上图所示,J1为Mini-USB接头,使用要接入5V的直流充电器供电,作为本设计中供电电源部分,SK为自锁双掷开关,用来开关整个板子的供电,C1为容量为10uf的胆电容,用来作为输入电源部分的稳压滤波,输出端为C2、C3作为稳压滤波电容,其中UP1为稳压期间,该芯片可以将输入的电压

10、转换为的直流电压输出,该芯片为线性稳压器,R1、LED1作为电源输入正常指示灯,LED1为发光二极管,压降在左右,R1为限流电阻3K,用来控制发光二极管电流不要过强而烧坏。 电平转换电路图1.3 电平转换电路因为单片机正常运行的供给电压为5V,而液晶显示器运行在电压下,所以单片机与液晶的电平不能够兼容1。为了能够正常的进行通信,需要将单片机5V的电压转换为输出,以此来与液晶进行正常通信,74HC573位电平转换芯片可以将输入端的5V电压转换为芯片供电电压的电平输出,这样就能够使两个原本不匹配的电平都转换为进行正常的通信了。 液晶显示接口电路图1.4 液晶屏显示接口电路电平转换完成后,单片机就可

11、以发送指令与显示器件进行通信了,其中通信的方式为SPI接口通信,SI为数据引脚,SCK为时钟引脚,通过这两个引脚向液晶显示器发送数据或者命令来控制其相应显示。由AO接口控制发送的数据为命令数据或者为显示数据,REST为复位引脚,在正常工作时候REST引脚需要输入高电平信号,CS为片选,只有在该引脚为低电平时才可以对液晶显示器进行命令与数据的控制输入。本设计中使用点阵液晶LCD12864,他可以显示四行总64个字符或者数字,同时可以将显示信息进行字符的标识,使用方便,简单,稳定性好2。 彩灯驱动电路图1.5 彩灯驱动电路如图所示,本设计在驱动电路中使用的彩灯有三个,LED2作为按键指示灯,LED

12、3作为运行开始指示灯,LED4作为计价器模拟运行过程中停车等待指示灯,三个彩灯由单片机的I/O口直接进行控制,其中电阻作为限流电阻,发光二极管的压降为,供电电压为,电阻上的压降为供电电压与二极管压降之差即为,由此得到发光二极管电流为,为750uA电流,则三个管的电流为。 按键部分电路在整体设计中的键部分设计很关键,本计价器设计所采用的按键为行列式按键,一般情况下如若设计中用到按键的数量较多的时候,为了最小程度的占用I/O的数目,通常选择使用行列式(也称矩阵式)键盘。对于行列式键盘,每一条行线和列线在交叉部分并不能直接连接,而是要接入一个按键来将其连接起来,这样比直接将端口线相连的方法要多出一倍

13、的数目。比如一个端口组成的44的16按键,如图所示。图1.6 44按键部分电路图在设置行列式键盘(也称矩阵式)按键的时候,要将按键点要设置在行线和列线的交点处,不能随便设置。将行线通过上拉电阻连接到+5V电压上。在没有按下按键的时候,行线所处高电平,在按下按键时,行线的电平状态将会与其相接的列电平状态保持一致。由于行列式键盘的行线,列线不能为一个键单独使用,而是被很多按键所用,每个按键都会影响其所处的行线电平与列电平,所以要处理好行线与列信号的配合才能够精确确定闭合键的位置。例如用判断2号按键是够按下的方法来说明如何判定一个按键是否被按下。在按下2号键时,其所处的行线电平会与其所在处的列电平是

14、一样的,而在2号键未被按下时其行线处于高电平的状态。如果将所有列电平状态设置为低电平,则按键所在的行线电平也会与列电平一样处于低电平状态,所以根据这样的电平变化就能够判断此行是否有按键被按下。但在确定一行有按键被按下时并不能确定是2键被按下,因为同一行的1键或3键或0键被按下是也会产生同样的电平变化结构。所以在行线处于低电平时只能得知有按键被按下。可以采用扫面方法来确定是哪一个按键被按下。即在某一时刻只让第一列线的状态处于低电平,别的列电平状态处于高电平,若是以为2键被按下,那么第一行线与第一列线保持一致都处于高电平状态;再将第二列线设置成低电平状态,其它列电平被设置高电平状态时,会发现第一行

15、线依旧处于高电平;同样的设置第四列线会发现同样的结果。只有在设置第3列线为低电平状态时,第一行线的电平会处于低电平状态,所以能够判断是2号键被按下。上述识别具体按键的方法也称为扫描法,即先把某一列电平设为低电平,其余各列置为高电平,检查各行线电平的变化,如果某行线为低电平,则可确定次行此列交叉点处的按键被按下3。本设计使用的按键电路图如下图1.7所示,本设计中使用的按键个数为8个使用的按键为S1到S8。图1.7 按键电路图 最小系统部分电路图1.8 最小系统电路图 复位电路设计微处理器在上电、掉电和低压供电时,监控器产生的脉冲信号可以确保微处理器达到上电自动复位的功能。在供电的电压较低的时候,

16、可以避免CPU的失控。电源电压Vcc上升到1V时,RESET引脚变在变为低电平后会随着Vcc的不断升高将保持着低电平的状态。当Vcc的值低于复位门限电平时,RESET引脚会顿时变成低电平。当Vcc的值高于复位门限电平时,RESET引脚不会突然变为一个较高的水平,而是形成一个复位脉冲宽度(200ms左右)的滞后。就算Vcc的复原并且值比复位门限电平时高的时候,RESET引脚也不会立刻变成高电平,仍是形成一个复位脉冲的宽度的延迟。在掉电的时候,只要Vcc低于复位门限电平,RESET便立刻变到低电平,本设计中的复位电路为R6、CF1、SF1组成。 晶振电路设计石英HYPERLINK :/baike.

17、baidu /view/51869.htm t _blank晶体振荡器是利用石英晶体(二氧化硅的结晶体)所具有的HYPERLINK :/baike.baidu /view/249682.htm t _blank压电效应制成的一种谐振HYPERLINK :/baike.baidu /view/481400.htm t _blank器件,其大致的基本构成是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为HYPERLINK :/baike.baidu /view/609350.htm t _blank电极,在每个电极上各焊一根引线接到

18、管脚上,再加上封装外壳就构成了/261709.htm t _blank石英晶体谐振器,简称为石英晶体或晶体、晶振4。 本设计中单片机的芯片所用的晶振电路是由两个20P的电容和一个12MHZ的晶振组成,可以为单片机提供外来的震荡周期,改变电容的大小和晶振的大小可以达到转变单片机运行的周期的结果。软件部分设计程序部分使用编程软件为Keil Vision4,使用C语言进行编写。所有程序的流程图设计均使用的Microsoft公司出品的Visio绘图软件来完成。 主程序模块主程序流程图如下图2.1所示。开 始初始化数据S3按下YS2按下N计价器运行(白天)里程到设定值金额1元Y里程再加500mYNN设置

19、晚上单价计价器运行(晚上)按S4NY停止计价显示金额和里程结束Y图2.1 主程序流程图由图2.1可以看出在主程序模块中芯片接电后,先执行液晶屏LCD12864初始化函数,将液晶的各项参数进行初始化设置然后打开显示。S3键按下后执行夜间计价模式,S2键按下后执行的是白天计价模式。计价器默认的起步价为8元,起步价可以自己调控,范围在120元之间。默认里程1km内都是遵循起步价,当超过设定值时每增加500m,计价器总金额就增加1元并通过液晶显示屏显示出来。程序内包括循环,清零等程序部分,当一次计价完成后可以通过清零复位回到初试界面重新准备下一次计价。2.2 中断子函数在中断子函数程序中,定时器计数5

20、0ms进行一次中断,共20次后秒针加一,秒针满数后分针加一。下面是中断子函数程序流程图2.2。开 始现场保护重计计数器值开中断NY数据显示缓冲调用子函数恢复现场及保护结 束图2.2 中断子函数流程图 显示子函数本设计中LCD12864为英文显示并且主要有4个子程序服务程序部分:金额价格子程序、里程显示子程序、时间显示子程序、价格调节子程序。显示子程序流程图如图2.3所示。开 始LCD初始化LCD写命令LCD运行Dispflag是否为真等待时间显示数据接受里程,价格显示数据转换字型码输出显示延 时返 回NY图2.3显示子程序流程图3 系统测试系统测试是设计中非常关键的一个步骤,本次设计主要包含系

21、统的硬件、软件和系统的总体仿真运行测试。硬件的测试主要通过使用万用表对各个焊接部分进行测试来判断电路是运行正确;软件方面的测试主要是通过KEIL编程软件对各个子程序模块进行调试检测;系统整体的仿真测试则是将他们综合起来,将硬件软件结合,通过观察采集数据看其设计是否运行达到期望值。 硬件部分测试在完成整个设计的过程中,硬件部分的焊接方面是非常重要的,虚焊漏焊以及焊接点连线接触都会造成设计的运行失败。除了焊接部分的注意外设备部件的好坏以及PCB是否做好都影响着设计成败。在本次系统硬件的测试中遇到了一些问题,在思考和多次检测后做到了相应的调整,一下为主要的问题:第一, 按操作相关按键时液晶屏无法显示

22、界面解决方法:在检查软件系统没有错误后,发现按键部分灵活性很差需要多次按下才能使屏幕显示,在换过新的按键后发现液晶屏显示正常。第二,在按键正常的情况下液晶屏显示内容不完整解决方法:在查找电路板都正常的情况下发现是液晶屏的损坏导致显示一半内容,在更换液晶屏后故障消失。由于硬件电阻,电容等设备容易受到温度等外界环境的影响,所以在不同的环境调试时可能会出现一些不稳定情况都属于正常的现象。正常显示时的初始情况如图3.1所示。图 硬件初始显示图 软件部分测试在硬件测试正常的情况下进行软件测试主要是对系统的各个子程序进行测试,查看是否有程序错误的地方而影响系统的运行。软件设计是比较复杂的,要通过多次不断尝

23、试,将各部分程序进行反复调用检测,如按键部分程序,延时程序等才能解决。软件程序编写调试界面如图3.2。图软件调试界面 综合测试综合测试部分是将软硬件结合,各个模块互相作用,通过数据采集模拟现实运行。计价器收费标准:8元起价/一公里,超过设定值后每500米加1元。连接电源后LCD12864液晶显示屏初始化显示为:第一排RunTime:显示当前运行时间00:00:00(时分秒)。第二排StopTime:显示的是运行过程中等待时间。第三排RunDist:显示的是计价器启动后所走的里程数(单位km)。第四排RunPric:显示的是总金额(个、十、百)。S1键按下:进入设置界面。S2键按下:调整里程数。

24、S3键按下:调整增加金额数。S4键按下:调整等待时间增加金额数。如以起步价10元进行模拟运行。按下S1进入设置界面,起步价10元,里程1公里,等待时间每两分钟1元,每500m总金额加1元。设置完后按下S2键进入白天计价模式,S3键是夜间计价模式,夜间计价起步价比白天高1元。LED2亮灯表示按键成功,LED3亮是进入计价运行。进入运行时按下S5键是进入等待停车状态,LED4亮,此时运行时间继续增加,等待时间增加,里程数保持不变,当两分钟后计价器总金额会增加一元。模拟运行数据如表3.1所示。表3.1行驶路程与金额测试行驶路程(km) 1 3 4等待时间(min) 2 4 6 8 10白天总金额 1

25、1 13 16 18 21 夜间总金额 12 14 17 19 22结 论本课题的研究工作经过部分和整体的反复测试已经基本达到预期的要求,通过了最后的硬件和软件的模拟调试。总结起来有如下几点:第一,本课题实现了通过STC89C52单片机的设计来完成出租车计价器的功能,做到可以在120元内自行调整起步价的高低,在起步价格内所行驶的公里数的进行调整,超过固定公里数()以及等待相应时间(2分钟)来增加计费的数额,方便扩展,可靠性强,接近现实。第二,系统硬件设计通过使用重要的芯片主要有STC89C52、HC573、AMS1117等芯片设计了包括电源电路、电平转换电路、液晶显示接口电路、彩灯驱动电路、按

26、键电路、复位电路和晶振电路等。第三,软件设计包括系统的中断延时,液晶显示器初始化、屏幕清零显示数据、显示液晶静态页面、定时器初始化、数据初始化、按键处理函数、处理计价函数以及加工和处理刷新函数等。运用本计价器作为实际计价设备,在操作方面要根据当地具体的情况来设置,白天宇晚上的起步价可以伺机自己通过按键S3,启动计价器后里程数和金额都会随着时间来变化,在运行的过程中可以通过按键S5来模拟停车等待时间,具体等待时间和相对时间内所增加的金额也可以自己调整。本设计的主要特点是价格低廉,操作方便,扩展性强,方便加入其他的驱动电路来扩大其功能。但是本次设计仍有不足之处,若用于实际推广仍需要根据具体需要进行

27、相应部分的完善与改进。参考文献1 郑毛祥单片机应用基础M北京:人民邮电出版社,2007:35-42.2 洪微微型计算机与应用系统设计M上海:华中工学院出版社,2003:44-52.3 于海生等微型计算机控制技术M北京:清华大学出版社,1998:29-364 阎石数字电子技术基础M北京:高等教育出版社,2007:17-21附录 A程序源代码:/* 主函数*/main( void )/-初始化12864LCD_Initial( );/-清屏幕LCD_Clear_Screen( );/-显示静态界面DisPlay_FsmcData( 1 );/-定时器初始化设置Init_Timer( );Set_User.Run_Start = 8;Set_User.Run_Nkm = 55;Set_User.Run_500M = 1;Set_User.Run_Delay = 1;/-LCD_String_Char( 1, 1, Temp_Buffer0 );while(1)/-处理按键函数Delay_Key( );/-处理计价函数Deal_Count( );/-处理显示刷新Deal_DisPlay( ); /* 按键函数*/#include delay.h#define KEY

温馨提示

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

评论

0/150

提交评论