基于PIC单片机的出租车计费系统毕业设计论文学习资料.doc

上传人:1595****071 文档编号:52305481 上传时间:2022-10-22 格式:DOC 页数:40 大小:740KB
返回 下载 相关 举报
基于PIC单片机的出租车计费系统毕业设计论文学习资料.doc_第1页
第1页 / 共40页
基于PIC单片机的出租车计费系统毕业设计论文学习资料.doc_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《基于PIC单片机的出租车计费系统毕业设计论文学习资料.doc》由会员分享,可在线阅读,更多相关《基于PIC单片机的出租车计费系统毕业设计论文学习资料.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。基于PIC单片机的出租车计费系统毕业设计论文-基于PIC单片机的出租车计费系统摘要随着经济的发展,带动汽车行业快速发展,出租车日益普遍,了解在出租车上应用的计费系统,对我们日常生活也有帮助。而使用单片机实现该系统,是深化单片机应用的良好途径。本系统由单片机PIC16F877A和一些外围原件组成,具有操作简单,显示明了,功能强大的特点。整个系统只有两个按键,一个“启动/停止”,一个“复位”;使用TG12864E液晶模组作为显示器,可以显示数字、字母、中文、图片等,使系统信息一目了然;本系统除了里程统计和费

2、用计算以外,还具有万年历和语音播报功能。万年历由时钟芯片PCF8563实时提供时钟信号,再由单片机调用显示;语音播报由语音芯片ISD1420提供语音信息,语音信息放在不同的地址里,由单片机从这些地址中调用合适的语音进行播放。本方案充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12864液晶模组,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示和语音播报等功能。本系统涉及到的理论知识有:PIC单片机知识、LCD液晶显示器的工作原理和使用方法、可擦、写的语音芯片的工作原理及应用、实时时钟芯片的工作原理及应用、出租车计费系统的

3、原理和实现方法、PROTEUS仿真原理及实际应用。本系统提高同学们用C语言编写程序的能力、单片机应用系统设计综合能力的训练、培养同学们分析问题和解决问题的能力、对同学们的招聘以及参加工作均有帮助。该系统稍加改进,可以成为一套真正的实用的计费系统。关键词:时钟芯片PCF8563语音芯片ISD1420TG12864液晶模组LCD液晶显示器目录摘要1第一章系统总体介绍21系统组成及功能框图32里程计量及费用计算功能33语音播放功能44中文菜单显示功能45实时时钟功能56按键功能57系统电路设计原理图6第二章硬件设计71主程序/CPU模块72语音播放模块83液晶显示驱动模块94脉冲发生器模块115时钟

4、模块126按键扫描模块14第三章系统程序设计121系统主程序流程框图152里程和费率计算程序流程图183键盘处理程序流程图19结束语19致谢21参考文献21附件21第一章系统总体介绍1.系统组成此出租车计费系统以单片机为系统核心,利用PIC16F877单片机配合TG12864液晶模组及ISD1420语音模块等,实现基本的出租车计价器功能。本系统是由PIC单片机、液晶显示模块、计数脉冲发生器、系统实时时钟及语音等模块组成。系统框图如图(1)所示:2.系统各部分功能:里程计量功能a)单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数;b)每一个脉冲代表轮胎旋转一周,设轮胎的直径为520mm,轮

5、胎的周长为:(即每转一圈的距离)520x3.14159=1634mm=1.634mc)每公里的脉冲数:PulsePerKM=1000m/1.634m=612(个脉冲)费用计算功能(参照广州市出租车收费标准)费用计算包括三部分:起步费、行使费和燃油附加费:a)起步费用(StartPrice)当行驶里程(RunMilege)在2.3Km(含2.3Km)以内按起步价(StartPrice)7元计费。即行使费用(RunPrice)为:RunPrice=StartPrice+1=8(元)b) 行使费用(RunPrice)-行使费用分短途与长途两种情况:.当行驶里程(RunMilege)超出2.3Km时并

6、且小于35Km时,按2.6元/Km收费,这时行驶费用为:RunPrice=StartPrice+2.6(RunMilege-StartMilege)+1其中:StartPrice为起步价=7元StartMilege为起步里程=2.3KmRunMilege为行使里程(总行使里程)RunPrice为行使费用(总行使金额).当行使里程超过35Km后,要加空驶费,即每公里升至3.50元,这时行驶费用为:RunPrice=StartPrice+3.5(RunMilege-StartMilege)+1c)燃油附加费-每车次加收一元。语音播放功能.当初次按下“startstop”键,出租车开始启动,系统播放

