《2017毕业论文-基于PIC单片机的出租车计费系统.doc》由会员分享,可在线阅读,更多相关《2017毕业论文-基于PIC单片机的出租车计费系统.doc(21页珍藏版)》请在金锄头文库上搜索。
1、基于PIC单片机的出租车计费系统摘要本系统由单片机PIC16F877A和一些外围原件组成,具有操作简单,显示明了,功能强大的特点。整个系统只有两个按键,一个“启动/停止”,一个“复位”; 使用TG12864E 液晶模组作为显示器,可以显示数字、字母、中文、图片等,使系统信息一目了然;本系统除了里程统计和费用计算以外,还具有万年历和语音播报功能。万年历由时钟芯片PCF8563实时提供时钟信号,再由单片机调用显示;语音播报由语音芯片ISD1420提供语音信息,语音信息放在不同的地址里,由单片机从这些地址中调用合适的语音进行播放。本方案充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12
2、864液晶模组,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示和语音播报等功能。本系统涉及到的理论知识有: PIC单片机知识、LCD液晶显示器的工作原理和使用方法、可擦、写的语音芯片的工作原理及应用、实时时钟芯片的工作原理及应用、 出租车计费系统的原理和实现方法、 PROTEUS仿真原理及实际应用。本系统提高同学们用C语言编写程序的能力、单片机应用系统设计综合能力的训练、培养同学们分析问题和解决问题的能力、对同学们的招聘以及参加工作均有帮助。该系统稍加改进,可以成为一套真正的实用的计费系统。 关键词:时钟芯片PCF8563 语音芯片
3、ISD1420 TG12864液晶模组 LCD液晶显示器目录摘要1第一章 系统总体介绍 21系统组成及功能框图32里程计量及费用计算功能33语音播放功能44中文菜单显示功能45实时时钟功能56按键功能57系统电路设计原理图6第二章 硬件设计71主程序/CPU模块72语音播放模块 83液晶显示驱动模块 94脉冲发生器模块 115时钟模块 126按键扫描模块 14第三章 系统程序设计 121系统主程序流程框图 152里程和费率计算程序流程图 183键盘处理程序流程图 19结束语19致谢21参考文献21附件21第一章系统总体介绍1.系统组成此出租车计费系统以单片机为系统核心,利用PIC16F877单
4、片机配合TG12864液晶模组及ISD1420语音模块等,实现基本的出租车计价器功能。本系统是由PIC单片机、液晶显示模块、计数脉冲发生器、系统实时时钟及语音等模块组成。系统框图如图(1)所示:2.系统各部分功能:里程计量功能a)单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数;b)每一个脉冲代表轮胎旋转一周,设轮胎的直径为520mm,轮胎的周长为:(即每转一圈的距离)520x3.14159=1634mm=1.634m c)每公里的脉冲数:PulsePerKM=1000m/1.634m=612(个脉冲) 费用计算功能(参照广州市出租车收费标准)费用计算包括三部分:起步费、行使费和燃油附加
5、费:a)起步费用(StartPrice) 当行驶里程(RunMilege)在2.3Km(含2.3Km)以内按起步价(StartPrice)7元计费。即行使费用(RunPrice)为: RunPrice = StartPrice + 1 = 8(元)b) 行使费用(RunPrice)-行使费用分短途与长途两种情况:.当行驶里程(RunMilege)超出2.3Km时并且小于35Km时,按2.6元/Km收费,这时行驶费用为:RunPrice=StartPrice+2.6(RunMilege-StartMilege)+1 其中:StartPrice为起步价=7元 StartMilege为起步里程=2.
6、3KmRunMilege为行使里程(总行使里程)RunPrice为行使费用(总行使金额).当行使里程超过35Km后,要加空驶费,即每公里升至3.50元, 这时行驶费用为:RunPrice=StartPrice+3.5(RunMilege-StartMilege)+1c) 燃油附加费-每车次加收一元。语音播放功能.当初次按下“startstop”键,出租车开始启动,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”播送完毕,计费器开始计费。.按下“SpeedUp”键,出租车加速行使,最高速为100Km。.按下“SpeedDown”键,出租车减速行使,最低速为0Km。.在行使状态下,按下“start
7、stop”键,表示出租车到站,结束行使。这时候,系统播放“您好!行使里程XXX公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。.按下“Reset”键,进入空车状态。 中文菜单显示功能.在空车状态下(启动前),LCD屏幕上显示如下的中文信息:.在空车状态下,按下“startstop”键,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”的提示音,同时在LCD屏幕上显示如下的中文信息:.播完提示音后,进入行使状态,LCD屏幕显示以下信息:.在行使状态,按下“SpeedUp”键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。按下“SpeedDown”键,里程
8、显示的公里数增加的速度会不断的变慢。.在行使状态,按下“startstop”键,表示出租车到站,结束行程。这时屏幕显示以下信息: 同时,系统播放“您好!行使里程xxx.xx公里,应付xxx.xx元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。实时时钟功能本系统采用两种方法实现日历时钟:(1)用实时时钟芯片FC8563作为时钟电路,产生年月日时分秒等信号,供系统调用。(2)用单片机中断的方法产生年月日时分秒等信号。(3)两种方法由同学自行选择。本系统设置4个按键,各个按键的功能如下:(1)“startstop”键开始进入行使/结束行使(到站)。(2)“SpeedUp”键行使加速按键。按下
9、次按键,可使出租车的速度由0Km上升到100Km。(3)“SpeedDown”键-行使减速按键。按下次按键,可使出租车的速度由100K下降到0Km。(4)“Reset”键-进入空车状态。电路设计原理图第二章 硬件设计: 主程序/CPU模块 主程序/CPU电路图及说明该模块主要包括系统初始化、PWM计数脉冲的产生、里程的识别和费率的计算及各功能模块的的组织和管理等。主程序模块在系统中起着重要的作用。PIC16F877主要性能:具有高性能RISC CPU。具有25条单字指令。除程序分支指令为两个周期外,其余均为单周期指令。运行速度:DC-20MHZ时钟输入 DC-200ns指令周期8K*14个FL
10、ASH程序存储器368*8个数据存储器(RAM)字节256*8EEPROM数据存储器字节引脚输出和PIC16C73B/74B/76/77兼容中断能力(达到14个中断源)8级深度的硬件堆栈直接,间接和相对寻址方式上电复位(POR)上电定时器(PWRT)和振荡启动定时器(OST)监视定时器(WDT),它带有片内可靠运行的RC振荡器可编程的全码保护低功耗睡眠方式可选择的振荡器低功耗、高速CMOS FLASH/EEPROM工艺全静态设计要线串行编程(ICSP)单独5V的内部电路串行编程(ICSP)能力,处理机读/写访问程序存储器运行电压范围2.0V到5.5V高吸入/拉出电流25mA商用,工业用温度范围
11、低功耗:在5V,4MHz时典型值小于2mA在3V,32KHz时典型值小于20uA典型的稳态电流值小于1uA外围特征:Timer0:带有预分频器的8位定时/计数器Timer1:带有预分频的16位定时器/计数器,在使用外部晶体振荡时钟时,在Sleep期间仍能工作。Timer2:带有8位分频寄存器,预分频器和后分频器的8位定时器/计数器2个捕捉器,比较器,PWM模块其中:捕捉器是16位,最大分辩率为12.5ns 比较器是16位,最大分辩率方200ns PWM最大分辩率为是10位10位多通道模/数转换器带有SPI(主模式)和I2C(主/从)模式的SSP带有9位地址探测的通用同步异步接收/发送器(USA
12、RT/SCI)带有RD,WR和CS控制(只40/44引脚)8位字宽的并行从端口带有降压复位的降压检测电路 语音播放模块 语音播放模块电路图及说明:语音播放模块播放提示音,行驶里程、费用等。ISD1420系列单片录放时间8至20秒,音质好。芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅0.5uA。ISD1420系列有唯一的录音控制和边缘/电平触发两种放音控制。不分段时外围线路最简,也可按最小段长为单位任意组合分段
13、,芯片提供若干操作模式,大大提高了控制的灵活性。芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调各效果,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率从5.3,6.4到8.0KHz,对音质仅有轻微影响。片内信息可保存100年(无需后备电源),EEPROM单片可反复录音十万次。 液晶显示驱动模块液晶显示驱动模块电路图及说明:TG12864E 是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及12864 全点阵液晶显示器组成。可完成图形显示,也可以84 个(1616 点阵)汉字。主要技术参数和性能:电源:VDD:+2.7 +5V; 模块内自带-10V负压,用于LCD的驱动电压。 显示内容:128(列)64(行)点