ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:257.43KB ,
资源ID:3894825      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3894825.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AT89C51单片机的出租车计价器系统的设计.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于AT89C51单片机的出租车计价器系统的设计.docx

1、基于AT89C51单片机的出租车计价器系统的设计目 录1绪论 11.1概述 11.2 基本内容 11.2.1 设计任务 11.2.2 设计要求 11.3 系统主要功能 22硬件设计 32.1 系统的硬件构成及功能 32.2 AT89C51单片机及其引脚说明 42.3 AT24C02引脚图及其引脚功能 62.4 AT24C02 掉电存储单元的设计 62.5 里程计算、计价单元的设计 72.6 数据显示单元设计 83 系统的软件设计 103.1 系统主程序设计 103.2 定时中断服务程序 123.3 里程计数中断服务程序 123.4 中途等待中断服务程序 123.5 显示子程序服务程序 123.

2、6 键盘服务程序 124 系统调试与测试结果分析 134.1 使用的仪器仪表 134.2 系统调试 14结 束 语 14参考文献 14附 录 151绪论本次基于AT89C51单片机的出租车计价器系统的设计,要求能够对出租车所用的时间进行计时,并且所需的费用用数码管显示出来,更注重它的稳定性和实用性。主要研究内容包括以下子系统:电源部分、开关按钮、程序控制部分、时间和价钱显示部分。1.1概述计价器显示的营运金额是基于“价格=速度*时间*单价,总价等于其和”的原理来计算的。出租车计价器通过传感器与行驶车辆连接。出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。目前市场上出租

3、车计价器功能主要有具有数据的复位功能、白天/晚上转换功能、数据输出功能、计时计价功能等等,但存在着太多的不足,容易为司机和顾客之间造成麻烦,基于此,设计一款能够提高抗干扰能力、防作弊能力、掉电保护功能的计价器,以使其功能更加完善。1.2 基本内容1.2.1 设计任务 设计一款基于AT89C51单片机的出租车计价器。1.2.2 设计要求(1).基本要求1不同情况具有不同的收费标准。 白天 晚上 途中等待(10min 开始收费)2能进行手动修改单价。3具有数据的复位功能。4IO 口分配的简易要求。 距离检测使用霍尔开关A44E 白天/晚上收费标准的转换开关 数据的清零开关 单价的调整(最好使用和按

4、键)5数据输出(采用LCM103)。 单价输出 2 位 路程输出 2 位 总金额输出 3 位6按键。 启动计时开关 数据复位(清零) 白天/晚上转换(2).发挥部分1 能够在掉电的情况下存储单价等数据。2 能够抵抗外界干扰,保证数据稳定、准确。3 语音播报数据信息。1.3 系统主要功能本文所做的出租车计价器设计由硬件设计和软件设计两部分组成,主要内容包括:出租车计价器系统的工作原理、出租车计价器系统的硬件电路设计(单片机主电路、里程与计价单元电路、数据存储电路、显示电路、按键电路、语音播报电路、电源电路等)、出租车计价器系统的软件设计(初始化模块、里程及计价换算模块、数据存储模块、按键处理模块

5、、显示模块、语音播报模块等)。输出采用8 段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,能在掉电的情况下存储数据,防止外界干扰,同时在不计价的时候还能作为时钟为司机同志提供方便。2硬件设计本文的硬件设计主要包括单片机AT89C51、A44E霍尔传感器电路、AT24C02 掉电存储单元的、里程与计价单元电路、数据存储电路、数据显示电路、按键电路、语音播报电路、电源电路等电路的设计。在硬件设计过程中,充分利用各部件的功能,实现多功能的出租车计价器设计。2.1 系统的硬件构成及功能计价器的单片机控制方案图如图1 单片机控制方案图所示。它由以下几个部

6、件组成:单片机AT89S51、总金额及单价显示部件、键盘控制部件,AT24C02 掉电存储控制、里程计算单元、串中显示驱动电路等。图1 单片机控制方案图2.2 AT89C51单片机及其引脚说明AT89S51是一种低功耗,高性能CMOS 8位单片机,片内含4KB的可系统编程的Flash只读程序存储器,器件采用高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器及通用 8位微处理器于单片芯片中,既可在线编程(ISP)也可用传统方法进行编程,具有很高的性价比。图2 AT89S51引脚配置AT89C51芯片的40个引脚功能为:VCC 电源电压。GND 接地。RST 复

