当前位置:首页 > 工作总结 > 基于单片机的出租车计价器设计(毕业设计) 出租车计价器设计原理
 

基于单片机的出租车计价器设计(毕业设计) 出租车计价器设计原理

发布时间:2019-08-01 09:19:58 影响了:

毕 业 设 计

课 题 基于单片机的出租车计价器设计

学生姓名 院 部

专业班级

指导教师 二 ○ 一 四 年 五 月

杨凯:基于单片机的出租车计价器设计

目 录

插图清单

表格清单

摘 要

Abstract

第1章 引 言 ................................................................................................................................... - 1 -

1.1概述 ......................................................................................................................................... - 1 -

第2章 计价器设计系统的方案选择 ........................................................................................ - 2 -

2.1计价器系统的相关要求 ......................................................................................................... - 2 -

2.1.1计价器系统的基本功能 .............................................................................................. - 2 -

2.1.2计价器系统的技术要求 .............................................................................................. - 2 -

2.2方案论证与比较 ..................................................................................................................... - 2 -

第3章 计价器设计系统的硬件设计 ...................................................................................... - 4 -

3.1硬件设计总述 ......................................................................................................................... - 4 -

3.2里程计算模块的设计 ............................................................................................................. - 5 -

3.3显示模块设计 ......................................................................................................................... - 7 -

3.4语音模块设计 ......................................................................................................................... - 8 -

3.5按键电路的设计 ..................................................................................................................... - 9 -

3.6掉电存储电路的设计 ........................................................................................................... - 10 -

3.7时钟电路的设计 ................................................................................................................... - 11 -

第4章 计价器设计系统的软件设计 ...................................................................................... - 12 -

4.1模块介绍 ............................................................................................................................... - 12 -

4.2主程序模块 ........................................................................................................................... - 12 -

4.3里程计数中断程序 ............................................................................................................... - 13 -

4.4定时中断服务程序 ............................................................................................................... - 13 -

4.5中途等待服务程序 ............................................................................................................... - 14 -

4.6显示服务子程序 ................................................................................................................... - 14 -

4.7键盘服务子程序 ................................................................................................................... - 15 -

第5章 系统调试 .......................................................................................................................... - 17 -

5.1 利用仿真软件Proteus进行仿真调试 ................................................................................ - 17 -

5.2里程计价测试 ....................................................................................................................... - 18 -

5.3掉电存储测试 ....................................................................................................................... - 19 -

5.4 硬件电路 .............................................................................................................................. - 19 -

5.4.1 电路元器件检测 ....................................................................................................... - 19 -

5.4.2 元器件的焊接方法 ................................................................................................... - 19 -

5.5硬件检测 ............................................................................................................................... - 20 -

5.6可行性分析 ........................................................................................................................... - 20 -

第6章 结束语 ............................................................................................................................... - 22 -

6.1工作结果 ............................................................................................................................... - 22 -

6.2心得体会 ............................................................................................................................... - 22 - 参考文献 .......................................................................................................................................... - 23 - 致 谢 .......................................................................................................................................... - 24 - 附 录 .......................................................................................................................................... - 25 -

铜陵学院毕业设计

插图清单

图2-1 基于定时芯片的计价器………………………………………………………3 图2-2 基于单片机的计价器…………………………………………………………3 图3-1 系统电路图……………………………………………………………………4 图3-2 霍尔传感器工况图图…………………………………………………………6 图3-3 霍尔传感器外形及接线………………………………………………………6 图3-4 霍尔传感器测里程原理图图…………………………………………………6 图3-5 显示电路………………………………………………………………………8 图3-6 语音播报电路…………………………………………………………………9 图3-7 按键电路………………………………………………………………………9 图3-8 掉电存储电路…………………………………………………………………11 图3-9 时钟电路………………………………………………………………………11 图4-1 主程序流程图…………………………………………………………………12 图4-2 里程计数中断程序流程图……………………………………………………13 图4-3 定时中断程序流程图…………………………………………………………14 图4-4 中途等待服务程序流程图……………………………………………………14 图4-5 显示服务程序流程图…………………………………………………………15 图4-6 键盘服务程序流程图…………………………………………………………16 图5-1 系统调试流程…………………………………………………………………17 图5-2 系统仿真图……………………………………………………………………18

杨凯:基于单片机的出租车计价器设计

表格清单

表3-1 LCD1602基本参数说明………………………………………………………7 表3-2 LCD1602引脚说明……………………………………………………………7 表3-3 AT24C02管脚功能……………………………………………………………10 表5-1 白天单价测试…………………………………………………………………18 表5-2 晚上单价测试…………………………………………………………………19 表5-3 中途等待价格测试……………………………………………………………19 表5-4 掉电存储测试…………………………………………………………………19

铜陵学院毕业设计

基于单片机的出租车计价器设计

摘 要

随着城市改革开放的进一步深化,出租车行业发展迅猛,而仪表计价器的市场需求也日益扩大。本着节约成本的原则在出租车服务质量和行业管理方面加以提高,本设计 以STC89C52单片机为主控器、附加A44E霍尔传感器测距,实现对出租车价格计费,采用AT24C02实现在系统掉电的时候对单价和系统时间等消息进行保存,输出采用LCD1602液晶显示器,采用ISD2560语音播报模块进行语音播报,采用DS1302实现时钟。此次设计的计价器不但能实现基本的计价,而且还能根据白昼黑夜来调单价,同时在非运 营的时候还能司机还能方便的查看时钟。

