单片机出租车计价器的设计与制作毕业设计_第1页
单片机出租车计价器的设计与制作毕业设计_第2页
单片机出租车计价器的设计与制作毕业设计_第3页
单片机出租车计价器的设计与制作毕业设计_第4页
单片机出租车计价器的设计与制作毕业设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

目录第一部分设计任务4...............................................................4...................................................................4...............................................................5第二部分设计说明7...................................................................7...................................................................8软件设计.................................................................152.4作品特点第三部分设计成果3.1主程序图........................................................193.3佐证材料........................................................20第四部分结束语第五部分致谢...........................................................30第六部分参考文献11.设计任务要求1.1设计任务设计一款基于AT89S52单片机的出租车数字计价器,通过对传感器的检测,对数值进行处理和显示,实现车辆当前速度输出,当达到所设定的速度上限时并报警,以保证驾驶人员的人身安全。测速计主要由单片机主模块、传感器模块、报警模块和显示模块组成。1.2设计要求一、基本要求(1)能显示里程,单位为公里,最后一位为小数位。(2)能显示金额数,单位为元,最后一位为小数位。(3)可设定单程价格和往返价格,单程价格为2元/公里,往返价格为1.5元/公里。(4)起步公里数为3公里,价格为8元,若实际距离大于3公里,按规则3计算价格。(5)按暂停键,计价器可暂停计价,按查询键,可显示总等待时间。(6)利用光电转换器实现车轮转速的测量(7)利用单片机实现速度的计算和显示(8)测速范围:1–80KM/小时(9)显示精度:1KM(6)二、发挥部分(1)增加了空车指示功能,当无客人时,按下功能切换按键,空车指示灯亮。(2)增加实时时间显示,无论计价器工作或者空车,都能显示实时时间,便于时间提醒。(3)增加信息储存功能。可以储存等待时间,里程和金额。22方案的选取和软件仿真;硬件设计要设计电路、硬件仿真和制作电路板。2.1硬件设计方案实现多功能的出租车计价器设计。计价器的单片机系统框图如图2-1所示。它由以下几个部件组成:霍尔传感器单元、AT89S52单片机、金额显示、里程显示、电源。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程和价格的计算及显示功能。2.2软件设计方案本设计程序的采取C语言进行编写,使用KeiluVision4编译和Proteus7.4a仿真软件进行仿真调试。其中的里程计算和费用计算方案如下。1、里程计算(1)霍尔传感器对车轮进行信号检测,产生并输出脉冲信号到单片机;(2)单片机对传感器输出的脉冲信号进行计数,并进行km计算:每一个信3为N×2m=2N(km)2、费用计算(1)出租车的起步费为5元,并且3km内不需额外计价;(2)出租车行驶3km后,单程2元/km,双程1.5元/km。(3)等待收费的标准为5分钟算一公里;(4)暂停时计价器暂停计价,不收费用。41总体分析多功能的出租车计价器设计。2硬件设计本设计的硬件设计包括单片机AT89S52单元、测距单元、显示单元(数码管显示金额、等待时间和里程,指示灯对单双程切换指示、空车指示、等待计时指示)、按键单元、时钟单元和储存单元。2.1AT89S52单片机系统复位电路和晶振电路是AT89S52工作所需的最简外围电路。单片机最小系统电路图如图3-2所示。5AT89S52的复位端是一个史密特触发输入,高电平有效。RST端若由低电平上升到高电平并持续2个周期,系统将实现一次复位操作。在复位电路中,按一晶振和两个30pF电容组成系统的内部时钟电路。2.2测距单元本次设计我们选取了霍尔传感器来进行里程测量。有关的场合中使用。霍尔器件以霍尔效应为其工作基础。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装集成在同一个芯片上。本次设计选取了霍尔集成电路来测量里程。出来。6其原理示意图如下:U18是一种利用霍尔效应做成的半导体集成电路器件,它被设计在交变磁场中运行,特别是能在低电源电压和长时间运行温度范围可达到125℃。这种霍尔IC可用作各种类型的传感器(速度传感器、位移传感器、转速传感器等等),接的温度范围内(-20℃~125℃),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。为释放点“关”的磁感应强度。当外加的磁感应强度超过动作点BOP时,传感器输出低电平,当磁感应强度降到动作点BOP以下时,传感器输出电平不变,一直要降到释放点BRP时,传感器才由低电平跃变为高电平。BOP与BRP之间的滞后使开关动作更为可靠。施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压VCC,经稳压器稳压后加在霍尔电势发生器的两端,根据Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出7变换,使霍尔开关完成了一次开关动作。U18霍尔传感器有3个外接口,2个是电源的正负极接口,最后一个是脉冲信检测。其中,单片机的P3.2(INT0)引脚作为信号的输入端,采用外部中断0进行计数。车轮每转一圈,霍尔传感器就产生一个脉冲信号,根据霍尔效应原理,当片机的中断,对脉冲计数,当计数达到特定的次数时,里程就会增加,单片机对里程进行计算后,通过接口电路将计算好的结果传送到数码管并显示出来。2.3按键单元本设计的按键单元电路(如图3-5)仅有一个功能按键,也就是是否计价控制键,其功能是开启计价模式,并控制空车指示灯的亮灭。82.4时钟单元本设计采用基于DS1302的时钟电路(如图3-6)对时间进行实时显示,单片间提示。图2.5显示单元屏(LCD)用于数字型钟表和许多便携式计算机的一种显示器类型。LCD显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。液晶显示器(LCD)目前科技信息产品都朝着轻、薄、短、小的目标发展,在计算机周边中拥有悠久历史的显示器产品当然也不例外。在便于携带与搬运为前题之下,传统的显示方式如CRT映像管显示器及LED显示板等等,皆受制于体积过大或耗电量甚巨等因素,无法达成使用者的实低耗电量、体积小、还是零辐射点,都能让使用者享受最佳的视觉环境。这种显示器件的最大特点是:(1)微功耗,每个显示字符只有几个毫安。是所有显示器件中功耗最小的。9(2)与大规模集成电路直接匹配。(3)平板形结构,尺寸可以很大,也可以很小。显示的有效面积相对来说也是比较大的。显示图案的自由度也相当大(4)液晶显示器件属于被动型,不发光,靠调制外界光达到显示目的。因此,在阳光下也能看的很清楚,既没有刺目感,也不会引起视觉疲劳,更没有射线辐射,伤害视力。所以它是高信息量信息显示的理想器件。(5)而且工艺非常适应现代化规模生产。所以其生产成本不高。正因为它具有这些特点,所以在一切小型、便携、数字、智能化仪表中具有最大竞争力;在大信息量、彩色化、微型及巨型显示领域,液晶显示器件也具有很大的潜力。2、液晶显示器各种图形的显示原理(1)线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出10显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示5„„右边为2、4、6„„根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第完整汉字。3软件设计11序四个模块,下面对每一块进行介绍。3.1系统主程序流程图。初始化,并使硬件处于就绪状态。始化、中断向量的设计以及开中断、循环等待等工作。系统流程图如下图4-1。数据处理键盘扫描结束图3.2数据处理子程序每当霍尔传感器输出一个低电平信号就使单片机中断一次,在计数中断服12程大于3公里,则执行公式:金额=(里程-3)*单价+5;否则,执行公式:总金额=起步价。程序流程图如图4-2所示。否是元3.3键盘扫描子程序主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。3.4Proteus软件仿真本设计需要用KeiluVision4对C51程序进行编译,生成“.hex”文件,如图5-1:13图在Proteus软件中画出仿真电路(如图5-2),把KeiluVision3编译后生成的“.hex”导入到单片机中,按“运行仿真”键进行仿真。3.4、作品特点富的IO端口,及其控制的灵活性,实现基本的里程计价功能和单双程价格调整、时钟显示功能等等。具有性能可靠,电路简单、成本低、扩展空间大等特点。143.1主流程图153.2硬件电路#include<reg52.h>bitdispflag;bitbegin_signal;//开始标志bits_or_d;//单程还是往返标志uinttimes;//定时次数uintpulse_counter;uintrecord;uints,m;//里程数s和金额muintt;//等待时间160x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//声明区for(i=0;i<x;i++)for(j=0;j<=150;j++);voidinit(){TMOD=0x01;EA=1;ET0=1;TR0=1;if(dispflag==0)P0=0x00;counter=counter*10/rate;if(s_or_d==0)m=80+2*(counter-30)+t/300;elsem=80+1.5*(counter-30)+t/300;17select(0,1,0);P0=table[gewei]|0x80;delay(2);select(1,0,0);P0=table[shiwei];delay(2);select(0,0,0);P0=table[baiwei];delay(2);xiaoshu=m%10;gewei=(m/10)%10;shiwei=(m/100)%10;baiwei=(m/1000)%10;select(1,1,1);//显示金额数目P0=table[xiaoshu];delay(2);select(0,1,1);P0=table[gewei]|0x80;delay(2);select(1,0,1);P0=table[shiwei];delay(2);select(0,0,1);P0=table[baiwei];delay(2);P0=0x00;xiaoshu=t%10;gewei=(t/10)%10;shiwei=(t/100)%10;baiwei=(t/1000)%10;select(1,1,0);//显示等待时间P0=table[xiaoshu];delay(2);select(0,1,0);P0=table[gewei];delay(2);select(1,0,0);P0=table[shiwei];18delay(2);select(0,0,0);P0=table[baiwei];delay(2);if(begin_signal==1)}if(times==39)//1stimercompletedtimes=0;if((pulse_counter-record)<5)//如果每秒脉冲record=pulse_counter;P20=a;P21=b;P22=c;}{uinti;19for(i=0;i<4800;i++);temp=temp&0x0f;while(temp!=0x0f)temp=P3;temp=temp&0x0f;}temp=temp&0x0f;while(temp!=0x0f)while(temp!=0x0f){temp=P3;20temp=P3;temp=temp&0x0f;}temp=P3;temp=temp&0x0f;while(temp!=0x0f)while(temp!=0x0f){case0xd7:num=12;break;temp=P3;temp=temp&0x0f;21}temp=temp&0x0f;while(temp!=0x0f){while(temp!=0x0f)temp=P3;temp=temp&0x0f;}returnnum;}voidsingleway(void)//单程开始函数begin_signal=1;begin_signal=1;s_or_d=1;}22voidpause(void)//暂停函数begin_signal=0;pulse_counter=0;t=0;dispflag=1;}voidcheck2(void)//查询函数dispflag=0;voidsentence(void)//判定键盘值{if(keynum!=0){init();divide(pulse_counter);keynum=keyscan();sentence();}}23总结在本次设计中,我们采用AT89S52芯片为核心器件,设计出了简单的出进行总体设计与具体设计,同时也学习仿真软件Proteus和编程软件KeiluVision3。由于以前都采用汇编语言实现编程,对用C语言来实现单片机的编程不太习惯,花费了一些时间来熟悉C语言的编程。在设计开始,要形

温馨提示

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

最新文档

评论

0/150

提交评论