基于GPS定位的公交车自动报站系统的设计.pdf

上传人:wj151****6093 文档编号:74263081 上传时间:2023-02-25 格式:PDF 页数:28 大小:2.73MB
返回 下载 相关 举报
基于GPS定位的公交车自动报站系统的设计.pdf_第1页
第1页 / 共28页
基于GPS定位的公交车自动报站系统的设计.pdf_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《基于GPS定位的公交车自动报站系统的设计.pdf》由会员分享,可在线阅读,更多相关《基于GPS定位的公交车自动报站系统的设计.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于 GPS 定位的公交车自动报站系统的设计 前言 从 1831 英国人沃尔特?汉考克为他的国家制造出了世界上第一辆装有发动机的公共汽车起,到今天,公交车已经历经了将近200 年的发展过程。从最初的“闷罐头”到如今配套的空调系统;从专人售票到无人售票;从人工报站到半自动语音报站,公交车向着越来越人性化的方向发展。可是目前存在的一个问题,半自动语音报站系统需要由司机在车子进出站的时候人工操作,由于这两个时间点往往是路面情况最复杂的时刻,因此也给行驶中的车辆带来了安全隐患。论文的目标就是彻底抛弃人工操作,实现公交进出站的全自动语音报站。利用AT89C51 单片机、ISD1700 系列语音芯片、JH

2、D162A LCD液晶模块来实现所需要的功能。单片机体积小,重量轻,具有很强的灵活性而且价格便宜,得到越来越广泛的运用,例如工业控制领域、家电产品,智能化仪器仪表,计算机外部设备,特 世纪 80 年代中期,Intel 公司将 8051 别是机电一体化产品中都有重要的用途。20 内核使用权以专利互换或出售的形式转给世界许多著名IC 制造厂商,这样8051 就变成有众多制造厂商支持的,发展出上百个品种的大家族。到目前为止,其它任何一个单片机系列均未发展到如此的规模。正因为51 单片的运用是如此广泛,因此学习单片机的运用是非常重要的。学好单片机也是学习其他嵌入式控制器如 ARM、DSP 的基础,任何

3、嵌入式控制器都离不开单片机种所涵盖的如中央处理器,定时器、中断控制器,IO 口控制器,串行通讯控制器,I2C 总线控制器,片内外存储控制器,汇编语言,C 语言,操作系统的概念。因此说学好单片机,再去学习其他嵌入式控制器如ARM、DSP 是比较简单的。可以说学好单片机是其它进阶微处理器的一个台阶。本次设计的课题是“基于 GPS 定位的公交车自动报站系统的设计”,设计中利用无线收发模块及编解码芯片实现站台的自动识别,通过单片机对液晶模块及语音模块的综合控制实现全自动语音报站的功能。本次设计以 Keil C51 开发环境为编程平台进行代码的编译和运行,并在Proteus 上进行仿真。第一章 概述 1

4、.1GPS 国内外的发展形势 1.1.1 国外的研究现状 目前,以 GPS 为代表的卫星导航应用产业已成为当今国际公认的八大无线产业之一。随着技术的进步、应用需求的增加,GPS 以全天候、高精度、自动化、高效率等显著特点及其所独具的定位导航、授时校频、精密测量等多方面的强大功能,已涉足众多的应用领域,使 GPS 成为继蜂窝移动通信和互联网之后的全球第三个 IT 经济新增长点。虽然具有 GPS 定位功能的公交车市场潜力颇为看好,就现阶段而言仍有几项障碍亟待克服:首先,不论公交车采用的是内建 GPS 芯片或是用外接 GPS 模块作为解决方案,将无可避免地提高公交车成本,也影响消费者购买的意愿;最后

5、,目前具有提供整合 GPS 芯片与无线通信技术的公司仍屈指可数,且公交车制造大厂是否愿意采用现有的解决方案,或是另外自行开发仍是未定之数。通过近 20 年的发展,GPS 产品已逐渐转变为消费电子产品,且所能应用的范围已扩展到日常生活中的通信、PDA、定位信息等。不过,以现阶段来看,由于 GPS接收机的单芯片化技术、价格以及市场应用服务等仍未臻成熟,因此,在乐观地看待此市场发展时,诸如 GPS IC 设计的技术是否能达到公交车或 PDA 所需的最小体积、成本是否能降低以及内建 GPS 的新公交车系统是否能引起消费者的青睐等问题,仍必须审慎地深入评估。1.1.2 国内的发展现状 国内 GPS 市场