关键词:出租车计价器;STC89C52;A44E霍尔传感器;AT24C02

杨凯:基于单片机的出租车计价器设计

Based on Single-chip Taximeter Design

Abstract

With the deepening of reform and opening up the city, taxi industry is developing rapidly, and the meter market demand is also growing. Improvement in cost saving principle in the taxi service quality and management aspects of the industry, the design STC89C52

micro-controller as the main controller, additional A44E Holier sensor location, and the taxi price, using AT24C02 to realize when the power is off the unit and system time message is preserved, output using LCD1602 liquid crystal display, using ISD2560 the voice

poadcasting module for voice poadcast, using DS1302 to achieve the clock. The circuit

design of the meter can not only achieve the basic pricing, but also based on the day and night to adjust the unit price, at the same time in the non operation can always provide the clock display and convenient for the driver.

Key word: Rental car mileage fare meter;STC89C52;Hall sensor A44E;AT24C02

铜陵学院毕业设计

第1章 引 言

1.1概述

在中国出租车行业是一个新兴行业,其起于八十年代早期,随着中国经济的快速发展,汽车已成为城市公共交通的重要组成部分。现在各大城市出租车行业的通用自动化 仪表,仪表技术的发展已成定局,预计未来计市场大有可为。

出租车计价器的发展已经有很长的一段历史。最初的出租车计价器主要是机械结构,结构复杂而只有一种功能。随着科学技术的发展,仪器的第二代,使用相结合的计算机和机械手,机械电子的一半,这在出租车也可以完成评估工作。大规模集成电路的出现使得电子仪表、仪器不断更新换代。当把微控制器单板机大规模应用计价器控制系统中后,就是的成形的计价器模块化,而当代的计价器所拥有的统一,标准功能为,计算运费,计算里程并且显示相关数据。现今的微控制器单板机的性价比在不断提高,而且机电控制系统应用越来越普及,其中就包括了出租车计价器,使得其多功能化,成本越来越低,操作越来越人性化和方便,以下是当代计价器的一些基本功能:

(1)液晶显示器,液晶屏可显示各种运行数据,使乘客一目了然;(2)在非工作状态 时的永久时钟功能,使用日历时钟芯片,该仪器可以永久地显示时钟;(3)存储功能, 可存储临时数据便于客户查询信息。

随着中国经济的快速发展,人民生活水平的显著提高,城市交通的改善,越来越多 的计价器被应用。改革开放以来,我国在车辆工程行业发展极其迅速,尤其是在出租车行业已普及至我国各大城市,使得城市中交通工具变得更加丰富,而且也成为了一个城市发展程度、规模的重要标志和评判标准。然而随着出租车的普及,为了使得经营者与消费者达到公平交易,则有交易工具计价器的诞生,所以它的精度、准确度就自然而然显得至关重要。按照国家有关法律、法规,出租车计价器是一种工作计量器具列入强制检定国家第一批,也是近年来加强六个重点测量仪器管理的国家质量技术监督部门。 此次设计就是为了提高计价器的精度和准确度,不仅关系到司机和乘客间的利益,而且会使得设计的意义得到了进一步升华,真正做到把科学应用于国民经济的发展。

杨凯:基于单片机的出租车计价器设计

第2章 计价器设计系统的方案选择

2.1计价器系统的相关要求

2.1.1计价器系统的基本功能

此次设计的计价器控制系统的主要可以实现:通过一键回复功能数据、分屏显示相关数据、不同时段转换、运营里程计数和计费、时钟显示和掉电存储等功能。按下功能按键后,运行过程如下,先是里程传感器检测汽车行驶信号数据,再是将检测的信号进行信息处理,后送至单片机进行里程、运费计算,并将结果呈现在显示单元上。

2.1.2计价器系统的技术要求

本设计的主要技术要求如下:

计价包括起步价、行车里程计费、等待时间计费三部分,由液晶屏显示总金额、运行里程、等待时间,最大显示为999元,起步价为5.0元/3km(含3km),超过3km,里程每增加1km增加2元,等待时超过等待时间五分钟后每分钟0.5元,用液晶显示总里程、 等待时间和总金额。

1. 计费功能

白天(6点到晚上23点)起步价为5.00元,晚上(晚上23点到第二天6点)起步价为6.00元。

(1)当里程3km时(含3km),只计起步价

(2)当里程3km时,按2元/km计费

(3)等待累计时间5min时,按0.5元/min计费

2. 显示功能

(1)显示行驶里程:由液晶屏显示“XXX”,单位为km。里程范围0-999km。

(2)显示等候时间:由液晶屏显示“XX”,单位为min。计时范围0-59min。

(3)显示总费用:用三位数字显示“XXX”,单位为元。计价范围0-999元,精确到1元。

2.2方案论证与比较

方案一:采用数字电路控制,通过外部电路检测传感脉冲数来计算出租车的行驶里程数,而后通过A/D转换以译码器对检测的信号数据进行译码,再在显示单元中呈现出来。方案一如图1所示:

方案二:利用单片机作为主控制器,利用LCD1602显示屏作为显示电路,采用外 部晶振电路作为时钟脉冲,以下是方案二的系统流程图,如图2所示:

通过以上两种方案的比较,用单片机作为主控器,利用单片机丰富的I/O端口,及其控制的灵活性,不仅能实现基本里程的定价和价格调整,时钟显示功能,而且还有很 强的扩展性,可以对系统进行升级改善。因此我们采用单片机进行设计。

铜陵学院毕业设计

图2-1 基于定时芯片的计价器

图2-2 基于单片机的计价器

杨凯:基于单片机的出租车计价器设计 第3章 计价器设计系统的硬件设计 3.1硬件设计总述 此次设计计价器控制系统以STC89C52单片机作为主控器,以及其他相关芯片作为各个模块的主体。由于使用STC系列单片机可以使用RS232串口写程序,进而使得实验仿真更加方便快捷,而且与ATMEL公司的系列单片机相比,STC89C52是一个低功率消耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,STC的设备使用的高密度,非易失性存储技 术,与标准MCS51指令集和80针C51的结构兼容,芯片内集成了通用8位中央处理器和ISP Flash存储单元,STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方 案,因此STC89C52在众多嵌入式控制应用系统中得到广泛应用。 对于里程传感检测来说,使用霍尔元件(霍尔传感器A44E)有诸多好处,譬如其占据空间小,安装与拆卸容易,而且成本低,便于普片使用,性价比高。对于显示装置,我们采用LCD1602液晶显示器,同样成本低,编写驱动程序也很方便,也可以实现历程和价格以及单价的分屏显示。对于语音播报模块,我们采用ISD2560芯片,此种语音播报芯片使用寿命长,音质好,操作以及驱动程序编写方便。其他方面我们则采用具有IIC设备的AT24C02芯片来进行设计掉电存储模块,采用DS1302芯片来设计系统时钟模块,本次设计共使用4个按键,其中三个是价位调节功能键,另一个则是复位电路的按键。 计价器系统的电路原理图如图3所示。 图3-1 系统电路图

铜陵学院毕业设计

本课题以单片机作为主控制器接收来自霍尔传感器信号和处理,根据处理结果,然后发送到LCD1602芯片,相应的数据内容在液晶屏上显示,同时,单片机可以根据需要控制语音接入电源了存储单元的内容的语音芯片。同样,用户也可以通过按键对计价器进行设置以达到相关需求。

除单片机以外整个电路还包含了按键、传感器、显示、语音、掉电存储、时钟等几部分电路。4个按键分别于单片机P1口的几个引脚相连,当按键被按下时相应的引脚出现一个低电平,单片机接收到低电平信号执行相应的操作;传感器电路通过P3.2引脚与单片机相连,通过触发中断的方式实现里程的计数;显示电路用的LCD1602芯片的数据传输引脚连接单片机P0口P1.0-P1.3,其控制引脚与单片机的P2口连接P2.0-P2.2;语音播报芯片ISD2560控制引脚和数据传输引脚分别与单片机P1口和P3口连接分别为P1.4-P1.7和P3.4-P3.7;掉电存储电路的AT24C02芯片的控制引脚与单片机的P2口连接P2.4-P2.5。时钟电路的DS1302芯片的控制引脚与单片机的P2口连接分别为P2.3、P2.6和P2.7。

3.2里程计算模块的设计

霍尔传感器是一个磁场传感器是磁电转换可以使用霍尔效应作出来实现,它具有高的灵敏度,线性度好,稳定性高且耐高温度,及体积小等优点,在汽车控制系统中的应用非常广泛。在实际使用中,由于霍尔元件具有体积小,重量轻,因此安装非常方便,同时为低功耗,高频率的霍尔组件相同,抗冲击,耐腐蚀等特点,因此使用寿命长。

霍尔传感器A44E:A44E是一款开关型的霍尔元器件,它的工作电压范围比较宽(4.5~18V),而且其输出的信号是TTL电平信号,因此它可以直接和单片机耦合相连,而且其最高检测频率可达兆赫。A44E霍尔传感器是根据霍尔效应原理,其内部电路是有各种独立电路组成,比如差分放大电路,温度补偿电路,RS触发器电路以及核心地位的霍尔电压电路,再将这些电路集成化制成磁敏电路。下面阐述其运行动作原理:首先明确其输入信号时磁感应强度,通过集成电路处理后得到一霍尔电压作为输出信号。加在霍尔电压发生器两端的电压先由稳压电路输出的,再根据霍尔效应,通以电流的霍尔片在磁场中将会产生霍尔电压,此电压信号先后经过放大电路放大和RS触发器电路整形后得到方波输送至OC门。此时有“开”和“断”两种情况,如果把磁场增大至放大器输出的电压能把晶体管导通,而此时OC门输出的是低电压,此种状态为“开”;如果把磁场减小至触发器输出的电压可以使得晶体管截止,那么此时OC门输出高电压,此种状态为“关”。

其霍尔传感器内部接线图如图3-3所示。

里程计算、计价单元的设计:由车轮霍尔传感器信号检测装置的里程,送到单片机 进行处理后,再由单片机发送给显示装置,其原理如图6所示。

我们用单片机的P3.2口作为信号的输入口,内部采用外部中断0,车轮每转一圈(假设车轮的周长是1 米),此时霍尔传感器就会传感检测到一个中断信号,传输给单片机,如此这样1000次的话,表明出租车已行驶1公里,单片机内部将会进行计算,自行增加运行费用,并在显示单元上展现出相关数据。

