版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.⑦程序中的錯誤和警告總數(shù)包括在文件的結(jié)尾處。3.2GPS定位系統(tǒng)硬件設(shè)計3.2.1IAP15W4K58S4單片機IAP15W4K58S4是一種集上電復(fù)位、看門狗、電壓監(jiān)控和EEPROM四種功能于一身的可編程控制電路,有助于簡化應(yīng)用系統(tǒng)的設(shè)計?!?上電復(fù)位當(dāng)電力被加入時,內(nèi)部上電復(fù)位電路被激活,使得復(fù)位銷是有效的??杀苊庠谙到y(tǒng)中的微處理器在欠壓或不穩(wěn)定振蕩??器的情況下的情況下的信號。如果VCC超過設(shè)備的極限VTRIP,電路會釋放復(fù)位后200ms的延遲,讓系統(tǒng)開始工作?!?低電壓檢測當(dāng)工作時,IAP15W4K58S4上VCC電壓監(jiān)控,如果電源電壓下降到預(yù)先設(shè)定的最小電壓時,系統(tǒng)將執(zhí)行重置,這樣可以有效地解決上述微處理器斷電或斷開。后的RESET被確認(rèn),直到電壓下降到低于1VRESET信號將保持有效。而當(dāng)VCC返回并超過VTRIP為200ms,系統(tǒng)再次開始工作[17]?!?看門狗定時器看門狗定時器由WDI輸入監(jiān)視來監(jiān)視微處理器的激活。由于微處理器必須定時觸發(fā)CS/WDI引腳用于有效避免復(fù)位信號被激活和復(fù)位電路,使引腳CS/WDI必須在看門狗超時的終止是由高向低信號觸發(fā)。3.2.2按鍵模塊設(shè)計鍵盤是人機對話的紐帶,操作人員可以通過鍵盤輸入數(shù)據(jù)和命令。鍵盤可分為非編碼鍵盤和編碼鍵盤兩種,前者用軟件來識別輸入鍵和產(chǎn)生代碼,后者則用硬件來識別輸入鍵和產(chǎn)生代碼,按鍵模塊電路圖如圖3.1所示。3.2.3按鍵液晶顯示模塊51系列單片機與液晶模塊的接口方式有兩種,一種為直接訪問方式,一種為間接控制方式。直接訪問方式就是將液晶顯示模塊作為存儲器或I/O設(shè)備對待,直接掛在單片機總線上,單片機以訪問存儲器或I/O設(shè)備的方式操作液晶顯示模塊。間接控制是單片機通過軟件模擬液晶工作時序的方法實現(xiàn)與液晶顯示模塊的連接。本設(shè)計采用直接訪問方式,硬件連接圖如圖3.2所示:圖3.1按鍵模塊電路圖圖3.21602LCD連接電路圖3.2.4GPS模塊根據(jù)總體設(shè)計方案,基于單片機的GPS硬件設(shè)計主要由GPS信號接收部分〔SERFNEO-6GPS信號接收模塊、控制芯片IAP15W4K58S4單片機、顯示部分1602LCD液晶顯示模塊、電平轉(zhuǎn)換電路這幾部分構(gòu)成。GPS應(yīng)用結(jié)構(gòu)框圖如圖3.3所示。圖3.3GPS應(yīng)用結(jié)構(gòu)框圖3.2.5SERFNEO-6GPS信號接收模塊該設(shè)計中GPS信號接收模塊所選用的是SERFNEO-6GPS接收模塊,該模塊是由XX市瑟孚電子所生產(chǎn)。模塊具有12通道并行接收能力,所接收的GPS信號屬于民用頻段的L1信號〔1575.42MHz,在沒有SA干擾的情況下平均定位誤差為8米,動態(tài)速度誤差為0.1米/秒,信號靈敏度更是高達(dá)-150dBm,冷啟動定位時間為52秒,熱啟動時間為34秒,重新定位時間僅僅需要10秒。單片機串口TXD、RXD分別與NEO-6的RXA、TXA進(jìn)行連接,用于對NEO-6進(jìn)行設(shè)置后,采集NEO-6的GPS定位和時間信息。EN引腳為校準(zhǔn)器使能端,接單片機的P3.6,通過其選用校準(zhǔn)器〔上電或低電壓時啟用,在2.0V到VCC之間禁用。BOOT引腳為模塊啟動端口,與單片機的P3.7相連,VCC復(fù)位時模塊啟動進(jìn)入特殊調(diào)試模式。硬件連接圖如圖3.4所示。圖3.4NEO-6GPS信號接收電路圖3.2.6穩(wěn)壓電路模塊穩(wěn)壓電源電路如圖3.5所示。采用集成穩(wěn)壓器LM7805,C1、C2分別為輸入端和輸出端濾波電容;輸入電壓Vin引腳可直接接入電源,穩(wěn)壓器2腳接地,輸出電壓Vout引腳即可為整個系統(tǒng)提供穩(wěn)定的5V電壓。圖3.5LM7805穩(wěn)壓電源電路4基于單片機的GPS定位系統(tǒng)的實現(xiàn)4.1硬件部分的實現(xiàn)在電路焊接中,各個子模塊焊接完成的程度會直接影響整個電路的運行效果,電路焊接中,焊接的順序和方法都是極為重要的,所以在要注意以下幾點。1、呈圓焊接順序:元器件裝焊順序依次為:電阻器、電容器、二極管、三極管、集成電路、大功率管,其他元器件為先小后大。2、焊接時,要使焊點的周圍都有錫,將其牢牢焊住,防止虛焊。3、在焊接圓形的極性電容時〔一般容值較大,其電容器的引腳分長短長腳應(yīng)對應(yīng)"+"號所在的孔。4、芯片在安裝前最好先兩邊的針腳稍稍彎曲,使其有利于插入底座對應(yīng)的插口中。調(diào)試的過程如下?!?離線檢查使用萬用表,根據(jù)電子元件的電路圖是否連接正確,檢查數(shù)據(jù)總線,地址總線和控制總線是短路故障。需要特別保護(hù)芯片,先與潛在〔或電源插座進(jìn)行了檢查確定正確的插入測試芯片。檢查硬件電路是否正常,微控制器的時鐘電路,通過檢測ALE信號,以確定是否所說的晶體的正常操作?!?電源檢查加入電力之后,檢查每個插頭銷的電勢,并且通常檢查GND和VCC之間的電位,如果5V-4.7V是正常的。如果有一個高的壓力,在線仿真器的調(diào)試,會損壞模擬器,有時集成塊熱損傷的應(yīng)用系統(tǒng)。在線仿真必須由仿真,示波器裝置有所發(fā)展,等等。這些工具對于單片微機開發(fā)的最基本的工具。信號線是IAP15W4K58S4和外部裝置之間的鏈路,如果信號鏈路錯誤或失時,那么將導(dǎo)致外圍電路的讀寫錯誤。信號線IAP15W4K58S4單片機劃分為讀寫信號線,芯片選擇信號線,行時鐘信號,外部程序存儲器讀選通信號〔PSEN,地址鎖存信號〔ALE,復(fù)位信號和幾大類。大多數(shù)這些信號是脈沖信號,用于與示波器〔這里指的是一般示波器與傳統(tǒng)方法的脈沖信號是難以觀察到,必須采取一些措施觀察。應(yīng)該利用軟件編程的方法來實現(xiàn)。在焊接好電路板后就開始對電路部分進(jìn)行測試,首先在IAP15W4K58S4上寫了一個可讓液晶屏顯示數(shù)字的小程序,可是通電后發(fā)現(xiàn)液晶屏除了背光點亮〔通電后就會亮,根本沒有顯示。在檢查電路的過程中首先懷疑有可能電路連接有問題,使得單片機沒有工作,后用萬用表測量晶振兩腳,發(fā)現(xiàn)起振電壓正常,說明單片機正常工作。后又懷疑單片機P0口數(shù)據(jù)電纜和液晶屏沒有連接好,又用萬用表測試,結(jié)果都連接良好。經(jīng)過分析后覺得這個問題不應(yīng)該出在液晶屏和單片機上,而有可能是在一些輔助器件上發(fā)生了問題,果然經(jīng)過檢查后發(fā)現(xiàn)液晶模塊對比度調(diào)節(jié)電阻〔5K有問題,電阻始終很大且無法調(diào)小〔始終在1K以上,后更換一個同型號可變電阻,問題解決。4.2軟件的燒錄與調(diào)試當(dāng)電路板經(jīng)過電子工藝加工完成之后并排除基本的硬件故障以后,便進(jìn)入了系統(tǒng)軟件調(diào)試階段,調(diào)試大體可以分為以下幾步。<1>對各個模塊的程序進(jìn)行編譯、調(diào)試,逐個排除錯誤。<2>整體調(diào)試,結(jié)合程序流程圖與系統(tǒng)資源的分配,修改程序直到實現(xiàn)系統(tǒng)總體功能。
在調(diào)試軟件的時候用到了串口調(diào)試軟件輔助軟件的調(diào)試,并且通過電腦的串口成功的向單片機發(fā)送了模擬的GPS數(shù)據(jù),單片機也成功接收并且液晶屏也有了顯示,后為了進(jìn)一步的調(diào)試軟硬件便使用了GPS信號接收模塊向單片機發(fā)送地理數(shù)據(jù),結(jié)果這時液晶屏卻沒有了顯示,開始以為是使用串口調(diào)試軟件模擬GPS輸出數(shù)據(jù)格式有誤,所以造成了使用真正的GPS模塊接收數(shù)據(jù)時程序不能匹配。分析后覺得開始的判斷不對,就算模擬時格式不對也起碼應(yīng)該有顯示。之前在換用GPS模塊時對硬件有過一次改動,就是原先使用電腦串口模擬GPS向單片機發(fā)送數(shù)據(jù),單片機串口接口使用的是9針的母頭,其數(shù)據(jù)線接具體連接是串口的5號針腳連接MAX232芯片15腳〔接地,串口的3號針腳連接MAX232芯片8腳〔串口數(shù)據(jù)接收,串口的2號針腳連接MAX232芯片7腳〔串口數(shù)據(jù)發(fā)送。由于要使用GPS接收模塊[18],以為模塊的串口接口為母頭故需要將單片機接收串口接口改為公頭,在改的時候也按照了上述的連接方法,由于串口在更換公頭后接線方式應(yīng)該按照母頭接線方式鏡像連接,在實際連接時忽略了這點結(jié)果造成了不能接收串口數(shù)據(jù)的問題。經(jīng)重新連接后問題解決。4.3最終實現(xiàn)的功能<1>GPS模塊實現(xiàn)定位;<2>單片機通過串口控制GPS模塊,獲得定位數(shù)據(jù);<3>根據(jù)需要把定位數(shù)據(jù)存儲在EEPROM或在液晶顯示模塊進(jìn)行顯示;<4>鍵盤實現(xiàn)功能選擇;<5>看門狗電路確保系統(tǒng)的可靠性。結(jié)論經(jīng)歷過這次設(shè)計后,我不僅把所學(xué)的知識都復(fù)習(xí)了一遍,而且融會貫通,更加深了印象。在本系統(tǒng)是設(shè)計和論證選題中,查閱了大量的資料和文獻(xiàn),也了解到了許多的與本專業(yè)相關(guān)的信息,開拓了視野,對本專業(yè)的發(fā)展歷史和發(fā)展前景也有了一個大概的了解。在本設(shè)計過程中,遇到了許許多多奇葩的問題,更重要的是體會到了什么叫做眼高手低。思路很清晰,想的也很好,在具體實際操作時卻不知從何下手,這也就是知識匱乏的表現(xiàn)吧。由此我明白了,以前學(xué)的知識太過理論化了,缺少實際操作的鍛煉,沒有遇到真實的問題,缺少解決問題的思路。有些知識是積累的過程,只有遇到后才會懂得,在以后的工作和學(xué)習(xí)中都應(yīng)該虛心求教,認(rèn)真學(xué)習(xí),以此來提高自己各方面的能力和綜合素質(zhì)??傊?不管歷經(jīng)了多少的困難,最終還是完成了,成功的喜悅不予言表。此次的畢業(yè)設(shè)計是一個綜合性的課程設(shè)計,通過設(shè)計考查了我們對單片機課程的認(rèn)識和學(xué)習(xí)程度,從中認(rèn)識到自己學(xué)習(xí)中的不足,總結(jié)自己在學(xué)習(xí)中的缺陷,從而改進(jìn)以后的學(xué)習(xí)方法。而本次的畢業(yè)設(shè)計擺脫了這種傳統(tǒng)教育的束縛,不再是死板的學(xué)習(xí)課本知識,而是理論和實踐相結(jié)合的方式,用新的方式磨礪我們的動手能力。在設(shè)計過程中,充分發(fā)揮我的主觀能動性,提高分析問題和解決問題的能力。知識的學(xué)習(xí)過程,需要積累,然而厚積更需要薄發(fā),能把所學(xué)的知識應(yīng)用到實際中,能夠創(chuàng)造現(xiàn)實價值,這才是真正的學(xué)以致用,這次經(jīng)歷的最大收獲莫過于此。致謝本次設(shè)計完結(jié)后,首先我要感謝耐心細(xì)致、知識豐富,給我們很大幫助的李老師!在畢業(yè)設(shè)計期間,從設(shè)計題目的選擇,到資料的查找、原理的講解,再到后來畢業(yè)論文的結(jié)構(gòu)布局和報告內(nèi)容的修改都給予我們耐心的輔導(dǎo)。在這里我要向老師表示最衷心最誠摯地感謝!我們有很多基礎(chǔ)理論知識掌握不牢,一面幫我們查漏補缺,一面發(fā)揮我們的特長,讓我們的課題能夠順利有序地進(jìn)行到滿足要求。
其次,我還要感謝我們課題組一起奮斗的同學(xué),在共同的學(xué)習(xí)中,我們互幫互助,愉快地完成了畢業(yè)設(shè)計!
在整個畢業(yè)設(shè)計過程中李老師給我很多的引導(dǎo)和幫助,為我準(zhǔn)備學(xué)習(xí)資料,指導(dǎo)設(shè)計方案,講解相關(guān)知識。李老師嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵著我。從課題的選擇到項目的最終完成,李老師始終給予我細(xì)心的指導(dǎo)和大力的支持。四年來,李老師不僅在學(xué)業(yè)上為我授業(yè)解惑,同時還在生活中給我以無微不至的關(guān)懷,在此謹(jǐn)向李老師致以誠摯的謝意和崇高的敬意!最后,向在這三年期間幫助過、關(guān)心過我的老師和同學(xué)致以衷心地感謝,愿大家身體健康、工作愉快輕松、生活幸福XX!參考文獻(xiàn)[1]邱志和,王萬義.GPS原理與應(yīng)用[M].北京:電子工業(yè)出版社,2003,3.[2]劉基余.GPS衛(wèi)星導(dǎo)航定位與方法[M].北京:科學(xué)出版社,2003.[3]劉基余,李征航.全球定位系統(tǒng)原理及其應(yīng)用[M].北京:北京測繪出版社,1998.[4]張守信.GPS衛(wèi)星測量定位理論與應(yīng)用[M].北京:國防科技大學(xué)出版社,1996.[5]張小紅等.GPS定位技術(shù)在不同領(lǐng)域的應(yīng)用[J].XX:測繪信息與工程,2001:50-60.[6]洪大永.GPS全球定位系統(tǒng)技術(shù)及應(yīng)用[M].XX:XX大學(xué)出版社,1998.[7]鄒久朋.89C51單片機實用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2008,4.[8]李朝青.單片機原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000.[9]趙建玲.51系列單片機開發(fā)寶典[M].北京:電子工業(yè)出版社,2007.[10]Xicor.X5043/X5045CPUSupervisorwith4KSPIEEPROM[M].XicorInc,2001.[11]樓然苗,李光飛.51系列單片機設(shè)計實例[M].北京:北京航天大學(xué)出版社,2003.[12]李軍.51系列單片機高級實例開發(fā)指南[M].北京:北京航天大學(xué)出版社.2004,06.[13]黃凌.基于單片機的GPS信息處理系統(tǒng)[J].現(xiàn)代電子技術(shù),2007,<21>:60—61.[14]GSNEO-6Seriers
Operational
manual.Verison1.0.Serf
Company.2004.11.[15]
劉基余.GPS衛(wèi)星導(dǎo)航定位原理與方法[M].北京:科學(xué)出版社,2003.[16]
劉基余,李征航.全球定位系統(tǒng)原理及其應(yīng)用[M].北京:測繪出版社,1993.[17]王惠南,GPS導(dǎo)航原理與應(yīng)用[M].北京:科學(xué)出版社,2003.[18]Elliott
D.Kaplan.Understanding
GPS
Principles[M].北京:電子工業(yè)出版社,2002.[19]李宏,張家田等編著,液晶顯示器件應(yīng)用技術(shù)[M].上海:機械工業(yè)出版社,2004.[20]萬福君,潘松峰,單片微機原理系統(tǒng)設(shè)計與應(yīng)用[M].XX:中國科技大學(xué)出版社,2004.附錄一:總體電路原理圖附錄二:實物圖附錄三:源程序GPS_MAIN.C#include"LCD1602.h"#include"intrins.h"#include"instruct_init.H"sbitLED=P1^4;unsignedcharEx0_flag;unsignedcharEx1_flag;unsignedcharrcvbuf[600];//gps數(shù)據(jù)均為ASCII字符形式//ST_FIFO_BUFGPS_data={ 600, rcvbuf, 0, 0};voidmain<>{ unsignedcharcrval;//currentvalue unsignedcharidentifier;//驗證深度 unsignedcharWEI,XSD;//位小數(shù)點小數(shù)點深度 floatXSDSD;//小數(shù)點深度 floatDW_message[15];//定位信息1的存儲量 P0M0=0;P0M1=0; P1M0=0;P1M1=0; P2M0=0;P2M1=0; P3M0=0;P3M1=0; P4M0=0;P4M1=0; P5M0=0;P5M1=0;LCD1602_Init<>; //初始化LCD1602 LCD1602_PutStr<0,0,"ZZISTZYQGPS-D">; LCD1602_PutStr<1,1,"XH201151067">; for<DW_message[0]=0;DW_message[0]<200;DW_message[0]++>Delay10ms<>;//延時兩秒顯示信息 INT0_Init<>; INT1_Init<>; UART1_Init<>; UART2_Init<>; Delay<>; // LCD1602_PutChar<3,1,':'>;// LCD1602_PutChar<7,1,':'>; while<1> { while<GPS_data.Value_Data> { crval=FIFO_BUF_Read<&GPS_data>; uart1_send<crval>; if<crval=='$'> {identifier=1;continue;} if<identifier==1> if<crval=='G'> {identifier=2;continue;} else{identifier=0;continue;} if<identifier==2> if<crval=='P'> {identifier=3;continue;} else{identifier=0;continue;} if<identifier==3> if<crval=='G'> {identifier=4;continue;} else{identifier=0;continue;} if<identifier==4> if<crval=='G'> {identifier=5;continue;} else{identifier=0;continue;} if<identifier==5> if<crval=='A'> {identifier=6;LED=~LED;continue;} else{identifier=0;continue;} if<identifier==6> {if<crval==','>{WEI++;XSD=0;XSDSD=1;DW_message[WEI]=0.0;continue;} if<crval=='.'>{XSD=1;continue;} if<crval=='*'>{WEI=0;identifier=0;continue;}//結(jié)束本次數(shù)據(jù)解析 if<XSD==1>XSDSD/=10; if<XSDSD==1> DW_message[WEI]=DW_message[WEI]*10+crval; else{DW_message[WEI]+=crval/XSDSD;} } }//數(shù)據(jù)解析程序結(jié)尾 if<DW_message[6]==0>{LCD1602_Clear<>;LCD1602_PutStr<0,0,"NoP-M">;}//未定位顯示,沒有位置信息 else{LCD1602_PutStr<0,0,"JD-">;LCD1602_PutNum<4,0,DW_message[4]>; LCD1602_PutStr<0,0,"WD-">;LCD1602_PutNum<4,0,DW_message[2]>;} //if<Ex0_flag>LED=0; //elseLED=1; }}FIFO-BUF.H#ifndef fifo_buf_h_#define fifo_buf_h_typedef struct{ unsigned int Max_Date; //緩沖區(qū)長度 unsigned char *P_buf; //緩沖區(qū)首地址 unsigned int Value_Date;//有效數(shù)據(jù)長度 unsigned int Buf_Start; //起始數(shù)據(jù)距首地址距離}ST_FIFO_BUF;extern unsignedchar FIFO_BUF_Read<ST_FIFO_BUF*buf>;extern void FIFO_BUF_Write<ST_FIFO_BUF*buf,unsignedchartemp>;#endifFIFO-BUF.C/******************************************************環(huán)形FIFO緩沖區(qū),定義一個數(shù)組作為緩沖區(qū)用以下函數(shù)來實現(xiàn)環(huán)形存儲*****************************************************/#include "fifo_buf.h"http://#include"instruct_init.H"unsignedchar FIFO_BUF_Read<ST_FIFO_BUF*buf>{ unsignedchar *addr; addr=buf->P_buf+buf->Buf_Start; if<buf->Value_Date>0> { buf->Value_Date--; buf->Buf_Start++; if<buf->Buf_Start>=buf->Max_Date> buf->Buf_Start=0; } return *addr;}void FIFO_BUF_Write<ST_FIFO_BUF*buf,unsignedchartemp>{ unsignedchar*addr; if<buf->Value_Date<buf->Max_Date> { if<<buf->Value_Date+buf->Buf_Start>>=buf->Max_Date> addr=buf->P_buf+buf->Value_Date+buf->Buf_Start-buf->Max_Date; else addr=buf->P_buf+buf->Value_Date+buf->Buf_Start; *<addr>=temp; buf->Value_Date++; }}LCD1602.H#ifndef _LCD1602__H#define _LCD1602__H#include"stc\stc15f2k60s2.h"voidLCD1602_WriteCMD<unsignedcharcommand>; //寫命令指令voidLCD1602_WriteData<unsignedchardat>; //寫數(shù)據(jù)指令voidLCD1602_SetCursor<unsignedcharx,unsignedchary>; //設(shè)置顯示地址voidLCD1602_PutChar<unsignedx,unsignedchary,unsignedchardat>; //寫一個字符voidLCD1602_PutStr<unsignedcharx,unsignedchary,unsignedchar*s>; //寫一個字符串voidLCD1602_PutNum<unsignedcharx,unsignedchary,unsignedintintdat>; //寫無字符型整形數(shù)voidLCD1602_Init<void>; //初始化voidLCD1602_CheckBusy<void>; //LCD讀忙信號voidLCD1602_Clear<void>; //清屏voidDelay<void>; //18.432MHzsbitLCD1602_BLK=P1^2;//LCD背光,低電平使能#endifLCD1602.C#include"intrins.h"#include"LCD1602.h"http://#include"stcKU\debug\debug.h"#define MSB 0x80 //讀忙位#define LCDIO P0 //LCD1602的高四位接在P2口的高四位sbitLCD1602_RS=P1^7;//RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。sbitLCD1602_RW=P1^6;//RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。sbitLCD1602_EN=P1^5;//E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。#defineCMD_CLEAR 0x01voidDelay<void> //11.0592MHz{ unsignedchari,j; i=8;//i=8; j=40;//j=35; do { while<--j>; }while<--i>;}//LCD的初始化函數(shù)voidLCD1602_Init<void>{ LCD1602_WriteCMD<0x38>; //28設(shè)置四位數(shù)據(jù)線模式0c設(shè)置八位數(shù)據(jù)線模式 LCD1602_WriteCMD<0x0c>; //開顯示命原0c// LCD1602_WriteCMD<0x0f>; //設(shè)置首地址 LCD1602_WriteCMD<0x80>; LCD1602_Clear<>; //清屏 LCD1602_BLK=0;}//清屏函數(shù)voidLCD1602_Clear<void>{ LCD1602_WriteCMD<CMD_CLEAR>; //清屏命令}//檢測忙信號voidLCD1602_CheckBusy<void>{LCD1602_RS=0;LCD1602_RW=1;LCD1602_EN=1;_nop_<>;while<LCDIO&MSB>{LCD1602_EN=0;_nop_<>;LCD1602_EN=1;_nop_<>;} }//開始寫voidLCD1602_WriteStart<void>//EN端產(chǎn)生一個高電平脈沖,寫LCD{ LCD1602_EN=1; Delay<>; LCD1602_EN=0; }//寫命令voidLCD1602_WriteCMD<unsignedcharcommand>{ LCD1602_CheckBusy<>; LCDIO=command; LCD1602_RS=0; //RS0 寫命令 LCD1602_RW=0; //RW0 Delay<>; LCD1602_WriteStart<>;}//寫數(shù)據(jù)voidLCD1602_WriteData<unsignedchardat>{ LCD1602_CheckBusy<>; LCDIO=dat; LCD1602_RS=1; //RS1 寫數(shù)據(jù) LCD1602_RW=0; //RW0 Delay<>; LCD1602_WriteStart<>;}//設(shè)置顯示地址:X為橫軸<0-15>,Y為縱軸<0-1>voidLCD1602_SetCursor<unsignedcharx,unsignedchary>{ unsignedcharaddress; x&=0x0f; if<!y> address=0x80+x; else address=0xc0+x; LCD1602_WriteCMD<address>;}//寫一個字符:X為橫軸<0-15>,Y為縱軸<0-1>voidLCD1602_PutChar<unsignedx,unsignedchary,unsignedchardat>{ LCD1602_SetCursor<x,y>; LCD1602_WriteData<dat>;}//寫一個字符串:X為橫軸<0-15>,Y為縱軸<0-1>voidLCD1602_PutStr<unsignedcharx,unsignedchary,constunsignedchar*s>{ LCD1602_SetCursor<x,y>; while<*s> { LCD1602_WriteData<*s>; s++; }}//寫一個無字符整數(shù):X為橫軸<0-15>,Y為縱軸<0-1>voidLCD1602_PutNum<unsignedcharx,unsignedchary,unsignedintnum>{ unsignedchari=0,temp[5]; while<num/10||num%10> { temp[i]=num%10; num/=10; i++; } LCD1602_SetCursor<x,y>; while<i> { i--; LCD1602_WriteData<temp[i]+0x30>; }}INSTRUCT_INIT.H#ifndef _instruct_init__H#define _instruct_init__H#include"stc\stc15f2k60s2.h"#include"fifo12_buf.h"externunsignedcharEx0_flag;externunsignedcharEx1_flag;unsignedcharzjval;//中間值externST_FIFO_BUFGPS_data;externunsignedcharrcvbuf[600];voidDelay10ms<>
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 墻面涂料采購合同(2篇)
- 多渠道電商合作協(xié)議(2篇)
- 2024年跨國貿(mào)易貨物銷售條款制定及執(zhí)行合同一
- 2024月餅企業(yè)戰(zhàn)略規(guī)劃與實施合同3篇
- 2024版事業(yè)單位招聘
- 2024新款:虛擬現(xiàn)實旅游體驗服務(wù)合同
- 民工用工協(xié)議書
- 專業(yè)碼頭作業(yè)運輸協(xié)議協(xié)議指南版B版
- 2024年花崗巖采購與銷售補充協(xié)議條款版B版
- 1空氣占據(jù)空間嗎 說課稿-2024-2025學(xué)年三年級科學(xué)上冊蘇教版
- 【高等數(shù)學(xué)練習(xí)題】皖西學(xué)院專升本自考真題匯總(附答案解析)
- 高處作業(yè)安全技術(shù)交底-
- 工抵房協(xié)議模板
- 水利工程施工技術(shù)學(xué)習(xí)心得
- DB32-T 2665-2014機動車維修費用結(jié)算規(guī)范-(高清現(xiàn)行)
- 【部編版】2022年語文七年級上:作文能力提升—謀篇布局(含答案)
- 最新6000畝海帶筏式養(yǎng)殖投資建設(shè)項目可行性研究報告
- 稀土高鐵鋁合金電力電纜應(yīng)用參數(shù).
- 陳振明《公共管理學(xué)》(課堂PPT)
- 數(shù)據(jù)結(jié)構(gòu)-圖(1)
- 大學(xué)英語三級A級-翻譯——英譯漢(二)
評論
0/150
提交評論