7、“您好!欢迎乘坐本公司出租汽车,谢谢!”播送完毕,计费器开始计费。.按下“SpeedUp”键,出租车加速行使,最高速为100Km。.按下“SpeedDown”键,出租车减速行使,最低速为0Km。.在行使状态下,按下“startstop”键,表示出租车到站,结束行使。这时候,系统播放“您好!行使里程XXX公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。.按下“Reset”键,进入空车状态。中文菜单显示功能.在空车状态下(启动前),LCD屏幕上显示如下的中文信息:.在空车状态下,按下“startstop”键,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”的提示音,同时在L

8、CD屏幕上显示如下的中文信息:.播完提示音后,进入行使状态,LCD屏幕显示以下信息:.在行使状态,按下“SpeedUp”键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。按下“SpeedDown”键,里程显示的公里数增加的速度会不断的变慢。.在行使状态,按下“startstop”键,表示出租车到站,结束行程。这时屏幕显示以下信息:同时,系统播放“您好!行使里程xxx.xx公里,应付xxx.xx元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。实时时钟功能本系统采用两种方法实现日历时钟:(1)用实时时钟芯片FC8563作为时钟电路,产生年月日时分秒等信号,供系统调用。(

9、2)用单片机中断的方法产生年月日时分秒等信号。(3)两种方法由同学自行选择。本系统设置4个按键,各个按键的功能如下:(1)“startstop”键开始进入行使/结束行使(到站)。(2)“SpeedUp”键行使加速按键。按下次按键,可使出租车的速度由0Km上升到100Km。(3)“SpeedDown”键-行使减速按键。按下次按键,可使出租车的速度由100K下降到0Km。(4)“Reset”键-进入空车状态。电路设计原理图第二章硬件设计:主程序/CPU模块主程序/CPU电路图及说明该模块主要包括系统初始化、PWM计数脉冲的产生、里程的识别和费率的计算及各功能模块的的组织和管理等。主程序模块在系统中

10、起着重要的作用。PIC16F877主要性能:具有高性能RISCCPU。具有25条单字指令。除程序分支指令为两个周期外,其余均为单周期指令。运行速度:DC-20MHZ时钟输入DC-200ns指令周期8K*14个FLASH程序存储器368*8个数据存储器(RAM)字节256*8EEPROM数据存储器字节引脚输出和PIC16C73B/74B/76/77兼容中断能力(达到14个中断源)8级深度的硬件堆栈直接,间接和相对寻址方式上电复位(POR)上电定时器(PWRT)和振荡启动定时器(OST)监视定时器(WDT),它带有片内可靠运行的RC振荡器可编程的全码保护低功耗睡眠方式可选择的振荡器低功耗、高速CM

11、OSFLASH/EEPROM工艺全静态设计要线串行编程(ICSP)单独5V的内部电路串行编程(ICSP)能力,处理机读/写访问程序存储器运行电压范围2.0V到5.5V高吸入/拉出电流25mA商用,工业用温度范围低功耗:在5V,4MHz时典型值小于2mA在3V,32KHz时典型值小于20uA典型的稳态电流值小于1uA外围特征:Timer0:带有预分频器的8位定时/计数器Timer1:带有预分频的16位定时器/计数器,在使用外部晶体振荡时钟时,在Sleep期间仍能工作。Timer2:带有8位分频寄存器,预分频器和后分频器的8位定时器/计数器2个捕捉器,比较器,PWM模块其中:捕捉器是16位,最大分

12、辩率为12.5ns比较器是16位,最大分辩率方200nsPWM最大分辩率为是10位10位多通道模/数转换器带有SPI(主模式)和I2C(主/从)模式的SSP带有9位地址探测的通用同步异步接收/发送器(USART/SCI)带有RD,WR和CS控制(只40/44引脚)8位字宽的并行从端口带有降压复位的降压检测电路语音播放模块语音播放模块电路图及说明:语音播放模块播放提示音,行驶里程、费用等。ISD1420系列单片录放时间8至20秒,音质好。芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、

13、电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅0.5uA。ISD1420系列有唯一的录音控制和边缘/电平触发两种放音控制。不分段时外围线路最简,也可按最小段长为单位任意组合分段,芯片提供若干操作模式,大大提高了控制的灵活性。芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调各效果,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率从5.3,6.4到8.0KHz,对音质仅有轻微影响。片内信息可保存100年(无需后备电源),EEPROM单片可反复录音十万次。液晶显示驱动模块液