杨凯:基于单片机的出租车计价器设计

图3-2 霍尔传感器工况图

图3-3 霍尔传感器外形及接线

图3-4 霍尔传感器测里程示意图

铜陵学院毕业设计

3.3显示模块设计

在本设计中我们使用LCD1602液晶屏来显示出单价、里程、总金额等信息。

LCD1602的基本参数如下:

表3-1 LCD1602基本参数说明

LCD1602的各个引脚的功能如下表所示

表3-2 LCD1602引脚说明

显示器电路原理图如图3-5所示。

显示模块电路电源电压为5V,由VCC引入,LCD1602液晶显示器的数据传输引脚与单片机的P0口连接,以此可以写入要显示的数据内容,而显示器的控制端引脚则与单片机的P2口连接分别为P2.0-P2.2。以此可以写入控制指令设置显示模式以及驱动程序。显示器的对比度可以通过调节控制引脚上的上拉变阻器来实现。

杨凯:基于单片机的出租车计价器设计

图3-5 显示电路

3.4语音模块设计

我们采用单片语音录放集成芯片ISD2560作为此次设计中数字语音芯片,由于其本身就具有抗电功能而且音质好,使用操作也方便,无需特殊开发系统。此种芯片每次录音时间约1分钟,使用寿命长。芯片多路转换开关对电平进行直接模拟量存储技术,从而在A/D,D/A转换器使用个数方面进行了优减。用一个单芯片的EEPROM单元直接将每个采样值进行直接存储,因此可以非常真实反映出语音录放效果。避免了量化噪声和“金属声”等不理想的语音效果。ISD2560芯片其内部电路是由定时采样电路,触发器滤波电路以及电压放大等电路,进行高度集成而得,大大减小了芯片体积,由于其有IIC设备,故其内部也有掉电存储电路。EEPROM内部框图和引脚排列如图所示。由于 ISD2560的电平特性是TTL属性,故无需电平转换装置就可直接与单片机进行连接,大大简化电路连接。

语音播报电路如图3-6所示:

3.5按键电路的设计 按键电路原理图如图3-7所示。 铜陵学院毕业设计 图3-6 语音播报电路 图3-7 按键电路

杨凯:基于单片机的出租车计价器设计

S1按键:出租车不走时,按下S1,启动LCD液晶显示器车行走时只有总金额和.单价显示屏在显示,当到达目的地时,可以根据客户要求查看总里程,此时按下S1切换 到里程和单价显示屏,供客户查询。

S2按键:在按下S1按键之后,若接着按下S2键则进行白天黑夜单价调整(默认为调整白天单价),通过计数S2按下次数进行不同的价格调整。

S3按键:在按下S3键之后,语音芯片开始语音播报,系统播放 您好!欢迎乘坐本公司出租汽车,谢谢!”播送完毕计价器开始计费;在行使状态下,按下S3键,表示出租车到站,结束行使。这时候,系统播放“请检查您的随身物品,欢迎再次乘坐,再 见!”的提示音。

3.6掉电存储电路的设计

掉电保护模块主要是可以自行保护被更改后的数据,防止发生意外断电导致重要信息的丢失以及可能会导致重新设置信息的繁琐。此次设计我们使用了AT24C02芯片。 AT24C02是一个2字节串行CMOS EEPROM,内部有256个8位字节,AT24C02还有一个16字节读写缓冲器。

从而使得按下调整按键、功能按键,此时存储于AT24C02芯片中的信息会被自动读取,实现了一些重要信息的保存,达到所需要求。

AT24C02的管脚及其功能如下表所示:

表3-3 AT24C02管脚功能

根据AT24C02芯片的data-sheet,设计出掉电存储模块电路原理图如图3-8所示:

铜陵学院毕业设计

图3-8 掉电存储电路

3.7时钟电路的设计

DS1302实时时钟芯片是一种高性能,低功耗的美国达拉斯公司生产的,一个额外的31字节的静态RAM,可以提供日期和单片机系统的时间。与CPU通信同步三线SPI接口,可用于多字节时钟信号和RAM数据突发模式传输。实时时钟提供秒,小时,天,周,月和年,不到一个月31天可以自动调整,并且具有闰年补偿功能。2.5 ~ 5.5V宽电压工作。双电源(主电源和备用电源),可设置备用电源充电模式,充电电源提供支持 的能力。时钟操作可以使用24个或12个小时的时间格式通过AM / PM旗帜决定。DS1302与单片机之间可以简单地采用同步串行通信的方法,只有三根I / O线:复位(RST),I / O数据电缆,串行时钟(SCLK)。DS1302时钟芯片内部可以掉电存储,实时保存时间信息,而且功率消耗要小的多。DS1302用于数据记录,特别是对一些重要的数据记录,能实现数据,同时记录数据的时间,因此它被广泛地应用于测量系统。

时钟电路如图3-9所示:

图3-9 时钟电路

杨凯:基于单片机的出租车计价器设计

第4章 计价器设计系统的软件设计

4.1模块介绍

本系统的软件部分主要分为主程序、里程中断程序、定时中断程序、中途等待子程 序、显示子程序、键盘子程序几个模块。

4.2主程序模块

主程序模块示意流程图如图4-1所示。

图4-1 主程序流程图

