收藏 分享(赏)

毕业设计_公交车站自动报站器的设计().doc

上传人:精品资料 文档编号:10989389 上传时间:2020-01-30 格式:DOC 页数:25 大小:305.50KB
下载 相关 举报
毕业设计_公交车站自动报站器的设计().doc_第1页
第1页 / 共25页
毕业设计_公交车站自动报站器的设计().doc_第2页
第2页 / 共25页
毕业设计_公交车站自动报站器的设计().doc_第3页
第3页 / 共25页
毕业设计_公交车站自动报站器的设计().doc_第4页
第4页 / 共25页
毕业设计_公交车站自动报站器的设计().doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、1摘要 公交车已经成为一般工薪族和学生族出门必须的交通工具,目前公交车上采用的公交报站系统具有语音和显示报站的基本功能,但由于报站时采用司机手动切换,一方面增加了司机的劳动强度,另一方面由于司机的误报或漏报,造成乘客误下或漏下,对于公交运营产生了很大负面影响,跟会对乘客造成很多不必要的影响。为此,研究公交车自动报站系统是非常必要的。本课题主要研究的是基于 AT89C51 单片机、GPS9543LP 全球定位模块和 ISD1700S 语音芯片的公交车自动报站系统,该系统利用 GPS 模块测得的经纬度信息与存储在单片机中的站点的经纬度信息相比对,无论上行线路,还是下行线路,均能准确判断是否到站。同

2、时,采用基于文本的语音合成技术,真正实现了全自动、准确地播报站名。AbstractThe public transportation has already became the general wage race and the student race went out must the transportation vehicle, at present on the public transportation uses the public transportation newspaper station system had the basic function which the

3、pronunciation and the demonstration newspaper stood, but because the newspaper stood time used the driver manual cut, on the one hand increased drivers labor intensity, on the other hand because drivers misinformation or failed to report, created the passenger by mistake under or the mild chronic bl

4、oody vaginal discharge, has had the very greatly negative influence regarding the public transportation operation, could have very many nonessential influences to the passenger.Therefore, studies the public transportation automatic newspaper station system is extremely essential.This topic main rese

5、arch is based on at89C51,GPS9543LP,ISD1700S public transportation automatic newspaper station system front, System that uses longitude measured information and store the GPS module in single-chip microcomputer in the longitude of sites compare information on,uplink, is also a downward line, are able

6、 to determine accurately whether arrives.At the same time, based on the text of the speech synthesis technology, truly automatic, accurate broadcast stations.2目录1 绪论.31.1 课题研究的背景及意义31.2 报站器的动态发展趋势31.3 设计的主要目标任务42 方案.53 系统器件选型.63.1 AT89C51 的简介.63.1.1 主要性能.63.1.2 引脚功能说明.73.2 GPS9543LP 定位模块93.3 ISD1700

7、S 语音芯片104 系统硬件研究与设计124.1 各部分电路.134.1.1 单片机的最小系统134.1.2 JHD162A 液晶显示电路134.1.3 ISD1700S 音频输出电路及按键电路 .134.1.4 GPS 模块接口电路.135 系统软件研究与设计155.1 主程序流程图155.2 语音模块子程序175.3 JHD162A 液晶显示子程序.186 结论19参考文献20附录2131 绪论随着科学技术的日益发展和进步,无人售票公交车在街头多了起来,语音报站器也被广泛使用,这在相当大程度上免除了乘务人员沿途报站的麻烦,给许多不熟悉公交线路的乘客带来了方便。 1.1 课题研究的背景及意义

8、公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响服务的质量。传统由乘务人员人工报站,该方式因其效果太差和工作强度太大,在很多大城市已经被淘汰。近年来,随着科学技术的日益发展和进步,微型计算机技术已经在许多领域得到了广泛的应用。在声学领域,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得汽车报站器的实现成为可能,从而为市民提供了更加人性化的服务。鉴于传统公交车报站系统的不足之处,结合公交车辆的使用特点及实际营运环境,设计了一种由单片机控制的公交车自动报站系统 。公交车自动报站器的设计主要是为了弥补改变传统语音报站器必须有司机操控才能工作的落后方式,进站、出站自动播报站