6、呈现出两个重点发展趋势。(1)以车载导航为核心的移动目标监控、管理与服务系统。在 GPS 应用领域,车辆应用所占的比例较大。最初 GPS 车辆应用一般分为车辆跟踪和车辆导航两大系统。但当摩托罗拉公司推出集车辆导航与跟踪于一体的车辆信息系统后,它就成了发展的方向。GPS 车辆定位监控系统主要有自导航应用和中心监控两种方式。车辆监控系统是集 GPS 技术、无线通信技术和地理信息系统技术于一体的综合车辆管理系统。一般行业用户的车船队监控都采用中心监控方式,系统由监控中心、位于监控中心的主站和安装在移动车辆上的子站等 3 部分构成。系统的工作原理是:安装在车辆上的 GPS 接收机根据收到的卫星信息计算

7、出车辆的当前位置,通信控制器从 GPS 接收机输出的信号中提取所需要的位置、速度和时间信息,结合车辆身份等信息形成数据包,然后通过无线信道发往控制中心。控制中心的主站接收子站发送的数据,并从中提取出定位信息,根据各车辆的车号和组号等,在监控中心的电子地图上显示出来。同时,控制中心的系统管理员可以查询各车辆的运行状况,根据车流量合理调度车辆。(2)面向个人消费者的 GPS 终端产品。芯片的小型化技术、生产成本的降低、体积与耗电量的减小等有利因素,使GPS 产品走下神坛、深入到人们的日常生活中。目前面向个人消费者的产品主要有车载自主导航系统、移动监控终端以及消费类电子产品。有集成了 GPS 芯片和