在主程序模块中,要先对各芯片进行初始化、出租车计价初始化、中断向量的设定以及开中断、循环等待等工作。而且,在主程序模块中还需要对各种寄存器进行启动或清零,并对它们进行初始化。然后,主程序将读取各寄存器的内容,完成开启,重置和 计费等操作。

当按下功能按键时,计价器启动,系统将根据寄存器中的数据内容计算并将所行驶里程数与起价公里数进行对比。此时会有两种计算结果,根据公式和要求的单价值进行计算,并将计算结果在显示器上显示。其中,若霍尔传感器传感检测到里程计数信号停止,此时需判断是否有语音播报键按下,若没有表明是中途停车等待的情形;若有,表

铜陵学院毕业设计

明是到达目的地信号,此时计价器停止计价,显示器显示相应的数据内容,待车再次发动时,对所有数据惊醒清零初始化处理,但是时钟依旧常规运行。

4.3里程计数中断程序

里程计数中断服务程序示意流程图如图4-2所示。

图4-2 里程计数中断程序流程图

在里程计数中断子程序中,车轮每转一圈(我们设车轮的周长是1米),霍尔传感 器就检测并输出一个信号,引起单片机的中断,对脉冲计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的加增加,送数据到相应的显示单元,并调用显 示子程序显示。

4.4定时中断服务程序

定时中断服务程序示意流程图如图4-3所示。

编写定时中断服务程序时,可以设定50ms产生一次中断,这样累计产生20次,就达到1s,如此再执行中断后的终端服务程序,以及相应的操作。

杨凯:基于单片机的出租车计价器设计

图4-3 定时中断程序流程图

4.5中途等待服务程序

中途等待服务程序示意流程图如图4-4所示:

图4-4 中途等待服务程序流程图

若霍尔传感器传感检测到里程计数信号停止,语音播报按键(欢送语)没有被按下,此时偌定时器计数达5分钟,就进行等待计价运算,一旦霍尔传感器恢复检测到里程计数总中断信号,也就是等待子程序结束,就恢复正常的计价运算。

4.6显示服务子程序

液晶显示程序示意流程图如图4-5所示:

铜陵学院毕业设计

图4-5 显示服务程序流程图

LCD1602液晶显示器由于有自带的字符库所以显示控制就容易得多,方便得多,简化了所编写程序的显示内容的写数据那部分程序。程序编写时要注意先写指令,后写数据以及分行显示数据时注意地址的编写。 4.7键盘服务子程序

键盘服务程序示意流程图如图4-6所示: 键盘服务程序模块,我们if语句不断地扫描是否有按键被按下,也就是查询的方式,如果有键被按下就执行相应的子程序,然后再返回主程序,若没有,就一直扫描下去,直到扫描到有键被按下。

杨凯:基于单片机的出租车计价器设计

图4-6 键盘服务程序流程图

铜陵学院毕业设计

第5章 系统调试

根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。测试包括里程计价测试、掉电存储测试。硬件调试的任务是排除所

焊接电路故障。软件调试是利用开发工具进行在线仿真调试。调试的一般过程

如图5-1所示:

图5-1 系统调试流程

系统调试就是所设计的控制系统所需电压或其他输入信号,观察其运行状态是否符合要求,比如时钟是否走动,蜂鸣器是否有声音,LED灯是否能点亮。而系统软件调试则是利用软进行仿真运行,可以各个模块分开调试,也可以同时调试。

5.1 利用仿真软件Proteus进行仿真调试

采用单片机仿真软件—PROTEUS对系统进行仿真,其操作步骤如下: 1.打开Proteus软件。

2.选择file菜单下的open design选项,找到所需的元器件,并对其进行命名和赋值,然后按照电路图连接后并保存。

3.将用keil编译产生的hex文件下载到单片机中:双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。

杨凯:基于单片机的出租车计价器设计

4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。

下图是在PROTEUS中仿真通过的整体硬件原理图。

图5-2 系统仿真图

5.2里程计价测试

为了能更好的模拟设计硬件模块,我们采用小功率电动机(带有滚轮的,其周长为1米)代替出租车车轮,用杜邦线将电动机模块与单片机相连,及时反馈显示内容。

表5-1的应用条件是:模拟白天单价超出3公里,每公里2元,起始价设为5元,模拟所测数据如下表:

表5-1 白天单价测试

表5-2测试条件是:模拟晚上单价超出3公里,每公里2元,起始价设为6元,模拟所测数据如下表:

铜陵学院毕业设计

表5-2 晚上单价测试

表5-3测试条件是:模拟等待单价超出5分钟,每分钟2元,模拟所测数据如下表:

表5-3 中途等待价格测试

5.3掉电存储测试

表5-4显示的数据表明,模拟所设计系统的掉电存储模块功能,并且能正确反馈信息的功能。

表5-4 掉电存储测试

5.4 硬件电路

5.4.1 电路元器件检测

由于各个元器件性能会影响整个系统的性能,所以在焊接之前,检查各元器件的完好情况以及是否是所设计系统所需的型号很有必要,然而这些检查与核对可以通过查看系统元器件清单和原理图,data-sheet。 5.4.2 元器件的焊接方法

手工焊接是传统的焊接方法中,虽然对电子产品的体积不采用手工焊接,

杨凯:基于单片机的出租车计价器设计

但在电子产品维修,调试必然会使用手工焊接。焊接质量的好坏直接影响修复的影响。手工焊接是一个非常实用的技能,在理解的一般方法,多练习,更多的实

