出租车自动计费器设计_第1页
出租车自动计费器设计_第2页
出租车自动计费器设计_第3页
出租车自动计费器设计_第4页
出租车自动计费器设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、课 程 设 计 任 务 书题目 出租车自动计费器设计 专业、班级 学号 姓名 主要内容、基本要求、主要参考资料等:一、主要内容: 熟悉单片机应用系统的设计方法和规范,达到综合的目的。 学习文件检索和查找数据手册的能力。 学习protel软件的使用。 学会整理和总结设计文档报告。二、基本要求: 以MCS-51系列单片机为核心,设计出租车自动计费器。 设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元。 行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)均能通过人工输入。 行车里程的计费以一个脉冲模拟汽车

2、前进十米, 用LED显示行驶公里数和收费金额。三、主要参考资料: 张毅坤等 单片微型计算机原理及应用 西安 西安电子科技大学出版社 李建忠编著 单片机原理及应用 西安 西安电子科技大学出版社完 成 期 限: 指导教师签名: 课程负责人签名: 年 月 日目 录摘 要11系统整体的方案22 出租车计价器的硬件构成22.1 单片机模块32.1.1 AT89C52单片机及其引脚说明32.2显示模块72.3 测距模块73 出租车计价器的程序设计83.1 系统主程序设计83.2 里程计算的设计93.3 显示程序的设计10附 录13附录1 总体设计电路图13附录2 PCB图14附录3 元件清单14附录4 源

3、程序1517摘 要随着出租车行业的发展,出租车已经是城市交通的重要组成部分,出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。而随着单片机性能不断提高而价格不断下降,单片机控制在越来越多的领域得以应用。本设计的是一个基于单片机AT89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶

4、振,作为系统的时钟源,具有较高的准确性。关键字:单片机;数码管;显示;计费 1系统整体的方案计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例的里程来计算)。出租车计价器通过传感器与行驶车辆连接。出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。针对这一点利用单片机作为控制核心,设计一款出租车计价器,具有计价显示、等待时间计价,公里数显示,时间显示等相关功能。本电路设计的计价器不但能实现基本的计价。单片机计算总价的公式为:总价=起步价+单价*(总里程-起步里程)。AT89C52作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能为设计

5、电路提供了很好的选择。 2 出租车计价器的硬件构成本设计由软硬件相结合的方法,其中硬件设计主要包括单片机AT89C52、数据显示部件、模拟行驶路程单元、及计价单元的设计。计价器的单片机控制方案图如图1单片机控制方案图所示。 键盘控制89C52单片机显 示动态扫描数码管显示里程计算单元图1 单片机控制方案图2.1 单片机模块AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和

6、闪烁存储器组合在单个芯片中,ATMEL的89C52是一种高效微控制器。AT89C2052是它的一种精简版本,AT89C2052是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含2K字节的可反复擦写的只读程序存储器和128bytes的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。因为在的程序中有读取、计算、显示等单元,2K字节的ROM可能不够,因此我们采用AT89C52作为单片机模块。2.1.1 AT89C52单片机及其引脚说明AT89C52是美国ATMEL公司生产的低功耗,高

7、性能CMOS 8位单片机,片内含4KB的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用 8位微处理器于单片芯片中,具有高性价比。AT89C52是一个有40个引脚的芯片,引脚配置如图2 AT89C52引脚配置所示。图2 AT89C52引脚配置AT89C52芯片的40个引脚功能为:VCC 电源电压。GND 接地。RST 复位输入。当RST变为高电平并保持2个机器周期时,将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRT

8、O位(地址8EH)可打开或关闭该功能。DISKRTO位缺省为RESET输出高电平打开状态。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P0口 一组8位漏极开路型双向I/O口。也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口 一个带内部上拉电阻的8位双向I/O口,P1的输出缓

9、冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,P1接收低8位地址。P1口部分端口引脚及功能如表1所示。P1口引脚特殊功能P1.5MOSI(用于ISP编程)P1.6MOSI(用于ISP编程)P1.7SCK(用于ISP编程)表1 P1口特殊功能P2口 一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输

10、入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收低8位地址。P3口 一个带内部上拉电阻的8位双向I/O口。P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,

11、如表2所示。P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号。P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)表2 P3口特殊功能PSEN/ 程序储存允许输出是外部程序存储器的读先通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN/有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN/信号。EA/VPP 外部访问允许。欲使CPU仅访