8、地理信息系统数字地图的移动通信手机、GPS 手持机、GPS 手表,甚至 GPS 相机等,也有基于掌上电脑和笔记本电脑等移动设备的插卡(CF 卡式 GPS 接收机)式、外接(GPS 接收机)式等集成产品。1.2 课题研究的内容及目标 自动报站系统是智能公交系统的组成部分,公交车自动报站系统是利用全球定位系统(GPS)进行数据采集,根据公交车所处的位置进行自动报站、温磬提示等服务,它将电子、控制、计算机、通信等实用技术集中运用于公共交通系统,改造旧的服务模式,建立全新的服务体系,不但提高了其服务质量,同时也将为公交公司和社会带来较大的经济和社会效益。1(课题的主要研究的内容 针对我国的中小城市,自

9、主研发一套基于 GPS 的公交车自动报站系统。该系统采用 GPS 卫星定位技术,彻底改变传统公交车语音报站必须由司机操控才能工作的落后方式,在公交车进站、出站、拐弯时能及时、准确地自动播报站名及服务用语,实现公交车报站的完全智能化。在进行系统设计时,除了实现系统要求的功能以外,同时,由于系统是安装在公交车上,属于车载终端设备,所以必须兼顾电源、功耗、体积等因素,且还要考虑到产品成本、开发工具、研发周期等问题。基于以上因素,整个系统采用了AT89C51 单片机作为主控制器的设计思路。2(课题研究的目标 本课题研究的是基于 GPS 的公交车自动报站系统,目的是使公交车通过 GPS 定位,准确获知并

10、且确定车辆位置,然后通过液晶显示站点信息,提示灯变亮,再由音频系统自动播报站名,从以前完全手动控制变为选择性自动控制,以提高公交系统的准确性和安全性。第二章 整体框架及方案比较 本系统要实现根据公交车通过不同路段,然后经过 GPS 系统定位报出站名的功能。系统主要有两大部分,主控制程序单片机和语音芯片部分。每个部分都有不同的方案可供选择。2.1 系统整体框架结构图 本设计的整体思路是:通过按键电路和 GPS 定位系统输入地段信息,直接输出数字信号给单片机 AT89C51 进行处理,在 LCD 液晶频上显示当前站名信息。同时通过语音芯片输出放大后的语音信息。其结构框图如图所示:LCD GPS 模

11、块 AT89C51 按键电路 音频输出 音频放大 扬声器 图 2.1 整体框架结构图 2.2 单片机的选择 目前基于此课题的设计方案主要有两种,分别是基于 FPGA 的 VHDL 语言设计,基于 AT89C51 单片机设计,下面具体分析各种设计方案的优缺点。方案一:基于FPGA 的 VHDL 语言设计 优点:FPGA 是一种高密度的可编程逻辑器件,器件集成度高,方便易用。FPGA在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。随着功耗和成本的进一步降低,FPGA 还将进入更多的应用领域。缺点:用 VHDL 语言编写的程序很难实现符合这个课题的效果,在逻辑算法上也

12、不及 51 单片机来得灵活。在仿真环境上无法体现出需要实现的功能,不太适合用在这个课题上。方案二:基于 AT89C51 单片机设计 优点:51 单片机具有高效能,资源占用率低等特点。目前 51 单片机的使用非常广泛,关于 51 单片机设计开发的资料非常丰富,很适合初学者自学。使用 C 语言编程可以实现丰富的功能,在 Proteus 仿真环境上也可以很好地体现出本设计欲达到的效果。缺点:对多线程同时需要共享资源的任务处理性能有限,无法满足现今对执行效率和存储容量都有较高要求的信息家电等的需要。在多任务的处理能力上根本无法与基于嵌入式操作系统构架的方案同日而语。本设计采取方案二以 AT89C51

13、作为单片机。由于本课题属于小型项目,信息处理量不大,采用 FPGA 的设计存在成本高,开发过程复杂等情况,本项目并不能发挥出这些芯片的强大功能。基于以上优缺点的分析我选择了第 2 种设计方案。选用ATMEM 公司的 AT89C51 作为控制芯片,成本低,开发周期短,配合各种专用芯片的使用能够实现丰富的功能。可以在 Proteus 仿真环境中很好的体现出设计所要实现的效果。2.3 语音芯片的比较 本论文主要考虑了两种语音芯片,ISD1700S 语音芯片和 OTP 语音芯片,并且对它们做了分析比较。方案一:语音芯片 ISD1700S ISD1700S 系列芯片是华邦公司新推出的单片优质语音录放电路

14、,是 ISD1400S与 ISD2500S 的升级产品。该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示(vAlert),双运作模式(独立&嵌入式),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。特点:,可录、放音十万次,存储内容可以断电保留一百年 ,两种控制方式,两种录音输入方式,两种放音输出方式 ,可处理多达 255 段以上信息 ,有丰富多样的工作状态提示 ,多种采样频率对应多种录放时间 ,音质好,电压范围宽,应用灵活,价廉物美 电特性:,工作电压:2.4V,5.5V,最高不能超过 6V ,静态

15、电流:0.5-1uA ,工作电流:20mA 可利用振荡电阻来自定芯片的采样频率,从而决定芯片的录放时间和录放音质,而芯片的采样率可以通过外部振荡电阻来调节 方案二:语音芯片 OTP OTP 可以 PWM 直接驱动喇叭,也可以通过三极管放大后驱动喇叭,TG1、TG2 只能作为输入触发端(和正电源导通时,触发语音播放)另外的 TG11、TG12 既可以作为输入触发端,也可以作为输出驱动端,可以选择播放语音时 TG11/TG12 输出 1HZ闪光、3HZ 闪光、6HZ 闪光或者常亮模式,这样就能实现在播放语音的 同时 LED 闪光或者执行其他动作,如电机运转等。OTP 语音芯片特点 ,性能高度集成外

16、围无需任何元件,只需一个 104 滤波电容。,体积超小有 DIP8,SOP8 两种封装方便客户使用、低电压供电,静态基 本不耗电。,音质效果好,音量大 ,支持多种控制方式,按键控制和单片机串行脉冲控制.语音可分成 32 段.,批量价格具有绝对优势,交货周期短 7 天。,输出方式有 PWM,DSK 驱动喇叭。本系统中采用方案一。方案一采用 ISD1700 系列芯片具有优质语音录放功能,芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统,具有更大的灵活性和更低的成本,能够充分发挥单片机的效能。而由于方案二中芯片价格相对较高,且本程序较小不需要如此高性能芯片

17、,所以相比之下选择方案一最适合。第三章 系统的硬件研究与设计 系统硬件电路主要包括按键电路,JHD162A 液晶显示电路,ISD1700S 音频输出电路和 GPS 模块接口电路。每块电路通过与单片机的连接组合,实现其各自的功能。3.1 各部分电路图 3.1.1 单片机的最小系统 AT89C51 单片机的时钟电路可以由三种方式构成,即内部时钟方式、有源晶振方式和外部时钟信号方式。本自动报站系统为内部时钟方式,即采用外接晶振和电容组成的并联谐振电路,AT89C51 可以工作在 20MHz 频率下。电路如图 3-1 所示 复位电路主要完成系统的上电自动复位和系统在运行时用户的手动按键复位功能。在本系

18、统中采用较简单的 RC 复位电路,单片机在上电瞬间,RST 引脚端出现正脉冲,实现自动复位。经实践使用证明,其复位逻辑稳定、可靠。电路图如图3-1 所示。图 3-1 单片机最小系统电路图 3.1.2 JHD162A 液晶显示电路 为了能方便直观的了解到当前地段的站名和信息,显示的内容主要为 16 字符 x 2 行,字符点阵为 5 x 8 点,采用的驱动方式为 1/16D。基本操作时序为读状态:RS,L,RW,H,E,H;写指令:RS,L,RW,L,D0D7=指令码,E,高脉冲;读数据:RS,H,E,H;写数据:RS,H,RW,L,D0D7=数据,E,高脉冲,数码管的 4,5,6分别与单片机的

19、P2.0P2.2 相连;714 分别与 P0.0P0.7 相连,通过单片机的信息处理,从而在液晶显示频上显示各段信息。设计电路图如图 3-2 所示。图 3-2JHD162A 液晶显示电路 3.1.3 ISD1700S 音频输出电路及按键电路 ISD1700S 通过按键系统和 GPS 模块的信息输入,在按键模式工作时,芯片可以通过/LED 管脚给出信号来提示芯片的工作状态,并且伴随有提示音,ISD1700S 芯片具有语音录放功能,通过不同的数字信息输入,系统将会把先前收录好的语音通过音频放大器进行处理,最后经过扬声器喇叭播报出来。本系统兼有按键操作功能:按下 REC 键,/REC 管脚电平变低后

20、开始录音,直到松开按键使电平拉高或者芯片录满时结束。(1)录音结束后,录音指针自动移向下一个有效地址,而放音指针则指向刚刚录完的那段语音地址。(2)放音操作:放音操作有两种模式,分别是边沿触发和电平触发,都由/PLAY 管脚触发。(3)快进操作:点按一下 FWD 按钮将/FWD 端拉低,会启动快进操作。快 进操作用来将播放指针移向下一段语音信息。设计电路图如图 3-3 所示。图 3-3 ISD1700S 音频电路图 3.1.4 GPS 模块接口电路 由于电源电压要求为+5.0V?5%(即+4.75V+5.25V),因此模块引脚 1、引脚 2,引脚 3 均接系统的+5V 电源。由于该模块无需初始

21、化,上电后模块即可自动接收和发送定位数据,故不需要对其进行控制操作,即系统不必向 GPS 模块发出控制指令。另外,GPS 模块工作电源是+5V,而 AT89C51 单片机的 I/O 电压为+3.3V,所以在 GPS 模块与 AT89C51 单片机之间串接 27K 的保护电阻。具体硬件接口电路如图3-4 所示:图 3-4 GPS 模块接口电路 3.2 系统整体电路图 系统主要通过单片机 AT89C51 处理:GPS 模块接口电路,按键电路,ISD1700S音频输出电路以及 JHD162A 液晶显示电路。单片机主芯片通过对按键电路和 GPS 模块的信息处理,将信息发送到音频输出电路和 LCD 液晶

22、显示电路,从而可以明确的获知该地段的站名和准确播报信息。系统总体硬件设计电路如图 3-5 所示。图 3-5 系统整体电路图 第四章 系统软件的研究与设计 在自动报站系统的硬件电路设计与实现之后,还需要配合设计完善的程序才能完全实现自动报站系统的各项功能。在本系统中,主要设计了主程序的流程图,语音模块子程序流程图,并且简单的分析了各程序的运行流程。4.1 主程序流程图 主程序主要涉及各个部分子程序的调用。程序初始化后,系统出现开机界面,液晶显示频显示下一站站名。本程序主要兼有两种控制方式:按键控制和 GPS 接收控制。程序接收到信息后语音将自动播报到站信息,液晶显示频显示下一站,下车的指示灯亮。

23、选择 NO,则是继续行车报站,选择 YES,则停止行车,终止系统。主程序流程图 4-1 所示。开机界面 液晶显示下一站 N 是否选择 Y GPS 模式?GPS 接口电路 按键扫描 N N 接收 GPS,按键按下,Y Y 语音播报当前到站信息 液晶更新显示下一站 下车指示灯亮 N 是否停止行 车,Y 结束 图 4-1 主程序流程图 4.2 语音模块子程序 ISD1700S 语音模块子程序主要是接收主芯片发送过来的音频信号,然后由 P25 端输出一个负脉冲信号,语音芯片内部指针指向本站点的语音段头,再由P26 端输出一个负脉冲信号,经过音频放大,通过扬声器播放当前指针指向的语音段。流程图如图 4-

24、2 所示 开始 开机界面 N 是否接收 信号,Y 收到信号 P25 输出一个负脉冲,语音芯 片内部指针指向本站点语音 段头 是否播报 语音信 息,Y P26 输出一个负脉冲,播放当 前指针指向的语音段 结束 图 4-2 语音模块流程图 4.3 JHD162A 液晶显示子程序 JHD162A 液晶显示子程序主要通过接收主程序发出的信号,将其设置输入为模式子函数形式,并初始化 LCD 子函数,显示定位子函数,显示字符子函数,站点信息设置及调用,最后显示站名信息。流程图如图 4-3 所示。开始 开机界面 接收信号 设置输入模式子函 数 LCD_SetInput()N 是否初始 化 LCD,Y 初始化

25、 LCD 子函数站点信息设置及调 LCD_Initial()用 显示定位子函数显示站名信息 GotoXY()结束 显示字符子函数 图 4-3 JHD162A 液晶显示流程图 第五章 系统校验 软件的调试主要使用的是 Proteus 集成开始环境和 Keil 软件。Keil 软件提供了丰富的函数和功能强大的集成开发调试工具。编译后调试运行,生成 HEX 文件后直接烧写到 AT89C51 芯片中,进行系统的软件仿真。5.1 系统仿真 SIGNAL:模拟 GPS 接收信号。GPS 接收端收到信号后会从高点平跳变为一个持续的低电平直到信号消失,由于 Proteus 里没有语音器件所以用开关来替代。,D

26、1:播放 灯亮说明/PLAY 使能,模拟按键开关的负脉冲 ,D2:快进 灯亮说明/FWD 使能,模拟负脉冲。,D3:到站指示灯亮,语音播报结束后,到站门开,指示灯 D3 亮,直到信 号消失。,LCD 模块:初步选用字符型液晶,可以显示公交车名以及下一站站名。在每个 SIGNAL 信号的下降沿跳变显示下一站站名,否则保持不变。5.1.2 仿真实现流程 公交车在离站 100 米左右收到 GPS 信号,SIGNAL 给出持续的低电平直到车子驰离站点。这期间可分为三段。,T1:公交车从接收到信号到停靠到站 ,T2:停靠 ,T3:驰离公交站,信号消失 ,T1 期间当单片机检测到 SIGNAL 信号的下降

27、沿时,液晶就显示下一站站名 同时给 D2 一个负脉冲,将语音芯片的播放指针指向下一段;延时后再给 D1 一个负脉冲,播放当前指向语音段。然后 D3 指示灯亮。,T2 期间,指示灯 D3 保持亮的状态。语音播报完毕。,T3 期间,车子驰离信号区,SIGNAL 信号上升沿,指示灯 D3 熄灭,其它不 变。5.2 系统运行结果截图 5.2.1 开机界面 当系统开机时,系统进入初始化界面。单片机 C 语言程序自动默认为预设站点,液晶显示该站名信息为“ZhaoHu Z”,此时的LED 指示灯均灭。图 5-1 系统初始化界面 5.2.2 接收信号后 系统接收到 GPS 发送的信息后,单片机 P25 端口输

28、出一个负脉冲信号,语音芯片内部指针指向本站点语音段头,语音芯片指针下移一位,此时控制开关闭合LED2-BLUE 灯亮。接着单片机会在 P26 端口继续输出一个负脉冲信号,播放当前指针指向的语音段,此时 LED2-BLUE 熄灭,LED1-YELLOW 灯亮。公交车继续向前行驶,根据 GPS 定位系统向单片机输入信息,液晶显示下一站站名更新,即“JuYuan Z”,此时 P1.0 端口连接的 LED3-GREEN 提示灯灯亮,待公交车停靠站点后,LED 灯灭。图 5-2 语音芯片指针下移一位 图 5-3 语音报站 图 5-4LCD 显示下一站站名更新 图 5-5 到站指示灯亮 图 5-6 指示灯

29、灭 第六章 总结与展望 6.1 总结 智能交通系统是目前世界上交通运输科学技术的前沿,智能公交系统是智能交通系统研究的一个主要方向,它的建立将最大程度地提高车、路资源的利用率,提高公交服务的质量,从而创造巨大的社会经济效益,因此对智能公交技术的研究具有深远的意义。全球定位系统 GPS 已经广泛应用于各个领域。GPS 可以确定公交车的地理位置,只要把公交站点的位置数据(经度和纬度)记录下来,就可以知道公交车是否处于进站、到站和出站状态。利用 GPS 实现公交车的智能报站,大大减少驾驶员的工作量,提高公交车运行过程中的安全系数,是公交智能化的重大改进。所以,本文对 GPS 定位、语音播放,液晶显示

30、等技术作了详细的研究与讨论,总结如下:1)系统总体方案设计。提出了以 AT89C51 单片机作为主控制器的硬件总体设计方案,语音报站和信息显示同步。2)系统硬件电路设计。分析设计了各部分电路,包括液晶显示电路、音频输出电路及按键电路,GPS 接口电路等,实现了整个系统硬件电路的功能。3)系统软件设计。研究分析了系统主程序,液晶显示模块程序设计和语音模块程序设计等。此外,本文还对 GPS 在车辆定位进行了相关研究,提高系统定位的可靠性和完整性。6.2 展望 由于时间和精力有限,本文没有设计实现 DR 系统定位的硬件电路,但系统 MCU留有足够的 I/O 口可以使用。本文研究的 GPS 定位中数据