践,才能有较好的焊接质量。 1.焊接过程要遵循以下原则:

按照理论原则来看应该是先小后大,由于各个元器件体积小,材料敏感系数大,焊接时注意温度的控制。 2.焊接要点及注意事项:

(1)准备工作以及相关辅助工具,如:焊接底座。

(2)由于有的芯片管脚小而多而密,所以焊接时防止短路和虚焊,如:STC89C52单片机芯片。

(3)保存时要防止静电,焊接时电烙铁要有良好的接地。

(4)尽量按照元器件的data-sheet来焊接。 3.易损元器件的焊接

易损部件安装在焊接过程中,容易损坏的部件,如热或接触电熨斗,有机铸造件,MOS集成电路。尽量保证各元器件的干净,干燥,防止出现短路;锡要隔离储存,防止出现热焊;注意电烙铁功率,温度的选择和控制。此外,较少的流量,防止电接触焊剂成分(如继电器触点的入侵)。蓄能式电烙铁MOS集成电路的最佳利用,防止弱漏电熨斗和损坏集成电路。注意要有良好散热设备,集成电路引线间距很小,要选择一个烙铁头和合适的温度,防止引线连接在锡。最好先焊接端,输出,电源端子焊接集成电路,然后焊接输入。 5.5硬件检测

时机和理想状态往往有很大差距和误差,所以对于硬件和软件的测试不容忽视,尽量保证各元器件实际状态与软件仿真时一致。元素的第一检测,然后进行调试。此次设计还需考虑的问题就是电路的驱动能力可能会受环境因素影响,而达不到软件仿真的效果,所以在选取相关元器件时尽量要选择最优方案。在焊接电路板具有良好的,必须进行各部件的检查。此外,数码管的焊接,第一行在一个混乱的焊接线。元素替代组件需要在购买时,组件模型,产品的质量不可靠的保障,可以避免我们购买的部件损坏,加焊在万能板焊接。因此,在每个元件焊接后必须进行测试,以确保焊接是正确的。要反复检查芯片的插槽是否接触良好,这些检查工作做好了,可以为后期的调试带来很大的帮助,使得设计更有效率,更有水准,使得学生做设计更加细心。

驱动部分的每个引脚检查LCD液晶显示模块与单片机的联系,看是否焊接良好,除了芯片和插座具有接触良好。这一检查可以通过外部电路和仪器来进行测量,比如用示波器波形,查看波形状态变化。 5.6可行性分析 (1)研究的必要性:由于国民经济的增长迅速,电子控制行业发展规模宏大,将单片机运用于出租车行业越来越普片,对于成本低廉而功能齐全、精确度高的计价器设计显得尤为重要,这也是将科学技术应用于国民经济发展的重要途径。 (2)可行性设计原理:所设计的电子控制系统通过里程传感器A44E传感检

铜陵学院毕业设计

测里程信号,再将信号送至STC89C52单片机中进行信息处理、计算,而后将运算所得结果送至显示单元LCD1602,而且系统还提供实时时钟,其由DS1302芯片来实现,也可以根据要求由芯片ISD2560进行语音播报,本设计系统还具有掉电存储模块,其由AT24C02芯片来实现。

(3)知识和能力的可行性:由于个人对于电子控制知识的着迷,也自学过单片机专业知识,并且曾用自己的开发板进行了一些小实验。设计过程中也有很多同学一起解决难题,所掌握的知识都可以正确的完成设计以及仿真的内容。 (4)实验条件的可行性:由于设计所需仪器和元器件,学生和学校都可以提供,而且可以通过同等条件模拟来实现设计所需信号的输入。在所有硬件和软件齐具的情况下完成了设计、调试和结果分析。

杨凯:基于单片机的出租车计价器设计

第6章 结束语

6.1工作结果

经过各方面可行性分析以及软硬件的总体设计借助各种设计工具完成了系统的设计。所设计的电子控制系统可以模拟完成设计要求的内容,实现了计价器的基本功能,并且精确度方面基本达标。最后该系统实现的功能如下:

1.实时显示时间。

2.根据模式要求和实际情况显示车费,以及语音播报。

3.本设计通过51单片机的P0口按键切换计价时段,根据要求计费。 6.2心得体会

经过自己的努力和老师的帮助指导,我完成了此次毕业设计,并且所设计的电子控制系统计价器能够在模拟出租车的条件下实现正常的计价器功能。

面对毕业设计的课题,我首先备齐所有要查找和要学习的资料其中包括c语言教程,单片机方面资料书,对于市场上已有的计价器的资料,以及相关软件资料Prot el、Proteus、Kiel C编程,还有自己所学的专业课知识。

通过此次设计学到的知识和经验很多。首先,在专业知识上额外学了很多单片机方面电子知识,为以后机电方向控制领域的研究打下了坚实的基础,也是我对这一方面的兴趣更加浓厚,在设计后期检测、调试方面也学到了很多小知识点,调试要认真,细心而且更重要的是要全面,使我明白了“磨刀不误砍柴工”的道理,前期工作准备好,会事半功倍,为尾期工作节省大量的人力物力。再者,就是学到了许多经验,这是书本上学不到的,让我懂得怎么把理论知识与实践相结合来完成设计,而且理想状态和理论基础与实际环境和实践探索有着很大的差距和误差,而这些差距就要靠我们的能力来补偿。通过此次设计我的各方面能力得到了检验,也得到了提高。

