毕业论文基于AT89S52单片机出租车计价器设计22881.doc
《毕业论文基于AT89S52单片机出租车计价器设计22881.doc》由会员分享,可在线阅读,更多相关《毕业论文基于AT89S52单片机出租车计价器设计22881.doc(32页珍藏版)》请在三一办公上搜索。
1、河南理工大学单片机应用与仿真训练设计报告题目:出租车计价器设计姓 名: 学 号: 专业班级: 指导老师: 所在学院: 电气工程与自动化学院 2012年5月20日摘 要本设计用直流电机转动模拟出租车车轮转动,实现出租车多功能的计价器功能。设计采用AT89S52单片机为主控芯片,用霍尔传感器检测电机转盘转速,采用AT24C02芯片使系统在掉电时路程、单价等重要信息的存储保护,采用两个四位8段共阴数码显示管里程、总价格和等待时间等信息。本设计可以实现单双程设置、系统暂停和清零、空车指示、信息显示、显示切换、掉电保护等功能。出租车计价是根据车所行驶的路程以及乘客乘车的方式综合决定的。出租车行驶总路程可
2、以通过车轮的周长乘车轮旋转圈数得到。即可计算得到车轮旋转几周出租车能行驶一公里的路程。使用霍尔传感器方便地计量车轮旋转的圈数。输出的脉冲信号被接入到AT89S52单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路程,并且可以计算实时的速度,在速度低于5公里每小时是进入等待计费。与此同时,根据不同的收费标准,通过选择相应的起步价、单价等收费标准进行计算。通过键盘能够实现往返设置,启动、暂停、停止计价器以及切换显示当前的行驶里程和需支付的车费。本设计硬件电路总体可以分为五个单元:单片机最小系统单元,指示灯电路单元,按键电路单元,路程时间与金额显示单元,转速信号接收单元。软件系统可以大致分
3、为五个大的模块为:总初始化模块,按键扫描模块,中断与定时模块,数据计算模块,数码管显示模块。其中,键盘扫描和数码管显示采用查询方式,转速信号接收与等待记时采用中断方式。这些软硬件系统构成了最终的设计。关键字:多功能计价器;AT89S52;AT24C02;霍尔传感器;显示切换目录1 概述11.1 功能要求11.2 设计参数11.3 系统原理12 系统总体方案及硬件设计32.1 系统总体方案32.2 单片机最小系统单元32.3 转动信号采集单元52.4 显示单元62.5 指示灯单元72.6 按键输入电路单元72.7 IO分配表83 软件设计93.1 总体流程93.2 计算模块93.3 键盘扫描93
4、.4 显示程序94 Proteus软件仿真105 课程设计体会11参考文献:12附1 源程序代码13附2 系统原理图251 概述1.1 功能要求基本要求:(1)能显示里程,单位为公里,最后一位为小数位。(2)能显示金额数,单位为元,最后一位为小数位。(3)可设定单程价格和往返价格,单程价格为2元/公里,往返价格为1.5元/公里。(4)车速5公里/小时的时间累积为总等待时间,每5分钟等待时间相当于里程数增加1公里。(5)起步公里数为3公里,价格为5元,若实际距离大于3公里,按规则3计算价格。(6)按暂停键,计价器可暂停计价,按查询键,可显示总等待时间。发挥部分:空车指示、语音提示、信息存储等。1
5、.2 设计参数由于要求没有给出车轮的相关参数,所以这里进行一些基本参数的查询。据调查统计,现行出租车轮胎直径大致有四种,直径分别为520mm、540mm、560mm和580mm.本作品针对560mm的出租车进行设计。它的周长为:1.7584 m,57圈行驶100m。1.3 系统原理出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志。它关系着交易双方的利益,具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有应用价值和现实意义的。出租车计价是根据车所行驶的路程以及乘客乘车的方式综合决定的。出租车行驶总路程可以通过车轮的周长乘车
6、轮旋转圈数得到。即可计算得到车轮旋转几周出租车能行驶一公里的路程。使用霍尔传感器方便地计量车轮旋转的圈数。输出的脉冲信号被接入到AT89S52单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路程,并且可以计算实时的速度,在速度低于5公里每小时是进入等待计费。于此同时,根据不同的收费标准,通过选择相应的起步价、单价等收费标准进行计算。通过键盘能够实现往返设置,启动、暂停、停止计价器以及切换显示当前的行驶里程和需支付的车费。本设计硬件电路分为五个单元:单片机最小系统单元,指示灯电路单元,按键电路单元,路程时间与金额显示单元,转速信号接收单元。软件系统分为五个大的模块为:总初始化模块,按键
7、扫描模块,中断与定时模块,数据计算模块,数码管显示模块。其中,键盘扫描和数码管显示采用查询方式,转速信号接收与等待记时采用中断方式。这些软硬件系统构成了最终的设计。2 系统总体方案及硬件设计2.1 系统总体方案本设计可以分为五个单元,分别为:单片机最小系统单元、转速信号接收单元、路程时间与金额显示单元、指示灯电路单元、按键输入电路单元。系统框图如图1所示:图1 系统框图2.2 单片机最小系统单元主控机系统采用了Atmel 公司生产的 AT89S52单片机,它含有256 字节数据存储器,内置8K 的电可擦除FLASH ROM,可重复编程,大小满足主控机软件系统设计。AT89S52主要功能列举如下
8、:1、拥有灵巧的8位CPU和在系统可编程Flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)3、内部程序存储器(ROM)为 8KB4、内部数据存储器(RAM)为 256字节5、32 个可编程I/O 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、 全双工UART串行通道。AT89S51芯片的40个引脚功能分别为:VCC 电源电压。GND 接地。RST 复位输入。当RST变为高电平并保持2个机器周期时,将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISKRTO位缺省为RE
9、SET输出高电平打开状态。ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN: 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器
10、周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP: 当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P0口:一组8位漏极开路型双向I/O口。也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入
11、端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接收低8位地址。P2口:一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动(吸收或输出电流
12、)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收低8位地址。P3口:一个带内部上拉电阻的8位双向I/O口。P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电
13、流。P3口除了作为一般的I/O口线外,还作特殊功能口。P3口的第二功能引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。单片机最小系统原理图如图2所示。2.3 转动信号采集单元转动信号采集是利用霍尔传感器来实现的,转轮每转动一周,霍尔传感器发出一个脉冲,然后发给单片机的外部中断0端口P3.2,通过中断来接受传感器的信号。此模块的模型如图3所示。图
14、2 单片机最小系统原理图图3 转动信号采集单元模型2.4 显示单元采用两个四位8段共阴数码显示,一组显示金额,另一组显示路程与等待时间配合按键来切换。数据位选用单片机P0口,片选端分别接在P2口的高四位和低四位。它们的连线如图4所示。图4 显示单元原理图2.5 指示灯单元本设计按照功能要求设置了五个LED灯。原理接线图如图5所示。各个LED灯的功能分别为:led0:空车指示;led1:指示单程还是双程,当选择双程计费时亮;led2:指示显示的是路程还是等待时间,显示等待时间时亮;led3:指示系统暂停与否,当选择暂停时亮;led4:指示堵车与否,堵车指示时灯亮。 图5 指示灯单元原理图 图6
15、按键输入电路单元原理图2.6 按键输入电路单元本设计按照功能要求设置了五个按键。其功能分别为:key0:系统清零,用来将整个计费系统的显示清零;key1:单程双程,用来设置是单程还是往返计费;key2:显示切换,用来切换路程与等待时间的显示;key3:系统暂停,用来将整个计费系统暂停;key4:掉电数据恢复。2.7 IO分配表根据以上分析,总体IO分配如表1所示。表1 IO分配表IO口功能输入P3.2/INT0转动信号采集输入P3.0-1、P1.5-7按键输入S0-S5输出P0数码管显示段选P2数码管显示位选P1.0-4发光二极管LED0-LED5P3.6AT24C02芯片SDAP3.7AT2
16、4C02芯片SCL3 软件设计3.1 总体流程软件系统可以大致分为五个大的模块为:总初始化模块,按键扫描模块,中断与定时模块,数据计算模块,数码管显示模块。其中,键盘扫描和数码管显示采用查询方式,转速信号接收与等待记时采用中断方式。3.2 计算模块计算程序根据里程数分别进入不同的计算公式。如果里程大于3公里,则执行公式:总金额=起步价+(里程-3)*单价+等待时间*等待单价;否则,执行公式:总金额=起步价+等待时间*等待单价。对于里程数采用外部中断零来记录,车轮没转一周,霍尔传感器发一个脉冲然后进入中断子程序,对相应的变量进行更新。对于速度的判断及等待时间的记录采用定时器零中断,设定10ms一
17、个中断,然后判断车速,小于5公里/小时时,则开始记录等待时间。3.3 键盘扫描键盘扫描才用查询方式,当有按键按下时就对相应的标志进行取反,或调用其他子函数,在消抖过程中,这里将数码管显示程序潜入以保证显示的稳定。3.4 显示程序显示程序利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现象,即可实现显示。本设计采用两个四个一组的八位数码管来显示,一组显示金额,另一组显示路程与等待时间配合按键来切换。数据端都用单片机P1口,片选端分别接在P2口的高四位和低四位。4 Proteus软件仿真将整个系统原理图在Proteus连接好后,下载如编写好的程序仿真如下:如图显示的状态设置为:单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 AT89S52 单片机 出租车 计价器 设计 22881
链接地址:https://www.31ppt.com/p-3972969.html