资源描述
b苏州经贸职业技术学院
学生毕业设计(毕业论文)
基于GPS定位公交车自动报站系统设计系 别: 机电系
专 业: 应用电子技术(电子产品营销)
班 级: 应电0832班
学 生 姓 名: 李超
学 生 学 号: 0801083240
指 导 教 师: 王倢婷 王益
2010年 12 月 19日
39 / 45
目录
摘要 I
前言 1
第一章 概述 2
1.1GPS国内外发展形势 2
1.1.1国外研究现状 2
1.1.2 国内发展现状 2
1.2 课题研究内容及目标 3
第二章 整体框架及方案比较 4
2.1系统整体框架结构图 4
2.2单片机选择 4
2.3语音芯片比较 5
第三章 系统硬件研究及设计 7
3.1各部分电路图 7
3.1.1单片机最小系统 7
3.1.2LCD12864液晶显示电路 8
3.1.3 ISD4004 音频输出电路及按键电路 8
3.1.4 GPS模块接口电路 9
3.2 系统整体电路图 10
第四章 系统软件研究及设计 12
4.1主程序流程图 12
4.2语音模块子程序 14
4.3 LCD12864液晶显示子程序 15
第五章 系统校验 16
5.1系统仿真 16
5.1.2仿真实现流程 16
5.2系统运行结果截图 17
5.2.1开机界面 17
5.2.2接收信号后 17
第六章 总结及展望 21
6.1总结 21
6.2展望 21
致谢 22
参考文献 23
附录 24
摘要
智能公交系统是指智能交通系统重要研究内容,此论文设计了一种基于GPS定位公交车自动报站系统,它是利用GPS进行数据采集,从而获得车辆位置信息,并结合了语音播放技术,根据公交车所处位置进行自动报站、温磬提示之类语音服务。它可以改变传统公交车语音报站必须由司机操控,否则工作落后方式,可以做到不需要人工介入,从而实现公交车报站完全智能化。该系统以GPS定位技术作为基础来实现自动定位,提供自动报站服务。
Intelligent transportation system is an important research content of intelligent transportation system, this paper designed a GPS bus automatic station reporting system based on it is using GPS data collection, to get the vehicle location information, and a combination of voice playback technology, according to the bus location automatic newspaper station, Wen Qing tips like voice services. It can change the voice of the traditional bus station must be controlled by the driver, otherwise the work of the backward way, you can do without manual intervention, so as to achieve full intelligent bus station. The system uses GPS positioning technology as the foundation to realize automatic positioning, providing automatic station service.
关键词:GPS;自动报站系统; STC89C51
前言
从1831英国沃尔特·汉考克为他国家制造出了世界上第一辆装载发动机公共汽车起,如今,公交车已经历经过将近200年发展过程。从一开始“闷罐头”到如今配套空调系统;从专人售票至无人售票;从人工报站至半自动语音报站,公交车朝着越来越人性化方向设计。可是目前存在一个问题,半自动语音报站系统需要司机在车子进出站时候进行人工操作,由于这两个时间往往是路面情况最复杂时刻,因此容易给行驶中车辆造成安全隐患。此论文目标就是进行可替代人工操作来实现公交进出站全自动语音报站。利用了STC89C51单片机、ISD4004语音芯片、LCD12864液晶模块来实现需要功能。
单片机体积小,重量轻,拥有很强灵活性且价格便宜,得到越来越广泛应用,例如控制领域、家电产品,智能仪器仪表,计算机外部设备都有重要用途。在20世纪80年代中期,Intel公司将8051内核使用权以专利互换或出售形式转给世界许多著名IC制造厂商,这样8051从此变成有众多制造厂商支持,并发展出上百个品种大家族。至今,其它任何一个单片机系列都未发展到如此规模。正因为51单片运用是如此广泛,故学习单片机运用非常重要。学好单片机原理也是学习其他嵌入式控制器(如ARM、DSP)基础,任何嵌入式控制器都不能离开单片机所涵盖(如中央处理器,定时器、中断控制器,IO口控制器, 串行通讯控制器,I2C总线控制器,片内外存储控制器,汇编语言,C语言,操作系统)概念。因此说学好单片机,再学习其他嵌入式控制器(如ARM、DSP)是比较简单。可以说学好单片机是为其它进阶微处理器铺垫。
此次设计课题,是“基于GPS定位公交车自动报站系统设计”, 设计中,利用无线收发模块及编解码实现站台自动识别,通过单片机对液晶模块及语音模块综合控制,来实现全自动语音报站功能。
本次设计以Keil C51开发环境为编程平台进行代码编译、运行,Altium Designer进行原理图设计。
第一章 概述
1.1GPS国内外发展形势
1.1.1国外研究现状
目前,以GPS为代表卫星导航应用产业已成为当今国际公认八大无线产业之一。随着技术进步、应用需求增加,GPS以全天候、高精度、自动化、高效率等显著特点及其所独具定位导航、授时校频、精密测量等多方面强大功能,已涉足众多应用领域,使GPS成为继蜂窝移动通信和互联网之后全球第三个 IT经济新增长点。
虽然具有GPS定位功能公交车市场潜力颇为看好,就现阶段而言仍有几项障碍亟待克服:首先,不论公交车采用内建GPS芯片或是外接GPS模块作为解决方案,这会无可避免地提高公交车运营成本,也影响消费者购买意愿;最后,目前具有提供整合GPS芯片及无线通信技术公司屈指可数,且公交车制造厂是否愿意采用现有解决方案,或是另外自行开发,仍是未定之数。
通过近20年发展,GPS已逐渐转变为消费型电子产品,且所能应用范围已经扩展到日常生活通信、PDA、定位信息等。不过,通过现阶段来看,由于 GPS接收机单芯片化技术、价格以及市场应用服务等仍未成熟,因此,在乐观地看待市场发展时,诸如GPS IC设计技术是否能达到公交车、PDA所需最小体积、成本是否降低以及内建GPS新公交车系统能否引起消费者青睐等问题,仍必须审慎地进行深入评估。
1.1.2 国内发展现状
国内GPS市场呈现出两个重点发展趋势。
(1)以车载导航为核心移动目标监控、管理及服务系统。
在GPS应用领域,车辆应用所占比例较大。最初GPS车辆应用一般分为车辆跟踪和车辆导航两大系统。但当摩托罗拉公司推出集车辆导航及跟踪于一体车辆信息系统后,它就成了发展方向。
GPS车辆定位监控系统主要有自导航应用和中心监控两种方式。车辆监控系统是集GPS技术、无线通信技术和地理信息系统技术于一体综合车辆管理系统。一般行业用户车船队监控都采用中心监控方式,系统由监控中心、位于监控中心主站和安装在移动车辆上子站等3部分构成。系统工作原理是:安装在车辆上GPS接收机根据收到卫星信息计算出车辆当前位置,通信控制器从GPS接收机输出信号中提取所需要位置、速度和时间信息,结合车辆身份等信息形成数据包,然后通过无线信道发往控制中心。控制中心主站接收子站发送数据,并从中提取出定位信息,根据各车辆车号和组号等,在监控中心电子地图上显示出来。同时,控制中心系统管理员可以查询各车辆运行状况,根据车流量合理调度车辆。
(2)面向个人消费者GPS终端产品。
芯片小型化技术、生产成本降低、体积及耗电量减小等有利因素,使GPS产品走下神坛、深入到人们日常生活中。目前面向个人消费者产品主要有车载自主导航系统、移动监控终端以及消费类电子产品。
有集成了GPS芯片和地理信息系统数字地图移动通信手机、GPS手持机、GPS 手表,甚至GPS相机等,也有基于掌上电脑和笔记本电脑等移动设备插卡(CF卡式GPS接收机)式、外接(GPS接收机)式等集成产品。
1.2 课题研究内容及目标
自动报站系统是智能公交系统组成部分,公交车自动报站系统是利用全球定位系统(GPS)进行数据采集,根据公交车所处位置进行自动报站、温磬提示等服务,它将电子、控制、计算机、通信等实用技术集中运用于公共交通系统,改造旧服务模式,建立全新服务体系,不但提高了其服务质量,同时也将为公交公司和社会带来较大经济和社会效益。
1.课题主要研究内容
针对我国中小城市,自主研发一套基于GPS公交车自动报站系统。该系统采用GPS卫星定位技术,彻底改变传统公交车语音报站必须由司机操控才能工作落后方式,在公交车进站、出站、拐弯时能及时、准确地自动播报站名及服务用语,实现公交车报站完全智能化。
在进行系统设计时,除了实现系统要求功能以外,同时,由于系统是安装在公交车上,属于车载终端设备,所以必须兼顾电源、功耗、体积等因素,且还要考虑到产品成本、开发工具、研发周期等问题。基于以上因素,整个系统采用了AT89C51单片机作为主控制器设计思路。
2.课题研究目标
本课题研究是基于GPS公交车自动报站系统,目是使公交车通过GPS定位,准确获知并且确定车辆位置,然后通过液晶显示站点信息,提示灯变亮,再由音频系统自动播报站名,从以前完全手动控制变为选择性自动控制,以提高公交系统准确性和安全性。
第二章 整体框架及方案比较
本系统要实现根据公交车通过不同路段,然后经过GPS系统定位报出站名功能。系统主要有两大部分,主控制程序单片机和语音芯片部分。每个部分都有不同方案可供选择。
2.1系统整体框架结构图
本设计整体思路是:通过按键电路和GPS定位系统输入地段信息,直接输出数字信号给单片机AT89C51进行处理,在LCD液晶频上显示当前站名信息。同时通过语音芯片输出放大后语音信息。其结构框图如图所示:
GPS模块
音频输出
音频放大
AT89C51
扬声器
LCD
按键电路
图2.1 整体框架结构图
2.2单片机选择
目前基于此课题设计方案主要有两种,分别是基于FPGAVHDL语言设计,基于AT89C51单片机设计,下面具体分析各种设计方案优缺点。
方案一:基于FPGAVHDL语言设计
优点: FPGA是一种高密度可编程逻辑器件,器件集成度高,方便易用。FPGA在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。随着功耗和成本进一步降低,FPGA还将进入更多应用领域。
缺点:用VHDL语言编写程序很难实现符合这个课题效果,在逻辑算法上也不及51单片机来得灵活。在仿真环境上无法体现出需要实现功能,不太适合用在这个课题上。
方案二:基于AT89C51单片机设计
优点:51单片机具有高效能,资源占用率低等特点。目前51单片机使用非常广泛,关于51单片机设计开发资料非常丰富,很适合初学者自学。使用C语言编程可以实现丰富功能,在Proteus仿真环境上也可以很好地体现出本设计欲达到效果。
缺点:对多线程同时需要共享资源任务处理性能有限,无法满足现今对执行效率和存储容量都有较高要求信息家电等需要。在多任务处理能力上根本无法及基于嵌入式操作系统构架方案同日而语。
本设计采取方案二以AT89C51作为单片机。由于本课题属于小型项目,信息处理量不大,采用FPGA设计存在成本高,开发过程复杂等情况,本项目并不能发挥出这些芯片强大功能。基于以上优缺点分析我选择了第2种设计方案。选用ATMEM公司AT89C51作为控制芯片,成本低,开发周期短,配合各种专用芯片使用能够实现丰富功能。可以在Proteus仿真环境中很好体现出设计所要实现效果。
2.3语音芯片比较
本论文主要考虑了两种语音芯片,ISD1700S语音芯片和OTP语音芯片,并且对它们做了分析比较。
方案一:语音芯片ISD1700S
ISD1700S 系列芯片是华邦公司新推出单片优质语音录放电路,是ISD1400S及ISD2500S升级产品。该芯片提供多项新功能,包括内置专利多信息管理系统,新信息提示(vAlert),双运作模式(独立&嵌入式),以及可定制信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器及内存等全方位整合系统功能。
特点:
Ø 可录、放音十万次,存储内容可以断电保留一百年
Ø 两种控制方式,两种录音输入方式,两种放音输出方式
Ø 可处理多达 255 段以上信息
Ø 有丰富多样工作状态提示
Ø 多种采样频率对应多种录放时间
Ø 音质好,电压范围宽,应用灵活,价廉物美 电特性:
Ø 工作电压:2.4V-5.5V,最高不能超过6V
Ø 静态电流:0.5-1uA
Ø 工作电流:20mA
可利用振荡电阻来自定芯片采样频率,从而决定芯片录放时间和录放音质,而芯片采样率可以通过外部振荡电阻来调节
方案二:语音芯片OTP
OTP可以PWM直接驱动喇叭,也可以通过三极管放大后驱动喇叭,TG1、TG2只能作为输入触发端(和正电源导通时,触发语音播放)另外TG11、TG12既可以作为输入触发端,也可以作为输出驱动端,可以选择播放语音时TG11/TG12输出1HZ闪光、3HZ闪光、6HZ闪光或者常亮模式,这样就能实现在播放语音同时LED闪光或者执行其他动作,如电机运转等。
OTP语音芯片特点
Ø 性能高度集成外围无需任何元件,只需一个104滤波电容。
Ø 体积超小有DIP8,SOP8两种封装方便客户使用、低电压供电,静态基本不耗电。
Ø 音质效果好,音量大
Ø 支持多种控制方式,按键控制和单片机串行脉冲控制.语音可分成32段.
Ø 批量价格具有绝对优势,交货周期短7天。
Ø 输出方式有PWM ,DSK驱动喇叭。
本系统中采用方案一。方案一采用ISD1700 系列芯片具有优质语音录放功能,芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器及内存等全方位整合系统,具有更大灵活性和更低成本,能够充分发挥单片机效能。而由于方案二中芯片价格相对较高,且本程序较小不需要如此高性能芯片,所以相比之下选择方案一最适合。
第三章 系统硬件研究及设计
系统硬件电路主要包括按键电路,JHD162A液晶显示电路,ISD1700S音频输出电路和GPS模块接口电路。每块电路通过及单片机连接组合,实现其各自功能。
3.1各部分电路图
3.1.1单片机最小系统
AT89C51单片机时钟电路可以由三种方式构成,即内部时钟方式、有源晶振方式和外部时钟信号方式。本自动报站系统为内部时钟方式,即采用外接晶振和电容组成并联谐振电路, AT89C51可以工作在20MHz频率下。电路如图3-1所示
复位电路主要完成系统上电自动复位和系统在运行时用户手动按键复位功能。在本系统中采用较简单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,D0~D7=指令码,E=高脉冲;读数据:RS=H,E=H ;写数据:RS=H,RW=L,D0~D7=数据,E=高脉冲 ,数码管4,5,6分别及单片机P2.0—P2.2相连;7~14分别及P0.0~P0.7相连,通过单片机信息处理,从而在液晶显示频上显示各段信息。设计电路图如图3-2所示。
图3-2JHD162A液晶显示电路
3.1.3 ISD1700S音频输出电路及按键电路
ISD1700S通过按键系统和GPS模块信息输入,在按键模式工作时,芯片可以通过/LED 管脚给出信号来提示芯片工作状态,并且伴随有提示音,ISD1700S芯片具有语音录放功能,通过不同数字信息输入,系统将会把先前收录好语音通过音频放大器进行处理,最后经过扬声器喇叭播报出来。
本系统兼有按键操作功能:按下 REC 键,/REC 管脚电平变低后开始录音,直到松开按键使电平拉高或者芯片录满时结束。(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电源。由于该模块无需初始化,上电后模块即可自动接收和发送定位数据,故不需要对其进行控制操作,即系统不必向GPS模块发出控制指令。另外,GPS模块工作电源是+5V,而AT89C51单片机I/O电压为+3.3V,所以在GPS模块及AT89C51单片机之间串接27K保护电阻。具体硬件接口电路如图3-4所示:
图3-4 GPS模块接口电路
3.2 系统整体电路图
系统主要通过单片机AT89C51处理:GPS模块接口电路,按键电路,ISD1700S音频输出电路以及JHD162A液晶显示电路。单片机主芯片通过对按键电路和GPS模块信息处理,将信息发送到音频输出电路和LCD液晶显示电路,从而可以明确获知该地段站名和准确播报信息。系统总体硬件设计电路如图3-5所示。
图3-5 系统整体电路图
第四章 系统软件研究及设计
在自动报站系统硬件电路设计及实现之后,还需要配合设计完善程序才能完全实现自动报站系统各项功能。在本系统中,主要设计了主程序流程图,语音模块子程序流程图,并且简单分析了各程序运行流程。
4.1主程序流程图
主程序主要涉及各个部分子程序调用。程序初始化后,系统出现开机界面,液晶显示频显示下一站站名。本程序主要兼有两种控制方式:按键控制和GPS接收控制。程序接收到信息后语音将自动播报到站信息,液晶显示频显示下一站,下车指示灯亮。选择NO,则是继续行车报站,选择YES,则停止行车,终止系统。主程序流程图4-1所示。
开机界面
液晶显示下一站
是否选择GPS模式?
GPS接口电路
按键扫描
语音播报当前到站信息
液晶更新显示下一站
下车指示灯亮
接收GPS?
按键按下?
是否停止行车?
N
N
Y
Y
Y
N
Y
N
结束
图4-1 主程序流程图
4.2语音模块子程序
ISD1700S语音模块子程序主要是接收主芯片发送过来音频信号,然后由P25端输出一个负脉冲信号,语音芯片内部指针指向本站点语音段头,再由P26端输出一个负脉冲信号,经过音频放大,通过扬声器播放当前指针指向语音段。流程图如图4-2所示
开机界面
P25输出一个负脉冲,语音芯片内部指针指向本站点语音段头
P26输出一个负脉冲,播放当前指针指向的语音段
结束
收到信号
开始
是否接收信号?
是否播报语音信息?
N
Y
Y
图4-2 语音模块流程图
4.3 JHD162A液晶显示子程序
JHD162A液晶显示子程序主要通过接收主程序发出信号,将其设置输入为模式子函数形式,并初始化LCD子函数,显示定位子函数,显示字符子函数,站点信息设置及调用,最后显示站名信息。流程图如图4-3所示。
开机界面
显示站名信息
接收信号
设置输入模式子函数LCD_SetInput()
初始化LCD子函数LCD_Initial()
显示定位子函数GotoXY()
站点信息设置及调用
结束
显示字符子函数
开始
是否初始化LCD?
Y
N
图4-3 JHD162A液晶显示流程图
第五章 系统校验
软件调试主要使用是Proteus集成开始环境和Keil 软件。Keil软件提供了丰富函数和功能强大集成开发调试工具。编译后调试运行,生成HEX文件后直接烧写到AT89C51芯片中,进行系统软件仿真。
5.1系统仿真
SIGNAL:模拟GPS接收信号。 GPS接收端收到信号后会从高点平跳变为一个持续低电平直到信号消失,由于Proteus里没有语音器件所以用开关来替代。
Ø D1:播放 灯亮说明/PLAY使能,模拟按键开关负脉冲
Ø D2:快进 灯亮说明/FWD使能,模拟负脉冲。
Ø D3:到站指示灯亮,语音播报结束后,到站门开,指示灯D3亮,直到信号消失。
Ø LCD模块:初步选用字符型液晶,可以显示公交车名以及下一站站名。在每个SIGNAL信号下降沿跳变显示下一站站名,否则保持不变。
5.1.2仿真实现流程
公交车在离站100米左右收到GPS信号,SIGNAL给出持续低电平直到车子驰离站点。 这期间可分为三段。
Ø T1:公交车从接收到信号到停靠到站
Ø T2:停靠
Ø T3:驰离公交站,信号消失
Ø T1期间当单片机检测到SIGNAL信号下降沿时,液晶就显示下一站站名同时给D2一个负脉冲,将语音芯片播放指针指向下一段;延时后再给D1一个负脉冲,播放当前指向语音段。然后D3指示灯亮。
Ø T2期间,指示灯D3保持亮状态。语音播报完毕。
Ø T3期间,车子驰离信号区,SIGNAL信号上升沿,指示灯D3熄灭,其它不变。
5.2系统运行结果截图
5.2.1开机界面
当系统开机时,系统进入初始化界面。单片机C语言程序自动默认为预设站点,液晶显示该站名信息为“ZhaoHu Z”,此时LED指示灯均灭。
图5-1 系统初始化界面
5.2.2接收信号后
系统接收到GPS发送信息后,单片机P25端口输出一个负脉冲信号,语音芯片内部指针指向本站点语音段头,语音芯片指针下移一位,此时控制开关闭合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指示灯灭
第六章 总结及展望
6.1总结
智能交通系统是目前世界上交通运输科学技术前沿,智能公交系统是智能交通系统研究一个主要方向,它建立将最大程度地提高车、路资源利用率,提高公交服务质量,从而创造巨大社会经济效益,因此对智能公交技术研究具有深远意义。全球定位系统GPS已经广泛应用于各个领域。GPS可以确定公交车地理位置,只要把公交站点位置数据(经度和纬度)记录下来,就可以知道公交车是否处于进站、到站和出站状态。利用GPS实现公交车智能报站,大大减少驾驶员工作量,提高公交车运行过程中安全系数,是公交智能化重大改进。所以,本文对GPS定位、语音播放,液晶显示等技术作了详细研究及讨论,总结如下:
1)系统总体方案设计。提出了以AT89C51单片机作为主控制器硬件总体设计方案,语音报站和信息显示同步。
2)系统硬件电路设计。分析设计了各部分电路,包括液晶显示电路、音频输出电路及按键电路,GPS接口电路等,实现了整个系统硬件电路功能。
3)系统软件设计。研究分析了系统主程序,液晶显示模块程序设计和语音模块程序设计等。此外,本文还对GPS在车辆定位进行了相关研究,提高系统定位可靠性和完整性。
6.2展望
由于时间和精力有限,本文没有设计实现DR系统定位硬件电路,但系统MCU留有足够I/O口可以使用。本文研究GPS定位中数据融合方式采用是简单模式切换,该方式优点是算法简单,容易实现,但这种方式没有充分利用多传感器冗余信息来提高定位精度和可靠性,今后可以考虑用紧耦合和松耦合多传感器信息融合方式来完善系统定位精度和可靠性。系统下一步发展趋势是将GPS自动报站系统和GPRS技术和GIS相结合,即把GPS定位、GPRS无线通信网和城市地理信息系统结合起来,对城市公交车辆进行实时监控,可以实时掌握整个路网交通各种情况,进行即时分析、处理和预测,并以最快速度反馈给行驶中每个车辆,优化行车路线,以最佳方式、最短时间将乘客载至目地,使车辆和道路智能化,建立智能公共交通营运和调度系统,进一步促进智能公交系统发展。
致谢
在本毕业设计写作过程中,我指导老师王益老师倾注了大量心血,为我确立了研究方向,从论文选题、构思、编排等方面给我详尽指导。到一遍又一遍地指出每稿中具体问题,严格把关,循循善诱,王老师深厚理论功底和丰富经验对我课题完成起到了至关重要作用。在此,谨向王老师致以崇高地敬意和由衷地感谢。同时我还要感谢在我学习期间给我极大关心和支持各位老师以及关心我同学和朋友。
当然,在我求学期间,还要感谢我深爱父母亲一直以来对我无怨无悔付出、支持、关爱、尊重和信任,在我学习、生活、感情、工作上遇到困难时,是您们帮我抵御风霜,谢谢您们。我是幸运而幸福,我知足并且义无反顾在大家关爱下坚持自己信念和理想一路前行。
参考文献
[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设计[M].北京:电子工业出版社,2007。
[10]朱定华,黄松,蔡苗.Protel 99 SE原理图及印制板设计[M].北京:清华大学出版社,2007。
附录
本附录主要分析设计了三个C语言程序,其中包含系统主程序设计,液晶显示模块设计和语音模块程序设计。
附录一:主程序设计
公交车自动报站系统是利用GPS进行数据采集,实时解算车辆当时经度、纬度等信息,获得公交车实时坐标,将其及站台坐标相比较,公交车驶入站台一定距离范围内时,不用人工干预,系统自动进行报站、温磬提示等服务。如果公交车需要临时改变运营线路或更换一些语音广告信息,车载系统将方便、快捷地下载更新语音信息。若是在自动报站状态,则检测GPS信息,确定公交车当前地理位置,决定是否播放语音信息,播放哪段语音信息。主程序流程实现如下所示:
主程序代码:
#include "REGX52.H"
#include "LCD1602.h"
#define uchar unsigned char
sbit P31=P3^1; //无线信号接收端
sbit P24=P2^4; //控制快进
sbit P25=P2^5; //控制播放
sbit led=P1^0; //到站指示灯
sbit re=P3^0; //GPS发射端
sbit reset=P3^4; //语音芯片复位
char i;
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;
void Delay1ms(unsigned int count) //延时1ms
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
void delay()
{
int i,j;
for(i=0;i<255;i++)
for(j=0;j<120;j++);
}
void send() //GPS发送
{
re=0;
TMOD=0x02; //计数器工作模式:方式2 自动再装入8位计数器
EA=1; //允许全部中断
TH0=0xf3; //高8位计数器作为初值寄存器
TL0=0xf3; //低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(); //GPS发射
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;}else{i++;}
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;
};
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_();
while(DBPort&0x80); //判断读写状态使能标志
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(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
}
4、设置输入模式子函数LCD_SetInput()
void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND, 0x04|InputMode);
}
5、初始化LCD子函数LCD_Initial()
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND,0x38); //8位数据端口,16×2行显示,5*7点阵
LCD_Write(LCD_COMMAND,0x38);
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 c
展开阅读全文