31、融合方式采用的是简单的模式切换,该方式的优点是算法简单,容易实现,但这种方式没有充分利用多传感器的冗余信息来提高定位精度和可靠性,今后可以考虑用紧耦合和松耦合的多传感器信息融合方式来完善系统的定位精度和可靠性。系统下一步发展趋势是将 GPS 自动报站系统和 GPRS 技术和 GIS 相结合,即把 GPS 定位、GPRS 无线通信网和城市地理信息系统结合起来,对城市的公交车辆进行实时监控,可以实时掌握整个路网交通的各种情况,进行即时分析、处理和预测,并以最快速度反馈给行驶中的每个车辆,优化行车路线,以最佳方式、最短时间将乘客载至目的地,使车辆和道路智能化,建立智能的公共交通营运和调度系统,进一步

32、促进智能公交系统的发展。参考文献 1 AT89C51 中文资料手册EB 2 ISD 1700 系列数码语音电路使用手册EB 3 多用途 DF 无线数据收发模块EB 4 LCD1602A 中文资料手册EB 5 PT2262/2272 编解码集成电路介绍EB 6 孙育才.MCS,51 系列单片机微型计算机及其应用M.南京:东南大学出版 社,2004。7 周波,冯顽童,胡建龙等.公交车自动报站系统的设计J.四川理工学院学 报:自然科学版,2008。8张伟,孙颖,赵晶.Protel 99 SE 高级应用M.北京:人民邮电出版社,2007.9曹丙霞,赵艳华.Protel 99 SE 原理图与 PCB 设