虽然最后的设计完成了所设要求和任务,但是过程中也遇到了不少问题,比如编写显示子程序和键盘子程序时,出现了顺序上的错误,经过仔细的调试以及周老师细心的指导,还是解决了问题。出现这些问题的原因,是因为平时缺乏自己编程调试的机会和实践,有时可能很简单的问题就是由于经验不足而导致浪费大量的人力物力,很多小知识要靠平时的积累,从生活实践中提高自己分析问题,解决问题的能力。

由于个人能力水平有限,实践能力不强,实战经验少导致设计系统会出现小纰漏,还恳请老师批评指正,以促使我以后的学习与实践工作。

铜陵学院毕业设计

参考文献

[1]求是科技-8051系列单片机C程序设计完全手册[M],北京:人民邮电出版社,2006

[2]郭天祥-新概念51单片机C语言教程[M],北京:电子工业出版社,2009 [3]谭浩强-新概念C语言程序设计[M],北京:人民邮电出版社,2006

[4]赵晶主-电路设计与制版 Protel99 高级应用[J].北京:人民邮电出版社,2000 [5]全国大学生电子设计竞赛组委会-全国大学生电子设计竞赛获奖作品精选[M] .北京:北京理工大学出版社,2000

[6] 肖海荣-基于89C2051和ISD2560的录放音系统设计[J].微型计算机信息,2004.12

[7]李吉志-基于单片机的公交车智能语音报站和液晶显示系统设计[J].电脑知识与技术,2010,1 [8] 李清朝·单片机原理及接口技术[M]·北京:北京航空航天大学出版社,1999 [9] 李刚,林凌,姜伟·51单片机系统设计与应用技巧[M]·北京:北京航空航天大学出版社,2004 [10] 周航慈·单片机应用程序设计技术[M]·北京:北京航空航天大学出版社,1991 [11] 徐爱钧,彭秀华·单片机高级语言C51应用程序设计[M]·北京:电子工业出版,

[12] 谢自美·电子线路设计·实验·测试(第二版)[M],武汉:华中科技大学出版社,2003

[13] D.A.Bradly,D.Dawson.Mechatronics:Electronics in Product and processes[J],1991.

[14] John W. Satzinger, Robert B. Jackson, Stephen D. Burd. [M]. 北京:人民邮电出版社, 2008.

杨凯:基于单片机的出租车计价器设计

致 谢

毕业设计培养了我们独立思考问题,分析和解决问题的能力,在设计中我知道了理论与实践有很大的差距,理论可以实现,但是要做具体的实物,却需要多方面的考虑。在周老师的指导下,加上同组同学的讨论与分析,对遇到的问题逐步解决。感谢我的指导老师周老师,从课题的选择到项目的最终完成,周老师都给予了我们悉心指导和不懈的支持。她严谨细致,一丝不苟的作风一直是我学习的榜样,并将继续影响我今后的学习和工作。在此谨向周老师致以诚挚的感谢。

签名:

日期: 年 月 日

铜陵学院毕业设计

附 录

#include

#define uchar unsigned char

#define uint unsigned int

sbit rw=P2^1;//读或写

sbit rs=P2^0;//

sbit en=P2^2;//读写时能控制端

sbit b=P0^7;//液晶判断忙标志位

void lcd_init();//

void wr_com(uchar command);//液晶写命令

void wr_data(uchar data0);//写数据

void lcd_clear();//液晶清屏

void lcd_set();//设置液晶的起始位置

void busy();//液晶判忙函数

void display();//显示

void printstring(uchar *s);//直接写字符

void display1();

void key1();

sbit K=P1^0;

sbit K1=P1^1;

sbit K2=P1^2;

sbit K3=P1^3;

sbit K4=P1^4;

sbit g=P2^7;

sbit aa=P2^3;

sbit bb=P2^4;

sbit cc=P2^5;

sbit led_run=P3^0;

sbit led_await=P3^1;

sbit led_stop=P3^2;

bit f_start;//开始标志位

bit jump_in;//跳入开始标志位

bit jump_out;//跳出标志位

void key();

uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x70};/*字符1,2,

3,,,,,0*/