7、位输入。当RST变为高电平并保持2个机器周期时,将使单片机复位。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P0口 一组8位漏极开路型双向I/O口,即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节;在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口 带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL逻辑门电路。对

8、端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,P1接收低8位地址。P1口部分端口引脚及功能如表1 P1口特殊功能所示。表1 P1口特殊功能P1口引脚特殊功能P1.5MOSI(用于ISP编程)P1.6MOSI(用于ISP编程)P1.7SCK(用于ISP编程)P2口 带内部上拉电阻的8位双向I/O口。基本功能与P1口基本相同,只是在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变,Flash编程和程序校验期间,P2亦接收低8位地址。P3口 带

9、内部上拉电阻的8位双向I/O口。基本功能与P1、P2口基本相同,不再累述。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2 P3口特殊功能所示。P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号。表2 P3口特殊功能P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)PSEN/ 程序储存允许输出,是外部程序存储器的读先通信号,当AT89C51由外部程序存储器取指

10、令(或数据)时,每个机器周期两次PSEN/有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN/信号。EA/VPP 外部访问允许。欲使CPU仅访问外部程序存储器,EA端必须保持低电平,需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。Flash存储器编程时,该引脚加上+12V的编程电压VPP。2.3 AT24C02引脚图及其引脚功能 图3 AT24C02引脚配置图 AT24C02芯片DIP封装,共有8个引脚,其中:A2A0 地址引脚;SDA、SCL I2C总线接口;WP 写保护引脚,WP接VSS时,禁止写入高位地址,WP接VDD时,允许写入任何地址;VCC 电源端G

11、ND 接地端2.4 AT24C02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02 是2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),而且采用8 脚的DIP 封装,使用方便。其电路如图 4 掉电存储电路原理图所示。图 4 掉电存储电路原理图图中R8、R10 是上拉电阻,其作用是减少AT24C02 的静态功耗,由于AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。每当设定一次

12、单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息读到缓存单元中,供主程序使用。2.5 里程计算、计价单元的设计里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图 5 传感器测距示意图所示。图 5 传感器测距示意图由于A44E 属于开关型的霍尔器件,其工作电压范围比较宽(4.518V),其输出的信号符合TTL 电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可达到1MHZ。A44E 集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、

13、施密特触发器D 和OC 门输出E 五个基本部分组成。在输入端输入电压VCC时,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差H V 输出,该H V 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC 门输出。当施加的磁场达到工作点(即BOP)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点(即BrP)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍耳开关完成了一次开