33、计M.北京:电子工业出版社,2007。10朱定华,黄松,蔡苗.Protel 99 SE 原理图与印制板设计M.北京:清华大 学出版社,2007。附录 本附录主要分析设计了三个 C 语言程序,其中包含系统的主程序设计,液晶显示模块设计和语音模块程序设计。附录一:主程序设计 公交车自动报站系统是利用 GPS 进行数据采集,实时解算车辆当时的经度、纬度等信息,获得公交车的实时坐标,将其与站台坐标相比较,公交车驶入站台一定距离范围内时,不用人工干预,系统自动进行报站、温磬提示等服务。如果公交车需要临时改变运营线路或更换一些语音广告信息,车载系统将方便、快捷地下载更新语音信息。若是在自动报站状态,则检测

34、 GPS 信息,确定公交车当前的地理位置,决定是否播放语音信息,播放哪段语音信息。主程序的流程实现如下所示:主程序代码:#include REGX52.H#include LCD1602.h#define uchar unsigned char sbit P31=P31;/无线信号接收端 sbit P24=P24;/控制快进 sbit P25=P25;/控制播放 sbit led=P10;/到站指示灯 sbit re=P30;/GPS 发射端 sbit reset=P34;/语音芯片复位 char i;uchar code dis1=ZhaoHu Z;/站点内容可更新或增加 uchar cod

