基于系列单片机的出租车计价器控制系统研究设计.docx
- 文档编号:13376350
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:35
- 大小:223.11KB
基于系列单片机的出租车计价器控制系统研究设计.docx
《基于系列单片机的出租车计价器控制系统研究设计.docx》由会员分享,可在线阅读,更多相关《基于系列单片机的出租车计价器控制系统研究设计.docx(35页珍藏版)》请在冰点文库上搜索。
基于系列单片机的出租车计价器控制系统研究设计
本科毕业设计
基于51系列单片机的出租车计价器控制系统设计
系(院):
信息工程学院
姓名:
学号:
专业:
通信工程
年级:
指导教师:
职称:
完成日期:
摘要
随着社会的进步,电子类产品也得到了广泛的发展,尤其是单片机的发展异常迅速。
由于单片机的特殊结构形式,在某些应用领域中,它承担了一些通用的微型计算机无法完成的工作,它是一种高性能,低价格的处理器,集成度高,体积小,可靠性又高,控制功能强,电压低。
由于单片机具有这些特点,人类的生活应用中十分广泛。
本电路以AT89C51单片机为中心,附加A44E霍尔传感器测距(本电路中用模拟开关替代),实现对出租车计价,采用FM24C02实现在系统掉电的时候保存单价,输出采用8段数码显示管,显示行驶总里程和总金额。
模拟出租车计价器设计:
进行里程显示,预设起步价和起步公里数;行程按全程收费,有复位功能和启动功能,启动后,开始计价。
我们采用单片机进行设计,可以用较少的硬件和适当的软件相互配合来实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,应用前景广阔。
关键词:
计价器;。
霍尔传感器;断电保存
Abstract
Associetyadvances,electronicproductshavebeenwidelydeveloped.Exceptionallyrapiddevelopmentofthemicrocontroller.Duetothespecialstructureofthemicrocontroller,insomeapplications,itbearssomeofthecommonmicro-computercouldnotbedone,itisahighperformance,lowpriceprocessor.Highintegration,smallsize,highreliability,andcontrolfunctions,lowvoltage.Microcontrollerwiththesecharacteristics,awiderangeofapplicationofhumanlife.
TheAT89C51microcontrollercircuitasthecenter,addA44EHallsensordistance(insteadofthecircuitusinganalogswitches),toachievethetaximeter,usingFM24C02achievewhenstoredinthesystempower-downunit,8-segmentLEDoutputdisplaytubeshowsthetotalmileageandtotalamountofdriving.
Taximeteranalogdesign:
themileagedisplay,thedefaultstartingpriceandthestartingmileage。
travelbyfullfare,aresetandstart,start,startpricing.Weusesinglechipdesign,youcanuselesshardwareandappropriatesoftwaretomeetthedesignrequirementsofmutualcooperation,andflexibility,throughsoftwareprogrammingtoaccomplishmoreadditionalfeatures,abrightfuture.
Keywords:
taximeter。
Hallsensors。
savepower
1绪论
1.1课题背景与意义
随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。
我们知道,只要乘坐的出租车启动,随着行驶里程的增加,就会看到司机旁边的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如2KM)计费数字显示开始从起步价(如4元)增加。
当乘客到站时,按下停止按键,计费数字显示总里程和总金额,它可以很直观的反映用户使用情况。
出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。
汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的,因此,汽车计价器的研究也是十分有一个应用价值的。
通过本次设计,可以增进对单片机的感性认识,加深对其理论方面的理解,掌握单片机的内部功能模块的应用,了解掌握单片机的软硬件设计过程、方法及实现。
1.2计价器的现状
出租车计价器是出租车营运收费的专用智能仪表,目前市面所使用的计价器大都功能较少。
随着人们生活水平的不断提高,出租车的使用频率也越来越高,出租车行业也以高质量的服务给人们带来了出行的享受。
但是由于行业的特殊性,出租车行业总存在着买纠纷,困扰着行业的发展。
给服务质量及管理带来一定影响。
随着电子技术的发展,出租车计价器技术也在不断进步和提高。
国内出租车计价器已经经历了4个阶段的发展。
从传统的全部由机械元器件组成的机械式到半电子式,即用电子线路代替部分机械元器件的出租车计价器。
而功能齐全的计价器大都采用双CPU结构,这就提高了计价器的生产成本。
在考虑成本和使用的基础上,本设计介绍了一种以AT89C51单片机为核心的,具有计时、计价、性能可靠、电路简单、成本低等特点的多功能出租车计价器,能够很好的满足市场对出租车计价器的要求。
本设计的目的就是通过对现有计价器的分析,解决计价器的问题,同时完成具有单价输出、单价调整、路程输出等功能的新型计价器的硬件和软件设计。
2出租车计价系统的设计要求与设计方案
2.1出租车计价器概述
计价器显示的营运金额是营运里程与价格。
出租车计价器通过传感器与行驶车辆连接,但在此次课程设计中,因没有传感器,所以用键盘取代,用按键的次数来代表里程数。
该课程设计的出租车计价器功能主要有具有数据的复位功能、单价修改功能、数据输出功能、计价功能等。
2.2系统主要功能
本课程设计所设计的出租车计价器的主要功能有:
数据的复位、单价修改、数据输出、计价、单价输出及调整、路程输出等功能。
输出采用8段数码显示管。
本电路设计的计价器不但能实现基本的计价,而且还能手动来调节单价。
2.3方案论证与比较
方案一:
采用数字电路控制
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。
方案二:
采用单片机控制
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以采用后一种方案更好些。
3系统硬件设计
3.1设计方案与硬件说明
采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
设计采用AT89C51单片机为主控器,以A44E霍尔传感器测距(按键替代),实现对出租车的基本的计价设计,并采用FM24C02实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的计价功能。
其系统结构图如图3.1所示:
图3.1系统结构图
本电路设计的计价器能实现基本的计价功能,单片机计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)+1。
AT89C51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能设计电路提供了很好的选择。
3.2硬件设计说明
单片机是单片微型计算机的简称,单片机以其卓越的性能,得到广泛的应用,已经深入到各个领域。
在这次设计中,我们用到P0口和P2口,P0口为8位三态I/O口,此口为地址总线及数据总线分时复用;P2口为8位准双向口,与地址总线高八位复用;P0口和P2口都有一定的驱动能力,P0口的驱动能力较强。
设计中,为了能够让数码管更好的正常显示,我们采用了驱动电路来驱动。
在本次硬件设计中,我们考虑采用芯片74LS245来驱动数码管显示。
设计电路时,考虑到用里程(霍尔)传感器价格昂贵,且不便于实验检测,在设计中采用一个模拟开关来代替。
模拟开关一端接在P3.4口,另一端接地,通过来回高低电平的变化,每按两次,对应的里程数加一。
通过在程序中设置的里程和金额的信息,在加上驱动电路的设计,就可以在数码管上分别显示总金额和总里程。
在显示方面,可以用液晶显示,也可以用数码管进行显示。
由于在这次设计中只需要显示里程和金额信息,我们采用数码管进行显示。
这样既节约了成本,又可以达到显示的目的。
同时为了减少硬件的复杂度,我们采用了动态显示方式,选用了共阴极数码管。
为了焊接方便,我们选用了集成在一起的数码管。
我们还设计了控制按键,能够很好的对出租车计价器控制,如启动/停止按键,清零按键等。
AT89C51单片机简介:
AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KB的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,具有高性价比,其引脚配置如图3.2所示。
图3.2AT89C51引脚配置
AT89C51芯片的40个引脚功能为:
VCC电源电压。
GND接地。
RST复位输入。
当RST变为高电平并保持2个机器周期时,将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISKRTO位缺省为RESET输出高电平打开状态。
XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2来自反向振荡放大器的输出。
P0口一组8位漏极开路型双向I/O口。
也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,P1接收低8位地址。
P1口部分端口引脚及功能如表3.1所示。
表3.1P1口特殊功能
P1口引脚
特殊功能
P1.5
MOSI(用于ISP编程)
P1.6
MOSI(用于ISP编程)
P1.7
SCK(用于ISP编程)
P2口一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。
Flash编程和程序校验期间,P2亦接收低8位地址。
P3口一个带内部上拉电阻的8位双向I/O口。
P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。
作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.2所示。
P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号。
表3.2P3口特殊功能
P3口引脚
特殊功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
硬件系统设计说明:
按下计价按键时,显示起步价和起步里程范围,这些在程序中设置;当等于或超过两公里后,按计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)+1进行计价。
本设计中,起步价为4元,起步里程为2公里,当然这些数据可以在程序中改写,以满足不同时期价格调整的需要。
3.3硬件电路组成
硬件组成主要包括:
驱动电路、显示电路、复位电路、掉电保护电路、时钟电路、按键电路。
其整体电路图3.3所示:
图3.3计价器整体电路图
3.3.1驱动电路
74LS245是我们常用的芯片,用来驱动led或者其他的设备。
总线驱动器74LS244和74LS245经常用作三态数据缓冲器,74LS244为单向三态数据缓冲器,而74LS245为双向三态数据缓冲器。
本设计用74LS245作为驱动芯片,双向总线发送器/接收器(3S),管脚图如图3.4所示。
74LS245主要电器特性的典型值如下:
引出端符号:
AA总线端
BB总线端
三态允许端(低电平有效)
DIR方向控制端
功能表如表3.3所示:
表3.3功能表
EnableDirection
Control
DIR
Operation
LL
LH
HX
BdatatoAbus
AdatatoBbus
Isolation
利用74LS245来驱动数码管显示,单片机的P2.0到P2.5分别接A0到A5管脚,进行数据的传送,其中AB/BA接高电平,控制数据从A到B进行传送,B0到B5分别接数码管的位选端,驱动数码管依次显示。
P2.0到P2.5的数据通过A传送到B中的数据送到数码管,以达到显示数据信息的目的。
3.3.2显示电路
多数的应用系统都要配输入和输出,外设LED显示器和LCD显示器,虽然LCD显示效果比较好,已经成为了一种发展趋势,但为了节约成本,我们选用了LED显示器(图3.5)。
图3.5集成数码管
在显示方面,我们选用了动态显示。
静态显示虽然亮度较高,接口编程容易,但是每位的段码线分别与一个8位的锁存器输出相连。
占用的I/O口线比较多,在显示位数较多的情况下,一般都采用动态显示方式。
利用动态显示的方法,由于LED显示器的余辉和人眼的视觉暂留现象,只要每位显示的时间间隔足够短,就仍能感觉到所有的数码管都在显示。
为了简化硬件,通常将所有位的段码线相应段并联在一起,由一个8位I/O口控制,在同一时刻,只让一位选通,如此循环,就可以使各位显示出将要显示的字符。
LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。
再把多个这样的8字装在一起就成了多位的数码管了。
在本设计仿真中使用的是6个一组的共阴8段数码管(图3.6)。
图3.6LED数码管
找公共共阴和公共共阳的方法:
首先我们找个电源稳压器(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接1个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。
共阴极数码管,阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,对应的段就显示。
3.3.3复位电路
单片机的复位是由外部的复位电路实现的,复位电路通常采用上电自动复位和按钮复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
除了上电复位外还需要按键手动复位(图3.7)。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST端经电阻与电源VCC接通而实现的。
单片机的复位速度比外围I/O接口电路快,为能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。
图3.7复位电路
3.3.4掉电保护电路
掉电保护电路中采用了存储芯片FM24C02。
FM24C02是一个CMOS标准的EEPROM存储器,是FM24CXX系列(FM24C01/02/04/08/16)成员之一,这些EEPROM存储器的特点是功耗小、成本低、电源范围宽,静态电源电流约30uA~110uA,具有标准的I2C总线接口,是应用广泛的小容量存储器之一。
图3.8FM24C02引脚图
图3.8是FM24C02的引脚图,这个芯片是一个8脚芯片,内部存储器有256字节。
引脚功能介绍如下:
A0(引脚1):
器件地址的A0位,是器件地址的最低位,器件地址排列是A6A5A4A3A2A1A0R/W。
A1(引脚2):
器件地址的A1位。
A2(引脚3):
器件地址的A2位。
GND(引脚4):
地线。
SDA(引脚5):
数据总线引脚。
SCL(引脚6):
时钟总线引脚。
TEST(引脚7):
测试引脚。
Vcc(引脚8):
电源线引脚。
本设计采用掉电存储电路图如图3.9:
图3.9掉电存储电路
3.3.5时钟电路
MCS-51单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作。
其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器。
为更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近。
本设计中使用的振荡电路,由12MHZ晶体振荡器和两个约30PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低。
在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。
如图3.10所示。
图3.10时钟电路
3.3.6按键电路
按键控制电路中,单片机的P1.0管脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价;当弹起按键时,计数器停止工作,停止计价,启动/停止按键带自锁功能。
按下启动按键,开关处于导通状态,这时给P1.0送低电平信号,这时TR0=1,计数器开始工作,调用计价子程序开始计价。
清零按键接单片机的P1.3管脚,按下清零按键,P1.3为低电平,调用清零子程序,用于将显示数据清零,在程序中给各位赋0代码(0x3f),以达到清零的目的,方便下次计价。
另外为功能键,控制价格调整,这个按键是在没有按下启动/停止按键时有作用,计价过程中无效,按键电路如图3.11所示。
图3.11按键电路
4系统软件设计
4.1软件总体设计
51单片机的程序设计语言主要有两种:
一是汇编程序设计;二是C语言编程设计,两种程序设计语言都有各自的优点。
用汇编语言编写和高级语言(C语言)比较起来节省空间,这样对于存储空间仅4Kb的芯片来说是极之有利的,51单片机能更高速的运行。
C语言编写的程序,虽然不象汇编那样速度快、但程序简单易行、并且需要较小的存储空间。
C语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。
此外,C语言程序还具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。
因此,使用C语言进行程序设计已成为软件开发的主流。
本设计就是采用C语言编写的,由于采用模块化操作,使得程序在修改,执行的时候显得方便易行。
4.2系统程序设计
本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我们设计了整体程序流程图:
在main函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态。
通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。
这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后数码管根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。
整个程序的流程图如图4.1所示:
5系统调试
系统调试包括软件调试和硬件调试。
硬件调试的任务是排除所焊接电路故障。
软件调试是利用开发工具进行在线仿真调试。
调试的一般过程如图5.1所示:
图5.1系统调试流程图
系统调试的一般过程是上电运行后观察其运行状态,数码管是否点亮等。
软件调试先是各个模块、各个子程序分别调试,最后进行系统联机调试。
5.1软件调试
5.1.1编程工具—C51语言
8051单片机的应用程序设计,使用C51语言进行程序设计虽然相对于汇编语言代码效率有所下降,但可以方便地实现程序设计模块化,代码结构清晰、可读性强,易于维护、更新和移植,适合较大规模的单片机程序设计。
近年来,随着C51语言的编译器性能的不断提高,在绝大多数应用环境下,C51程序的执行效率已经非常接近汇编语言,因此,使用C51进行单片机程序设计已经成为单片机程序设计的主流选择之一。
5.1.2程序调试工具—KEIL
本设计的软件都是在KeiluVision7.5上进行编写,编译,调试以及运行操作。
5.1.3单片机仿真软件在线调试—PROTEUS
.打开Proteus软件。
.选择file菜单下的opendesign选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存。
.将用keil编译产生的hex文件下载到单片机中:
双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。
.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。
图5.2为软件的仿真窗口图:
图5.2Proteus仿真图
5.2系统仿真
下图是通过在KeilC中编译通过,并生成Hex文件,在PROTEUS中仿真通过的整体硬件原理图如图5.3所示:
图5.3仿真结果
图中五个按键的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 系列 单片机 出租车 计价器 控制系统 研究 设计