14、关动作。 我们选择了P3.2 口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1 米),霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,当计数达到1000 次时,也就是1 公里,单片机就控制将金额自动的增加,其计算公式:当前单价公里数=金额(和上面有出入)。2.6 数据显示单元设计由于设计要求有单价(2 位)、路程(2 位)、总金额(3 位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用LCD 液晶段码显示,在距离屏幕1 米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6 位LED

15、数码管的分屏显示,如图 6 采用6 位LED数码管的分屏显示所示:时钟显示(图中显示为12 点0 分46 秒)图 6 采用6 位LED数码管的分屏显示数据的分屏的显示是通过按键S1 来实现切换的,如图七图 7 S1切换显示屏在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1 切换到里程和单价显示屏,供客户查询。显示电路的电路原理图如图 8 显示器原理图所示。图 8 显示器原理图 从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的

16、目的。移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。电路中的三个整流管D1D3 的作用是降低数码管的工作电压,增加其使用寿命。3 系统的软件设计本系统的软件设计主要可分为主程序模块、里程及计价换算模块、数据存储模块、键盘处理模块、显示模块、语音播报模块、定时计数中断模块、中途等待中断服务模块等几大模块。3.1 系统主程序设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进

17、行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程图如图9 所示。图9 主程序流程图3.2 定时中断服务程序在定时中断服务程序中,每100ms 产生一次中断,当产生10 次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。其程序流程如图10 所示。3.3 里程计数中断服务程序每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000 次时,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。3.4 中途等待中断服务程序当

18、在计数状态下霍尔开关没有输出信号,片内的T1 定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。3.5 显示子程序服务程序由于是分屏显示数据,所以就要用到4 个显示子程序,分别是:时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。3.6 键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。如图9 主程序流程图,图

19、10 定时中断服务程序。图10 定时中断服务程序4 系统调试与测试结果分析根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。测试包括里程计价测试、掉电存储测试测试。4.1 使用的仪器仪表 数字万用表 DT9203单片机仿真器 WAVE6000烧写器 GF2100双踪稳压稳流电源 DH1718E-5数字示波器 TDS10024.2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试。结 束 语本款出租车计价器比目前市场现在的增加了不少功能,其中包括单价输出、单价调整

20、、路程输出、显示当前的系统时间、语音播报数据信息等功能。另外,多功能出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。通过本次课程设计,又使我学到了许多书本上无法学到的知识,也使也深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:AT89C51单片机及其引脚说明、AT24C02引脚图及其引脚功能等,为本次课程设计提供了一定的资料。由于平时很少进行课程设计,所以对于课程设计报告的格式也是近期才接

21、触到,经过这两次的设计,为我们以后毕业设计的制作也奠定了一定的基础。参考文献1 陈爱文基于AT89C51单片机的多功能出租车计价器机电工程技术,2008,37(11):16-172 张 颖多功能出租车计价器的设计计算机与信息技术,2009,(9):24-253 李光第,朱月秀单片机基础北京:北京航空航天大学出版社,20044 陈小忠单片机接口技术实用子程序北京:人民邮电出版社,20035 李光飞单片机课程设计实例指导北京:北京航空航天大学出版社,20046 靳达编单片机应用系统开发实例导航北京:人民邮电出版社,20027 刘 锐单片机在智能充电器中的应用四川师范大学学报,1999,(11):2

22、73288 刘胜利现代高频开关电源实用技术北京:电子工业出版社,20019 何立民单片机应用技术选编北京:北京航空航天大学出版社,2000附 录1. 总体设计电路图多功能出租车计价器总体电路图(1)S1按键的功能在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1 切换到里程和单价显示屏,供客户查询。(2)S2按键的功能在按下S1按键之后,若接着按下S2键则进行单价调整(默认为调整白天单价),当接着按下S1时,则进行晚上单价调,再次按下S1可进行中途等待单价调整。当单价调整结束后,可以通

23、过过按下S2按键进行时间调整,默认为调整时,接着按下S1可进行调整分,分调整后再接下S1可进行秒调整。当时调整完成后,若接着按下S2则又可进行单价调整。(3)S3按键的功能在显示金额及单价时,若按下S3键则显示路程和单价,再次按下S3,可返回显示金额及单价。(4)S4按键的功能在按下S1按键之后,若接着按下S4按键,则进行设定默认晚上单价,并启动计价器,若没有按下S4则可设定默认单价(白天),并启动计价器。当设定默认晚上单价结束后,再次接下S4按键,则可设定默认中途等待单价,并启动计价器。当设定默认中途等待单价后,若还按一次S4,则返回系统时间的显示。2. AT89C51程序代码ORG 000

24、0H ;初始化段地址 LJMP MAIN ;长跳转到主函数MAIN处 ORG 000BH ;TT0开始地址 LJMP TT0 ;长跳转到TT0 处 ORG 0030H ;主函数开始地址,避开0030敏感段MAIN: MOV SP,#40H ;设堆栈底指针,下一个数据将放在41H单元 MOV 70H,#60 ;价格单元的起步价 MOV 71H,#00 ;价格单元的十位和百位 MOV 72H,#00 ;秒单元清零 MOV 74H,#00 ;时单元清零 MOV 75H,#00 ;75H单元清零备用 CLR 00H CLR 01H ;将00H,01H单元清零 MOV 6BH,#0AH ;将0AH(既十

25、进制10)放入6B单元 MOV R1,#76H ;把76H放到R1中KKK: MOV R1,#00H ;将76H单元的内容清零 INC R1 DJNZ 6BH,KKK ;76H7FH单元全部清零,备用 LCALL DIS ;调用价格显示子程序 LCALL DIS1 ;调用时间显示子程序 MOV TMOD,#11H ;定时器/计数器工作方式设置 MOV TH0,#3CH MOV TL0,#0B0H ;这句和上一句设置延时50ms MOV 6EH,#20 ;将6EH单元设置20,达到1s的延时G2: LCALL DIS ;长调用价格显示子程序 LCALL DIS1 ;长调用时间显示子程序 JB P

