欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    出租车计价器设计资料.docx

    • 资源ID:4798434       资源大小:521.74KB        全文页数:29页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    出租车计价器设计资料.docx

    1、出租车计价器设计资料摘要近年来,伴随着出租车的普及,出租车计价器也应运而生。出租车计价器作为出租车的一个重要组成部件,能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示出乘车费用。因此,一个小小的出租车计价器关系着司机与乘客的切身利益,是供求双方交易透明化的体现。本课题就旨在设计一种出租车计价器,使其能够很好地完成以下功能:(1)能显示里程,单位为公里,最后一位为小数位。(2)能显示金额数,单位为元,最后一位为小数位。(3)可设定单程价格和往返价格,单程价格为2元/公里,往返价格为1.5元/公里。(4)车速5公里/小时的时间累积为总等待时间,每5分钟等待时间相当于里程数增加1公里。

    2、(5)起步公里数为3公里,价格为5元,若实际距离大于3公里,按规则3计算价格。(6)按暂停键,计价器可暂停计价,按查询键,可显示总等待时间。作品由四部分构成,分别是主控模块、数据采集模块、显示模块和按键模块。其中,主控模块采用STC89C52单片机作为主控芯片,利用电机转动来模拟出租车轮胎的转动,利用霍尔传感器来对出租车的行驶里程和速度进行数据收集,显示模块可以实时显示乘客的乘车费用,通过按键可改变不同的计费方法。关键词:出租车计价器 STC89C52 霍尔传感器目录1 概述 1.1引言 3 1.2设计要求 3 1.3设计目的与意义 42 系统总体方案及硬件设计 2.1 系统原理42.2单片机

    3、介绍 42.3最小系统 42.4数据采集模块 52.5显示模块 52.6按键模块 63 软件设计 3.1总体流程 7 3.2数据计算部分 7 3.3键盘扫描部分 8 3.4显示部分 94 Proteus软件仿真 12 4.1 Proteus软件介绍12 4.2调试与测试125课程设计体会 14参考文献 14附1:源程序代码 15附2:系统原理图 231 概述1.1 引言单片机课程设计是单片机技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。出租车保证乘客快速、轻松地到达目的地,已经成为城市交通的重要组成部分。从加强行业管理以及减少司机与乘客纠纷

    4、的角度考虑,一台性能良好的计价器是很有必要的。采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件较多,故障率较高,因此在实现上有一定的困难。而采用单片机作为核心的设计,相对来说容易实现并且功能强大。要将出租车计价计价系统产品化,应该根据客户不同的需求进行不同的设计,以便根据实际情况改变计价模式。1.2 功能要求(宋体、小四,固定值22磅。以下相同要求)(1)能显示里程,单位为公里,最后一位为小数位。(2)能显示金额数,单位为元,最后一位为小数位。(3)可设定单程价格和往返价格,单程价格为2元/公里,往返价格为1.5元/公里。(4)车速5公里/小时的时间累积为总等待时间,每5分钟等

    5、待时间相当于里程数增加1公里。(5)起步公里数为3公里,价格为5元,若实际距离大于3公里,按规则3计算价格。(6)按暂停键,计价器可暂停计价,按查询键,可显示总等待时间。1.3 设计目的与意义汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有应用价值的。2 系统总体方案及硬件设计2.1 系统原理出租车计价器的计价结果是乘客的乘坐方式与行驶路程共同决定的。例如单程乘坐与往返乘坐的价格是不同的,这可在软件上设置不同的参数实现。而行

    6、驶路程可通过出租车的车轮周长与一段时间内的车轮旋转圈数相乘得出。现利用电机的转片的旋转来模拟车轮的转动,霍尔传感器可感应出附着小磁铁的旋转圈数并将该信号传至STC89C52单片机中处理后便可计算出当前的行驶路与速度(低于5KM/H)时进入等待模式。键盘通过扫描方式实现计价模式切换、暂停/启动、显示模式切换等功能。作品主要由四部分构成,分别是主控模块、数据采集模块、显示模块和按键模块。图12.2 单片机介绍课程设计中采用的主控芯片STC89C52型单片机,它具有如下优点:(1)拥有完善的外部扩展总线,通过这些总线可方便地扩展外围单元、外围接口等。图2(2)该单片机内部拥有4K字节的FLASH R

    7、OM程序存储器空间和256字节的RAM数据存储空间,完全可以满足程序的要求。由于该芯片可以擦写,故可重复使用。如果更改程序内容,可将芯片拿下重新烧写。(3)该单片机与工业标准的MCS51型机的指令集和输出引脚兼容。2.3 最小系统本系统主要由STC89C52单片机,振荡电路,复位电路等组成,作为核心来控制整个系统的正常运作。图32.4 数据采集模块霍尔传感器以霍尔效应为工作机理,作为一种磁感应传感器,可灵敏地检测到磁场及其变化,因而经常在与磁场有关的场合用到它。霍尔传感器有着众多优点,如结构牢固、重量轻、体积小、寿命长、功耗小、频率高、耐震动、安装方便、不易腐蚀等。数据采集模块便是将霍尔传感器

    8、的集成电路安装在车轮上方的铁板上,将磁铁安装在车轮上,旋转的车轮将磁铁对准集成电路时,霍尔传感器会输出一个脉冲信号,送至单片机,经过单片机的计算处理,将行驶路程送到显示模块显示出来。其原理示意图如图所示。霍尔传感器图42.5 显示模块本设计显示模块使用的是四位八段共阴极数码管图52.6 按键模块本设计采用2*3按键组,共6个按键。其功能分别为:Key1:清零键Key2:程切换显示等待时间和里程Key3:往返计费方式Key4:暂停键Key5:切换显示金额与里程其原理图如图所示:图63 软件设计3.1 总体流程 系统的流程图如图所示图73.2 数据计算部分计算程序根据里程数分别进入不同的计算公式。

    9、如果里程大于3公里,则执行公式:总金额=起步价+(里程-3)*单价+等待时间*等待单价;否则,执行公式:总金额=起步价+等待时间*等待单价。对于里程数采用外部中断零来记录,车轮没转一周,霍尔传感器发一个脉冲然后进入中断子程序,对相应的变量进行更新。子程序如下:void jisuan() distance=round/10+wait_ten_ms/3000; /车轮转57圈为100m,等待时间30s为100m if(distance30) cost=price*(distance-30)/10+50; wait=minute*100+second; 3.3 键盘扫描部分键盘扫描才用查询方式,当有

    10、按键按下时就对相应的标志进行取反,或调用其他子函数,在消抖过程中,这里将数码管显示程序潜入以保证显示的稳定。子程序如下:void keyscan() H1=0; H2=1; if(L1=0) delay(5); if(L1=0) key0=0; initial_data();key0=1; if(L2=0) delay(5); if( L2=0 )key1=0; key1_flag=!key1_flag; key1=1; if(L3=0) delay(5); if(L3=0) key2=0;key2_flag=!key2_flag; key2=1; H1=1; H2=0; if(L1=0) d

    11、elay(5); if(L1=0) key3=0; zanting(); key3=1; if(L2=0) delay(5); if( L2=0 ) key4_flag=!key4_flag; led1=!key2_flag; / 指示,单程还是往返,灯低电平点亮; 往返亮; led2=key3_flag; / 指示,暂停时亮; led3=flag; / 指示是否等待; led4=key1_flag; /切换指示,显示路程还是等待时间; led6=key4_flag; /切换指示,熄灭代表金额 delay1(); 3.4 显示部分显示程序利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉

    12、和人眼暂留现象,即可实现显示。本设计采用两个四个一组的八位数码管来显示,一组显示金额,另一组显示路程与等待时间配合按键来切换。数据端都用单片机P1口,片选端分别接在P2口的高四位和低四位。子程序如下:void led_show() /-显示路程或者等待时间- if(!key4_flag) if(key1_flag) fenli(distance); else fenli(wait); P0=0xf7; P1=dulgewei; delay1(); P0=0xfb; if(key1_flag) P1=dulshiwei|0x80; /如果是路程,点亮小数点儿 else P1=dulshiwei;

    13、 /如果是时间,不需要点亮小数点儿 delay1(); P0=0xfd; if(key1_flag) P1=dulbaiwei; else P1=dulbaiwei|0x80; delay1(); P0=0xfe; P1=dulqianwei; delay1(); P0=0xff; /-显示价格- if(key4_flag ) fenli(cost); P0=0xf7; P1=dulgewei; delay1(); P0=0xfb; P1=dulshiwei|0x80; delay1(); P0=0xfd; P1=dulbaiwei; delay1(); P0=0xfe; P1=dulqian

    14、wei; delay1(); P0=0xff; 4 Proteus软件仿真4.1 Proteus软件介绍Proteus软件是来自英国Labcenter electronics公司的EDA工具软件 它组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被电子世界在其对PCB设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终

    15、端等动态外设模型来对设计进行交互仿真。 4.2 调试与测试利用软件画出整体电路图如下图所示。通过调试,我们很好地实现了对整个系统的模拟,同时,我们做了一些测试,来检验本设计的精确程度。假定乘客的乘车方式为单程,没有等待时间,则理论与实际的乘车费用对比如下表所示。2KM4KM6KM8KM10KM理论(元)57111519实际(元)57111519设置乘车方式为双程时,没有等待时间,理论与实际乘车费用对比如下表所示。2KM4KM6KM8KM10KM理论(元)56.59.512.515.5实际(元)56.59.512.515.5下面设置乘车方式为单程,假设汽车行驶5KM后进入等待,之后的理论与实际乘

    16、车费用之比如下表所示。03Min5Min7Min9Min理论(元)910.21112.515.5实际(元)910.21112.515.5经过以上三个表的对比,可以看出,本设计准确可靠,很好地实现了实验的功能要求。5 课程设计体会作为电气工程及其自动化专业的大三学生,我们觉得做单片机课程设计是十分有必要的。在已度过的大学时间里,我们大部分是仅仅学习了专业课的理论知识,但实践能力却没有什么提高。如何把专业课理论知识运用到实践中去呢?课程设计为我们提供了良好的实践平台。在做本次课程设计的过程中,为了让设计完善,我们查阅了大量的已有设计资料了。我们发现,要做好一个课程设计,就必须做到:在设计程序之前,

    17、对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不

    18、够深刻,掌握得不够牢固。我们在小组中互相讨论,交流经验,遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大,这也激发了我今后努力学习的兴趣,我想这将对我们以后的学习产生积极的影响! 参考文献1.何希才,传感器及其应用电路,北京,电子工业出版社2.邱关源,电路,北京,高等教育出版社3.孙余凯,传感器应用电路300例,北京,电子工业出版社4.余发山、王福忠,单片机原理及应用系统,徐州。中国矿大出版社附1 源程序代码#include #define uchar unsigned char #define uint unsigned int uchar qi

    19、anwei,baiwei,shiwei,gewei; unsigned char code dul10 = 0x3f,0x06,0x5b,0x4f, /03 0x66,0x6d,0x7d,0x07, /47 0x7f,0x6f ; /段码表示0-9 uint tt,aa,round,distance,cost,price,wait; /定义路程、价钱、等待时间及一些全局的变量等; uchar dengdai,second,minute; unsigned long wait_ten_ms; /记录等待时间多少个10ms/按键的定义,所有按键按下去为低电平sbit key0=P24; /清零sb

    20、it key1=P25; /切换路程与等待时间sbit key2=P26; /单程还是往返设置sbit key3=P34; /暂停按钮sbit key4=P24; sbit led1=P20; / 双程 sbit led2=P21; / 暂停sbit led3=P22; / 堵车sbit led4=P23;sbit led6=P25; / 切换sbit w1=P00;sbit w2=P01;sbit w3=P02;sbit w4=P03;sbit L1=P05;sbit L2=P06;sbit L3=P07;sbit H1=P36;sbit H2=P37;bit key1_flag; /由于按

    21、键会自动复位,这个为标志位bit key2_flag; bit key3_flag;bit key4_flag;bit flag; /初始化函数void initial_data(void) P2=0XFF; P0=0XFF; distance=0; cost=0; second=0; minute=0; wait_ten_ms=0; key1_flag=1; /清零 key2_flag=0; /单程or往返,接指示灯; key3_flag=1; /暂停,接指示灯; key4_flag=0; flag=0; round=0; dengdai=0; led1=1; /双程指示 led2=1; /

    22、暂停指示 led3=1; /堵车指示 led4=1; / 等待时间切换标志 /暂停程序void zanting(void) if(key3_flag) EX0=1; /关闭中断和定时器 TR0=1; else EX0=0; TR0=0; key3_flag=!key3_flag; /计算数据处理 void jisuan() distance=round/10+wait_ten_ms/3000; /车轮转57圈为100m,等待时间30s为100m if(distance30) cost=price*(distance-30)/10+50; wait=minute*100+second; /显示的

    23、辅助程序,分离一个数的各个数字 void fenli(uint temp) /数据的分离处理 if(temp9999) temp=9999; qianwei=temp/1000; baiwei=temp/100%10; shiwei=temp%100/10; gewei=temp%10; /延时约1ms,数码管显示时使用void delay1(void) uint i; for(i=0;i0;i-) for(j=340;j0;j-); /键盘的扫描 void keyscan() H1=0; H2=1; if(L1=0) delay(5); if(L1=0) key0=0; initial_da

    24、ta();key0=1; if(L2=0) delay(5); if( L2=0 )key1=0; key1_flag=!key1_flag; key1=1; if(L3=0) delay(5); if(L3=0) key2=0;key2_flag=!key2_flag; key2=1; H1=1; H2=0; if(L1=0) delay(5); if(L1=0) key3=0; zanting(); key3=1; if(L2=0) delay(5); if( L2=0 ) key4_flag=!key4_flag; led1=!key2_flag; / 指示,单程还是往返,灯低电平点亮; 往返亮; led2


    注意事项

    本文(出租车计价器设计资料.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开