1、目 录 摘 要 . I Abstract . 错误 !未定义书签。 引 言 .1 第一章 绪论 .2 1.1 课题来源 .2 1.2 单片机应用系统开发介绍 .3 1.2.1 开发流程 .3 1.2.2 开发语言 .4 1.3 AT89S52 芯片介绍 .4 1.3.1 AT89S52 引脚功能 .5 1.3.2 AT89S52 单片机内部结构框图 .6 第二章 硬件设计 .8 2.1 概述 .8 2.2 单片机最小系统 .8 2.2.1 时钟电路 .8 2.2.2 复位操作 .9 2.3 DS1302 时钟电 路 .10 2.3.1 DS1302 芯片介绍 .10 2.3.2 时钟电路设计
2、. 11 2.3.3 存储器的设计 .12 2.4 里程测量模块 .13 2.4.1 霍尔传感器介绍 .13 2.4.2 里程测量原理 .13 2.5 键盘控制电路 .14 2.5.1 按键的特性 .14 2.5.2 键盘电路 .15 2.6 显示部分 .16 2.6.1 显示器介绍 .16 2.6.2 LED 数码管原理 .16 第三章 软件设计 .17 3.1 主程序 .17 3.2 信息设定程序 .18 3.3 计价显示程序 .18 第四章 电路调试 .21 4.1 硬件电路调试 .21 4.2 软件调试 .22 4.3 实例测试 .22 结 论 .23 致 谢 .24 参考文献 .25
3、 附 录 .26 附录 A 电路原理图 .26 附录 B 时间显示单元测试 .27 附录 C 计费显示单元测试 .28 附录 D 主程序清单 .29 I 基于 AT89S52 单片机 的出租车计价器设计 摘要 : 出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。一个具有良好性能的计价器,无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此, 本文设计了一套以 AT89S52 单片机, A44E 霍尔测距传感器为核心的出租车计价 系统。系统 通过 采用 DS1302 芯片设计时钟电路,单片机控制 LED七段数码管显示, 使用 C 语言进行编程 ,
4、 实现了功能键分屏控制里程、总金额和时间的动态显示,按键校订计时时钟、起步价及起步里程等基本操作功能。此外,本文还详细阐述了软硬件设计过程中的关键技术 , 提供了设计方法、流程图以及程序代码等。 关键词: 出租车计价器; AT89S52; A44E 霍尔传感器; DS1302 II The Design of Taximeter Based on AT89S52 MCU Abstract: Taximeter is the transaction standards between passengers and drivers, which is an important indicator
5、of the taxi development industry, and is the most important tools for a taxi. A Taximeter with good performance, both for the majority of taxi drivers or passengers is very necessary. Therefore, this paper designed Taximeter system, based on the core of AT89S52 MCU, A44E Hall ranging sensor. By usin
6、g DS1302 chip design system clock circuit, MCU control LED seven-segment digital display, and using the C programming language, achieve a split-screen function keys control the mileage, the total amount and time of the dynamic display, keypad revision timing clock, starting fare and starting mileage
7、 and other basic operating functions. Additionally, this article elaborates detailedly the key technology of designing hardware and software process to provide a design methodology, flow charts and program codes. Key words: Taximeter; AT89S52 MCU; A44E Hall sensors; DS1302 1 引 言 目前,单片机的发展非常迅速,应用也极为广
8、泛,特别是 C51 系列的单片机,它具有体积小、功能强、性能稳定、价格低廉等优点,在诸多领域得到了广泛的应用。在此基础上发展起来的计量仪器无论是在测量的准确度、灵敏度、可靠性、自动化程度、应用功能等方面或在解决测试技术问题的深度及广度方面都取得了巨大的发展,以一种崭新的面貌展现在人们面前。 出租车计价器就是单片 机技术 的一个典型应用。 作 为现代化城市必备基础设施, 出租车已 成为人们工作、生活 不可或缺 的 一种 交通工具 。如何才能实现准确计费,成为了生产和制造出租车计价器的重 要技术标准。出租车计价器是出租车营运收费的专用智能化仪表,它通过对出租车行驶里程的计量,进而转化为乘车金额。随
9、着计算机技术、微电子技术及传感器技术的迅猛发展,出租车计价器技术也在不断进步提高。 本系统是以 AT89S52 单片机为核心的多功能出租车计价器的设计。所设计的计价器不仅具备基本的计时计价功能,还能实现时钟校订、单价设定、计价器复位、里程 /金额显示等功能。其结构主要包括:霍尔传感器测距模块、单片机模块、 LED 动态显示模块、 DS1302时钟电路模块及按键模块等 1。该系统的特点是功能明确、操作简单、计算 准确、成本低廉、性能可靠等。该系统不但能实现基本的计价功能,而且还能够根据中途等待来调节单价,同时在不计价时还可作为时钟为司机提供方便。 2 第一章 绪论 1.1 课题来源 近年来,我国
10、出租汽车行业迅猛发展,出租汽车已经成为我国城市公共交通的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可缺少的交通工具。出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽车必须安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值 的计量器具。计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而计价器计价准确与否,直接关系到经营者和消费者的经济利益。依据国家有关法律、法规,出租汽车计价器是列入国家首批强制检定的工作计量器具之一。 出租汽车计价器是一种集计程、计时、时钟和车速等多种计量功
11、能于一体的极为专用的智能化计量仪器,它安装在出租汽车上,通过连接在车辆变速箱输出端齿轮的传感器传送电脉冲信号来记录车辆营运里程,按特定的计价收费模式连续累加并直接指示出行程中任一时刻乘客应付费用的总数,其金额值是计程和计时时间的 函数。可见计程和计时是计价器计价的依据。计程指重车 (车辆处于租用状态 )时计价的里程,计时指重车低速状态时计价的时间。计程可分为起程和续程两部分,起程是租用车辆的最低计价里程,续程是在起程以后的最小计价里程。计时也分为起始时间和后续时间,起始时间是与起程相对应的计价时间,后续时间是起程后的最小计价时间,是与续程相对应的计价时间。由此可以看出,计程和计时通过相互进行等
12、效折算参与计费。 作为出租车营运收费的专用智能化仪表,随着电子技术的发展 ,出租车计价器技术也在不断进步和提高。国内出租车计价器已经经历了 4 个阶段的 发展,从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器;再从集成电路式到目前的单片机系统设计的出租车计价器,发展越来越迅速。本次设计就是以AT89S52 单片机为核心的智能出租车计价体统,该系统具有时钟校订、单价设定、计价器复位、里程 /金额显示等多种功能。 3 1.2 单片机应用系统开发介绍 1.2.1 开发流程 单片机本身只是一个裸机系统,内部没有任何驻机软件,因此,要使它成为一个应用系统,就需
13、要进行软、硬件的开发。硬件是指单片机 CPU、扩展存储器、输入 /输出接口电路及设备等组成的电路系统;软件包括监控程序和各种应用程序。硬件和软件只有密切配合、协调一致,才能构成一个功能完善、工作可靠的单片机应用系统。开发设计流程如图1.1 所示。 图 1.1 单片机应用系统开发流程 具体开发过程如下: ( 1) 对单片机应用系统进行系统分析,确定系统设计的思路; ( 2)根据设计思路利用 Protel DXP 软件工具 画出硬件设计原理图,并利用电路仿真软件 Proteus 对 电路进行仿真,仿真通过后,制作硬件电路; ( 3)根据输入 /输出应用系 统的要求,进行软件设计,编制源程序,进行编
14、译并生成可执行目标文件 .HEX 和 .BIN 文件; ( 4)利用 Keil及 Proteus 等软件进行仿真调试、修改直至达到预期效果;也可以将仿真器与设计好的硬件相连接,仿真运行直至达到预期效果; ( 5)将程序下载至单片机芯片; 系统分析 硬件设计 电路仿真、制作 硬件 软件设计 系统仿真调试、修改 软件下载 脱机运行 4 ( 6)将单片机芯片插入电路中的单片机插座,脱机运行。 1.2.2 开发语言 程序是单片机应用系统的灵魂。单片机的程序设计就是根据应用系统 (即目标产品 )的要求和单片机的特点,采用适当的方法,合理地运用指令编写单片机的应用程序 2。 目前,用于程序设计 的语言共有
15、三种:机器、汇编和高级语言。机器语言由于晦涩难懂,不便于记忆,基本不用,常用汇编语言和高级语言进行单片机程序开发。用汇编语言编写的程序虽然效率高,存储空间小,运行速度快,但通用性较差,难以移植。随着单片机广泛使用及单片机的日益复杂化,单片机的开发应用已逐渐引入了高级语言,以使单片机移植性提高,从而提高程序的开发效率。 C 语言就是其中的一种。 C 语言是一种通用的计算机语言,既可以用来编写系统程序,又可以用来编写应用程序,它同时具有汇编语言和高级语言的特点。与汇编语言相比, C 语言编写程序有如下优点: ( 1)不要求了解处理器的指令集,也不必了解存储器的结构; ( 2)寄存器分配和寻址方式由
16、编译器管理,编程时不必考虑存储器的寻址等; ( 3)可使用与人的思维更接近的关键字和操作函数; ( 4)可使用 C 语言中库文件的许多标准函数; ( 5)通过 C 语言的模块化编程技术,可以讲已编制好的程序加入到新的程序中; ( 6) C 语言编译器几乎适应于所有的目标系统,已完成的软件项目可以很容易地转移到其他微处理器和环境中。 正因为 C 语言具有使用方便、通用性强、编程效率高和仿真调试容易等突出特点,才被广泛使用于单片机开发领域。本设计就是采 用 C 语言进行单片机程序设计开发的。 1.3 AT89S52 芯片介绍 一个完整的计算机系统包括运算器、控制器、数据或程序存储器和输入 /输出接
17、口四大部分。若将计算机的四大基本单元集成在一个晶体芯片使之成为一个完整的计算机,则称之为单片机 3。在灿若河汉的单片机世界里, Intel 公司的 MCS-51 系列单片机因为其功能较完善、价格低廉、应用软件齐全、开发工具成熟易学及机型不断升级,从而得到广泛应用。 AT89S52 单片机就是其中的一款。 5 1.3.1 AT89S52 引脚功能 P10/T21P11/T2EX2P123P134P145P156P167P178RESET9RXD10TXD11INT012INT113T014T115WR16RD17X218X119GND20P2021P2122P2223P2324P2425P252
18、6P2627P2728PSEN29ALE/P30EA/VP31P0732P0633P0534P0435P0336P0237P0138P0039VCC40U2AT89S52图 1.2 AT89S52 引脚图 AT89S52 单片机是采用 40 引脚双列直插封装的芯片,有些引脚具有两种功能,引脚分布如图 1.1 所示。引脚功能如下: VCC:电源 GND:接地 P0 口:双向 I/O 口,既可以作地址 /数据总线口,也可以用作普通 I/O 口 P1 口:准双向通用 I/O 口 P2 口:准双向口,地址总线口输出地址高 8 位口 P3 口:多功能端口,既可以 用 作普通 I/O 口,也可以按每位定义
19、的第二功能 进行操作,这时各引脚定义功能见表 1.1 所示 ALE/PROG:地址锁存信号输出端 RST:复位信号输入端 EA/VPP: 访问外部程序存储器控制信号 PSEN:程序存储允许输出信号端 6 XTAL1: 振荡器反相放大器和内部时钟发生电路的输入端 XTAL2:振荡器反相放大器和内部时钟发生电路的输出端 表 1.1 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(外部数据存储器读选通) 1.3.2 AT89S52 单片机内部结构框图 AT89S52 的 内部集成有: 8 位字长 CPU 振荡器和时钟电路,全静态操作: 033MHz 8KB 系统内可编程 Flash 存储器 256KB 内部 RAM 4 个 I/O 端口共 32 线 3 个 16 位定时 /计数器 全双工 (UART)串行口通道 ISP 端口 定时监视器 (看门狗 ) 双数据指针 (DPTR) 20 多个特殊功能寄存器 电源下降标志