1、基于51单片机的出租车计价器基于51单片机的出租车计价器 作者: 日期: 课程设计任务书出租车计费系统起止日期: 2011 年 12 月 15 日 至 2011 年 12 月 28 日学生姓名张红雨班级电气0902学号0912180227成绩机电信息教学部2011年12 月28 日 基于51单片机原理出租车计价器的设计 摘要 由于科技的飞速发展,带动汽车行业快速发展,出租车日益普遍,而出租车上的计价器也不断发展,并且更加精确和智能化.对我们日常生活也有帮助。而使用单片机实现该系统,是深化单片机应用的良好途径。本系统由单片机AT89C51和一些外围原件组成,具有操作简单,显示明了,功能强大的特点
2、.整个系统只有两个按键,一个“启动/停止”,一个“复位;使用六个七段数码管作为显示器,可以显示数字、字母使系统信息一目了然;本系统除了里程统计和费用计算以外,还具有万年历和语音播报功能。万年历由时钟芯片DS1302实时提供时钟信号,再由单片机调用显示;语音播报由语音芯片ISD1420提供语音信息,语音信息放在不同的地址里,由单片机从这些地址中调用合适的语音进行播放。本方案充分发挥人性化的特点,利用ISD1420的语音功能,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示和语音播报等功能.本系统涉及到的理论知识有: AT89C51单片机
3、知识、ISD1420语音芯片的可擦、写的语音芯片的工作原理及应用、实时时钟芯片的工作原理及应用、 出租车计费系统的原理和实现方法。 关键词:时钟芯片DS1302;语音芯片ISD1420;单片机AT89C51;掉电保护芯片24C02;前 言出租车行业在我国是八十年代初兴起的一项新兴行业,随着出租车行业的发展,出租车已经是城市交通的重要组成部分,出租车计费器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益.具有良好性能的计费器无论是对广大出租车司机朋友还是乘客来说都是很必要的.因此,汽车计价器的研究也是十分有一个应用价值的。要将出租车计价系统
4、产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节单价以及计价方式.因此,研究出租车计价器及扩大其应用,有着非常现实的意义。多年来国内普遍使用的计价器只具备单一的计量功能.目前全世界的计价器中有90%为台湾所生产.现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。我国第一家生产计价器的是重庆市起重机厂,最早的计价器全部采用机械齿轮构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程
5、的同时还可完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器.它的功能也在不断完善。出租汽车计价器是一种专用的计量仪器,它安装在出租汽车上,能连续累加,并指示出行程中任一时刻乘客应付费用的总数,其金额值是计程和计时时间的函数。出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好。随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能.例如:(1)LED显示功能,数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;(3
6、)存储功能,可存储多项营运数据,便于查询。新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年.第一章 出租车计价系统的设计要求与设计方案1.1出租车计价器系统组成此出租车计费系统以单片机为系统核心,利用89C51单片机配合六个数码管组成的显示模块及ISD1420语音模块等,实现基本的出租车计价器功能。本系统是由89C51单片机、数码管显示模块、计数脉冲发生器、 系统实时时钟及语音等模块组成。系统框图如图11所示:图1-1 系统功能图1.2系统主要功能本课程设计所设计的出租车计价器的主要功能有:里程计量及费用计算功能、实时时钟功能、按键功能.1.3方案论证与比较方案一:采用数字
7、电路控制。采用传感器件,输出脉冲信号过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。方案二:采用单片机控制。利用单片机丰富的 I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能, 而且还可以方便的对系统进行升级, 所以我们采用后一种方案.第二章 出租车计价系统的硬件设计4.1出租车的硬件框图 图2-2 单片机控制方案4.2AT89C51单片机的电路图及说明AT89C51是一个
8、低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合
9、在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本.图22 AT89C51引脚配置4.3按键扫描模块(1)按键扫描模块电路图及说明:整个系统只有五个按键,一个“启动/停止”,四个功能调整按键;本模块功能:扫描按键功能,返回扫描。 图231图2324.4显示模块 本设计是用六个七段数码管动态扫描来实现的时钟与计价的显示。图24 数码管封装图及数据线与数码管管脚关系4.5掉电保护模块(1) 本电路掉电保护采用了24C02芯片来完成此部分功能.掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02 是ATMEL 公司的2KB字节的电可擦除存储芯片,采用两线串行的总线
10、和单片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5。5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路如图2-5所示。图25 掉电存储电路原理图图中 R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于 AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线 SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用.4
11、.6脉冲发生器模块图2-6 脉冲发生器模块NE555定时器具有定时精度高、工作速度快、可靠性好、电源电压范围宽(3-18V)、输出电流大(可高达200mA)等优点,可组成各种波形的脉冲振荡电路、定时延时电路、是一种电路结构简单、使用方便灵活、用途广泛的多功能中规模集成电路.只需在外部配接适当的阻容元件,便可组成施密特触发器、单稳态触发器和多谐振荡器等多种应用电路,在这个电路中是多谐振荡器,它电路简单、性能稳定,波形标准。4.7时钟模块图2-7 时钟模块1DS1302功能内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息
12、每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1Mw。特性:1、实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力;2、31 8 位暂存数据存储RAM;3、串行I/O 口方式使得管脚数量最少;4、宽范围工作电压2.0 5.5V;5、工作电流2.0V 时,小于300nA
13、;6、读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式;7、8脚DIP封装或可选的8脚SOIC封装根据表面装配;8、简单3 线接口;9、与TTL 兼容Vcc=5V;10、可选工业级温度范围40 +85;11、与DS1202 兼容;12、在DS1202 基础上增加的特性;13、对Vcc1 有可选的涓流充电能力,双电源管用于主电源和备份,电源供应备份,电源管脚可由电池或大容量电容输入. DS1302 的管脚排列及描述如下图28及表所示 图28 管脚配置和管脚功能说明 DS1302 内部寄存器:CH: 时钟停止位寄存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许
14、bit7=1,12 小时模式CH=1 振荡器停止bit7=0,24 小时模式WP: 写保护位寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入 AP=1 下午模式WP=1 寄存器数据不能写入 AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止4.8语音模块图28 ISD1420管脚图和管脚描述ISD1420系列单片录放时间8至20秒,音质好.芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增
15、益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。在录放操结束后,芯片自动进入低功耗节电模式、功耗仅0。5uA.ISD1420系列有唯一的录音控制和边缘/电平触发两种放音控制。不分段时外围线路最简,也可按最小段长为单位任意组合分段,芯片提供若干操作模式,大大提高了控制的灵活性.芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调各效果,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”.采样频率从5。3,6.4到8.0KHz,对音质仅
16、有轻微影响.片内信息可保存100年(无需后备电源),EEPROM单片可反复录音十万次。特点:1、使用方便的单片录放系统,外部元件最少;2、重现优质原声,没有常见的背景噪音;3、放音可由边沿或电平触发;4、无耗电信息存储,省掉备用电池;5、信息可保存100年,可反复录放10万次;6、无需专用编程或开发系统;7、较强的分段选址能力可处理多达160段信息;8、具有自动节电模式;9、录或放后立即进入维持状态,仅需0.5A电流;10、单一5伏电源供电;第三章 出租车计价系统的软件设计3.1系统主程序流程图3.2里程和费率计算程序流程图第四章 设计体会与小结 经过这次出租车计价器的课程设计,我收益非浅,从
17、中我学到了很多东西。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,另外,还学会了在网络上查找有关本设计的各硬件的资源,其中包括:AT89S51单片机及其引脚说明,为本次课程设计提供了一定的资料.在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。 总之,不管学会的还是学不会的的确觉得困难
18、比较多,真是万事开头难,不知道如何入手.最后终于做完了有种如释重负的感觉.此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。经过这次的课程设计,也为我们以后毕业设计的制作奠定了一定的基础。参考文献1 刘苗生、潘宗预。 单片机测控系统设计。 中国物质出版社,2006年2 欧伟明、何静.单片机原理与应用系统设计。电子工业出版社,2009年附 录 一源程序#includereg51.h /头文件#include intrins。htypedef unsigned char uchar; /定义一个无
19、符号的字符型的简写code uchar tab =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; bit flag=0; /定义标量初值为零float y; /定义 一个浮点型的全局常量 float y1;float count_price=0; /定义 一个浮点型的全局变量 int a; /定义两个无符号的全局变量float s; /定义 一个浮点型的全局变量#define time_num 100 /宏定义时间为100ussbit CLK=P35; /DS1302的时钟控制线 sbit DAT=P36; /DS1302的数据线sbit
20、RST=P37; /DS1302的复位信号define delay_time 60 /宏定义时间为60ussbit SCL=P36; /24c02的时钟控制线 sbit SDA=P37; /24c02的数据线sbit s2=P21; /时间设置开关sbit s1=P33; /日期设置开关sbit s3=P22; /数据加/日期时间显示方式设置sbit s4=P23; /*void EX_INT0(void) interrupt 0 /外部中断0函数 static uchar num; uchar mybyte; Write_One_Byte(0x20,0xb0); /设定单价存入缓冲器 _no
21、p_( ); _nop_( ); mybyte=Read_One_Byte(0x20); /上电保护 num+; /一个计数器自增1 IT0=1; /边沿触发方式 if(num=10 ) /判断是否有10个脉冲 num=0; /清零 count_price +; /另一个计数器计数 if(count_price =4) /不足40个脉冲 s=s+0.5; /里程加0.5公里 y1=mybyte+a; /金额为默认价与等待金额之和 else /否则大于40个脉冲 s=s+0。5; /里程加0。5公里 y1=(s-2)y+mybyte+a; /金额为里程减2公里乘单价加默认价加等待金额 /*mai
22、n( ) /* 主函数 */ uchar key; Cpu_Init( ); key=scankey( );ds1302_write_time( ); while(1) key=scankey( ); if(key=8) EX0=1; Y=1。8; flag=1; if(key=7) EX0=1; Y=2; flag=1; if(flag) ET1=0; DP_DIS( ); key=scankey( ); switch(key) case 5: EX0=1; P1=0xf0; delay2(5); TR0=0; break; case 6: P1=0x00; delay2(1); Cpu_Init( ); EX0=0; TR0=1; while(1) ET1=0; DP_DIS( ); if(s1=0s4=0) break; break; else ds1302_read_time( ); just_tm( ); if(key=4) ET1=1; flag=0; EX0=0; s=0; y1=0; count_price=0; 二 系统硬件原理图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1