26、1.0,G2 ;开关没按下,等待按下,显示初始状态,全部为零 LCALL TIME1 ;调用TIME1延时子程序 JB P1.0,G2 ; 开关没按下,跳到G2,否则转到下一步G1: LCALL DIS LCALL DIS1 JNB P1.0,G1 ;开关按下,继续显示价格和时间,并转到中断 SETB EA ;开中断 SETB ET0 ;定时器0中断允许,向CPU申请中断 SETB TR0 ;定时器0工作允许 SETB 01H ;01H单元置位LLL: LCALL CHAI ;调用现场保护子程序 LCALL DIS LCALL JISUAN ;调用计算子程序 LCALL DIS1 JB P1.

27、0,G3 ;开关没按下,则返回 LCALL TIME1 JB P1.0,G3 CPL 01H ;01H单元此时为零 JNB 01H,G5;01H ;单元内容为0,跳到G5 SETB ET0 ;定时器0中断允许,向CPU申请中断G6: LCALL DIS LCALL DIS1 JNB P1.0,G6 ;开关按下,显示所走的时间及费用 LJMP MAIN ;重新等待下一个工作状态G5: CLR ET0G4: LCALL DIS LCALL DIS1 JNB P1.0,G4G3: LJMP LLLTT0: CLR ET0 /*定时一秒*/ CLR TR0 MOV TH0,#3CH MOV TL0,#

28、0B0H SETB TR0 SETB ET0 DJNZ 6EH,JJJ LCALL ADD1 MOV 6EH,#20JJJ: RETIDIS: MOV 6DH,#06H /*价格显示子程序*/ MOV R0,#7AH MOV 6CH,#0FEHHHH: MOV DPTR,#0FDFFH /数据指针出口地址,低8位给P0口,高8给/位P2口 MOV A,6CH MOVX DPTR,A MOV A,R0 MOV DPTR,#TAB ;查表首地址 MOVC A,A+DPTR ;查表值送A MOV DPTR,#0FEFFH MOVX DPTR,A LCALL TIME1 MOV A,6CH RL A

29、MOV 6CH,A INC R0 DJNZ 6DH,HHH RETDIS1: MOV 6DH,#04H /*时间显示子程序*/ MOV R0,#72H MOV 6CH,#0FEHHHH1: MOV DPTR,#0F7FFH ;FF给P0口,F7给P1.0P1.3口 MOV A, 6CH MOVX DPTR,A ;将6CH的内容放到0F7FFH中 MOV A,R0 MOV DPTR,#TAB ;查表首地址 MOVC A A+DPTR ;查表值送A MOV DPTR,#0FBFFH MOV R1,6DH CJNE R1,#03H,K1 ORL A,#80HK1: MOVX DPTR,A LCALL

30、 TIME1 MOV A, 6CH RL A MOV 6CH,A INC R0 DJNZ 6DH,HHH1 RETTIME1: MOV 6AH,#0AH /*延时子程序*/FFF: MOV 69H,#0AHGGG: DJNZ 69H,GGG DJNZ 6AH,FFF RETJISUAN:JB 00H,K2 /*判断是否超过3公里及计算价格子程序*/ MOV A,78H CLR C SUBB A,#03H MOV 73H,#06H JC K3 SETB 00H LJMP K3K2: MOV R3,71H MOV R4,70H MOV R2,#00H MOV R5,#00HMOV R6,#03HMOV R7,#0E8H LCALL NDIV42 MOV 75H,R4 MOV A,R6 MOV R3,A MOV A,R7 MOV R4,A MOV R2,#00H MOV R7,#100 LCALL NDIV31 MOV 74H,R4 MOV A,R7 MOV B,#10 DIV AB MOV 73H,A MOV 72H,B K3: RETCHAI: MOV 6FH,#03H /*保护现场子程序*/ MOV R0

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

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