14、晶显示驱动模块电路图及说明:TG12864E是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以84个(1616点阵)汉字。主要技术参数和性能:电源:VDD:+2.7+5V;模块内自带-10V负压,用于LCD的驱动电压。显示内容:128(列)64(行)点全屏幕点阵七种指令与CPU接口采用8位数据总线并行输入输出和8条控制线占空比1/64工作温度:-10+60,储存温度:-20+70,可选择宽温:-20+70.外形尺寸图:.模块主要硬件构成说明:.模块的外部接口:.TG12864EL串口接线方式:脉冲发生器模块脉冲性生器模块电路图及说明:(

15、如下图)NE555定时器具有定时精度高、工作速度快、可靠性好、电源电压范围宽(3-18V)、输出电流大(可高达200mA)等优点,可组成各种波形的脉冲振荡电路、定时延时电路、是一种电路结构简单、使用方便灵活、用途广泛的多功能中规模集成电路。只需在外部配接适当的阻容元件,便可组成施密特触发器、单稳态触发器和多谐振荡器等多种应用电路,在这个电路中是多谐振荡器,它电路简单、性能稳定,波形标准。该模块完成传感器脉冲计量,然后转换为公里数,并根据规则计算对应的费用。同时,监测行驶速度,统计低速时间,计算低速等待费用,提供液晶显示更新函数,以便主函数可以控制更新用户界面以及行驶里程、费用等信息的显示。该模

16、块包括PWM管理程序、里程计量程序、时间管理程序、费用管理程序、用户界面控制程序等部分。时钟模块时钟模块电路图及说明:PCF8563是低功耗的CMOS实时时钟日历芯片,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过I2C总线接口串行传递。最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。特性:*低工作电流:典型值为0.25A(VDD=3.0V,Tamb=25时)。*世纪标志*大工作电压范围:1.05.5*低休眠电流;典型值为0.25A(VDD=3.0V,Tamb=25)*400KHz的I2C总线接口(VDD=1.85.5V时)。*可

17、编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz。*报警和定时器。*掉电检测器。*内部集成的振荡器电容。*片内电源复位功能。*I2C总线从地址:读,0A3H;写,0A2H。*开漏中断引脚。管脚配置功能描述:PCF8563有16个位寄存器:一个可自动增量的地址寄存器,一个内置32.768KHz的振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟RTC提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHzI2C总线接口。所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。前两个寄存器(内存地址00H,01H)用于控制

18、寄存器和状态寄存器,内存地址02H08H用于时钟计数器(秒年计数器),地址09H0CH用于报警寄存器(定义报警条件),地址0DH控制CLKOUT管脚的输出频率,地址0EH和0FH分别用于定时器控制寄存器和定时器寄存器。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD格式编码。当一个RTC寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟日历芯片的错读。PCF8563硬件时钟描写模块:最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。*400KHz的I2C总线接口(VDD=1.

19、85.5V时)*可编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz。*报警和定时器。*开漏中断引脚。*I2C总线从地址:读0A3H;写0A2H。地址寄存器名称00H控制/状态寄存器01H控制/状态寄存器0DHCLKOUT频率寄存器0EH定时器控制寄存器0FH定时器倒计数数值寄存器地址寄存器名称Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit002h秒VL0059BCD码格式数03h分钟-0059BCD码格式数04h小时-0059BCD码格式数05h日-0131BCD码格式数06h星期-0607h月/世纪C-0112BCD码格式数08h年0099BCD码格式数

20、09h分钟报警AE0059BCD码格式数0Ah小时报警AE-0023BCD码格式数0BH日报警AE-0131BCD码格式数0CH星期报警AE-06操作举例*进入EXTCLK测试模式;设置控制状态寄存器的位(TEST=1)。*设置控制状态寄存器的位(STOP=1)。*清除控制状态寄存器的位(STOP=0)。*设置时间寄存器(秒、分钟、小时、日、星期、月世纪和年)为期望值。*提供32个时钟脉冲给CLKOUT。*读时间寄存器观察第一次变化。*提供64个时钟脉冲给CLKOUT。*读时间寄存器观察第二次变化;需要读时间寄存器的附加增量时,重复步骤和。按键扫描模块:按键扫描模块电路图及说明:整个系统只有两

