




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
TOC\o"1-3"\h\u一、系統(tǒng)整體概述2(一)主要內(nèi)容2(二)系統(tǒng)方案的總體設(shè)計2二、硬件設(shè)計3(一)硬件總體結(jié)構(gòu)框圖3(二)單片機的介紹41.STC89C52的簡介42.STC89C52引腳圖4(三)GPS(UBLOXNEO6M)模塊介紹41.UBLOXNEO6M簡介42.UBLOXNEO6M性能和管腳定義5(四)LCD(12864)模塊介紹61.LCD(12864)簡介62.LCD(12864)引腳介紹 63.LCD(12864)操作時序6(五)硬件電路PCB板的繪制71.原理圖的繪制72.PCB板的繪制73.實際硬件電路8三、軟件設(shè)計9(一)軟件設(shè)計思路9(二)模塊化軟件設(shè)計91.GPS接收模塊設(shè)計92.單片機模塊設(shè)計113.顯示模塊設(shè)計11四、系統(tǒng)調(diào)試與結(jié)果13(一)硬件調(diào)試13(二)軟件調(diào)試13(三)設(shè)計結(jié)果14五、總結(jié)16參考文獻17附錄18一、系統(tǒng)整體概述(一)主要內(nèi)容在學(xué)習(xí)C51系列單片機和GPS定位原理以及GPS相關(guān)知識的理論知識基礎(chǔ)上,我們需要在種類繁多的單片機和GPS類型中選擇合適的單片機和GPS模塊,GPS模塊的作用是用來接收衛(wèi)星信號然后提取相應(yīng)的信息,單片機作為本次設(shè)計系統(tǒng)的控制核心,對GPS模塊接收到的信息進行處理,然后用液晶顯示屏實時顯示預(yù)設(shè)的數(shù)據(jù)信息。系統(tǒng)的具體實現(xiàn)主要由軟硬件設(shè)計結(jié)合完成。硬件設(shè)計核心是單片機最小系統(tǒng)的設(shè)計,然后在最小系統(tǒng)的基礎(chǔ)上設(shè)計本次設(shè)計所需的外圍電路,借助成品GPS模塊,完成硬件電路的焊接,該設(shè)計硬件電路設(shè)計并不復(fù)雜,而且體積小便于攜帶。軟件設(shè)計的核心內(nèi)容是實現(xiàn)GPS模塊與單片機的通信進而完成系統(tǒng)設(shè)計的要求,因為模塊化設(shè)計具有功能清晰、調(diào)試方便等優(yōu)點,而且在不同平臺上移植方便,所以這次設(shè)計的思路是采用模塊化設(shè)計,整個軟件開發(fā)環(huán)境用Keil軟件,采用C語言編程,硬件則為使用AltiumDesigner。(二)系統(tǒng)方案的總體設(shè)計本次設(shè)計的目標是要在單片機的基礎(chǔ)上完成GPS定位信息顯示系統(tǒng)設(shè)計。根據(jù)設(shè)計預(yù)設(shè)的要求,我們設(shè)計是以單片機為控制核心,控制GPS接收模塊,最后利用液晶顯示設(shè)備就可以實現(xiàn)系統(tǒng)設(shè)計目標。市場上單片機種類很多,C51系列單片機,STM系列單片機等等。通過考慮單片機的普適性、所具備的功能、具體I/0口的性能以及價格是否經(jīng)濟實用等因素,本次設(shè)計采用C51系列單片機。系統(tǒng)整體是由硬件設(shè)計和軟件設(shè)計兩部分設(shè)計而成,采用C51系列單片機、GPS定位模塊、LCD液晶顯示模塊設(shè)計而成。硬件設(shè)計主要由單片機(STC89C52)、GPS模塊(UBLOXNEO6M)、LCD12864液晶顯示模塊等組成;接收GPS模塊傳送的數(shù)據(jù)信息是軟件設(shè)計的重點,進而獲得當前所處位置的經(jīng)緯度、航向和海拔等信息。二、硬件設(shè)計(一)硬件總體結(jié)構(gòu)框圖硬件總體結(jié)構(gòu)框圖如圖2-1所示。液晶顯示電路STC89C52GPS接收模塊GPS信號液晶顯示電路STC89C52GPS接收模塊GPS信號電源電源圖2-1硬件總體結(jié)構(gòu)框圖本次設(shè)計系統(tǒng)的硬件電路主要由下面幾部分構(gòu)成:第一,接收模塊電路。GPS模塊負責(zé)鎖定衛(wèi)星,然后把信息傳送給單片機。第二,控制模塊電路。以STC89C52單片機為控制核心,讀取GPS模塊傳送的數(shù)據(jù),然后把讀取的數(shù)據(jù)送到液晶顯示屏即實現(xiàn)了單片機的控制作用。第三,液晶顯示電路。51單片機控制液晶顯示電路,在液晶顯示屏進而可以顯示GPS模塊讀取的數(shù)據(jù)信息。第四,電源部分電路。整個系統(tǒng)的正常工作需要電源部分為其提供電源。此外,硬件電路中還會涉及一些使單片機正常工作的外圍電路,以保證單片機正常工作。(二)單片機的介紹1.STC89C52的簡介STC89C52是STC公司生產(chǎn)的一種控制器。MCS-51內(nèi)核是該單片機的經(jīng)典內(nèi)核,而且在STC89C52上做了很多的創(chuàng)新,使其不僅具有傳統(tǒng)51單片機所具有的功能,而且引進了很多創(chuàng)新的功能,使STC89C52的應(yīng)用范圍更加廣泛。STC89C52具體的使用標準可以查閱相關(guān)書籍和芯片技術(shù)手冊,更多資料不再說明。2.STC89C52引腳圖圖2-2STC89C52引腳圖(三)GPS(UBLOXNEO6M)模塊介紹1.UBLOXNEO6M簡介本次課程設(shè)計使用的GPS(UBLOXNEO6M)模塊是一個完整的成品接收模塊,具有高性能、低功耗的優(yōu)點,能滿足我們本次設(shè)計定位的要求。GPS模塊實物圖如圖2-2所示。圖2-3GPS模塊實物2.UBLOXNEO6M性能和管腳定義定位時間(TTFF):精準的定位時間和當前環(huán)境有關(guān)。(2)靈敏度MinLypMax單位跟蹤-160dBm捕獲-147dBm表2-4GPS靈敏度(3)精度2D平面:2.5m[平均]2D平面:2m[平均],有WAAS輔助授時精度:1us(4)UBLOXNEO6M管腳定義見表2-5所示。序號名稱I/O描述特性1VCC1模塊主電源,直流輸入2GND0接地3TX0UART接口4RX1UART接口5PPS0模塊定位脈沖表2-5GPS管腳定義(更加詳細資料可參考UBLOXNEO6M數(shù)據(jù)手冊)(四)LCD(12864)模塊介紹1.LCD(12864)簡介LCD(12864)液晶顯示模塊類型屬于漢字圖形類型的液晶模塊,可在顯示屏上顯示數(shù)字、符號和漢字等字符??膳cCPU直接連接,設(shè)有串行和并行這兩種控制方式。具有多種功能可供使用,具體使用哪種功能可查閱芯片資料。2.LCD(12864)引腳介紹D0~D7是數(shù)據(jù)口,RS(CS)是數(shù)據(jù)/命令選擇端(串片選),R/W(SID)端口是讀/寫選擇端(串數(shù)據(jù)口),E(SCLK)是使能信號(串同步時鐘信號),PSB端口是串/并選擇端口,RST是我們熟悉而且常用的復(fù)位端口(低電平有效),BLA與BLK則是并不常用的背光電源正極端和負極端。LCD(12864)的引腳如圖2-6所示。圖2-6LCD12864引腳3.LCD(12864)操作時序12864控制可使用兩種時序,分別為并行操作時序和串行操作時序。(具體內(nèi)容太多,可參考12864數(shù)據(jù)手冊。)(五)硬件電路PCB板的繪制大二時由于自學(xué)過AltiumDesigner,又參加飛思卡爾智能車競賽繪制電路板,加上平時經(jīng)常繪制一些較為復(fù)雜的PCB,所以此系統(tǒng)所有硬件由AltiumDesigner設(shè)計完成。1.原理圖的繪制根據(jù)系統(tǒng)要求繪制的硬件原理圖如圖2-6所示。其中包括了單片機最小系統(tǒng)電路(復(fù)位、震蕩、程序下載接口等電路)、電源電路、12864顯示屏接口電路和led指示燈電路。圖2-7硬件電路原理圖2.PCB板的繪制根據(jù)系統(tǒng)要求及原理圖繪制的PCB圖如圖2-8所示。圖2-8硬件電路PCB圖3.實際硬件電路 由于資金原因,設(shè)計好的PCB并沒有送某寶賣家打印,實際電路板由洞洞板焊接而成,如圖2-9所示。圖2-9實際硬件圖三、軟件設(shè)計(一)軟件設(shè)計思路實現(xiàn)GPS接收模塊與單片機的通信是軟件設(shè)計的核心模塊,然后可以實現(xiàn)在液晶顯示屏上實時顯示當前的數(shù)據(jù)信息。整個編程是用keil軟件,采用C語言編程。功能清晰、調(diào)試方便等特點是軟件模塊化設(shè)計所具有的優(yōu)點,所以采用模塊化設(shè)計,GPS數(shù)據(jù)接收模塊、單片機模塊、LCD模塊和實時顯示模塊是軟件程序設(shè)計的四個組成部分。程序的設(shè)計思路是GPS模塊接收信息,然后向單片機發(fā)送固定格式的數(shù)據(jù),單片機通過串口接收數(shù)據(jù),并對數(shù)據(jù)進行解析,最終實現(xiàn)在LCD顯示屏上顯示時間、經(jīng)緯度和高度等信息。詳細源代碼見附錄。模塊化軟件設(shè)計1.GPS接收模塊設(shè)計首先在搜索衛(wèi)星時顯示“華水課程設(shè)計”、“江濤201412712”和“GPS顯示項目”,然后進行識別判斷GPS模塊收到的信息是否完成發(fā)送給單片機的操作,若有信息發(fā)送給單片機,但接收到的信息我們并不是全部需要,所以需要進行識別判斷相應(yīng)語句的操作,然后把需要的信息存入到GPRMC語句中。GPS接收模塊程序流程圖如圖3-1所示。結(jié)束結(jié)束圖3-1GPS接收模塊流程圖2.單片機模塊設(shè)計GPS模塊接收到數(shù)據(jù)信息后,需要把信息傳送到單片機,單片機經(jīng)過分析以及對數(shù)據(jù)信息進行篩選處理,然后送到液晶顯示屏實時顯示相應(yīng)的位置信息,具體主要通過兩個界面顯示。單片機模塊程序設(shè)計流程圖如圖3-2所示。圖3-2單片機模塊流程圖3.顯示模塊設(shè)計GPS模塊接收信息后,把信息傳送給單片機,單片機首先對數(shù)據(jù)進行篩選和處理等操作,然后就可以把信息送到液晶顯示模塊,就實現(xiàn)了在液晶顯示屏實時顯示當前位置我們所需的信息。液晶顯示屏主要分為兩個界面顯示,界面一實時顯示當前的日期、時間和經(jīng)緯度信息,界面二實時顯示當前所處位置的速度、航向、高度和海拔。顯示模塊程序設(shè)計流程圖如圖3-3所示。界面一顯示設(shè)置界面二顯示設(shè)置界面一顯示設(shè)置界面二顯示設(shè)置圖3-3顯示模塊流程圖四、系統(tǒng)調(diào)試與結(jié)果(一)硬件調(diào)試檢測電路設(shè)計和工藝設(shè)計等方面的故障是硬件調(diào)試的主要任務(wù)。1.檢查電路設(shè)計中所有元件的焊接以及引腳是否有故障。首先用萬用表逐個檢查焊點,目的是檢測是否出現(xiàn)短路和斷路故障。然后接入電源,觀察電源指示燈的工作狀態(tài),硬件電路加入電源指示燈可以方便的檢測硬件電路焊接是否正常。2.進行仿真操作。用單片機控制仿真操作,目的是用來檢查系統(tǒng)所涉及的接口是否達到設(shè)計的要求。把程序下載到單片機上。利用Keil軟件,將已經(jīng)完成的程序進行選擇生成頭文件的操作,然后把文件下載到STC89C52單片機。4.檢查單個模塊。通過下載51單片機自帶的程序到單片機,然后查看液晶顯示屏(LCD12864)的顯示情況判斷單個模塊是否工作正常。(二)軟件調(diào)試軟件調(diào)試時我們是使用Keil軟件進行仿真和調(diào)試,可以檢查程序是否出錯,而且同時可以糾正程序的錯誤,若硬件設(shè)計有問題,就可以檢查出硬件的故障然后我們就可以進行修改。因為程序設(shè)計是模塊化的,所以在調(diào)試時可以逐個模塊進行調(diào)試,若模塊調(diào)試結(jié)果正常,就可以進行整個程序的調(diào)試。尤其注意查看各個模塊的語法正確而參數(shù)設(shè)計不正確的情況。1.檢查已經(jīng)編譯完成的LCD(12864)液晶顯示模塊程序,查看液晶顯示屏能否正常顯示。2.檢查已經(jīng)編譯完成的GPS模塊程序,查看液晶顯示屏顯示的信息和預(yù)設(shè)結(jié)果的差距進而修改GPS接收模塊程序。3.運行整個程序,觀察液晶顯示屏的結(jié)果是否實時顯示當前位置我們所設(shè)想的信息,通過顯示效果進行相應(yīng)的軟硬件修改。(三)設(shè)計結(jié)果軟件調(diào)試初各個模塊工作正常,但一旦運行整個程序,液晶顯示屏在GPS搜索衛(wèi)星界面后出現(xiàn)亂碼,通過多次的調(diào)試和檢測,原來是晶振不符合要求,更換晶振后,再次進行調(diào)試和檢測,最終液晶顯示屏顯示了預(yù)想的結(jié)果,即實現(xiàn)了實時顯示當前位置的日期、時間、緯度、經(jīng)度等信息。調(diào)試結(jié)果初始化界面如圖4-1所示。圖4-1初始化界面把當前位置液晶顯示屏顯示的信息與谷歌地圖顯示的位置信息進行對比,日期、時間非常精確,但經(jīng)度與緯度出現(xiàn)了誤差。究其原因:一是由于本次設(shè)計所采用的GPS接收模塊精度并不高,不能進行精確定位接收;二是在實驗中不可避免會受障礙物、天氣等因素的干擾,試驗環(huán)境并不理想;三是在谷歌地圖中我們手動點選的位置沒有和GPS測量位置達到同步。但是誤差是在誤差范圍內(nèi),我們是可以接受的。所以本次設(shè)計是有意義的,可靠的。即實現(xiàn)了實時顯示當前位置的數(shù)據(jù)信息。界面一和二顯示結(jié)果如圖5-2,5-3所示。圖4-2界面一顯示結(jié)果圖4-3界面二顯示結(jié)果五、總結(jié)本次課程設(shè)計以單片機為控制核心,控制GPS接收模塊,GPS模塊把接收到的信息傳送給單片機,單片機把數(shù)據(jù)信息送到液晶顯示屏顯示,實現(xiàn)實時顯示當前位置的數(shù)據(jù)信息。通過完成本次的課程設(shè)計,做到了單片機的理論知識和實踐相結(jié)合。我們在初學(xué)習(xí)單片機時,曾把精力主要放在學(xué)習(xí)單片機的內(nèi)部結(jié)構(gòu)上??上攵?,學(xué)起來非常痛苦。實踐證明,這不是正確的方法,我們應(yīng)該把精力放在單片機的應(yīng)用上,在掌握應(yīng)用過程中我們發(fā)現(xiàn)也逐步掌握了單片機的內(nèi)部結(jié)構(gòu),也學(xué)會了充分地利用了單片機的資源。通過學(xué)習(xí)單片機知識,進而了解了計算機的原理和結(jié)構(gòu)。計算機的功能主要體現(xiàn)在控制功能上,比如現(xiàn)在流行的智能家居領(lǐng)域也是單片機控制功能的體現(xiàn)。經(jīng)過本次的單片機課程設(shè)計,不僅學(xué)習(xí)了GPS接收模塊的知識、單片機和液晶顯示模塊相關(guān)知識,也提高了自己的焊接能力,使自己明確了拿到一個課題自己應(yīng)該從哪著手去做,使自己有明確的系統(tǒng)設(shè)計思路,也懂得了當實驗結(jié)果不理想時,該如何去糾錯,如何去尋找問題,解決問題。參考文獻[1][2][38芯片的小型GPS船舶航跡儀的設(shè)計[J].艦船科學(xué)技術(shù),2014,(12):124-127.[4]杜俊,[J].甘肅科技,2016,(19):25-27.[5]張亮紅,劉文怡,[J].電子器件,2015,(5):1187-1191.導(dǎo)航裝置分析[J].中國新通信,2015,(18):115.[J].科技展望,2015,(18):157.[8[J].電子制作,2013,(19):57.[9]GuangLiLong.DesignofGPSbasedonSingleChipMicrocomputer[J].TransTech期刊,2012:2192-2195.附錄系統(tǒng)設(shè)計部分代碼://======================================================================//工程名稱: GPS模塊測試程序//功能描述: GPS模塊接收定位信息,在LCD上顯示//組成文件: main.cLCD.cGPS.cdisplay.c//程序分析: GPS模塊通過串口向單片機發(fā)送固定格式的數(shù)據(jù)// 單片機的串口接收到數(shù)據(jù)后,進行解析,在LCD上顯示// 定位信息包括:日期時間,經(jīng)緯度,速度,角度,高度 //======================================================================#include<reg52.h>#include<stdio.h>#include<string.h>#include"GPS.h"#include"LCD.h"#include"display.h"sbitled1=P2^3;//接收數(shù)據(jù)指示燈sbitled2=P2^4;//GPRMC數(shù)據(jù)有效指示燈sbitled3=P2^5;//GPGGA數(shù)據(jù)有效指示燈#defineREV_YESled1=0#defineREV_NOled1=1#defineRMC_YESled2=0#defineRMC_NOled2=1#defineGGA_YESled3=0#defineGGA_NOled3=1charxdatarev_buf[80];//接收緩存ucharxdatarev_start=0;//接收開始標志ucharxdatarev_stop=0;//接收停止標志ucharxdatagps_flag=0;//GPS處理標志ucharxdatachange_page=0;//換頁顯示標志ucharxdatanum=0;//externGPS_INFOGPS;//在display.c中定義,使用時要加externucharcodeinf[]={"華水江濤"};voidUart_Init(void){ TMOD=0x21; //00100001 PCON=0X00; TH0=0x3c; TL0=0xb0; TH1=0xfd; // TL1=0xfd; // TR1=1;//開啟定時器1 REN=1;//允許接收數(shù)據(jù) SM0=0; SM1=1; TI=0; RI=0; EA=1;//開總中斷 ES=1;//串口1中斷允許 ET0=1;//定時器1中斷允許}/****************************************主函數(shù) /****************************************/voidmain(void){ ucharerror_num=0; Uart_Init();//初始化串口 Lcd_Init(); //初始化LCD GPS_Init();//初始化GPS rev_stop=0; REV_NO; while(1) { if(1)//如果接收完一行 { TR0=1;//開啟定時器 REV_YES; if(change_page%2==1)//換頁 { if(GPS_GGA_Parse(rev_buf,&GPS))//解析GPGGA { GGA_YES; GPS_DisplayTwo();//顯示第二頁信息 error_num=0; gps_flag=0; rev_stop=0; REV_NO; } else { error_num++; if(error_num>=20)//如果數(shù)據(jù)無效超過20次 { GGA_NO; error_num=20; GPS_Init();//返回初始化 } gps_flag=0; rev_stop=0; REV_NO; } } else { if(GPS_RMC_Parse(rev_buf,&GPS))//解析GPRMC { RMC_YES; GPS_DisplayOne(); //顯示GPS第一頁信息 error_num=0; gps_flag=0; rev_stop=0; led1=1; } else { error_num++; if(error_num>=20)//如果數(shù)據(jù)無效超過20次 { RMC_NO; error_num=20; GPS_Init();//返回初始化 } gps_flag=0; rev_stop=0; REV_NO; } } } }}//定時器0服務(wù)函數(shù)voidtimer0(void)interrupt1{ staticucharcount=0; TH0=0x3c; TL0=0xb0; count++; if(count==200)//2*5秒鐘 { count=0; change_page++;//換頁 if(change_page==10) change_page=0; } }//串口接受中斷服務(wù)函數(shù)voidUart_Receive(void)interrupt4{ ucharch; ES=0; led1=~led1; if(RI) { ch=SBUF; if((ch=='$')&&(gps_flag==0))//如果收到字符'$',便開始接收 { rev_start=1; rev_stop=0; } if(rev_start==1)//標志位為1,開始接收 { rev_buf[num++]=ch;//字符存到數(shù)組中 if(ch=='\n')//如果接收到換行 { rev_buf[num]='\0'; rev_start=0; rev_stop=1; gps_flag=1; num=0; } } } RI=0; //RI清0,重新接收 ES=1; }===============================================================================#include"GPS.h"#include"LCD.h"#include<string.h>ucharcodeinit1[]={"華水課程設(shè)計"};ucharcodeinit2[]={"江濤201412712"};ucharcodeinit3[]={"GPS顯示項目"};ucharcodeinit4[]={"搜索定位衛(wèi)星"};staticucharGetComma(ucharnum,char*str);staticdoubleGet_Double_Number(char*s);staticfloatGet_Float_Number(char*s);staticvoidUTC2BTC(DATE_TIME*GPS);voidGPS_Init(void){ Lcd_DispLine(0,0,init1); Lcd_DispLine(1,0,init2); Lcd_DispLine(2,0,init3); Lcd_DispLine(3,0,init4);}intGPS_RMC_Parse(char*line,GPS_INFO*GPS){ ucharch,status,tmp; floatlati_cent_tmp,lati_second_tmp; floatlong_cent_tmp,long_second_tmp; floatspeed_tmp; char*buf=line; ch=buf[5]; status=buf[GetComma(2,buf)]; if(1)//如果第五個字符是C,($GPRMC) { if(status=='A')//如果數(shù)據(jù)有效,則分析 { GPS->NS=buf[GetComma(4,buf)]; GPS->EW=buf[GetComma(6,buf)]; GPS->latitude=Get_Double_Number(&buf[GetComma(3,buf)]); GPS->longitude=Get_Double_Number(&buf[GetComma(5,buf)]); GPS->latitude_Degree=(int)GPS->latitude/100;//分離緯度 lati_cent_tmp=(GPS->latitude-GPS->latitude_Degree*100); GPS->latitude_Cent=(int)lati_cent_tmp; lati_second_tmp=(lati_cent_tmp-GPS->latitude_Cent)*60; GPS->latitude_Second=(int)lati_second_tmp; GPS->longitude_Degree=(int)GPS->longitude/100; //分離經(jīng)度 long_cent_tmp=(GPS->longitude-GPS->longitude_Degree*100); GPS->longitude_Cent=(int)long_cent_tmp; long_second_tmp=(long_cent_tmp-GPS->longitude_Cent)*60; GPS->longitude_Second=(int)long_second_tmp; speed_tmp=Get_Float_Number(&buf[GetComma(7,buf)]);//速度(單位:海里/時) GPS->direction=Get_Float_Number(&buf[GetComma(8,buf)]);//角度 GPS->D.hour=(buf[7]-'0')*10+(buf[8]-'0'); //時間 GPS->D.minute=(buf[9]-'0')*10+(buf[10]-'0'); GPS->D.second=(buf[11]-'0')*10+(buf[12]-'0'); tmp=GetComma(9,buf); GPS->D.day=(buf[tmp+0]-'0')*10+(buf[tmp+1]-'0');//日期 GPS->D.month=(buf[tmp+2]-'0')*10+(buf[tmp+3]-'0'); GPS->D.year=(buf[tmp+4]-'0')*10+(buf[tmp+5]-'0')+2000; UTC2BTC(&GPS->D); return1; } } return0;}intGPS_GGA_Parse(char*line,GPS_INFO*GPS){ ucharch,status; char*buf=line; ch=buf[4]; status=buf[GetComma(2,buf)]; if(ch=='G')//$GPGGA { if(status!=',') { GPS->height_sea=Get_Float_Number(&buf[GetComma(9,buf)]); GPS->height_ground=Get_Float_Number(&buf[GetComma(11,buf)]); return1; } } return0;}staticfloatStr_To_Float(char*buf){ floatrev=0; floatdat; intinteger=1; char*str=buf; inti; while(*str!='\0') { switch(*str) { case'0': dat=0; break; case'1': dat=1; break; case'2': dat=2; break; case'3': dat=3; break; case'4': dat=4; break; case'5': dat=5; break; case'6': dat=6; break; case'7': dat=7; break; case'8': dat=8; break; case'9': dat=9; break; case'.': dat='.'; break; } if(dat=='.') { integer=0; i=1; str++; continue; } if(integer==1) { rev=rev*10+dat; } else { rev=rev+dat/(10*i); i=i*10; } str++; } returnrev;}staticfloatGet_Float_Number(char*s){ charbuf[10]; uchari; floatrev; i=GetComma(1,s); i=i-1; strncpy(buf,s,i); buf[i]=0; rev=Str_To_Float(buf); returnrev; }staticdoubleStr_To_Double(char*buf){ doublerev=0; doubledat; intinteger=1; char*str=buf; inti; while(*str!='\0') { switch(*str) { case'0': dat=0; break; case'1': dat=1; break; case'2': dat=2; break; case'3': dat=3; break; case'4': dat=4; break; case'5': dat=5; break; case'6': dat=6; break; case'7': dat=7; break; case'8': dat=8; break; case'9': dat=9; break; case'.': dat='.'; break; } if(dat=='.') { integer=0; i=1; str++; continue; } if(integer==1) { rev=rev*10+dat; } else {
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB3709T 039-2025泰山靈芝-羊肚菌周年輪作栽培技術(shù)規(guī)程
- 地基級配砂石換填施工方案
- 2025年高性能玻璃微珠項目合作計劃書
- 安徽混凝土冬季施工方案
- 2025年甘油(丙三醇)項目發(fā)展計劃
- 無人機巡檢與人工智能結(jié)合的未來發(fā)展
- 工業(yè)企業(yè)揮發(fā)性有機物治理設(shè)施建設(shè)要求
- 產(chǎn)業(yè)結(jié)構(gòu)調(diào)整與就業(yè)的關(guān)系
- 《彈性力學(xué)》模擬試卷及答案 二
- 人教A版高中數(shù)學(xué)必修二課時作業(yè)311傾斜角與斜率
- (2024)江西省公務(wù)員考試《行測》真題卷及答案解析
- CSB事故案例專欄丨BP德克薩斯州煉油廠火災(zāi)爆炸事故
- 社會管理和公共服務(wù)標準化試點實施細則范文(2篇)
- 《新時代大學(xué)生勞動教育與實踐》全套教學(xué)課件
- 煤礦班隊長培訓(xùn)
- 結(jié)直腸肛管疾病(共105張課件)
- 北京化工大學(xué)《電路與模擬電子技術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 如何發(fā)現(xiàn)腎臟病
- 第三單元 音樂與民族-說唱 課件-2024-2025學(xué)年高中音樂粵教花城版(2019)必修音樂鑒賞
- 數(shù)字藝術(shù)微噴印畫產(chǎn)業(yè)深度調(diào)研及未來發(fā)展現(xiàn)狀趨勢
- 2024-2030年中國菜籽油行業(yè)供需趨勢及投資潛力分析報告權(quán)威版
評論
0/150
提交評論