12、问外部程序存储器,EA端必须保持低电平,需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。Flash存储器编程时,该引脚加上+5V的编程电压VPP。2.2显示模块本设计是用八个八段数码管动态扫描来实现的计价的显示。七段LED数码管引脚图如下图: 图3 LED管脚配置图LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED。这种显示块有共阴极和共阳极两种,如上图所示,共阴极LED显示块的发光二极管阴极共地,如图中所示,当某个发光二极管的阳极为高电平时,发光二极管点亮。共阳极LED显示块的发光二极管阳极并接,当某个二极管的阴极为低电平时,该二极管点亮。

13、2.3 测距模块本次设计我们选取了霍尔传感器来进行里程测量。霍尔器件是一种磁传感器。用它们可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔器件以霍尔效应为其工作基础。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高,耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。霍尔器件分为:霍尔元件和霍尔集成电路两大类,前者是一个简单的霍尔片,使用时常常需要将获得的霍尔电压进行放大。后者将霍尔片和它的信号处理电路集成在同一个芯片上。本次设计选取了霍尔集成电路来测量里程。里程测量是通过将霍尔传感器的集成电路安装在车轮上方的铁板上,将磁铁安装在车轮上,旋转的车轮

14、将磁铁对准集成电路时,霍尔传感器会输出一个脉冲信号,送到单片机,经过单片机的计算处理,将行驶的里程送到显示单元并显示出来。其原理示意图如下:图4 传感器测距示意图3 出租车计价器的程序设计3.1 系统主程序设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程图如图6 所示。当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是

15、否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。 图5 主程序流程图3.2 里程计算的设计计算程序根据里程数分别进入不同的计算公式。如果里程大于3公里,则执行公式:总金额=起步价+(里程-3)*单价;否则,执行公式:总金额=起步价。 图6里程计算流程图3.3 显示程序的设计   显示程序利用定时器每

16、1ms产生一次中断,相应变量置位,点亮一个数码管,显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现象,即可实现显示。总结总结在本次设计中,我们采用AT89C52芯片为核心器件,设计出了简单的出租车计价器,能够实现显示时间、等待时间、金额和里程,按键控制,空车指示。选题后,我们便开始复习单片机方面的知识,也查阅、搜索了很多相关资料,进行总体设计与具体设计。由于以前都采用汇编语言实现编程,对用C语言来实现单片机的编程不太习惯,花费了一些时间来熟悉C语言的编程。在设计开始,要形成流程图,它可以使设计有一定的逻辑性与严密性,使得设计思路明确。采用模块化的设计思想很重要

17、,它方便编写、修改与调试,另外加上必要的注释,便于交流与理解。这次课程设计设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。通过自身的努力以及相关图书资料的帮助,逐渐熟悉了Keil uVision3和C语言等软件的使用。本次设计我学习到不少单片机的知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题。主要原因是考虑问题不周全,电路设计经验少,实际动手能力不足。恳请各位老师批评指正,以使我在以后的学习和实践中加以改进和提高。 参考文献1 华成英,童诗白.模拟电子技术基础M.第五版.北京:清华大学出版社,20062 阎

18、石.数字电子技术基础M.第五版.北京:高等教育出版社,20043 李金平,沈明山.电子系统设计M.北京:电子工业出版社,20074 潘永雄,沙河.电子线路CAD使用教程M.西安:西安电子科技大学出版社,20075谭浩强.MCS-51单片机应用教程M.北京:清华大学出版社,20046 刘海成.单片机及应用系统设计原理与实践M.北京:北京航空航天大学出版社,20097 李朝青.单片机原理及接口技术M.第三版.北京:北京航空航天大学出版社,20058 梁晓雯.电子系统设计基础M.第三版.北京:中国科学技术大学出版社,2008。附 录附录1 总体设计电路图附录2 PCB图 附录3 元件清单 类型名称数

19、量类型名称数量电阻10K3单片机89C521电容10uF3 晶振12M130pF2排阻1021 按键4共阳数码管2附录4 源程序#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define ON 1#define OFF 0sbit led1=P33; sbit led2=P34;sbit key1=P10;sbit key2=P11;sbit key3=P12;uchar Switch=OFF;uchar Night=OFF;uchar

20、 num,num1,t;uint Viameter=0, Money=0; uint dat10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void main()TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;EX0=1;IT0=1;while(1)key();DisV();DisM();Void T0_time() interrupt 1TH0=(65536-45872)/256;TL0=(65536-45872)%256;num+;if(num=20)num=0;num1+;if(num1=60)t+;void Delay(uint i)doi-=1;while(i);void key() /按键定义;if(key1=0)Delay(5);if(key1=0)while(!key1); Vi

温馨提示

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

最新文档

评论

0/150

提交评论