21、个按键,一个“启动/停止”,一个“复位”;本模块功能:扫描按键功能,返回扫描结果。第三章系统程序设计本系统程序由C语言编写,编译软件是MPLABIDE和一个外挂的PIC的C语言编译软件PICC。1.系统主程序流程框图(含程序):/*/主程序开始/*voidmain()initial();init();lcm_init();InitI2C();count=0;RunMilege=0;flag=0;play_fg1=0;play_fg2=0;/*/转换为图形方式/*write_inst(0x34);write_inst(0x36);clear_picture_fast();display_pict

22、ure1();/显示一幅个性化图片delay(100);/*/转换为文本方式/*write_inst(0x30);write_inst(0x0c);write_inst(0x01);write_inst(0x06);/*/显示一幅个人信息/*disp_log1();delay(200);write_inst(0x01);/*/主程序循环开始/*while(1)if(mode=0)/模式0:显示空车状态INTE=0;count=0;kongche();elseif(mode=1)/模式1:if(!flag)/标志位为0时INTE=0;/禁止中断产生write_inst(0x01);yingke(

23、);/显示欢迎界面play(17,50);/播放“您好”play(18,5);/播放“欢迎”play(25,100);/播放“乘坐本公司出租汽车”delay(200);flag=1;write_inst(0x01);else/标志位为1时INTE=1;/允许产生中断price();/里程和费率计算zaike();/进入载客界面elseif(mode=2)/模式2:INTE=0;/禁止中断产生if(!play_fg1)/标志位为0时daozhan();/进入到站界面play(21,60);/播放“车已到站”delay(50);playsound_km(RunMil);/播放行使里程delay(5

24、0);playsound_mn(Pricet);/播放应付金额play_fg1=1;/置标志位为1write_inst(0x01);jieshu();/进入结束界面if(!play_fg2)/标志位为0时play(24,100);/播放“请检查您的随身物品”play(18,5);/播放“欢迎”play(20,5);/播放“再次”play(25,100);/播放“乘坐本公司出租汽车”play(19,5);/播放“再见”play_fg2=1;/置标志位为1scankey();/键盘扫描模块2.里程和费率计算程序流程图(含程序):/*/费率计算函数/*voidprice()if(RunMilege2

25、300)&(RunMilege35000)/TotalPrice=700+(35000-2300)*0.26+(RunMilege-35000)*0.35+100;TotalPrice=1112+(RunMilege-35000)*0.35;Price=(ulong)TotalPrice;3.键盘处理程序流程图键盘扫描子程序模块/*-voidscankey()if(k2()bell();if(mode=0x00)mode=0x01;write_inst(0x01);elseif(mode=0x01)flag=0;mode=0x02;write_inst(0x01);if(k4()bell();

26、if(mode=0x02)flag=0;play_fg1=0;play_fg2=0;mode=0x00;write_inst(0x01);count=0;*结束语通过这次毕业设计,我觉得自己学到了很多东西,特别是在即将毕业走向社会的时候,增加了自己以后在社会上工作的信心。毕业设计是对我们大学三年学习的总考验.这次毕业设计,我有以下一些体会:大学大部分时间都是在学习理论基础知识,并未真正地去应用和实践。自从入学以来,了解了自己本专业信息之后,我就开始了我的电子信息学习生涯,其中涉及到的知识,是我以前没想过的,也不懂的,所以这次毕业设计,我很辛苦才完成。其中我接触到了更多平时没有接触到的元器等,发

27、现了自己很多不足之。我体会到了所学理论知识的重要性:知识掌握越多,设计得就更加严谨,更加顺利。了解了进行一项相对比较大型的科研设计所必不可少的几个阶段。毕业设计能够从理论设计和工程实践相结合,个人作用和集体协作相结合等全方面的培养学生的全面素质。我经过这次系统的毕业设计,熟悉了对一项课题进行研究,设计和试验的详细过程。这些在我们在将来的工作和学习当中都会有很大的帮助。加深了解了查阅资料和利用工具书的重要性.平时课堂上所学习的知识大多比较陈旧,作为电子信息工程的学生,由于专业涉及知识广,不仅在懂单片机的知识,还要懂模拟电子、数字电子、Protel99SE等等方面的知识。一个人不可能什么都学过,什

28、么都懂,因此,当我在设计过程中需要用到一些不曾学过的东西时,就要去有针对性地查找资料,然后加以利用吸收,以提高自己的应用能力,而且还能增长自己见识,补充我的专业知识。毕业设计对以前所学的过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固。实践能力得到了进一步提高,在制作过程中积累了一些经验。毕业设计培养了我们严肃认真和实事求是的学习态度,而且培养了吃苦耐劳的精神以及相对应的工程意识。同学之间的友谊互助也充分的在毕业设计当中充分体现了出来。总之,在踏上大学旅途的最后一步中间虽然存在着许多困难,但我们都走过了,这过程中我学到了不少的新知识,对我个人将来的发展非常有帮助。所谓读万卷书不如走万里

29、路,实践是检验真理的唯一标准,将来的路还很长,还需要我在实践中不断的摸索,跌倒了再爬起来,在困难和逆境中不断成长。致谢首先,在这里,我要感谢我的指导师姚xxx老师,他真的是一位很慈祥,很棒的老师,对学生也很好,他给了我很多的帮助,没有他的指导,我的毕业设计不会这么顺利完成。其次要感谢3号楼智能实验室的陈老师给我们提供了仿真器,让我们可以随时用。我还要感谢毕业设计一起做设计同学。没有姚老师和同学的协助,我这次设计也不会这样顺利。谢谢!参考文献(1)PIC单片机基础教程-丁跃军等编著北航大学出版社(2)PIC单片机原理-李学海编著北航大学出版社(3)基于PROTEUS的电路及单片机系统设计与仿真-周润景、张丽娜编著北航大学出版社(4)凌阳大学计划出租车计费系统电子文档资料(5)PIC单片机C语言基础教程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