35、e dis2=JuYuan Z;uchar code dis3=Jin Shan;uchar code dis4=Shang Du;uchar code dis5=Shi Da;uchar*p;void Delay1ms(unsigned int count)/延时 1ms unsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+);void delay()int i,j;for(i=0;i255;i+)for(j=0;j120;j+);void send()/GPS 发送 re=0;TMOD=0 x02;/计数器工作模式:方式 2 自动再装入的 8

36、 位计数器 EA=1;/允许全部中断 TH0=0 xf3;/高 8 位计数器作为初值寄存器 TL0=0 xf3;/低 8 位计数器初值 ET0=1;/允许计数器 0 的中断响应 main()LCD_Initial();/lcd 初始化 GotoXY(7,0);/显示定位 Print(43);/显示站名 GotoXY(0,1);Print(Next:);i=0;p=dis1;/初始化界面 GotoXY(6,1);/初始定位 Print(p);/初始显示 delay();reset=0;/语音芯片复位 delay();delay();delay();reset=1;P31=1;send();/GP

37、S 发射 TR0=1;/启动计数器 while(1)Delay1ms(300);while(P31);/判断 P31 口是否为 1,如果是则循环直到是 0后往下执行 delay();P24=0;/从 P24 口输出一个负脉冲使 FWD 有效,指针指向下一段 delay();P24=1;delay();P25=0;/PLAY 有效,播放当前段 delay();P25=1;if(i=5)i=0;elsei+;switch(i)case 0:p=dis1;break;case 1:p=dis2;break;case 2:p=dis3;break;case 3:p=dis4;break;case 4:

38、p=dis5;break;GotoXY(6,1);/数据指针定位 Print(p);/显示 while(!P31)/判断 P31 口是否为 0,如果为 0 则执行 led=0 否则 led=1 delay();led=0;led=1;delay();void ttl(void)interrupt 1/定时器/计数器 0(TF0)re=re;/re值取反产生 TTL 电平 附录二:液晶显示模块程序设计 1、内部等待函数 LCD_Wait(void)unsigned char LCD_Wait(void)LcdRs=0;/读状态 LcdRw=1;_nop_();LcdEn=1;_nop_();wh

39、ile(DBPort&0 x80);/判断读写状态使能标志 LcdEn=0;return DBPort;2、向 LCD 写入命令或数据子函数 LCD_Write()void LCD_Write(bit style,unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意顺序 LcdEn=1;_nop_();/注意顺序 给 En 一个高脉冲 LcdEn=0;_nop_();LCD_Wait();3、设置显示模式子函数 LCD_SetDisplay()void LCD_SetDisplay(un

40、signed char DisplayMode)LCD_Write(LCD_COMMAND,0 x08|DisplayMode);4、设置输入模式子函数 LCD_SetInput()void LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND,0 x04|InputMode);LCD_Initial()5、初始化 LCD 子函数 void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0 x38);/8 位数据端口,162 行显示,5*7 点阵 LCD_Write(LCD_COMMAND,

41、0 x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);/开启显示,无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);/清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);/AC 递增,画面不动 6、显示定位子函数 GotoXY()void GotoXY(unsigned char x,unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0 x80|x);/第一行 设置数据指针地址 if(y=1)LCD_Write(LCD_COMMAND,0 x80|(x-

42、0 x40);7、显示字符子函数 Print()void Print(unsigned char*str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+;delay1();站点信息设置及调用 用数组定义站点信息字符串:uchar code dis1=ZhaoHu Z;uchar code dis2=JuYuan Z;uchar code dis3=Jin Shan;uchar code dis4=Shang Du;uchar code dis5=Shi Da;uchar*p;用 case 语句判断要显示的站点 switch(i)case 0:p=dis1;break;case 1:p=dis2;break;case 2:p=dis3;break;case 3:p=dis4;break;case 4:p=dis5;break;附录三:语音模块程序设计 该模块采用单片机端口输出负脉冲信号模拟按键信号对语音芯片进行控制。P24=0;/模拟负脉冲 FWD 有效,播放指针指向下一段 delay();P24=1;delay();/给语音芯片一定的执行时间 P25=0;/模拟负脉冲 PLAY 有效,播放当前段 delay();P25=1;

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

当前位置:首页 > 应用文书 > 工作报告

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

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