uchar dispbuf[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

uchar dispbuf1[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

uchar v,v1;//按键次数累加变量

uchar i;

void init();

void chuli();

void chuli1();

void delay(uchar t);

void clear();

杨凯:基于单片机的出租车计价器设计

void set(uchar x);

void set1(uchar y);

uchar command;

uchar count,count1;

uchar second,minite,second1,minite1;

unsigned int tt,tt1;

unsigned char value1=50,value2=20,value3=5;//起始价,运行价,等待价

unsigned int money;//金额变量

void main()

{

init();

lcd_init();

while(1)

{

key1();

chuli();

display();

if(jump_in==1)

{

jump_in=0;

lcd_init();

while(1)

{

key();

chuli1();

display1();

if(jump_out==1)

{

lcd_init();

jump_out=0;

clear();

peak;

}

}

}

}

}

void clear()//跳出下一次

{

TR0=0;

TR1=0;

money=0;

second=0;

second1=0;

minite=0;

minite1=0;

value1=50;

value2=25;

value3=15;

led_run=1;

led_await=1;

led_stop=1;

v=0;

v1=0;

for(i=0;i

{

铜陵学院毕业设计

dispbuf[i]=0;

dispbuf1[i]=0;

}

}

void init()//定时器初始化

{

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

ET0=1;

ET1=1;

EA=1;

TR0=0;

TR1=0;

}

void t0_(void) interrupt 1 using 0//定时器0中断

{

count++;

if(count==20)

{

count=0;

second++;

if(second==60)

{

second=0;

minite++;

if(minite==99)

{

minite=0;

}

}

}

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

dispbuf1[0]=minite/10;

dispbuf1[1]=minite%10;

dispbuf1[2]=second/10;

dispbuf1[3]=second%10;

}

void t1_(void) interrupt 3 using 3//定时器1中断

{

count1++;

if(count1==20)

{

count1=0;

second1++;

if(second1==60)

{

second1=0;

minite1++;

if(minite1==99)

{

minite1=0;

}

}

杨凯:基于单片机的出租车计价器设计

}

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

dispbuf1[4]=minite1/10;

dispbuf1[5]=minite1%10;

dispbuf1[6]=second1/10;

dispbuf1[7]=second1%10;

}

void lcd_init()//液晶初始化

{

wr_com(0x3c);

wr_com(0x06);

wr_com(0x0c);

wr_com(0x01);

}

void wr_com(uchar command)//液晶写命令

{

busy();

rs=0;

rw=0;

P0=command;

en=1;

en=0;

}

void wr_data(uchar data0)//液晶写数据

{

busy();

rs=1;

rw=0;

P0=data0;

en=1;

en=0;

}

void busy()//液晶判忙

{

while(1)

{

en=0;

rs=0;

rw=1;

P0=0xff; en=1;

if(b!=1)peak;

}

en=0;

}

void chuli()//数值处理

{

dispbuf[0]=value1/100%10;

dispbuf[1]=value1/10%10;

dispbuf[2]=value1%10;

dispbuf[3]=value2/100%10;

dispbuf[4]=value2/10%10;

dispbuf[5]=value2%10;

dispbuf[6]=value3/100%10;

dispbuf[7]=value3/10%10;

dispbuf[8]=value3%10;

铜陵学院毕业设计

}

void display()

{

set(0);

printstring("step :");

wr_data(table[dispbuf[0]]);

wr_data(table[dispbuf[1]]);

printstring(".");

wr_data(table[dispbuf[2]]);

set(16);

printstring("mileage :");

wr_data(table[dispbuf[3]]);

wr_data(table[dispbuf[4]]);

printstring(".");

wr_data(table[dispbuf[5]]);

set1(0);

printstring("await :");

wr_data(table[dispbuf[6]]);

wr_data(table[dispbuf[7]]);

printstring(".");

wr_data(table[dispbuf[8]]);

}

void chuli1()

{

if(f_start==1)

{

tt=minite*60+second;

tt1=minite1;

money=value1+value2*0.1*tt+value3*tt1;

}

else if(f_start==0)

{

money=0;

}

dispbuf1[8]=money/100%10;//

dispbuf1[9]=money/10%10;//

dispbuf1[10]=money%10;//

}

void display1()

{

set(0);

printstring("run: ");

wr_data(table[dispbuf1[0]]);

wr_data(table[dispbuf1[1]]);

printstring(":");

wr_data(table[dispbuf1[2]]);

wr_data(table[dispbuf1[3]]);

set(14);

printstring("await:");

wr_data(table[dispbuf1[4]]);

wr_data(table[dispbuf1[5]]);

printstring(":");

wr_data(table[dispbuf1[6]]);

杨凯:基于单片机的出租车计价器设计

wr_data(table[dispbuf1[7]]);

set1(0);

printstring("sum is: ");

wr_data(table[dispbuf1[8]]);

wr_data(table[dispbuf1[9]]);

printstring(".");

wr_data(table[dispbuf1[10]]);

}

void printstring(uchar *s)//行字符函数

{

while(*s)

wr_data(*s++);

}

void key()

{

if(K3==0)

{

delay(50);

if(K3==0)

{

while(K3==0);

v1++;

if(v1==4) v1=0;

}

}

switch(v1)

{

case 1:f_start=1;TR0=1;TR1=0;led_run=0;led_await=1;led_stop=1;aa=1;bb=0;cc=1;peak; case 2:TR0=0;TR1=1;led_run=1;led_await=0;led_stop=1;aa=0;cc=0;peak;

case 3:TR0=0;TR1=0;led_run=1;led_await=1;led_stop=0;peak;

}

if(K4==0)

{

delay(50);

if(K4==0)

{

while(K4==0);

jump_out=1;

}

}

}

void delay(uchar t)

{

while(--t);

}

void set(uchar x)

{

command=0x80+x;

wr_com(command);

}

void set1(uchar y)

铜陵学院毕业设计

{

command=0xc0+y;

wr_com(command);

void key1()

{

if(K==0)

{

delay(100);

if(K==0)

{

while(K==0);

v++;

if(v==4) v=0;

}

}

switch(v)

{

case 0:peak;

case 1:if(K1==0){while(K1==0);value1=value1+10;}peak; case 2:if(K1==0){while(K1==0);value2=value2+5;}peak; case 3:if(K1==0){while(K1==0);value3=value3+5;}peak; }

if(K2==0)

{

delay(50);

if(K2==0)

{

while(K2==0);

jump_in=1;//

}

}

}

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3