9、名及服务用语,为市民提供更人性化,更完善的服务 。1.2 报站器的动态发展趋势 公共汽车行驶在现代文明程度高的市区,它是一道流动的风景线,因而对整车外形乃至色彩都有更高的要求。作为公共汽车还要求有醒目和减少乘务人员劳动强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。公交车报站器在公交事业中占有举足轻重的地位,它直接影响到公交车的服务质量。目前公交车报站有三种方式,一种是利用 GPS 全球卫星定位系统的公交车报站系统,在司机座位后面隔板上,安装了一台 15 英寸的液晶电视和 GPS 信号接收器,安装了这套设备后,公交车在语音报站的同时,通过液晶电视还可

10、以显示到站站名的字幕,这样如果没听清报站的话,通过显示屏,乘客也可以一目了然。当出现紧急情况时,调度中心将会给公交车发出相应的信息,以短信的形式传送到显示屏上,同时车载台会发出相应的提示音;驾驶员也可以通过相应的工具进行回复 。目前在美国部分城市 GPS 卫星定位系统已经投入使用,国内也有此类产品的研制开发,其功能强大,系统稳定,但其投资昂贵,尤其是一些中小城市无法承受。另外两种是手动电子报站和人工报站的方式,而它们都离不开司务人员,加大司乘人员的工作强度。手动电子报站一般有司机或者乘务员控制,经常出现错报,误报的情况 。城市公共交通是市民出行的主要交通工具之一。提供舒适,安全、便捷的4乘车环

11、境,对于公交企业来说,不仅是应尽的责任,亦是不断追求的目标 。1.3 设计的主要目标任务本课题要求设计以公交车自动报站系统,以满足以下要求:1、具备 GPS 定位模块,自动记录公交车行进速度,位置,时间等信息;2、通过 GSM 或其他无线方式发送本车相关信息;3、到站和离站自动语音提醒;4、公交站点自动显示该路车还有多少时间到达;5、具有人机交互界面完成上述信息设定和查询。目标是:熟悉单片机系统和了解 GPS 定位系统。52 方案本设计采用的方案是基于 AT89C51 单片机、GPS9543LP 全球定位模块和 ISD1700S 语音芯片的自动报站系统。 GPS 接收模块接受 GPS 卫星发送

12、的定位数据,经简单的字符串操作可分别找出 GPS 信号中的经度、纬度以及相应的格林威治时间等定位信息。然后,将这些经纬度信息通过串口发送给单片机处理。每颗 GPS 卫星时刻发布其位置和时间数据信号,用户接收机测量每颗卫星信号到接收机的时间延迟,根据信号传输的速度计算出接收机到不同卫星的距离。同时接收到至少 4 颗卫星数据时,就可以算出三维坐标、速度和时间。整体思路是:通过按键电路和 GPS 定位系统输入地段信息,直接输出数字信号给单片机 AT89C51 进行处理,在 LCD 液晶频上显示当前站名信息。同时通过语音芯片输出放大后的语音信息。其结构框图如下图所示:GPS 模块音频输出 音频放大AT

13、89C51扬声器LCD按键电路63 系统器件选型本系统所用器件有:AT89C51、GPS9543LP、ISD1700S 等。3.1 AT89C51 的简介AT89C 单片机的结构框图如图 3 1 所示。它主要由下面几个部分组成:1 个 8 位中央处理单元(CPU) 、片内 Flash 存储器、片内 RAM、4 个 8 位的双向可寻址 I/O 口、1 个全双工 UART(通用异步接收发送器)的串行接口、2 个16 位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。在 AT89C 单片机结构中,最显著的特点是内部含有 Flash 存储器,而在其他方面的结构,则和 Inte

14、r 公司的 8051 的结构没有太大的区别。图 31 AT89C 单片机的结构框图3.1.1 主要性能CPU中断控制振荡器片内Flash存储器总线控制片内RAM4I/O 端口ETC定时器 1定时器 0串行端口外部中断P0 P2 P1 P3地址/数据TXD RXD计数器输入71. 与 MCS-51 兼容 2. 4K 字节可编程闪烁存储器 寿命:1000 次写/擦循环数据保留时间:10 年3. 全静态工作:0Hz-24Hz4. 三级程序存储器锁定5. 128*8 位内部 RAM6. 32 可编程 I/O 线7. 两个 16 位定时器/计数器8. 6 个中断源 9. 可编程串行通道10. 片内振荡器

15、和时钟电路另外,AT89C51 是用静态逻辑来设计的,其工作频率可下降到 0Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode) 。在空闲方式中,CPU 停止工作,而 RAM、定时器/ 计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结 ”,使一切功能都暂停,故只保存片内 RAM 中的内容,直到下一个硬件复位为止。3.1.2 引脚功能说明AT89C51 引脚图如图 3 2 所示。VCC:供电电压。VSS:接地。8P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8 个 TTL

