1、毕业设计用纸I中文摘要随着农业现代化的到来,在施肥、灌溉、喷药、测产、收割等方面都利用机械来完成,农田的面积及形状是现代化作业的主要依据。林业方面,在森林资源调查、退耕还林、工程造林等方面,森林的面积及形状也是非常重要的。在日常生活中,还有很多需要测量面积的地方,例如鱼塘、水库等。基于以上的分析,本文研究的内容为利用GPS原理测量面积和周长,本文所做的工作及研究成果如下本文在GPS和算法方面作了深入研究。利用STC单片机设计硬件电路并制作PCB板,深入研究在平面几何中测量不规则图形的面积和周长的算法,尤其是面积,凸多边形的面积容易得到,凹多边形的面积较难,本文在这方面作了大量的研究,并提出解决
2、问题的算法,然后把地球作近似,研究在地面上不规则图形的面积和周长的算法,利用GPS可以得出多边形顶点的坐标,并在算法的基础上利用C51编程,从而实现面积和周长的测量。应用本文的方法测量面积的精度较高,且方便、快捷,有很好的使用价值。关键词GPS,单片机,面积,测量毕业设计用纸IIABSTRACTWITHTHEARRIVALOFAGRICULTURALMODERNIZATION,USINGTHEMACHINEINTHEFERTILIZING,IRRIGATION,SPRAYING,SURVEYINGOUTPUTANDREAPING,ETC,THEAREAANDSHAPEOFFARMLANDIST
3、HEMAINBASISOFMODERNOPERATINGINTHEFORESTINDUSTRY,INFORESTRESOURCESURVEYANDRETURNINGLANDFORFARMINGTOFORESTRYANDAFFORESTATIONCONSTRUCTION,ETC,FORESTAREAANDSHAPEALSOISVERYIMPORTANTINEVERYDAYLIFE,THEREAREALOTOFPLACESTOMEASURE,SUCHASPOND,RESERVOIR,ETCBASEDONTHEABOVEANALYSIS,THISPAPERSTUDIESTHECONTENTSOFPR
4、INCIPLEFORUSINGGPSMEASUREMENTAREAANDPERIMETERTHISPAPERWORKANDRESEARCHRESULTSAREASFOLLOWSTHISPAPERRESEARCHSONTHEGPSANDALGORITHMDEPTHLYUSINGTHESTCMICROCONTROLLERHARDWARECIRCUITANDMAKINGPCB,THOROUGHRESEARCHINGALGORITHMABOUTPERIMETERANDAREAOFIRREGULARREGIONINTHEINPLANEGEOMETRY,ESPECIALLYTHEAREA,THEAREAO
5、FCONVEXPOLYGONSISEASY,CONCAVEPOLYGONTOGETMOREDIFFICULT,INTHEAREAINTHEASPECTSOFTHERESEARCH,ANDPUTFORWARDTHEALGORITHMOFSOLUTIONTOTHEPROBLEMTHENAPPROXIMATING,RESEARCHINGALGORITHMOFIRREGULARAREAANDPERIMETEROFTHEONTHEGROUND,USINGGPSCANDRAWTHEVERTEXCOORDINATESOFPOLYGON,PROGRAMMINGINC51BASEDONTHEALGORITHM,
6、REALIZETHEAREAANDPERIMETEROFMEASUREMENTTHEAPPLICATIONOFTHISMETHODISFEASIBLEMEASUREMENTACCURACYISGOOD,ANDITISCONVENIENT,QUICK,HAVEVERYGOODUSEVALUEKEYWORDSGPS,MICROCONTROLLER,AREA,MEASUREMENT毕业设计用纸III目录中文摘要IABSTRACTII目录III第一章绪论111引言112课题背景及研究现状113本文的主要工作和结构安排2第二章硬件设计321引言322整体电路3221单片机选型3222最小系统的设计422
7、3液晶模块4224GPS接收模块的设计5225存储模块的设计5226STC程序下载模块6227供电模块723本章小结8第三章算法实现931引言932算法研究10321求地球表面上两点间距离10322求地球表面上多边形面积1233算法的可行性论证1634本章小结19第四章软件设计2041引言2042软件设计20毕业设计用纸IV第五章总结24参考文献25附录26致谢36毕业设计用纸1第一章绪论11引言GPSGLOBALPOSITIONINGSYSTEM为全球定位系统。是一种利用卫星支持的无线电导航系统,自20世纪90年代应用以来,以其速度快、效率高、精度能满足要求的一系列特点,深受广大用户的青睐1
8、。GPS的空间部分是由24颗工作卫星组成,它位于距地表20200KM的上空,均匀分布在6个轨道面上每个轨道面4颗,轨道倾角为55。此外,还有3颗有源备份卫星在轨运行。卫星的分布使得在全球任何地方、任何时间都可观测到4颗以上的卫星,并能在卫星中预存的导航信息。本文利用GPS模块可以得出所在位置的经纬度,然后利用算法计算出闭合的不规则的区域的面积和周长。用户可以手持GPS测量仪,走出一个闭合的区域,GPS测量仪定时得出所在位置的经纬度,用户在走的过程中,GPS测量仪进行计算,用户走出闭合区域后,GPS测距仪自动算出用户所走出的闭合区域的面积和周长,非常方便实用。12课题背景及研究现状在农业、林业方
9、面,以及日常生活中,有很多需要测量面积的地方,如灌溉、测产、收割、森林资源调查、修建水库、工程建筑等方面,面积及形状是非常重要的信息。如果是规则的小面积区域测量面积和周长,人为可以实现,如果是大面积或不规则区域测量面积和周长,人为很难实现,本文正是从以上分析出发,采用STC90LE58RD单片机和GPS模块实现不规则区域测量面积和周长,简单实用,且稳定可靠。本文重点研究如何利用GPS模块测得所在位置的经纬度来实现不规则区域测量面积和周长。文献1中,夏友福介绍GPS在森林资源调查、退耕还林、工程造林中的面积测量方法,测量林地边界的经纬度,采用CASIOFX4500P编程计算器的程序便可计算林地面
10、积结合应用实例,详细介绍其方法的优点及其应用前景。文献2中,孟庆川等通过分析现有的火场面积的计算方法,提出了新的计算火场面积的方法一基于GPS的火场面积计算方法,该方法是将三角剖分法和GPS技术相结合,使计算火场面积更加准确,有较强的实用性,更有利于在基层林场推广。文献3中,武志明等为了满足实施精细农业时计算田块面积的需要,通过用解析法之一的坐标法来计算多边形田块的面积,并利用VB60设计该方法求面积的程序。采用GPS接收机实时地测量农田边界的定位信息,经过毕业设计用纸2坐标转换之后,将边界元素代入编制好的程序进行计算。实际运用表明,该方法测量面积的精度达到986。文献4中,夏友福介绍了手持G
11、PS在森林资源调查、工程造林中林地面积测量的精度,选择已知面积作为测量对象,对测量误差及其精度进行分析计算,结果表明手持GPS测量林地面积的精度能够满足林业中的应用要求。文献5中,PAULBOURKE提出了在数学计算多边形面积的算法。本文在此基础上展开研究工作,通过分析,总结出计算周长的两种算法和计算面积的三种算法,利用实例计算误差,得出最佳算法,为软件编程打下了基础。13本文的主要工作和结构安排本文首先是GPS测量仪的硬件设计,硬件是软件设计的基础,硬件设计得好,系统的稳定性就会得到提高,分别对单片机选型、最小系统的设计、液晶模块、GPS接收模块的设计、存储模块、STC程序下载模块、供电模块
12、进行了研究和介绍。其次研究的是算法,硬件上的GPS模块测得所在位置的经纬度,如何利用得到的经纬度计算出不规则区域的面积和周长,正是通过算法所要解决的问题。最后是软件的设计,有了硬件和算法,利用C51语言编程,实现GPS测量仪的功能。本论文的结构安排为第一章绪论,介绍课题的背景和意义,以及本文的主要工作和结构安排;第二章硬件设计,研究和介绍单片机选型、最小系统的设计、液晶模块、GPS接收模块的设计、存储模块、STC程序下载模块、供电模块;第三章算法实现,解决如何利用得到的经纬度计算出不规则区域的面积和周长;第四章软件设计,利用C51语言编程,实现GPS测量仪测量不规则区域的面积和周长;第五章总结
13、,对本文做了展望和总结,以及还需在哪些方面应作进一步的深入研究。毕业设计用纸3第二章硬件设计21引言由于测量面积一般是由使用者手持,环绕所要测量的区域走闭合曲线,边走边计算面积,走成闭合区域后,面积可自动在液晶上显示,所以要求系统必须要低功耗,使用电池供电,考虑可重复利用,所以本系统采用锂电池供电。22整体电路本系统的硬件电路设计如下D01D12D23D34D45D56D6/SCL7D7/SI8VDD9VSS10LED11CS12RESET13A014WR/RW15RD/E16J1LCDRF_GND15RF_IN16RF_GND17VCCRF18V_ANT19NC20NC21BAUD_SEL2
14、2NC23NC24NC25NC26ST_LED27TIMEPULSE28NC1NC2TXD13RXD14VDDIO5VCC6GND7VDD_18OUT8NC9RESET_N10V_BAT11NC12GND13GND14U2GPSIN5IN6EN4OUT8OUT7FB/NC1PG2GND3U3TPS76633DR1100D14148D24148BAT12J2ATENNAR422C6100P33VGPSRSTC810UFC7103P33VRXD0TXD033VD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7A15A14A14A15KEY0KEY1KEY2KEY3KEY4R347K3
15、3VY1221184MHZWRWRRDRDC222PC322PC147UFD34148R210K33VRSTRSTKEY0KEY1KEY2KEY3KEY4R1051KC901UFBATR1110KPWRGDPWRKP33VAT45CSAT45SCKSISOAT45RSTSI1SCK2RESET3CS4WP5VCC6GND7SO8U4AT45DB081DC1201UFAT45SCKAT45RSTAT45CSSISOATSDA33VGPSRSTPWRGDATSCKR1IN13R2IN8T1IN11T2IN10GND15V2V6VCC16R1OUT12R2OUT9T1OUT14T2OUT7C11C1
16、3C24C25U6MAX232TXD1RXD1C141UFC131UFC161UFC171UFC1501UF33V33V123J6CON3123J7CON3TXDRXD0TXD1RXDTXD0RXD112345J4CON5D54148BAT12J3CON2D44148BATC510UFC4103PC10103PC1110UF33V1234567J5CON7D61N5817D71N5817PWRON_OFFPWRON_OFFPWRON_OFFPWRKPRXDTXDA01A12A23VSS4SDA5SCL6NC7VCC8U524C1633VATSCKATSDAR1310KR1410KQ19012P
17、WRKPR121KC1801UFEA/VP29X115X214RESET4RD13WR12INT08INT19T010T111P10/T39P11/T41P1242P1343P1444P151P162P173P0037P0136P0235P0334P0433P0532P0631P0730P2018P2119P2220P2321P2422P2523P2624P2725PSEN26ALE/P27TXD7RXD5U1STC90LE58RD12345678RP110K412345678RP210K433VR5100LED1REDC2047UFC19103图221整体电路221单片机选型由于本系统在测量
18、的过程中要不断计算周长和面积,所以需要较大的FLASHROM和RAM,因此本系统的MCU采用STC90LE58RD单片机。此类型的单片机具有32KB的FLASHROM,1280BYTE的SRAM,29KB的EEPROM,超强抗干扰,超强抗静电,高速,高可靠,低价格,低功耗,2436V供电,掉电模式时的功耗小于01UA,掉电模式可由外部中断唤醒,适用于电池供电系统,水表、气表,便携设备等。故本系统采用33V锂电池供电。毕业设计用纸4且STC90LE58RD单片机可直接取代89系列单片机,软硬件无需改动。看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。222最小系统的设计1、复位电路复位
19、电路采用上电复位,C1和R2组成RC充放电电路,当RST引脚上有两个机器周期以上的高电平时,系统就可靠复位。1N4148二极管的作用是断电后,加速电容的放电。图222复位电路2、时钟电路时钟电路采用外接石英晶体的内部时钟方式,晶振的频率选用221184MHZ,C2、C3选用22PF的瓷片电容,对振荡频率起微调作用。图223时钟电路223液晶模块J1外接液晶,A0和CS接单片机的P26和P27引脚上,RDWR/接单片机的WR写信号引脚,ERD/接单片机的RD读信号引脚,此时将液晶视为片外数据存储器的一个单元,可以用总线方式毕业设计用纸5对液晶进行操作,P0作为数据总线,P2作为地址总线的高8位。
20、LED接单片机的P331INT引脚,RESET接单片机的P34T0引脚。C20和C19组成电源的滤波电路,小容量的电容滤高频,大容量的电容滤低频。图224液晶模块电路224GPS接收模块的设计本系统GPS接收模块采用MLT2082芯片。MLT2082是一款高性能、高灵敏度、低功耗、定位更快更准确GPS接收模块,专用于导航系统定位。同時具有65个通道搜索引擎。8百多万个起动搜索引擎相关器。精确度25米。J2接天线;27引脚是LED状态引脚,接发光二极管,当工作时,发光二极管被点亮;3引脚是串行发送端,4引脚是串行接收端。通过3和4引脚,MLT2082芯片和STC单片机可以实现串行通信。图225G
21、PS接收模块电路225存储模块的设计由于运算的过程中要用到浮点数,并且对地球表面计算不规则多边形的面积和周长需要大量的毕业设计用纸6RAM,所以本系统外扩一片AT45DB081D,AT45DB081D是ATMEL公司生产的串行接口的FLASH存储器,容量为8MB,AT45DB081D工作在独立的25V至36V或者27V至36V电压下。AT45DB081D还包含2个256/264字节的SRAM缓冲区。缓冲区允许在对主存储器的页面重新编程时接收数据,也可写入连续的数据串。通过独立的读改写三步操作,可以轻松实现EEPROM仿真。AT45DB081D可通过片选引脚CS使能,并通过3WIRE接口访问,3
22、WIRE由串行输入(SI),串行输出(SO),和串行时钟(SCK)组成。图226FLASH存储器电路系统除了扩展FLASH存储器,还扩展了E2PROM,本系统选用AT24C16,AT24C16是一个16K串行CMOSE2PROM,内部含有2048个8位字节,AT24C16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作,有一个专门的写保护功能。18V60V的工作电压。图227E2PROM扩展电路226STC程序下载模块本系统还包含了STC程序下载模块,可以方便把程序下载到单片机中,然后运行。通过USB口转化为和电脑串口一样的电气接口,再通过TXD,RXD分别直接连到单片机的RXD,T
23、XD上面进行下载。USB采用MINIB型5PIN接口,这种接口由于体积小巧,所以比较实用。毕业设计用纸7图228STC程序下载模块电路227供电模块本系统采用锂电池供电,J3外接锂电池,C4和C5组成电源的滤波电路,C4滤高频,C5滤低频。图229供电电路便携电子设备不管是由交流市电经过整流后供电,还是由蓄电池组供电,工作过程中,电源电压都将在很大范围内变化。例如锂电池充足电时的电压为42V,放完电后的电压为23V,变化范围很大。为了保证供电电压稳定不变,几乎所有的电子设备都采用稳压器供电,在电源的输入端加入线性稳压器,以保证电源电压恒定和实现有源噪声滤波。本系统采用超低静态电流250MA低压
24、差稳压器TPS76633D,以保证电源电压恒定。毕业设计用纸8图2210稳压器电路23本章小结本章对硬件电路的设计进行了研究,分别对单片机选型、最小系统的设计、液晶模块、GPS接收模块的设计、存储模块、STC程序下载模块、供电模块进行了研究和介绍。硬件是系统得以实现的物质基础,只有硬件设计得正确,抗干扰能力强,软件才能稳定的工作,整机效果才会比较稳定可靠,由此可见硬件设计的重要性。本章硬件电路在设计过程中查阅了很多的资料,也做了相应的实验来保证系统稳定性。毕业设计用纸9第三章算法实现31引言经纬度就是圆周360度的角度。纬度是以赤道为0度。经度东经为,西经为,纬度北纬为,南纬为。地心到某地连线
25、与地心到赤道连线的夹角就是某地纬度。所以两极的纬度就是90度。经度也差不多。就是以英国伦敦附近的格林尼治天文台为0度。向东西两边逐加分别为东经和西经。东西180经线合为一条经线。用西经20和东经160的经线圈,将地球分为东、西两个半球。如图311中,A点的经度为东经度,纬度为北纬度。图311本章重点研究如何利用GPS模块得到的经纬度算出不规则图形的面积和周长,本章的算法是软件实现的重要基础,只有在理论上得出如何计算不规则图形的面积和周长,才能利用软件编程实现在液晶模块上显示出区域的面积和周长。本章总结了几种算法,并做了比较,并对可行性做了分析,通过两个例子给出了利用几种算法得出的面积和周长的精
26、度。毕业设计用纸1032算法研究321求地球表面上两点间距离已知球面的两点,为了方便起见,以经纬度来唯一标识点的位置,要求计算出它们的球面距离。地球形状是一个两极部位略扁的不规则的球体。地球的平均半径为6371千米,赤道半径6378千米,极半径6357千米。赤道周长约为4万千米。在普通测量中可把地球作为圆球看待,其半径为6371KM。算法一GPS定位出来的经纬度是WGS84坐标系,可以转换成地心直角坐标X、Y、Z表示,其中,直角坐标系原点位于地心;Z轴为极轴,向北为正;X轴穿过本初子午线与赤道的交点;Y轴穿过赤道与东经90的交点。地球的经纬度坐标是球坐标X,Y,X是经度,Y是纬度。先把经纬度的
27、角度值转换成弧度值PXXPI/180PYYPI/180再把它转换成空间直角坐标系X,Y,Z。设地球半径为R,海拔高度为H。则有转换式XRHCOSPYCOSPXYRHCOSPYSINPXZRHSINPY分别得到APX1,PY1,BPX2,PY2两点的直角坐标AX1,Y1,Z1,BX2,Y2,Z2那么AB两点间直线距离是L222121212ZZYYXX把上面转换式代入化简可以得到LRHSINPY22SINPY1PX2COSPX1COSPY22COSPY12设AB两点对球心所夹圆心角为弧度),则有L2RSIN/22R/2COS1RCOS12因此COSSINPY2SINPY1PX2COSPX1COSP
28、Y2COSPY12122RL则AB两点的球面距离毕业设计用纸11MRHRHARCCOSCOSPY1COSPY2COSPX1PX2SINPY1SINPY2算法二图321如上图,先假设球的半径为R,海拔高度为H,所给定的2点为K,P两点。假设球心为点O,那么最后得到的KOP的弧度乘以球的半径R即为所求的球面距离。设经过球的南极和北极的极点的直线为H,分别过点P、K作H的垂线,设垂点分别为F、M。过点M作线PF的平行线,过P作MF的平行线,这两条平行线必定相交,设交点为N,容易证明PMFN是一个矩形。由于K、P点的经纬度已知,所以OPF和OKM也已知,设分别为,由于半径R已知,所以|PF|RCOS,
29、|KM|RCOS,|OF|RSIN,|OM|RSIN。由于点K、P的经度已知,所以不难求出KMN的值。所以三角形ACE中不难用余弦定理求出|KN|的值。在直角三角形ABE中,容易求出AB的值。此时三角形AOB三条边都已知,所以AOB也可以用余弦定理求出来,这样AB的球面距离也就可求了。假设点K的经度为东经A1度,纬度为北纬B1度;点P的经度为东经A2度,纬度为南纬B2度。所以B1,B2,设KMN的值为,那么|A1A2|。可以计算出|OM|RSIN|OF|RSIN|KM|RCOS|PF|RCOS由于|MN|PF|,|MF|OF|OM|毕业设计用纸12由余弦定理可以知道COS2222MNKMMNK
30、MKN则COSCOSCOS2COSCOS222222RRRKN由于|PN|MF|,且KP222PNKN,则SINSIN2SINSINCOSCOSCOS2COSCOS22222222222RRRRRRKP则COSCOSCOSSINSIN122222RKP在KOP中,也可用余弦定理得到式222COS2KPKOPOPOKOPOKROPOK则COSKOPCOSCOSCOSSINSIN这样可以求出KOP的值单位为弧度则球面距离MRHKOPRHARCCOSCOSCOSCOSSINSIN。须注意两点1当A、B同为东经或同为西经时,|A1A2|,那么当K、P不是同为东经或同为西经时,|A1A2|,若180度,
31、2单位采用弧度。2当K、P在不同的南北半球时,是|MF|OM|OF|。则球面距离MRHKOPRHARCCOSCOSCOSCOSSINSIN。当A、B同为南半球或同为北半球时,OFOMMF则球面距离MRHKOPRHARCCOSCOSCOSCOSSINSIN。322求地球表面上多边形面积由于地球很大,所以地面上的多边形可以近似看作是平面的。求地面上的凸多边形的面积可用算法一、算法二或算法三,求地面上的凸或凹多边形的面积用算法二或算法三。其实算法一也可以求凹多边形的面积,但必须用凹进去的那一点与其他顶点连线来分割多边形,再用海伦公式求之。设地球半径为R,海拔高度为H。由文献5、6、7经过总结归纳,得
32、出以下几种算法算法1用海伦公式求平面凸多边形的面积对于N边凸多边形,从它的一个顶点出发与所有不相邻的顶点连接,整个凸多边形被分割成了N2个三角形,然后根据“球面距离的算法二”计算出各分割的三角形的边长,然后通过海伦三角形面积公式计算每个三角形面积毕业设计用纸13由海伦三角形面积公式CPBPAPPS,21CBAP,A,B,C为三角形三边的长。把P代入海伦公式得公式为41ACBBCACBACBAS则多边形的面积就等于分割的三角形面积之和。例如下图图322利用海伦公式得41S1622616216211MMMMMMMMMMMM413766737637632MMMMMMMMMMMMS4147557475
33、47543MMMMMMMMMMMMS则多边形的总面积为321SSSS算法2用三维空间直角坐标求凸多边形或凹多边形的面积对空间中任意的凸多边形或凹多边形都适用的一种方法设空间上有一凸多边形或凹多边形,该多边形上有N个点,按顺时针方向分别为A1,A2,AN,其坐标为A1X1,Y1,Z1,A2X2,Y2,Z2,ANXN,YN,ZN。则多边形的面积为211112111121111212121NIIINIIINIIIXXYZZXYYZS注意11XXN;11YYN;11ZZN;0XXN;0YYN;0ZZN。毕业设计用纸141IY为IX顺时针方向的下一个点,1IY为IX逆时针方向的上一个点。由此得出结论,对
34、于空间任意多边形无论是凸还是凹的面积S的平方等于它在三个互相垂直的平面XOY、YOZ、ZOX正投影面积的平方和。把GPS测得的经纬度转换成空间直角坐标系X,Y,Z设地球半径为R,则转换式为XRHCOSHYCOSHXYRHCOSHYSINHXZRHSINHY算法3用顶点坐标求平面凸多边形或凹多边形的面积对任意的凸多边形或凹多边形都适用的一种方法已知任意N边凹或凸多边形的点的坐标顺时针为X1,Y1,X2,Y2,X3,Y3XN,YN,则其面积为21111NIIIIYYXABSS注意到11YYN,NYY0。ABS表示绝对值。1IY为IX顺时针方向的下一个点,1IY为IX逆时针方向的上一个点。如果假定地
35、球是完美的球体这样假设误差不是很大纬度的1大约为360237100021111385556M经度的1的距离从0KM到1111385556M不等,它随纬度的不同而变化,等于1111385556M乘以纬度的余弦。所以把经纬度转换成二维坐标X,Y的公式为6111138555YCOS6111138555X为纬度为经度,设,均为角度,不是弧度。求面积还有另外三个公式公式121111NIIIIXXYABSS公式221111NIIIIIYYXXABSS毕业设计用纸15公式321111NIIIIIYXYXABSS须注意11XXN;11YYN;0XXN;0YYN。例图323Y4X5Y1Y3X4Y5Y2X3Y4Y
36、1X2Y3Y5ABSX1Y221S图324Y3X4Y1Y2X3Y4Y1X2Y3Y4ABSX1Y221S毕业设计用纸1633算法的可行性论证在谷歌地球GOOGLEEARTH中模仿实际画出一个任意多边形,可得出面积和周长,由于谷歌地球是用卫星得到的地图,所以算出的面积和周长与实际差不多,然后在MATLAB软件中按照32节中的得法编程,两者进行比较,得出算法的可行性。例331图331图332第1点经纬度EN20115411917098431;第2点经纬度EN06066411941567431第3点经纬度EN54415411911267431;第4点经纬度EN14216411948006431毕业设计
37、用纸17第5点经纬度EN30024411923565431用GOOGLEEARTH测得的面积为8553890562M,周长为1363316M用周长算法二得到的周长为136552219639866M,误差为16013633166398661365522191363316用面积算法一得到的面积8573767416301732M,误差230855389056630173857376741855389056用面积算法二得到的面积8573767123948752M,误差230855389056394875857376712855389056用面积算法三得到的面积8566545417205812M,误差1
38、50855389056720581856654541855389056例332如下凹多边形,求周长和面积。图333点的标号为下图毕业设计用纸18图334第1点经纬度EN95338511973368431;第2点经纬度EN95348511921368431;第3点经纬度EN80348511995358431;第4点经纬度EN86348511959348431;第5点经纬度EN78328511958348431用GOOGLEEARTH测得的面积为1294972M,周长为17231M用周长算法二得到的周长为172002021630853M,误差为180172316308531720020211723
39、1用面积算法一得到的面积为1290019204503952M,误差380129497450395129001920129497用面积算法二得到的面积为1290016266591662M,误差380129497659166129001626129497用面积算法三得到的面积为1288707356035712M,误差480129497603571128870735129497毕业设计用纸1934本章小结在本章中,在32节中进行了算法的研究,找出了几种算法,在33节中举了2个例子,一个是面积较大的区域,一个是面积较小的区域,并利用GOOGLEEARTH和MATLAB软件对实例进行验证,得出面积和周长
40、,长计算精度,由验证结果可知其精度较高,从而得出本章算法的可行性,为后面软件编程打下了理论基础。毕业设计用纸20第四章软件设计41引言本系统采用C51编程,使用C51语言开发速度快,代码可重复使用,程序结构清晰,易懂易维护,对项目非常适用。C51语言对汇编语言进行了抽象,具有如下优点1更符合人类思维习惯,开发效率高、时间短。2模块化。3可移植性好。4提供数学函数并支持浮点运算。5程序可读性和可维护性强。C51语言也有缺点,比如实时性通常要比汇编差。在编写汇编的时候可以清楚的知道每一条指令究竟要多少个机器周期,但是在C中掌控准确的时间稍微困难一些。综合以上,本系统采用C51编程。42软件设计本系
41、统采用C51编程,并模块化,编制以下子程序(1)系统初始化子程序(2)液晶显示子程序(3)键扫描子程序(4)键处理子程序(5)计算面积和周长的子程序(6)串口接收中断服务子程序(7)延时子程序实现系统功能的流程框图如下键判断子程序判断键是否按下,如果无键按下,则返回到主程序延时消抖510MS可用调显示子程序来代替,消抖是为了防止产生误操作。判断键是否按下,如果无键按下,则返回到主程序否则就是有键按下,然后判断键是否释放,如果键已经释放,则返回键值。键处理子程序毕业设计用纸21WHILE1用SWITCH语句判断是哪个键按下,然后键处理调键判断子程序MAIN主程序的流程图图421串口接收中断服务子
42、程序调初始化子程序调显示子程序有GPS信号YN清屏,显示“NOGPSCONNECT”已定位YN显示经度和纬度显示显示接收卫星数显示时间显示显示“”按键按下NY开始毕业设计用纸22图422计算面积和周长的子程序的程序流程图接收数据放缓存RI1Y调计算面积和周长的子程序N开始中断返回RI0清中断标志毕业设计用纸23图423转换成二维坐标值计算两点间距离开始返回保存经纬度的值计算面积有三个点吗是否区域已闭合周长和面积求和YYNN毕业设计用纸24第五章总结在本文中,利用GPS模块可以得出所在位置的经纬度,然后利用算法计算出闭合的不规则的区域的面积和周长。用户可以手持GPS测量仪,走出一个闭合的区域,G
43、PS测量仪定时得出所在位置的经纬度,用户在走的过程中,GPS测量仪进行计算,用户走出闭合区域后,GPS测距仪自动算出用户所走出的闭合区域的面积和周长,非常方便实用。本文采用STC90LE58RD单片机和GPS模块实现不规则区域测量面积和周长,简单实用,且稳定可靠。本章总结了几种算法,并做了比较,并对可行性做了分析,通过两个例子给出了利用几种算法得出的面积和周长的精度。由于时间比较仓促,以及自身专业水平的不足,作者深知本文对该领域所做的研究还不够全面,觉得应在以下几个方面应作进一步的深入研究(1)在硬件设计方面对如何能更多的提高抗干扰,提高系统稳定性,以及减少系统功耗作更多的研究。(2)在算法上
44、还需继续改进,使测量区域的面积和周长的误差更小。(3)在软件编程方面对代码还需进一步优化,使之缩减计算的时间。(4)在本文研究的基础上,可以尝试把无线通信技术引入到GPS测量仪中,从而实现双机通信或多机通信,或下位机与上位机的通信。毕业设计用纸25参考文献1夏友福GPS测量面积的方法研究西南林学院学报,2005,25165672孟庆川,王霓虹基于GPS的火场面积的计算方法自动化技术与应用,2009,28437393武志明,赵飞,王凤花,贾爱莲基于GPS的田块面积计算方法及程序设计农机推广与安全,200613154夏友福手持GPS测量面积的精度分析西南林学院学报,2006,26359615PAU
45、LBOURKECALCULATINGTHEAREAANDCENTROIDOFAPOLYGON,19886谢雨扬,何恰闻海伦公式的再次探究与延伸关于多边形面积的计算问题,20097顾孝烈,鲍峰,程效军测量学第1版,上海同济大学出版社,20068GPS全球定位系统SKYTHINK模块产品应用指南9MLT2082GPS芯片手册10黄忠霖控制系统MATLAB计算及仿真第2版北京国防工业出版社,200411马忠梅,籍顺心等单片机的C语言应用程序设计第4版北京北京航空航天大学出版社,200712吴国经主编单片机应用技术北京中国电力出版社,200413周坚等单片机应用与接口技术北京机械工业出版社,2010毕
46、业设计用纸26附录本设计软件部分的程序包含MAINC、LCD_12864H、MENUH、STC_EEPROMH、UARTH、HZKH、CALCULATINGH。LCD_12864H程序清单DEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITLCD_CSP30SBITLCD_A0P31SBITLCD_SCLP26SBITLCD_SIP27/状态字定义/DEFINECMD_STARTLINEBASE0X40DEFINECMD_X_PAGE0XB0DEFINECMD_COLHIBASE0X10DEFINECMD_COLLOMASK0X0F/HTM12864
47、23液晶串行驱动/从SI口串行输入8位数据/VOIDLCDSHIFTWRITEUCHARDATTUCHARIFORI0I4WRITE_COMMANDCOL/光标定位子程序/VOIDLCD_MOVETOUINTX,UINTYWRITE_COMMANDCMD_X_PAGE|XLCD_SETCOLY/LCD清全屏子程序/VOIDLCD_CLEARUCHARROW,COLFORROW0ROW3FORJ0J999POINTS999IFPOINTS1BUF_POS0YD_JDJD_VALCOSHD_WDD_PER_DEGREEYD_WDWD_VALD_PER_DEGREERESULT_BUF1RESULT
48、_BUF20FORI0I24BUFFERBUF_POSX316BUFFERBUF_POSX38毕业设计用纸32BUFFERBUF_POSX3Y3WD_VALD_PER_DEGREEYD_WDBUFFERBUF_POSY324BUFFERBUF_POSY316BUFFERBUF_POSY38BUFFERBUF_POSY3IFBUF_POS512BUF_POS0IFPOINTS3RESULT_BUF1X2Y3Y1RESULT_BUF2Y2X3X1BREAKCASEKEY_OKIFSTATUS_J0_C1STATUS_J0_C11POINTS0ELSEX1X2Y1Y2X2X3Y2Y3X3Y30RESULT_BUF1X2Y3Y1IFRESULT_BUF1RESULT_BUF11RESULT_BUF2Y2X3X1毕业设计用纸33IFRESULT_BUF2RESULT_BUF21RESULTMESURE_NRESULT_BUF1RESULT_BUF2/2MENU_INDEX7LCD_DISP_CLSRESULT_AVE0FORI0I999POINTS999IFPOINTS1YD_JDJD_VALCOSHD