基于单片机GPS定位系统的设计_第1页
基于单片机GPS定位系统的设计_第2页
基于单片机GPS定位系统的设计_第3页
基于单片机GPS定位系统的设计_第4页
基于单片机GPS定位系统的设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要GPS的使用现在已经非常普及,大到航空航海系统,小到个人移动设备,都有着它的身影。随着GPS的民用化与本钱的降低,已经走入了人们的日常生活中,很多、PDA等手持设备都配备了GPS功能。就功能而言,GPS就是在地球经纬座标系下对被测对象的方位进行测定,同时可以提供较高精度与实时的测定数据。对于基于单片机的便携式设备,如果要获取持有者的位置信息,那么GPS是最好的解决方案。本文主要研究GPS的定位原理与技术,单片机的编程及其应用,液晶屏的功能及其实现方法,语音系统及其功能应用。制作了一套设计方案,以软、硬件相结合的方式完成整个GPS数据接收和显示以及播音的过程。本课题采用GPS模块GR-87、单片机AT89S52、液晶显示屏LCD1602、语音芯片ISD1730设计一款可以实时显示当前所在位置的纬度、经度等信息,并且可以语音报告当前经纬度,并且设定了至少5个地点地址,在这5个地址的范围内可以语音报告所在地址,并且显示相应的代码,通过设计,编程,调试,该定位语音系统工作正常,可以满足根本的课题要求。关键字:单片机;语音芯片;GPS定位AbstractTheuseofGPSnowverypopular,aviationandnavigationsystem,smalltopersonalmobileequipment,allhasthefigureofit.WithGPSandcostreducethe",hascomeintoPeople'sDailylife,alotofcellphones,PDA,etchand-helddevicesareequippedwithGPSfunction.Saysimply,GPSwillfunctionistheearthcoordinateofthelongitudeoftheorientationofthetestedobjectwere,atthesametimecanprovideahighqualityandreal-timedatameasured.Basedonthesinglechipforportabledevices,ifyouwanttogettheholder'slocationinformation,theGPSisthebestsolution.ThispaperstudiestheprincipleandtechnologyofGPSpositioning,microcontrollerprogramminganditsapplication,thefunctionoftheLCDpanelanditsrealizationmethods,voicesystemanditsfunctionapplications.ProducedadesignschemeofsoftwareandhardwareinthewayofthecombinationofthecompletethewholeGPSdatareceivinganddisplay,andtheprocessofthebroadcast.ThissubjectadoptsGPSmoduleGR-87,monolithicintegratedcircuitAT89S52,LCDdisplayscreenLCD1602,voicechipISD1730designacanreal-timedisplaycurrentlocationoflatitude,longitudeandotherinformation,andcanreportthespeechcoordinates,andsetatleastfivesiteaddress,inthefiveaddresswithinthescopeofthespeechinaddresscanreport,andtoshowthecorrespondingcode,throughthedesign,programming,commissioning,thepositioningphoneticsystemworkingproperly,cansatisfythebasicsubjectrequirements.Keyword:Singlechipmicrocomputer;Voicechip;GPSpositioning目录1.引言12.方案选择22.1.方案一22.2.方案二23.硬件设计43.1.系统总体结构图43.2.单片机引脚连接电路43.3.LCD显示电路63.4.ISD语音电路73.5.LM7805稳压电路84.软件设计104.1.程序流程图104.2.单片机串行通信104.3.GPS接收语句设计114.4.LCD1602流程图134.5.ISD1730流程图155.系统调试165.1.单片机下载口调试165.2.LCD1602调试165.3.GPS定位坐标调试175.4.ISD1730语音录入调试185.5.LM7805供电局部调试20谢辞21参考文献22附录23附录1-原理图23附录2-PCB图24附录3-程序及注释25引言GPS技术在军事、通讯、气象、勘探、导航、遥感、大地测量、地球动力以及天文等众多学科领域得到极其广泛的应用,推动了科学技术的迅猛开展,也丰富了人类的科学文化生活。现在,GPS的外型设计已经转向便携式开展,逐步踏入寻常百姓的生活中。所以,对GPS的研究具有十分重要的意义。全球定位系统〔GlobalPositioningSystem简称GPS〕是美国第二代军用导航系统,可实现全球范围内的实时导航和定位。GPS由太空卫星、地面控制系统、用户设备三个局部组成。太空卫星共有27颗,24颗运行,3颗备用。24颗可操作的工作卫星以55°的倾角分布在地球上空20~200KM的6个轨道面上。这些卫星轨道上的分布状态使地球上的任何位置在任意时候都可以同时收到至少6颗卫星的定位信息,这些卫星那么不断地给全球用户发送位置和时间的播送数据。地面控制系统主要作用有:根据监控系统对GPS的观测数据计算出卫星的星历和卫星钟的改正参数等,并将这些数据注入到卫星中去;对卫星进行控制,对卫星进行发布指令;接收卫星信号,监测卫星状态等。用户设备用于接收GPS卫星所发出的信号,利用这些信号进行导航定位等工作。GPS系统的根本定位原理是:每颗GPS卫星时刻发布其位置和时间数据信号,用户接收机可以测量每颗卫星信号到接收机的时间延迟,根据信号传输的速度可以计算出接收机到不同卫星的距离。同时收集至少4颗卫星的数据时,就可以算出三维坐标、速度和时间。由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,近年来在国内外得到了广泛的应用,在各个领域发挥了极大的作用,已成为了信息时代不可以或缺的一局部。本文的主要目的是在GPS和单片机的理论和知识上,选用Atmel公司的AT89S52提取GPS模块的接收数据并由1602液晶显示接收数据。在此设计过程中,主要熟悉GR-87GPS模块各性能指标,结合单片机串行通信知识能实现对GPS接收到的卫星信息进行提取,而后在1602液晶显示平台上选择性的显示数据并且利用语音芯片ISD1730进行播报音。方案选择方案一主要芯片器件:GPS,GPS-OEM板;单片机,AT89S54;语音芯片,ISD1730;键盘模块;液晶LCD1602;电平转换MAX232;外置ROM等。GPSOEMGPSOEM键盘模块AT89S54MAX232LCD1602外置ROMISD1730图2.1硬件结构图OEM模块通过电平转换MAX232与AT89S54进行串行通信,其中GPS传入单片机的为GPRMC格式的语句,需要在单片机中进行数据拆分等操作。将取得的GPS数据发送到单片机中进行处理,通过键盘模块的按键控制,单片机判断后进行操作,或将数据存储到外置rom中,或将已得的经纬度通过ISD1730语音模块播报出,再次期间,LCD1602始终显示当前位置的经纬度。方案一特点:OEM板军用板,精确度高,是集成模块,易于携带。键盘模块按键多,使用功能强大,可以实现多种功能。AT89S54内存大,方便使用大程序。外置ROM,便于存储数据以及调用。GPS-OEM板需经过电平转化MAX232才可与单片机通信。并且OEM本钱高,性价比一般。AT89S54非常用芯片,不易获取。使用外置ROM需要占用至少8个数据口,如图1所示,需要对某个数据口进行分时复用。加大了电路复杂性。整个电路硬件多,布局难。方案二主要芯片器件:GPS,GR-87;单片机,AT89S52;语音芯片,ISD1730;3个按键;液晶LCD1602等GR-87GR-87AT89S52摁键LCD1602ISD1730图2.2硬件结构图GR-87模块与单片机AT89S52直接可以进行串行通信,其中GPS传入单片机的为GPRMC格式的语句,需要在单片机中进行数据拆分等操作。将取得的GPS数据发送到单片机中进行处理,通过按键控制,单片机判断后进行操作,例如将已得的经纬度通过ISD1730语音模块播报出,并在特殊的经纬度范围内播报地址信息,在此期间,LCD1602始终显示当前位置的经纬度。方案二特点:电路硬件少,结构简单易懂。GR-87本钱低,性价比高。AT89S52流行,内存8K足够使用。数据口刚好够用。结构简单,硬件及软件功能有一定的局限性。GR-87以及接线不方便携带。最终选择了方案二,理由如下:GPS选择GR-87,它可以满足课题要求,并且其性价比高,而且不需要电平转换。课题按键功能的实现不需要键盘模块,只需4~6个按键即可。AT89S52内存足够用,不用再定做AT89S54虽然缺少了外置ROM,但减少了分时复用的麻烦。方案二的I/O口分配合理。硬件设计系统总体结构图GR-87GR-87 TXD RXDLCD1602数据口ISD1730控制口按键单片机P1.2、P1.3 P0 AT89S52RXDTXD P2.x图3.1系统总体结构图系统总结构图如图3.1所示,其中,单片机P1.0~P1.3口进行按键控制,GR87与单片机串行通信,单片机的TXD连接GR-87的RXD1,GR-87的RXD2口闲置。LCD经上拉电阻与单片机P0口连接,ISD1730相关控制口与P3口中的局部I/O口相连。系统由统一的电源5V供电。单片机引脚连接电路图3.2单片机引脚电路图3.2单片机引脚电路图图3.3最小系统电路AT89S52简介AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。如图3.2、3.3所示,本次课题中,P0口作为标准I/O口进行数据输出端,传入液晶;以P1^0到P1^4的标准I/O口功能进行按键控制,P1^5到P1^7作为下载器连接端口使用,利用P3^0、P3^1的串行数据传输功能与GPS进行数据通信,P3^4作为时钟信号接入语音芯片的时钟端,P2^0到P2^2作为语音芯片的控制端口,P2^5到P2^7作为液晶的控制端口。其他所用端口为:XTAL1、XTAL2、VCC、VPP、GND、RESET。GPS模块GR-87简介HOLUXGR-87是一个高效能、低耗电的智慧型卫星接收模组或称做卫星接收引擎,他采用美国瑟孚SiRFstarIII公司所设计的第三代卫星定位接收晶片,是一个完整的卫星定位接收器具备全方位功能,能满足专业定位的严格要求与个人消费需求。特色:采用SiRF第三代高效能晶片高灵敏度、低耗电量晶片STARIII,内建ARM7TDMICPU可符合客制需求。具备快速定位及追踪20颗卫星的能力。体积超小,仅25.4×25×7公\u91d0。晶片内建200,000个卫星追踪运算器,大幅提高搜寻及运算卫星讯号能力。内建RTCMSC-104DGPS和WASS/EGNOS解调器。低耗电量,具备有省电模式〔Trickle-Power〕功能,以及在设定的时间才启动的定时定位〔Push-to-Fix〕功能。支援NMEA-0183v2.2版本规格输出。GPS VCCGPS VCCGR-87 RXD1 TXD GNDVCCTXD AT89S52RXDGNDVCCTXD AT89S52RXDGND图3.4GPS模块GR-87与单片机连接图天线如图3.4所示结构图,GPS模块只有4个端口与单片机连接,其中VCC、GND为供电局部,TXD、RXD为串行通信局部。由于GR-87属于独立模块,所以在系统原理图、PCB中未参加其封装,而是采用从PCB中的单片机串行口以及VCC、GND分别引出4条线,采用引线的方式与GPS相连接。LCD显示电路LCD1602简介工业字符型液晶,能够同时显示16x02即32个字符。〔16列2行〕1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有假设干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。其中RS为存放器选择端,高位时是数据存放器,低位时是指令存放器;RW时读写信号线,高位时是读,低位时是写;E为使能控制端。1602采用标准的16脚接口,其中:第1脚:VSS为电源。第2脚:VDD接5V电源正极第3脚:V0为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高〔比照度过高时会产生“鬼影〞,使用时可以通过一个10K的电位器调整比照度〕。第4脚:RS为存放器选择,高电平1时选择数据存放器、低电平0时选择指令存放器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。LCD引脚连接介绍显示电路如图3.2右侧所示,P0^0~P0^7经过上拉电阻10K*8欧姆与LCD的数据口DB0~DB7相连;RS/RW/EN由单片机的P2^7~P2^5控制;比照度控制口VO经过测试后,经5K定值电阻与VCC相连刚好适宜;背光灯控制BGVCC经51欧姆的电阻与VCC连接,BGGND连接地。这种接法缺陷是比照度不可调,但在稳定的5V供电的情况下,连接定置电阻经过测试也是行的通的。ISD语音电路ISD1730简介ISD1700系列录放芯片是一种高集成度,高性能的芯片。它可以多段录音,采样率可在4K至12K间调节,供电范围可以在2.4V至5.5V之间。ISD1700系列录放芯片可工作于独立按键模式和SPI控制模式。芯片内有存储管理系统来管理多段语音,这样在独立按键模式下也能进行多段语音录放。此芯片内有振荡器,可通过外部电阻来调节其振荡频率;还有带自动增益控制〔AGC〕的话筒运放,模拟线路输入,抗锯齿滤波器,多级存储阵列,平滑滤波器,音量控制,直接驱动喇叭的PWM输出与接外部功放的电流/电压输出。ISD1700还有新录音提示功能,当有新的录音后,LED回每几秒闪一次来提示用户有新的录音。此外还有4种音效来提示用户的操作结果,如开始录音、停止录音、擦除、下一曲和全部擦除等。录音数据存储在芯片的FLASH内,没有经过任何压缩,所以有较好的音质和断电存储。芯片有两路独立的语音信号输入通道,话筒输入与模拟信号输入。在独立按键模式下,当某功能操作完成后芯片会自动进入掉电模式来降低功耗。在SPI模式下,用户可对芯片进行更多功能操作。如对任意存储地址进行录放,对模拟通道配置存放器〔AnalogPathConfigurationregister,APC〕进行读写等。如图6所示,电阻R3会影响采样率,采样率与它的关系见以下表。采样率12KHz8KHz6.4KHz5.3KHz4KHzRosc53KΩ80KΩ100KΩ120KΩ160KΩ表3.1采样率与电阻关系表3.1采样率与电阻关系图3.5语音芯片ISD1730电路图3.5语音芯片ISD1730电路如图3.5所示,图3.5右侧的MIC电路局部经过实践测试,音质不好,所以弃用,因为所选芯片为ISD1730,内存足够,所以改用找地址的电脑信号录入方式进行录音,具体的录音地址见下文的系统调试局部;MISO、MOSI、SS与单片机的P2^2~P2^0连接;CLK与单片机的P2^4连接;ROSC与80K电阻连接后接地,采样频率为8KHZ;VOL与一个按键连接后接地,可调音量;AGC端口启用,增益自动可调;SP-、SP+与喇叭直接相连,不用经过功率放大等,经过查找资料,本课题使用的,5欧姆、0.8w的喇叭可以被带动,但是功率大一些的喇叭必须要经过功率放大电路才可以带动;DP2为LED指示灯,在录放音的时候会闪烁。LM7805稳压电路图3.6稳压电路图3.6稳压电路如图7所示,其中Pd10为输入口,Pd11为输出口;LM7805输出稳定在5V,输入端要求为5V~18V或24V,本次测试中,采用2节锂电池〔型号18650〕,约7.4V输入。其他局部参考LM7805的标准电路局部。软件设计程序流程图开始开始液晶初始化单片机初始化取得数据P11是否为0?P12是否为0?液晶显示语音报地点语音报坐标NNYY中断效劳程序判断GPRMC语句接收数据并存储中断结束图4.1主程序流程图图4.2中断程序流程图如图4.2所示,在该系统中,接收GPS的是NAEA0183协议输出的GPRMC语句,在中断程序中判断并且存储相关数据,在如图4.1所示,用函数提取出中断中存储的数据并且显示完成相应的功能,具体步骤见下面的介绍。单片机串行通信串行端口模式1工作介绍在模式1时,串行端口经由TXD引脚负责发送及通过RXD引脚接收10位的数据,其中包括1个起始位、8个数据位和1个停止位。由于发送和接收是由不同引脚负责,故可同时进行发送和接收的动作。起始位(低电位)和停止位(高电位)是串行端口在发送数据时自动加上去的,当在接收状态下,接收到的停止位会自动存入SCON存放器的RB8位中,而发送及接收波特率可用软件设定计时/计数器1,说明如下。①模式1的发送执行写入SBUF指令后,产生一个WRITETOSBUF的脉冲,此时把数据送入SBUF,并激活TX控制方块。在下一个机械周期时,SEND自动降为0,此时DATA己自动为0,故经由TXD引脚送出一个“0〞的位,这就是所谓的起始位。然后数据位开始由TXD引脚依LSB-MSB顺序向右移出,直到8位数据全部送出后,CPU会自动设定中断标志TI=1,产生串行端口中断请求,再自动经由TXD引脚送出一个“1〞的位后,SEND升为高电位,DATA引脚为0,停止发送动作,此时TXD引脚维持高电位。②模式1的接收当要接收数据时,需将SCON存放器的REN位设定为1,每当RXD引脚上检测到负缘转态信号后就会激活串行端口的接收动作。在接到正确的起始位后(低电位),开始依LSB-MSB顺序接收数据位,直到SCON中的RI=0、SM2=0或RI=0接收到的停止位为l时,才自动把8位数据送入SBUF内。接着把停止位放入RB8中,然后设定接收中断标志RI=l,产生串行端口中断请求。经过-个位时间后,不管上述条件是否成立,RX控制方块均会重新开始检测RXD引脚有无负缘转态信号,以准备接收下一批数据。模式1的波特率串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常令计时/计数器1工作于模式2(自动再加载模式)。在此模式下,计算波特率的公式为:波特率=2SMOD*fosc/(32*12*(256-TH1))根据以上式子,带入fosc=11.059MHz,TH1=FAH,可得波特率为4800bpsGPS接收语句设计GPRMC输入语句如下:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>GPRMC格式如下:$帧头标志符GPRMCGPS推荐的最短数据<0>GPRMC<1>UTC24小时制标准时间,格式为.hhmmss.sss#<2>信号接收状态:A为数据OK;V为警告<3>纬度值,格式为.ddmm.mmmm<4>说明南北半球,N为北半球,S为南半球<5>经度值,格式为.dddmm.mmmm<6>说明东西经,E为东经、W为西经<7>速度,此处为0<8>方位角,范围0.~359.9.<9>日月年,格式为.日日/月月/年年#<10>磁偏角:0.00.~180.。此处不输出<11>地磁变化方向:向西偏差为E或W。此处不输出<12>模式指示(仅NMEA01833.00版本输出): A=自主定位,D=差分,E=估算,N=数据无效 *校验和隔离符号<13>校验和<CR><LF>帧尾结束符中断程序中涉及GRPMC格式的拆分并且存储,在此简单介绍。voidT_R()interrupt4{ while(RI==0); //RI==1表示接收好一帧数据 if(SBUF=='$') //判断数据起点 { begin=1; //开始接收 count_1=0; } if(begin==1) //开始接收GPRMC数据 {if(SBUF==',')//‘,’为下一个数据的标志{count_1++;count_2=0;} elseif(SBUF=='*')//‘*’结束的标志 {begin=0;count_1=0;count_2=0; }else{if(count_1==0){if(count_2<6) //接收到更长的数据时,会越界message[count_2++]=SBUF;//message[0]='$' }if((message[5]=='C')&&(message[4]=='M'))//判断GPRMC格式{switch(count_1){case2:status[count_2++]=SBUF-48;break; //接收状态case3:if(count_2<9)latitude[count_2++]=SBUF-48;break;//接收纬度case4:N_S[count_2++]=SBUF-48;break; //接受N或Scase5:if(count_2<10)longitude[count_2++]=SBUF-48;break;//接收经度case6:E_W[count_2++]=SBUF-48;break; //接收E或Wdefault:break;}}} } RI=0;//串口接收中断标志必须软件清零}unsignedcharcount_1=0; //数据类型累加变量unsignedcharcount_2=0; //数组下标累加变量设计思路:下面的将介绍完整的一个接收语句,判断语句,拆分语句,存储有关数据的过程。首先要接到一个语句的数据,如果一个语句的起点字符是“$〞,将变量begin置1,并且将数据类型累加变量count_1置0;在count_1=0时,当接受的数据既不是结束位“*〞,或者类型分隔位“,〞时,将语句首的格式名称存储到message数组中,为了防止其它语句的干扰再次判断接收语句是否为GPRMC格式,再次用message数组中的,5位,6位进行条件语句判断,判断为GPRMC后,再根据count_1的值进行相关数据存储,每次的不同的GPS信息间都以“,〞隔开,本次接收中只接收<2>信号接收状态:A为数据OK;V为警告;<3>纬度值,格式为.ddmm.mmmm;<4>说明南北半球,N为北半球,S为南半球;<5>经度值,格式为.ddmm.mmmm;<6>说明东西经,E为东经、W为西经的信息,例如接收经度值以及经度类型时〔E或S〕,先CASE5,接收的经度格式为dddmm.mmmm共10位,根据数组下标累加变量count_2的值由0到9进行存储,刚好将经度〔包括小数点〕存入longitude数组中,而后,再次进入中断,按照上述过程在程序中判断是否接到“,〞符号,如果接到那么将count_2置0,count_1加1,再次进行语句类型判断时,到达了CASE6,将东经或西经存到E_W数组中,然后再次count_2置0,count_1加1进行下一条语句判断。按此顺序即可将经纬度信息以及值存到单片机的数组中。另外GPS传入的格式数据是ASCII码输入,所以,每次存储值时应该都减去48。LCD1602流程图本次GPS定位系统中采用的液晶是1602,可以显示8行汉字,每行可以显示10个。对于该,液晶,必须要编写液晶驱动程序。图10为液晶的程序流程图。1602通过D0~D7的8位数据端传输数据和指令。显示模式设置:(初始化)00110000[0x38]设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1&光标加1),N=0(读或写一个字符后地址指针减1&光标减1),S=1且N=1(当写一个字符后,整屏显示左移)s=0当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。图4.3液晶显示流程图该程序主要完成的是液晶的驱动〔驱动中主要的是液晶的读忙函数、读写数据函数、清屏函数、初始化函数〕和系统开机的显示,系统工作时的实时状态的显示,各个显示界面的切换等。如下为液晶的初始化函数。voidTS1602_INIT(void){ RS=0; RW=0; write_com(0x38);//显示模式设置00111000设置16*2显示5*7点阵8位数据接口 write_com(0x0C);//设置液晶光标不显示 write_com(0x06);////显示光标移动位置 write_com(0x01);//清屏 write_com(0x80);//光标的位置}ISD1730流程图由于ISD1730只是放音作用,不涉及录入等功能,所以流程图只是放音局部。放数字音和放位置音的过程类似,所以都可以用一个流程图表示。开始开始有无MISO信号?在给定地址放音,传输回MOSI信号。结束NY图4.3语音芯片工作流程图放音的一段程序如下:ISD1730_Spio(0x00);//发送数据字节1ISD1730_Spio(caToneAdd1[n]);//发送数据字节2,放音起始地址低8位<S7:S0>ISD1730_Spio(0x00); //发送数据字节3,放音起邕地址高3位<S10:S8>,ISD1730不用ISD1730_Spio(caToneAdd1[n+1]);//发送数据字节4,放音结束地址低8位<E7:E0>ISD1730_Spio(0x00); //发送数据字节5,放音结束地址低8位<E10:E8>,ISD1730不用ISD1730_Spio(0x00);//发送数据字节6通过给定的存有每个需要读出数据的地址的数组,其中每两个为一个数据的读音起始终止地址,在程序中选调初始地址,即可读出相应地址的数据。系统调试单片机下载口调试图5.1下载口原理图图5.1下载口原理图如图5.1所示,下载器连接口,所用引脚为P1^5~P1^7,初步下载时,显示“chiperror…..〞内容,检查引脚连接以及电平电压,皆正常。最后检测单片机是否起振,检查原理图以及PCB图,将起振电容由22uf增大到30uf,同时缩小电容与晶振的距离。再次下载程序,显示正常。所以,晶振,单片机,起振电容三者应距离在一定范围内,越近越好。LCD1602调试图5.2LCD1602原理图图5.2LCD1602原理图如图5.2所示,LCD1602引脚RS,RW,E由单片机控制,数据口DB0~DB7经上拉电阻连接单片机的P0口,背光电源BGVCC经小电阻连接5V,BGGND连接地。主电源VCC开始的设计时,经滑变接5V,上电后,发现液晶只有背光,后来改为主电源VCC直接与5V相连,工作正常。写指令,数据时,开始判断错了地址行,认为第一行地址0X80~0X8f,第二行地址0Xb0~0Xbf,经过测试,发现第二行的数据显示有问题,上网查资料比照确认后,确定第二行地址有问题,改为0Xc0~0Xcf后显示正常。所以,找资料应该找多家资料,找一份资料难免会出现纰漏。LCD1602主电源供电要供5V,没必要接滑动变阻器,调节比照度引脚可以连接滑变。GPS定位坐标调试图5.3GPS模块GR-87实物图图5.3GPS模块GR-87实物图如图5.3所示,系统中采用的GPS芯片GR-87,台湾HOLUX-GPS模组,另外有独立天线。图中接线颜色,按照自右向左顺序为:红、绿、蓝、黑。图中文字,红线:电源-VCC;绿线:数据发送端-TXA;蓝线:数据接收端-RXA;黑线:地线-GND。供电电压3.5V~5.5V,其中可以将串行口与单片机的串行口直接相连。科技楼科技楼正北观测点1观测点2观测点3观测点4图5.4地点模拟图调试过程以科技楼为例,如图5.4所示,科技楼方位正门朝向东南方,在1、2、3、4点分别测出经纬度,确定最大,最小,经纬度,然后程序中用判断语句确定科技楼,然后返回一个常数标志。东经的计算east=longitude[0]*100+longitude[1]*10+longitude[2]+longitude[3]*0.1+longitude[4]*0.01+longitude[6]*0.001+longitude[7]*0.0001+longitude[8]*0.00001;北纬的计算north=latitude[0]*10+latitude[1]+latitude[2]*0.1+latitude[3]*0.01+latitude[5]*0.001+latitude[6]*0.0001+latitude[7]*0.00001;其中,longitude[],latitude[]数组中的数据来自中断程序中的GR-87传入的数据。传入的经纬度格式如下:纬度值,格式为.ddmm.mmmm经度值,格式为.dddmm.mmmm其中,纬度dd为十位,个位,mm.mmmm分别为小数点后1~6位,同理可得经度的位判断。判断语句: if(east>=110.24825&&east<=110.24936) //科技楼 { if(north>=25.19037&&north<=25.19167) return1; }在主程序中,利用包含以上判断语句的函数,确定所在位置,随后播音,或者其他操作。实际调试中,由于GR-87的灵敏度不高,导致测试同一地点的经纬度有小数点第5位的差异,所以选择大范围的定位科技楼,同样,定位4、5、6教以及其它地方时也采用了同样的方式。另外,有些地方,由于GR-87的灵敏度低,直接导致,移动中数据的停滞,在大多数地方,可以实时更新数据。为了减少不必要的测量误差,应把测试范围扩大,以便减小测试中的误差。ISD1730语音录入调试有两种方式录入:采用麦克风读入方式采用电脑读书软件读入方式。语音数据名称0123456789起始地址0x140x1c0x260x300x360x390x460x500x580x61终止地址0x180x1f0x280x350x380x440x490x530x600x64由于个人的声音质量差,以及杂音等种种问题,选择了第二种方式读入,它的缺点是,不好找到每个信息的地址,由于本系统的语音电路中不具备从电脑存入数据的能力,所以,将语音芯片拿下,从本班同学劳家权的语音系统中完成调试。调试过程如下:利用电脑中的读书软件读入信息,其中包括,0、1、2、3、4、5、6、7、8、9、十、百、度、点、教、东经、北纬、科技楼、实训楼等信息。录入完成后,逐步寻找地址,按顺序,利用播放函数中的起始结束地址的可变性,逐步从0x10~0xff中找到以上各个数字的地址,地址表如下:语音数据名称十百度点教东经北纬科技楼实训楼起始地址0x690x790x850xab0x740x970xa10xb20xc0终止地址0x700x800x890xae0x770x9b0xa50xba0xc9表2语音数据对应地址表2语音数据对应地址寻址的播放函数如下:voidISD1730_SetPlay(charn){//SPI初始条件DISENISD1730_SS;ISD1730_SCLK_H;ISD1730_MOSI_L;ENISD1730_SS; //发送命令ISD1730_Spio(SET_PLAY); //发送命令字节ISD1730_Spio(0x00);//发送数据字节1ISD1730_Spio(caToneAdd1[n]);//发送数据字节2,放音起始地址低8位<S7:S0>ISD1730_Spio(0x00); //发送数据字节3,放音起邕地址高3位<S10:S8>ISD1730_Spio(caToneAdd1[n+1]);//发送数据字节4,放音结束地址低8位<E7:E0>ISD1730_Spio(0x00); //发送数据字节5,放音结束地址低8位<E10:E8>ISD1730_Spio(0x00);//发送数据字节6DISENISD1730_SS;}例如:将caToneAdd1[n]换为0x14,将caToneAdd1[n+1]换为0x18时,即可读出1的声音,以后的信息也都同理读出。在主函数以及语音函数的关联调试过程中,需要延一定的时长,因为函数中的句子是按照顺序以及同样的时间间隔进行的,调试必须要加上延时,延时长了,听起来不连贯,延时短了,会有信息丧失,所以,本次调试采用大范围固定地址的方式进行的,另外,在寻址时应当保证数字的地址间距大致相同,以便延时是固定的,并且可以用于不同经纬度的读出。语音主要是寻址,寻址后延时确定好即可。LM7805供电局部调试初步设计是用9V的常用电池作为电源供电输出5V后供应系统使用,在初步调试过程中,发现,9V的电池接入系统中,仅仅可以供电3~5分钟,而后缺乏电力导致液晶无法显示,背光暗淡。因此,决定买锂电池,所用的锂电池型号18650。图5.518650实物图图5.518650实物图18650型锂电池简介:单节标称电压一般为:3.7V充电电压一般为:4.20V最小放电终止电压一般为:2.75V最大充电终止电压:4.20V直径:18±0.2mm高度:65±2.0mm容量:1000mAh以上〔目前最高的是松下的3100mAh〕调试中,采用两节锂电池,7.4V作为LM7805电路的输入,由于LM7805的规定输入为5V~18V,所以可以正常输出,锂电池的电量远远大于常用的9V电池,所以,经过几次外出调试,可以非常好的给整个系统供电。GPS系统需要外出调试,经常背着笔记本很麻烦,所以要主动设计电源供电。谢辞从论文选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。那种感觉就宛如在一场盛大的颁奖晚会上,我在晚会现场看着其他人一个接着一个上台领奖,自己却始终未能被念到名字,经过了很长很长的时间后,终于有位嘉宾高喊我的大名,这时我忘记了先前漫长的无聊的等待时间,欣喜万分地走向舞台,然后迫不及待地开始抒发自己的心情,发表自己的感想。这篇毕业论文的就是我的舞台,以下的言语便是有点成就感后在舞台上发表的发自肺腑的诚挚谢意与感想:我要感谢,非常感谢我的导师蒋艳红老师。她为人随和热情,治学严谨细心。在闲聊中她总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面她也总会以“专业标准〞严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,蒋老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨、热忱鼓励。正是蒋老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢蒋老师。我要感谢,感谢我的专业同学们,尤其是陈洪斌,劳家权,黄柏华,黄绍昇同学,在进行系统板制作,以及调试过程中,他们给了我非常大的帮助,在第一次做实验板的过程中遇到了非常多的困难和问题,但在他们的帮助下一一化解了,所以在做第二块正式的系统板的时候,综合了他们的意见以及以前的问题,较为成功的做出了现在的这个板,感谢他们的帮助,如果没有他们的悉心帮助,我不可能这样较为顺利地做出板。参考文献张勇,姬志飞,聂萍等.基于单片机的GPS接收和显示的设计[J].环球市场信息导报,2023,(9):1~3.董作民,姜木霖,陈晓青等.MCS一51单片机与GPS—OEM板数据通讯的研究与应用[J].湖北汽车工业学院学报,2023,14(3):1~5.李浩,邱超凡.基于GPS模块与单片机的语音播报系统设计[J].电子产品世界,2023,18(11):1~4.黄少锋,张尊泉,邓斌等.基于单片机采集与显示GPS定位信息系统的设计[J].空军雷达学院学报,2007,21(1):1~3赵志礼,孟庆辉,张松涛等.基于单片机的GPS定位信息处理[J].电子测试,2023,(10):1~4徐爱钧,彭秀华.KeilCx51V7.0单片机高级语言编程与μVision2应用实践[M].北京:电子工业出版社,2004.白驹珩,雷晓平.物理学[M].单片计算机及其应用:高等教育出版社,电子科大出版社,1997:86~196.高朋等.电路设计与制版-protel入门与提高[M].北京:人民邮电出版社,2000.02.邱致和,王万义.GPS原理与应用[M].北京:电子工业出版社,2001:3~8.ElliottD.Kaplan.UnderstandingGPSPrinciplesandApplications[M].北京:电子工业出版社,2002.附录附录1-原理图附录2-PCB图附录3-程序及注释/******************************************************************$帧头标志符GPRMCGPS推荐的最短数据<0>GPRMC<1>UTC24小时制标准时间,格式为.hhmmss.sss#<2>信号接收状态:A为数据OK;V为警告<3>纬度值,格式为.ddmm.mmmm<4>说明南北半球,N为北半球,S为南半球<5>经度值,格式为.ddmm.mmmm<6>说明东西经,E为东经、W为西经<7>速度,此处为0<8>方位角,范围0.~359.9.<9>日月年,格式为.日日/月月/年年#<10>磁偏角:0.00.~180.。此处不输出<11>地磁变化方向:向西偏差为E或W。此处不输出<12>模式指示(仅NMEA01833.00版本输出): A=自主定位,D=差分,E=估算,N=数据无效 *校验和隔离符号<13>校验和<CR><LF>帧尾结束符*************只用到023456****************************************///isd1700命令码#ifndef__SPI_H__#define__SPI_H__#include"reg52.h"////命令定义#definePU0x11//17xx上电#defineSTOP0x02//停止当前操作#defineRESET0x03//芯片复位#defineCLR_INT0x04//去除EOM标志和中断信号#defineRD_STATUS0x05//返回状态存放器内容#defineRD_PLAY_PTR0x06//在1,2字节返回状态存放器信息,2,3字节返回放音指针#definePD0x17//芯片下电#defineRD_REC_PTR0x08//在1,2字节返回状态存放器信息,2,3字节返回录音指针#defineDEVID0x09//读取芯片ID号码#definePLAY0x50//从当前地址放音#defineREC0x51//从当前地址录音#defineERASE0x42//擦除当前语音段#defineG_ERASE0x53//擦除芯片所有语音#defineRD_APC0x44//返回状态存放器信息在1,2字节,APC存放器信息在3字节#defineWR_APC10x45//将<D11:D0>写入APC存放器#defineWR_APC20x65//将<D11:D0>写入APC存放器,并由<D2:D0>位控制音量#defineWR_NVCFG0x46//将APC内容写入NVCFG#defineLD_NVCFG0x47//将NVCFG内容写入APC#defineFWD0x58//将放音指针指向下一段语音地址处#defineCHK_MEM0x49//检查环状存储体系#defineEXTCLK0x4a//外部时钟使能#defineSET_PLAY0x80//从起始地址<S10:S0>放音到结束地址<E10:E0>结束#defineSET_REC0x81//从起始地址<S10:S0>录音到结束地址<E10:E0>结束#defineSET_ERASE0x82//从起始地址<S10:S0>擦除到结束地址<E10:E0>结束#defineucharunsignedchar#defineuintunsignedint#endif//// LCD1602地址表/*0X800X810X820X830X840X850X860X870X880X890X8A0X8B0X8C0X8D0X8E0X8F0XC00XC10XC20XC30XC40XC50XC60XC70XC80XC90XCA0XCB0XCC0XCD0XCE0XCF*/#include<reg52.h>#defineTS1602_DATAP0#defineENISD1730_SSISD1730_SS=0#defineDISENISD1730_SSISD1730_SS=1#defineISD1730_MISO_LISD1730_MISO=0#defineISD1730_MISO_HISD1730_MISO=1#defineISD1730_MOSI_LISD1730_MOSI=0#defineISD1730_MOSI_HISD1730_MOSI=1#defineISD1730_SCLK_LISD1730_SCLK=0#defineISD1730_SCLK_HISD1730_SCLK=1//SPI与MCU引脚连接sbitISD1730_MISO=P2^2;sbitISD1730_MOSI=P2^1;sbitISD1730_SCLK=P3^4;sbitISD1730_SS=P2^0;//lcd与单片机引脚连接sbitRS=P2^7;//指令或数据sbitRW=P2^6;//读或写sbitE=P2^5;//使能端sbitP10=P1^0;//按键1号sbitP11=P1^1;//按键2号sbitP12=P1^2;//按键3号//unsignedchar--无符号字符型unsignedcharcodelcd_code[]="0123456789";unsignedcharcaToneAdd1[]={0x14,0x18,0x1c,0x1f,0x26,0x28,0x30,0x35,0x36,0x38,0x39,0x44,// 0 1 2 3 4 5 0x46,0x49,0x50,0x53,0x58,0x60,0x61,0x64,0x69,0x70,0x74,0x77,// 6 7 8 9 十 教0x79,0x80,0x85,0x89,0x97,0x9b,0xa1,0xa5,0xab,0xae,0xb2,0xba,// 百 度 东经 北纬 点 科技楼0xc0,0xc9,0xcd,0xd4};// 实训楼 校门口 unsignedcharmessage[6]; //存放“$GPRMC〞unsignedcharstatus[1]; //状态A为数据OK;V为警告unsignedcharlatitude[9]={0};//纬度unsignedcharN_S[1]; //N(北纬)或S〔南纬〕unsignedcharlongitude[10]={0};//经度unsignedcharE_W[1]; //E〔东经〕或W〔西经〕unsignedcharcount_1=0; //数据类型累加变量unsignedcharcount_2=0; //数组下标累加变量bitbegin=0; //起始标志////*****************************************************//函数功能:延时程序//使用说明:注意参数范围//****************************************************voiddelay_500ms(unsignedchartime)//延时500us{unsignedchara,b,c; for(;time>0;time--)for(c=18;c>0;c--)for(b=152;b>0;b--)for(a=28;a>0;a--);}//isd1700相关函数声明unsignedcharISD1730_Spio(unsignedchardat);voidISD1730_PU(void);voidISD1730_Set_Play(unsignedcharVOICE_NUM);unsignedcharSR0H;unsignedcharSR0L;unsignedcharSR1;unsignedcharSR2;////isd1700函数/*名称:ISD1730_Spio功能:ISD1730SPI驱动函数输入:dat:要传送到ISD1730的数据输出:无返回:receive:接收的数据备注:无*/staticunsignedcharISD1730_Spio(unsignedchardat){unsignedchari;unsignedcharrecevice;ISD1730_SCLK_L;//先将SCLK清0for(i=0;i<8;i++)//将dat字节的8个位数据一一送到MOSI线上{if((dat&0x01)==0x01){ISD1730_MOSI_H;//数据位是1}else{ISD1730_MOSI_L;//数据位是0}dat>>=1;//要写入的数据左移一位ISD1730_SCLK_H;//将要发送的数据位送到MOSI上后,置SCLK为1,上升沿时将当前MOSI上的数据传到ISD1730recevice>>=1;if(ISD1730_MISO==1)//SPI接口的串行输出。ISD1700在SCLK下降沿之前的半个周期将数据//放置在MISO端。数据在SCLK的下降沿时移出{recevice|=0x80;}ISD1730_SCLK_L;}returnrecevice;}/*名称:ISD1730_PU功能:ISD1730上电操作*/staticvoidISD1730_PU(void){////SPI初始条件DISENISD1730_SS;ISD1730_SCLK_H;ISD1730_MOSI_L;ENISD1730_SS;////发送命令SR0L=ISD1730_Spio(PU);//发送命令字节SR0H=ISD1730_Spio(0x00);//发送数据字节1DISENISD1730_SS;//delay10ms(2);}/*名称:ISD1730_PD功能:ISD1730下电命令*/voidISD1730_PD(void){//SPI初始条件DISENISD1730_SS;ISD1730_SCLK_H;ISD1730_MOSI_L;ENISD1730_SS;//发送命令SR0L=ISD1730_Spio(PD);//发送命令字节SR0H=ISD1730_Spio(0x00);//发送数据字节1DISENISD1730_SS;//delay10ms(2);}voidISD1730_SetPlay(charn){//SPI初始条件DISENISD1730_SS;ISD1730_SCLK_H;ISD1730_MOSI_L;ENISD1730_SS; //发送命令ISD1730_Spio(SET_PLAY); //发送命令字节ISD1730_Spio(0x00);//发送数据字节1ISD1730_Spio(caToneAdd1[n]);//发送数据字节2,放音起始地址低8位<S7:S0>ISD1730_Spio(0x00); //发送数据字节3,放音起邕地址高3位<S10:S8>ISD1730_Spio(caToneAdd1[n+1]);//发送数据字节4,放音结束地址低8位<E7:E0>ISD1730_Spio(0x00); //发送数据字节5,放音结束地址低8位<E10:E8>,ISD1730不用ISD1730_Spio(0x00);//发送数据字节6DISENISD1730_SS;}/***************************************************//函数功能:isd1700播放函数*****************************************************/voidbofang(charn){ISD1730_PU();ISD1730_SetPlay(n);ISD1730_PD();}/***************************************************//函数功能:LCD1602驱动函数*****************************************************/voiddelay(unsignedintx){ unsignedinti; for(;x>0;x--) for(i=0;i<4;i++) ;}//************************************************//函数功能:写指令//使用说明:无//************************************************voidwrite_com(unsignedcharcom){ RW=0; RS=0; TS1602_DATA=com; delay(1); E=1; delay(1); E=0;}//***************************************************//函数功能:写数据//使用说明:无//****************************************************voidwrite_date(unsignedchardate){ RW=0; RS=1; TS1602_DATA=date; delay(1); E=1; delay(1); E=0;}//***************************************************//函数功能:液晶初始化//使用说明:无//****************************************************voidTS1602_INIT(void){ RS=0; RW=0; write_com(0x38); write_com(0x0C);//设置液晶光标不显示 write_com(0x06); write_com(0x01);//清屏 write_com(0x80);//光标的位置}//函数功能:显示一位数字voiddisplay_a_num(unsignedcharnum){ write_date(lcd_code[num]);}//函数功能:显示字符串voiddisplay_string(unsignedchar*P){ while(*P) { write_date(*P); P++; }}//================以上为LCD1602的驱动函数//****************************************************//函数功能:判断地点//使用说明:返回值为地点代号//****************************************************unsignedcharget_place(void){floateast=longitude[0]*100+longitude[1]*10+longitude[2]+longitude[3]*0.1+longitude[4]*0.01+longitude[6]*0.001+longitude[7]*0.0001+longitude[8]*0.00001;floatnorth=latitude[0]*10+latitude[1]+latitude[2]*0.1+latitude[3]*0.01+latitude[5]*0.001+latitude[6]*0.0001+latitude[7]*0.00001; //判断地点 if(east>=110.24825&&east<=110.24936) //科技楼 { if(north>=25.19037&&north<=25.19167) return1; } if(east>=110.24943&&east<=110.25041)//实训楼 { if(north>=25.18703&&north<=25.18799) return2; } if(east>=110.24870&&east<=110.24880)//校门 { if(north>=25.18440&&north<=25.18449) return3; } if(east>=110.24739&&east<=110.24774)//四教 { if(north>=25.19019&&north<=25.19061) return4; } if(east>=110.24706&&east<=110.24751)//五教 { if(north>=25.19000&&north<=25.19038) return5; } if(east>=110.24687&&east<=110.24740)//六教 { if(north>=25.18980&&north<=25.19006) return6; } return0; } //****************************************************************//函数功能:LCD显示//参数说明:参数为地点代号//****************************************************************voidLCD1602_display(unsignedcharplace){ write_com(0x80); //设置液晶光标起始位置第一行起点 write_date(N_S[0]+48); //显示“N〞或“S〞 write_date(':'); display_a_num(latitude[0]); //显示十位 display_a_num(latitude[1]); //显示个位 write_date(latitude[4]+48); //显示小数点 display_a_num(latitude[2]); //显示小数点后第一位 display_a_num(latitude[3]); display_a_num(latitude[5]); display_a_num(latitude[6]); display_a_num(latitude[7]); write_com(0x8b); //设置液晶光标起始位置 write_date(status[0]+48); //显示'A'或‘V’ write_com(0xc0);//0xa8 //设置光标位置第二行起点 write_date(E_W[0]+48); //显示“E〞或“W〞 write_date(':'); display_a_num(longitude[0]);//百位 display_a_num(longitude[1]);//十位 display_a_num(longitude[2]);//个位 write_date(longitude[5]+48);//显示小数点 display_a_num(longitude[3]);//显示小数点后第一位 display_a_num(longitude[4]); display_a_num(longitude[6]); display_a_num(longitude[7]); display_a_num(longitude[8]); //*************显示地点**************************** switch(place) { case1:{write_com(0xcc);display_string("KJL");}break;//显示科技楼 0xb4 case2:{write_com(0xcc);display_string("SXL");}break;//显示实训楼 case3:{write_com(0xcc);display_string("XMK");}break;//显示校门口 case4:{write_com(0xcc);display_string("4J");}break;//显示4教 case5:{write_com(0xcc);display_string("5J");}break;//显示5教 case6:{write_com(0xcc);display_string("6J");}break;//显示6教 default:{write_com(0xcc);display_string("");}break;//显示把显示的地点清空 }}//****************************************************//函数功能:播放经纬度//使用说明:参数无//****************************************************voidboyin_jwd(void){ bofang(30); //播放“北纬〞 delay_500ms(5); //延时等待等待“北纬〞读完 bofang(latitude[0]+latitude[0]); //播报北纬十位 delay_500ms(3); //延时等待 if(latitude[1]!=0) //如果十位为“0〞那么不念十位 { //判断十位是否为0,为零那么不用读“十〞 bofang(20); //读"十" delay_500ms(2); } bofang(latitude[1]+latitude[1]); //个位 delay_500ms(4); bofang(32); //“点〞 delay_500ms(8); bofang(latitude[2]+latitude[2]); //小数点后第1位 dela

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论