16、门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,

17、当 P2 口被写“1” 时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址 “1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口写入“1” 后,它们被内部上拉为高电平,并用作输入。作为输入,由

18、于外部下拉为低电平,P3 口将输出电流( ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)9P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部

19、存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN

20、有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出 。63.2 GPS9543LP 定位模块目前市场上 GPS 模块较多,由于系统对 GPS 模块无特殊精度要求,出于成本考虑,选用价格相对便宜的 L

21、eadtekGPS9543LP 定位模块。其定位精度10m,能满足设计要求。LeadtekGPS9543LP 提供一个双列 20 针的对外接口。它有两组全双工的异步串行接口,便于和单片机通讯。在加电以后开始运行,其基本运行过程如下:(1)自检 加电后开始自检,通过输出通道报告自检结果,其过程将坚持10RAM、Flash、接收器、实时时钟和晶体振荡器。(2)初始化 自检完毕后,将开始卫星探测和跟踪过程。整个探测过程是完全自动的。正常情况下,LeadtekGPS 9543LP 将用 45s 的时间获取定位信息(在已知星历表时只需 8s) ,之后通过输出通道传送有效地位置、速度和时间信息。 (3)导

22、航探测完毕后,LeadtekGPS9543LP 通过输出通道发送有效地导航信息,包括经纬度、海拔、速度、日期/时间、误差估计、卫星和接收机状态。(4)卫星数据收集运行时,LeadtekGPS9543LP 将自动更新卫星轨道数据。LeadtekGPS9543LP 采用美国国家海洋电子协会制定的 NMEA0183 通信标准格式。其输出数据采用 ASC2 码,内容包含纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息。一条$GPGGA 输出语句包括 17 个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,

23、高度单位,差分 GPS 数据期限,差分参考基站标号,校验和结束标记(用回车符和换行符) ,分别用 14 个逗号分隔。如单片机收到以下定位信息:$GPGGA,114641,3002.3232,N,12206.1157,E ,1,05,12.9,53.2,M,11.6,M ,*4A表示使用“$GPGGA”格式语句,世界(格林威治)时间为 11 时 46 分 41秒,位置在北纬 30 度 2.3232 分,东经 122 度 6.1157 分,定位有效,接收到 5颗卫星,水平精度 12.9m,天线离海平面高度 53.2m,所在地离地平面高度11.6m,校验和为 4AH。从 GPS 版接受的数据流是文本

24、字符串,可根据 GPS 输出数据 NMEA0183 通信标准格式所定义的各种记录语句的结构组成特点,编制程序解析其中有用的信息。由于帧内各种数据段由逗号分隔,因此在处理缓存数据时一般通过搜寻 ASC2 码“$”判断是否是帧头。在识别帧头的类别(GPGGA)后,通过对所经逗号个数判断当前正在处理的是哪一种定位导航参数,并作出相应处理。113.3 ISD1700S 语音芯片 ISD1700S 系列芯片是华邦公司新推出的单片优质语音录放电路,是ISD1400S 与 ISD2500S 的升级产品。该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示(vAlert),双运作模式(独立 /无线信

25、号接收端 sbit P24=P24; /控制快进 sbit P25=P25; /控制播放 sbit led=P10; /到站指示灯 sbit re=P30; /GPS 发射端 sbit reset=P34; /语音芯片复位 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(unsi

26、gned 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 发送 22 re=0; TMOD=0x02; /计数器工作模式:方式 2 自动再装入的 8 位计数器 EA=1; /允许全部中断 TH0=0xf3; /高 8 位计数器作为初值寄存器 TL0=0xf3; /低 8 位计数器初值 ET0=1; /允许计数器 0 的中断响应 main() LCD_

27、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,如果是则循环直到

28、是 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; 23case 1:p=dis2; break; case 2:p=dis3; break; case 3:p=dis4; break; case 4:p=dis5; break; ; GotoXY(6,1); /数据指针定位 Print(p); /显示

29、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 /判断读写状态使能标志 LcdEn=0

30、; 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 DisplayMod

31、e) LCD_Write(LCD_COMMAND, 0x08|DisplayMode); 24 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 位数据端口,162 行显示,5*7 点阵 LCD_Write(LCD_COMMAND,0x38); LCD_

32、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,0x80|x); /第一行 设置数据指针地址 if(y=1) LCD_Write(LCD_COMMAND,0x80|(x-0x

33、40); 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) 25case 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;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报