版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
III基于zigbee的多功能顯示屏設(shè)計(jì)摘要隨著經(jīng)濟(jì)和科技的發(fā)展,人們現(xiàn)在的生活也因而進(jìn)入了信息量激增的時(shí)代。本設(shè)計(jì)全系統(tǒng)的設(shè)計(jì)基于在IAP15F2K61S2單片機(jī)處理器的平臺(tái)上進(jìn)行設(shè)計(jì),并突破固有的方式將LED點(diǎn)陣顯示屏移植到可以靈活控制的智能小車上,通過ZigBee無線模塊對(duì)數(shù)據(jù)的傳輸,實(shí)現(xiàn)了對(duì)智能小車的避障自停、移動(dòng)控制的基礎(chǔ)上,也實(shí)現(xiàn)了對(duì)LED點(diǎn)陣屏的各種應(yīng)用功能的設(shè)計(jì),包括上位機(jī)自定義輸入漢字字符可移動(dòng)展示功能、傳感器監(jiān)測(cè)溫濕度展示功能以及提取的系統(tǒng)實(shí)時(shí)時(shí)鐘顯示功能等。該設(shè)計(jì)可以適用于實(shí)時(shí)廣告顯示、實(shí)時(shí)時(shí)鐘顯示、溫濕度顯示等,操作簡(jiǎn)單,實(shí)用性強(qiáng)。本設(shè)計(jì)的設(shè)計(jì)過程整體包括以下這四個(gè)方面:第一,硬件開發(fā),通過AltiumDesigner軟件進(jìn)行工程的建立,通過對(duì)原理圖的仿真,以確保電路原理圖能夠達(dá)到預(yù)想的工作效果。第二,軟件開發(fā),主要完成對(duì)智能小車的驅(qū)動(dòng)、ZigBee的雙線收發(fā)數(shù)據(jù)處理以及對(duì)LED點(diǎn)陣屏的驅(qū)動(dòng)編寫以及上位機(jī)以及下位機(jī)的編寫。第三,硬件設(shè)計(jì),整個(gè)硬件系統(tǒng)的運(yùn)作是在IAP15單片機(jī)進(jìn)行功能選擇后的控制系統(tǒng)、智能小車L298N驅(qū)動(dòng)電路、智能小車和LED點(diǎn)陣屏供電電路以及各傳感器電路的設(shè)計(jì)。第四,軟件編寫,電腦上位機(jī)由CSharp語言進(jìn)行設(shè)計(jì)、在15單片機(jī)和上位機(jī)之間的雙線無線通信傳輸數(shù)據(jù)的實(shí)現(xiàn)、通過改變PWM波對(duì)智能小車的控制、LED點(diǎn)陣屏的顯示內(nèi)容更改以及對(duì)字體顏色變換的程序編寫。關(guān)鍵詞:?jiǎn)纹瑱C(jī)IAP15F2K61S2;LED點(diǎn)陣屏;ZigBee無線雙向傳輸ThescreenbasedonZigBeeAbstractChangethefutureofscienceandtechnology,withthedevelopmentofeconomyandscienceandtechnology,wenowlifeisthusenteredtheeraofinformationexplosion.ThedesignofthewholesystemdesignbasedonDesignofSCMinIAP15F2K61S2processorplatform,andwillbreakthroughtheinherentwayofLEDdotmatrixdisplayscreencanbetransplantedintotheflexiblecontroloftheintelligentcar,throughtheZigBeewirelessmodulefordatatransmission,torealizetheobstacleavoidanceofthesmartcarstop,mobilecontrol,onthebasisofalsoimplementsthefunctionofthevariousapplicationofLEDdotmatrixscreendesign,includingPCcustominputChinesecharactersportabledisplayfunction,temperatureandhumiditysensorstomonitordisplayfunctionandextractionsystemrealtimeclockdisplayfunction,etc.Thedesigncanbeappliedtoreal-timeadvertisingdisplay,realtimeclockdisplay,temperatureandhumidity,suchassimpleoperation,strongpracticability.Thisdesignmainlyincludesthefollowingaspects:first,thehardwaredevelopment,throughAltiumDesignersoftwareengineering,throughtheprinciplediagramofthesimulation,toensurethatthecircuitprinciplediagramworkcanachieveexpectedeffect.Second,softwaredevelopment,mainlytocompletethesmartcardriving,ZigBeedoubletosendandreceivedataprocessingaswellastotheLEDlatticescreendriverwritingandthewritingoftheuppermachineandlowermachine.Third,hardwaredesign,thewholehardwaresystemisthecoreofIAP15SCMsmallestsystem,smartcarL298Nmotordrivecircuit,smartcarsandLEDdotmatrixscreenpowersupplycircuitandthedesignofLEDdotmatrixscreendrivercircuit.Fourth,software,computerhostcomputerbyCSharplanguagedesign,implementation,two-waywirelesscommunicationdatatransmissionbetweenthe15MCUandPCbychangingthePWMwavecontrol,LEDdotmatrixscreendisplaycontentofthesmartcarandchangethefontcolorchangeofprogram.Keywords:singlechipmicrocomputerIAP15F2K61S2;TheLEDlatticescreen;ZigBeewirelesstwo-waytransmission目錄摘要 IAbstract II第一章緒論 11.1引言 11.2課題的目的和意義 11.3課題的國(guó)內(nèi)外研究現(xiàn)狀 21.4論文的內(nèi)容安排 3第二章設(shè)計(jì)相關(guān)技術(shù) 52.1STC15F2K61S2單片機(jī) 52.2PCB電路板制作與AltiumDesigner軟件 62.3LED點(diǎn)陣顯示屏技術(shù) 72.4Zigbee無線通信技術(shù) 82.5CSharp語言與MicrosoftVisualStudio2010軟件 10第三章系統(tǒng)的總體結(jié)構(gòu) 113.1系統(tǒng)總體設(shè)計(jì) 113.2系統(tǒng)的硬件設(shè)計(jì) 133.3系統(tǒng)的軟件設(shè)計(jì) 13第四章下位機(jī)設(shè)計(jì) 154.1下位機(jī)硬件設(shè)計(jì) 154.2下位機(jī)程序編寫 21第五章上位機(jī)界面設(shè)計(jì)與程序編寫 255.1上位機(jī)界面設(shè)計(jì) 255.2上位機(jī)程序設(shè)計(jì) 28第六章總結(jié)與發(fā)展 35參考文獻(xiàn) 36附錄 38致謝 44 PAGE19引言信息化時(shí)代的來臨,人們通過感官獲取信息的方式也逐漸變得多樣化,其中LED點(diǎn)陣屏是人們?nèi)粘I钪蝎@取信息不可或缺的重要來源之一。LED顯示屏分為單色顯示屏、雙基色顯示屏和全彩顯示屏,可根據(jù)應(yīng)用場(chǎng)合和所要求的顯示效果來選擇,如單色顯示屏一般用來播放簡(jiǎn)單文字,證券公司或者銀行等機(jī)構(gòu)用得比較多;雙基色顯示屏一般采用的是紅、綠兩種顏色,用來播放文字、簡(jiǎn)單圖片等,一般用在車站等場(chǎng)所;全彩顯示屏可以用來播放文字、圖片、視頻等,一般應(yīng)用于商業(yè)廣告、舞臺(tái)演出等[1]。純色點(diǎn)陣屏,各個(gè)發(fā)光點(diǎn)只是單純顯示單一光種的LED;雙色點(diǎn)陣屏,它每個(gè)發(fā)光點(diǎn)由兩種單色的彩色LED燈構(gòu)成;全彩點(diǎn)陣屏,和雙色點(diǎn)陣屏是同樣的結(jié)構(gòu)原理,它的每個(gè)像素點(diǎn)有三種純色的LED發(fā)光管,根據(jù)三基色原理,從而進(jìn)行各種顏色的組合顯示。LED顯示屏是由發(fā)光二極管點(diǎn)陣模塊組成的大屏幕顯示系統(tǒng),可以動(dòng)態(tài)顯示文字、圖像和視頻等信息,其使用壽命長(zhǎng),可靠性高,功耗低,亮度高,色彩豐富,已在工業(yè)、交通、商業(yè)廣告、信息發(fā)布、體育比賽等領(lǐng)域得到了廣泛的應(yīng)用[2]。以往人們隨處可以見到的LED點(diǎn)陣顯示屏,通常都是采取人工布線的方式,通過光纜傳輸?shù)葌鬏斆浇檫M(jìn)行顯示內(nèi)容的信息傳輸,這種方式它的布線花費(fèi)很大,也占用了很多土地資源,所以LED顯示屏的應(yīng)用受到了很多限制。人們現(xiàn)在是節(jié)約型社會(huì),而LED顯示屏最突出的優(yōu)點(diǎn)就在于節(jié)能、環(huán)保、使用壽命長(zhǎng),而且操作簡(jiǎn)單,符合當(dāng)代可持續(xù)發(fā)展的理念。本設(shè)計(jì)靈活的將以往固定不動(dòng)的LED點(diǎn)陣屏移植到智可以靈活控制的智能小車上,通過穩(wěn)固到智能小車上的ZigBee無線模塊進(jìn)行無線傳輸數(shù)據(jù),可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的雙線通信,從電腦上位機(jī)端判斷智能小車所處的狀態(tài)并進(jìn)行控制,傳感器模塊返回來的數(shù)據(jù),實(shí)時(shí)的顯示到上位機(jī)界面上,并能把上位機(jī)界面能夠顯示的內(nèi)容,發(fā)送給LED點(diǎn)陣屏顯示,既改變了以往LED顯示屏固定不動(dòng)的方式,還可以進(jìn)行適時(shí)適地的進(jìn)行信息傳播、廣告宣傳以及溫濕度顯示等功能。設(shè)計(jì)相關(guān)技術(shù)本作品主要涉及的技術(shù)有:STC15F2K61S2單片機(jī)、PCB電路板制作與AltiumDesigner軟件、點(diǎn)陣顯示屏顯示技術(shù)、ZigBee無線通信技術(shù)、CSharp語言與MicrosoftVisualStudio2010軟件。STC15F2K61S2單片機(jī)STC15F2K61S2是STC公司生產(chǎn)的單一時(shí)鐘/機(jī)器周期為1T的單片機(jī),是高速/高可靠/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),采用第8代加密技術(shù),加密性強(qiáng),并且指令代碼完全兼容傳統(tǒng)的8051單片機(jī)[6]。STC15單片機(jī)特點(diǎn)如表2.1,主控單片機(jī)引腳圖如圖2.1所示。表2.1STC15單片機(jī)特性圖2.1主控單片機(jī)管腳圖本設(shè)計(jì)中的單片機(jī)IO口分配主要如下,單片機(jī)的P0口用來驅(qū)動(dòng)智能小車的電機(jī)驅(qū)動(dòng)模塊;主控的P0.3口驅(qū)動(dòng)DHT11數(shù)字溫濕度模塊,對(duì)所處情況的溫濕度進(jìn)行實(shí)時(shí)的數(shù)據(jù)檢測(cè),并將檢測(cè)到的數(shù)據(jù)傳輸給MCU處理;單片機(jī)的P1.0口、P1.1口、P1.6口、P1.7口驅(qū)動(dòng)超聲波測(cè)距模塊在小車前進(jìn)方向進(jìn)行距離的檢測(cè),并將檢測(cè)到的數(shù)據(jù)傳輸給MCU處理。PCB電路板制作與AltiumDesigner軟件本設(shè)計(jì)的PCB電路圖制作是由AltiumDesigner軟件設(shè)計(jì)的。AltiumDesigner是原Protel軟件開發(fā)商Altium公司推出的一體化的電子產(chǎn)品開發(fā)系統(tǒng),軟件主要在Windows操作系統(tǒng)上運(yùn)行[7],為使用者在使用上帶來極大的方便,該軟件的主要功能如表2.2。表2.2AltiumDesigner軟件功能表這套軟件通過把原理圖設(shè)計(jì)、電路仿真、PCB繪制編輯、拓?fù)溥壿嬜詣?dòng)布線、信號(hào)完整性分析和設(shè)計(jì)輸出等技術(shù)的完美融合,為設(shè)計(jì)者提供了全新的設(shè)計(jì)解決方案。軟件主要實(shí)現(xiàn)以下幾方面功能:1.原理圖設(shè)計(jì);2.印刷電路板設(shè)計(jì);3.FPGA的開發(fā);4.嵌入式開發(fā);5.3DPCB設(shè)計(jì)。使用AltiumDesigner完成工程項(xiàng)目時(shí),主要運(yùn)用1、2兩項(xiàng),通過原理圖設(shè)計(jì)與印刷電路板設(shè)計(jì)可以完成對(duì)電路的基本設(shè)計(jì),而通過電路仿真等功能一方面可以明確系統(tǒng)的各項(xiàng)性能,另一方面可以通過仿真對(duì)所設(shè)計(jì)的電路進(jìn)行適當(dāng)?shù)恼{(diào)整,以實(shí)現(xiàn)電路的最優(yōu)生產(chǎn)。因此,掌握AltiumDesigner軟件的各項(xiàng)功能,并合理到運(yùn)用到電路設(shè)計(jì)當(dāng)中可以為電子電路的設(shè)計(jì)提供完美的解決方案。本設(shè)計(jì)使用AltiumDesigner軟件設(shè)計(jì)了不同模塊的硬件電路原理圖與PCB電路圖,通過對(duì)整個(gè)電路原理圖的設(shè)計(jì)并封裝各個(gè)組件,再生成到PCB原理圖設(shè)計(jì)中去,然后再對(duì)各個(gè)元件進(jìn)行合理的布局、布線,最終將設(shè)計(jì)好的PCB電路圖轉(zhuǎn)化為可以打印出來的Protel99se軟件版本,通過專用的腐蝕液最終將印好的PCB板制成可以工作的電路板。LED點(diǎn)陣顯示屏技術(shù)發(fā)光二極管(lightemittingdiode,LED),是一種把電能變成光能的特種器件,當(dāng)電流通過它的時(shí)候,可以產(chǎn)生可見光,LED顯示屏是利用發(fā)光二極管點(diǎn)陣模塊或像素單元組成的平面式顯示屏幕[8]。當(dāng)適合的電流流過發(fā)光二極管的時(shí)候,就能夠產(chǎn)生人們?nèi)庋劭梢钥吹降目梢姽猓c(diǎn)陣模塊的結(jié)構(gòu)很大程度的省略了不必要的連線。人們經(jīng)常使用的N*MLED點(diǎn)陣顯示屏有:8*8像素LED點(diǎn)陣模塊、16*16的LED點(diǎn)陣模塊等,點(diǎn)陣模塊可以分為共陰極和共陽極兩種連接類型,連接方式如圖2.2。本設(shè)計(jì)中用于顯示的是共陽極連接方式,尺寸為16*64LED點(diǎn)陣屏,就是把多個(gè)共陽極連接的尺寸大小為8*8點(diǎn)陣模塊,并在行驅(qū)動(dòng)模塊和列驅(qū)動(dòng)模塊的共同驅(qū)動(dòng)下工作。圖2.2LED共陰極和共陽極使用點(diǎn)陣模塊顯示構(gòu)成人們所見到的圖形或文字以及各種想要的效果,它的可操作性是非常靈活的,人們?cè)O(shè)計(jì)者只要了解它的工作原理,就可以根據(jù)人們想要的顯示效果做出任意的組合形式和各種不同的變化,人們需要根據(jù)行驅(qū)動(dòng)芯片以及列驅(qū)動(dòng)芯片的工作原理,通過編程,編寫好可以工作的的數(shù)據(jù)文件,LED點(diǎn)陣屏根據(jù)編寫好的程序顯示出人們想要得到的比較滿意的結(jié)果。如圖2.4所示,掃描驅(qū)動(dòng)電路一般采用多行的同名列共用一套驅(qū)動(dòng)器,行驅(qū)動(dòng)器一行的行線連到電源的一端,列驅(qū)動(dòng)器一列的列線連到電源的另一端,當(dāng)行驅(qū)動(dòng)選中第i行,列驅(qū)動(dòng)選中第,J列時(shí),對(duì)應(yīng)的LED器件根據(jù)列驅(qū)動(dòng)器的要求進(jìn)行顯示??刂齐娐坟?fù)責(zé)有序地選通各行,在選通每一行之前還要把該行各列的數(shù)據(jù)準(zhǔn)備好,一旦該行選通,這一行線上的器件就可以根據(jù)列數(shù)據(jù)進(jìn)行顯示[9]。因?yàn)長(zhǎng)ED點(diǎn)陣屏電路使用模塊不同,點(diǎn)陣屏的設(shè)計(jì)思路也是有差別的,LED點(diǎn)陣屏的設(shè)計(jì)方法包括靜態(tài)掃描方式和動(dòng)態(tài)掃描方式兩大類。因?yàn)長(zhǎng)ED點(diǎn)陣屏使用的發(fā)光二極管,需要對(duì)發(fā)光點(diǎn)的數(shù)目一起控制,屏體的主要部分是顯示點(diǎn)陣,以及行列驅(qū)動(dòng)電路。顯示點(diǎn)陣多采用64x16單色或雙色顯示單元拼接而成由于LED發(fā)光器件數(shù)目較多,不宜使用靜態(tài)驅(qū)動(dòng)電路,通常采用掃描驅(qū)動(dòng)方式[10]。圖2.4點(diǎn)陣內(nèi)部結(jié)構(gòu)圖該設(shè)計(jì)所用LED點(diǎn)陣屏摒棄了市面上將控制單元單片機(jī)部分和顯示單元顯示屏相互分離的做法,將控制單元和顯示單元合二為一,具有體積小布線簡(jiǎn)單等優(yōu)點(diǎn)。本設(shè)計(jì)使用的LED點(diǎn)陣屏在點(diǎn)陣系統(tǒng)中嵌入自帶的GB2313字庫,應(yīng)用者在使用時(shí)可以直接上手操作,使用非常的方便。LED點(diǎn)陣顯示屏使用的是RS485通信接口,RS485這種網(wǎng)絡(luò)結(jié)構(gòu)它的特點(diǎn)是接口連接簡(jiǎn)單方便,非常的容易操作等優(yōu)點(diǎn),在很多工業(yè)系統(tǒng)中都可以使用。使用485接口時(shí),點(diǎn)陣屏一條主線上最多能夠級(jí)聯(lián)200多個(gè)8*8點(diǎn)陣屏。LED點(diǎn)陣屏至多能夠顯示256個(gè)可以相同也可以不同的字符,也就是在顯示屏上至多能夠顯示256個(gè)ASCII字符,也可以說最多能夠顯示128個(gè)漢字。當(dāng)顯示內(nèi)容超過8個(gè)字符時(shí),顯示內(nèi)容會(huì)采用滾屏方式顯示。當(dāng)LED點(diǎn)陣屏將設(shè)計(jì)者所設(shè)定的內(nèi)容全部顯示完成之后,LED點(diǎn)陣屏將會(huì)自覺循環(huán)顯示之前所顯示的內(nèi)容,使用非常的人性化。Zigbee無線通信技術(shù)ZigBee是一種短距離、低功耗、低成本的無線通信技術(shù),ZigBee是IEEE802.15.4協(xié)議的代名詞,ZigBee的稱呼來自于自然界中蜜蜂飛行時(shí)候的八字舞,由于蜜蜂(bee)是靠飛行和“嗡嗡”(zig)聲地抖動(dòng)翅膀的“舞蹈”來與其它的蜜蜂進(jìn)行信息的交流,換言之蜜蜂是依靠這樣的溝通方式構(gòu)成了蜜蜂群體中的通信網(wǎng)絡(luò)[11]。ZigBee技術(shù)它相對(duì)于藍(lán)牙和WiFi在面向自動(dòng)化生產(chǎn)控制中有著更加突出的優(yōu)點(diǎn),從而使得ZigBee技術(shù)在多種行業(yè)里邊的自動(dòng)化級(jí)別的控制以及在一些需要遠(yuǎn)程控制的領(lǐng)域,ZigBee技術(shù)都能夠很好的發(fā)揮出它獨(dú)有的特點(diǎn)。ZigBee無線通信技術(shù)它的具有很多良好的特點(diǎn),它的特點(diǎn)基本可以概括如下:1.工作能耗低:ZigBee模塊在待機(jī)狀態(tài)下,僅僅使用倆塊常見的5號(hào)電池,就可以支持一個(gè)ZigBee節(jié)點(diǎn)持續(xù)工作半年到倆年之久,還有可能會(huì)更長(zhǎng)。ZigBee使用成本很低:ZigBee協(xié)議被重新修改之后,減低了成本,也減低了對(duì)對(duì)控制器的依賴要求。低速率數(shù)據(jù)傳輸:ZigBee無線通信的速率為250kbps,達(dá)到了低速率發(fā)送與接收信息數(shù)據(jù)的要求。ZigBee技術(shù)近距離傳輸:相互毗鄰的倆個(gè)ZigBee節(jié)點(diǎn),它們的數(shù)據(jù)有效傳輸范圍為10-100m之間。ZigBee技術(shù)很短時(shí)延:ZigBee模塊收到數(shù)據(jù)后的響應(yīng)很快,大多只要很短的15ms就可以從休眠狀態(tài)轉(zhuǎn)換到工作狀態(tài)。ZigBee技術(shù)高容量:ZigBee技術(shù)它能夠工作不同的網(wǎng)絡(luò)形式下,能夠在不同的組網(wǎng)形式下正常傳輸數(shù)據(jù)。在眾多的不同規(guī)范中,IEEE802.15.4標(biāo)準(zhǔn)是最初專為低速率個(gè)人無線區(qū)域網(wǎng)(LR-WPANs)提供服務(wù)協(xié)議,在下一代無線網(wǎng)絡(luò)技術(shù)中最有發(fā)展前景[12]。在人們平時(shí)能夠接觸到的ZigBee、藍(lán)牙、wifi通信標(biāo)準(zhǔn)中,ZigBee協(xié)議標(biāo)準(zhǔn)的要求相對(duì)比較低。ZigBee技術(shù)將主要嵌入消費(fèi)性電子設(shè)備、家庭和建筑物自動(dòng)化設(shè)備、工業(yè)控制裝置、電腦外設(shè)、醫(yī)用傳感器、玩具和游戲機(jī)等設(shè)備中,支持小范圍內(nèi)基于無線通信的控制和自動(dòng)化[13]。人們?cè)谌粘I钪幸扇o線網(wǎng)絡(luò)通信時(shí),當(dāng)符合下列條件中的至少一條時(shí),ZigBee技術(shù)首先被采用:(1)需要通信的距離不是很遠(yuǎn);(2)通信中沒有太大的數(shù)據(jù)量進(jìn)行傳輸;(3)不需要一直更換電池,用來維持系統(tǒng)的通信;(4)需要使用通信的設(shè)備不會(huì)太大,只能使用干電池或者數(shù)據(jù)線提供電源動(dòng)力;(5)使用干電池提供電力,不需要一直供電工作的情況下;(6)當(dāng)使用無線通信的范圍很大時(shí),通常采取ZigBee組網(wǎng)形式來完成無線網(wǎng)絡(luò)的數(shù)據(jù)傳輸。CSharp語言與MicrosoftVisualStudio2010軟件VisualStudio是微軟公司推出的開發(fā)環(huán)境,是目前最流行的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境,其集成開發(fā)環(huán)境(IDE)的界面被重新設(shè)計(jì)和組織,變得更加簡(jiǎn)單明了,VisualStudio2010同時(shí)帶來了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持開發(fā)面向Windows7的應(yīng)用程序,除了MicrosoftSQLServer,它還支持IBMDB2和Oracle數(shù)據(jù)庫[14]。一些用來進(jìn)行設(shè)計(jì)的語言中,C++是設(shè)計(jì)者們最優(yōu)先選擇的,隨著人們的設(shè)計(jì)工程越來越龐大,越來越復(fù)雜,慢慢的在C++的使用上就出現(xiàn)了弊端,于是實(shí)用性更加好的C-sharp語言被發(fā)明。C-sharp語言還可以稱為C#語言,它在使用中設(shè)計(jì)起來非常的簡(jiǎn)單、方便,具有很高的人性化設(shè)計(jì)。C-sharp語言的特點(diǎn)如表表2.2。表2.2C-sharp語言的特點(diǎn)系統(tǒng)的總體結(jié)構(gòu)系統(tǒng)總體設(shè)計(jì)本設(shè)計(jì)整體由電腦PC上位機(jī)、ZigBee無線傳輸模塊、自帶字庫的16*64像素LED雙色點(diǎn)陣顯示屏、智能小車L298N芯片驅(qū)動(dòng)電路、給整個(gè)系統(tǒng)供電的電源供電部分以及各個(gè)起到不同作用的傳感器組合而成,如圖3.1所示,電腦上位機(jī)的功能包括設(shè)置ZigBee無線的連接參數(shù)、控制智能小車的移動(dòng)、從電腦上位機(jī)界面上自由更改LED點(diǎn)陣顯示屏的內(nèi)容顯示方式,包括漢字的向左移動(dòng)顯示、字體的紅綠橙顏色的改變以及想要顯示的漢字內(nèi)容和時(shí)間日期的疊加效果顯示,還有LED的顯示內(nèi)容,包括自定義的漢字顯示、提取電腦系統(tǒng)的時(shí)間日期顯示以及檢測(cè)到的數(shù)據(jù)經(jīng)由單片機(jī)處理完成后發(fā)送回來在界面上顯示后再發(fā)給點(diǎn)陣屏進(jìn)行顯示。圖3.1基于ZigBee的多功能顯示屏流程圖系統(tǒng)整體的設(shè)計(jì)流程是:第一步先把開關(guān)打開,這時(shí)可以看到LED點(diǎn)陣顯示屏模塊初始顯示開機(jī)正常,然后顯示內(nèi)容馬上變換成歡迎使用,這是提前在程序里寫好的數(shù)據(jù),點(diǎn)陣屏進(jìn)入到固定待機(jī)顯示的狀態(tài),然后電腦端的和小車上的ZigBee模塊都進(jìn)入到工作狀態(tài),它們之間建立點(diǎn)對(duì)點(diǎn)的通信連接,此時(shí)就可以根據(jù)自己的想法,對(duì)小車的控制和顯示的效果通過電腦上位機(jī)就可以對(duì)整個(gè)終端系統(tǒng)做出完整的功能選擇與操作。點(diǎn)陣屏功能選擇后所顯示的內(nèi)容,通過PC界面控制中的上位機(jī)LED點(diǎn)陣顯示部分來完成具體的操作選擇,這些主要功能包括輸入的漢字字符顯示、提取的系統(tǒng)日期時(shí)間顯示、溫濕度傳感器發(fā)送給上位機(jī)的溫濕度顯示,當(dāng)需要顯示相應(yīng)的功能時(shí),我們只需要點(diǎn)到相應(yīng)的按鈕即可完成功能的選擇。然后再通過PC上位機(jī)見面中的小車操作部分采取相應(yīng)的功能,來完成終端車的功能選擇操作。當(dāng)小車在想要的移動(dòng)效果的過程中,LED顯示屏任然在顯示著設(shè)定好的顯示內(nèi)容,從而更加人性化的展示想要的顯示效果,并且在小車的移動(dòng)過程中可以隨意更改顯示的內(nèi)容和字體顏色等效果。當(dāng)小車的超聲波模塊和紅外模塊檢測(cè)到小車前進(jìn)方向有擋住前進(jìn)的阻礙物時(shí),傳感器模塊便會(huì)將檢測(cè)到的數(shù)據(jù),通過單片機(jī)的TXD串口傳輸給終端部分的ZigBee模塊,進(jìn)而把不同的傳感器數(shù)據(jù)迅速傳輸給與PC用數(shù)據(jù)線連接的ZigBee模塊,電腦上位機(jī)界面上的小車控制模塊中的停止按鈕就會(huì)自動(dòng)變紅,停車信號(hào)通過上位機(jī)端ZigBee模塊將停車信號(hào)快速發(fā)送給終端的ZigBee模塊,單片機(jī)將數(shù)據(jù)處理后,實(shí)現(xiàn)小車的自動(dòng)停止移動(dòng)。本設(shè)計(jì)采取STC15F2K61S2單片機(jī)作為核心的CPU處理器,對(duì)整個(gè)設(shè)計(jì)方案采取分模塊化的設(shè)計(jì),運(yùn)用多種可以使設(shè)計(jì)更加貼近生活的傳感器模塊,組成了有各種不同的應(yīng)用檢測(cè)電路?;赯igBee的多功能顯示屏的特點(diǎn)包括:(1)ZigBee雙線傳輸數(shù)據(jù):各傳感器模塊將將檢測(cè)到的數(shù)據(jù)通過ZigBee模塊傳輸給上位機(jī),上位機(jī)進(jìn)行相應(yīng)的控制之后,控制信號(hào)和顯示內(nèi)容再經(jīng)ZigBee模塊傳輸給相應(yīng)的模塊;(2)信息的宣傳廣播:在上位機(jī)文字輸入部分任意更改顯示內(nèi)容;(3)溫濕度數(shù)據(jù)顯示:上位機(jī)界面實(shí)時(shí)顯示測(cè)量數(shù)據(jù),并可以將數(shù)據(jù)選擇在點(diǎn)陣屏上顯示出來;(4)測(cè)量距離:上位機(jī)進(jìn)行顯示實(shí)時(shí)的距離,當(dāng)障礙物在設(shè)定的危險(xiǎn)范圍內(nèi),小車自動(dòng)停止,小車控制部分特定按鍵變紅色,停止按鍵變成綠色;(5)使用電腦上位機(jī)進(jìn)行數(shù)據(jù)顯示和控制,更加直觀的觀察數(shù)據(jù)并作出相應(yīng)的操作。系統(tǒng)的硬件設(shè)計(jì)該設(shè)計(jì)的下位機(jī)硬件電路包括:整個(gè)硬件系統(tǒng)的核心STC15單片機(jī)最小系統(tǒng)控制部分、給整個(gè)系統(tǒng)供電的7.4V電源經(jīng)過降壓電路降壓后輸出5V電源供電系統(tǒng)、使用RS485通信的自帶字庫的LED點(diǎn)陣屏、L298N芯片控制直流電機(jī)部分、使用IEEE802.15.4協(xié)議標(biāo)準(zhǔn)的倆塊CC2530ZigBee模塊,可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)之間的數(shù)據(jù)傳輸,還有各個(gè)不同的傳感器檢測(cè)部分,共同搭建而成整個(gè)硬件系統(tǒng)。系統(tǒng)硬件組成框圖如圖3.2。圖3.2系統(tǒng)硬件組成框圖整個(gè)系統(tǒng)最重要的控制芯片就是STC15處理器,它決定著整個(gè)系統(tǒng)的運(yùn)行,控制命令在STC15處理器內(nèi)部分析處理后,處理好的數(shù)據(jù)由IO口輸出。單片機(jī)將電機(jī)旋轉(zhuǎn)控制信號(hào)經(jīng)IO口傳輸給L298N之后,判斷所給電平信號(hào)為高電平還是低電平,從而更進(jìn)一步的進(jìn)行小車的移動(dòng)控制,通過在電腦上位機(jī)端更改想要的顯示方式,通過ZigBee無線模塊點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸,并將數(shù)據(jù)發(fā)送到RS485通信接口,在LED點(diǎn)陣顯示屏自帶的字庫翻譯之后,就會(huì)顯示人們想要顯示的內(nèi)容。系統(tǒng)的軟件設(shè)計(jì)電腦上位機(jī)設(shè)計(jì)是在MicrosoftVisualStudio平臺(tái)下完成設(shè)計(jì),整體的設(shè)計(jì)操作簡(jiǎn)單、實(shí)用。為了能夠更好地增加用戶的體驗(yàn)感,在上位機(jī)的功能設(shè)計(jì)中,添加了ZigBee無線通信串口設(shè)置、智能車控制指令發(fā)送、點(diǎn)陣屏顯示方式功能選擇以及顯示內(nèi)容的更改和顏色變換。圖3.3PC上位機(jī)設(shè)計(jì)流程圖如圖3.3所示,首先要在串口設(shè)置處選擇打開串口,選擇對(duì)應(yīng)的端口進(jìn)行連接,判斷ZigBee點(diǎn)對(duì)點(diǎn)通信是否連接,如果已經(jīng)連接則允許發(fā)送數(shù)據(jù),否則不通過,連接建立好之后,軟件可以通過ZigBee模塊發(fā)送數(shù)據(jù)控制點(diǎn)陣的漢字移動(dòng)顯示、字體顏色改變、日期時(shí)間顯示以及溫濕度顯示等功能。下位機(jī)設(shè)計(jì)下位機(jī)設(shè)計(jì)所實(shí)現(xiàn)的主要功能是通過單片機(jī)最小系統(tǒng)對(duì)當(dāng)前環(huán)境中的溫度數(shù)據(jù)、濕度數(shù)據(jù)以及距離數(shù)據(jù)進(jìn)行實(shí)時(shí)準(zhǔn)確的檢測(cè),單片機(jī)的TXD與RXD通信串口和ZigBee模塊的對(duì)應(yīng)的TXD、RXD串口用導(dǎo)線連接,從而完成數(shù)據(jù)的傳輸,數(shù)據(jù)經(jīng)過ZigBee傳輸至上位機(jī)進(jìn)行處理、顯示和存儲(chǔ)。下位機(jī)主要完成下位機(jī)系統(tǒng)硬件設(shè)計(jì)與單片機(jī)程序設(shè)計(jì),下面進(jìn)行詳細(xì)介紹。下位機(jī)硬件設(shè)計(jì)下位機(jī)硬件是在AltiumDesigner平臺(tái)下完成,全體硬件電路主要由以下幾部分組成:STC15F2K61S2最小系統(tǒng)電路;小車的驅(qū)動(dòng)電路;Zigbee模塊3.3V供電電路;7.4V電源經(jīng)降壓芯片轉(zhuǎn)成5V供電系統(tǒng)以及各個(gè)使傳感器工作在正常狀態(tài)下的電路。系統(tǒng)硬件原理圖如圖4.1。圖4.1系統(tǒng)硬件原理圖L298N電機(jī)驅(qū)動(dòng)電路L298N是SGS公司的產(chǎn)品,其內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V,2A以下的電機(jī)[15]。1腳和15腳可單獨(dú)引出連接電流采樣電阻器,形成電流傳號(hào),L298可驅(qū)動(dòng)2個(gè)電機(jī),OUT1,OUT2和OUT3,OUT4之問分別接2個(gè)電動(dòng)機(jī),5、7、10、12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn),ENA,ENB接控制使能端,控制電機(jī)的停轉(zhuǎn)[16]。STC15單片機(jī)使用內(nèi)部定時(shí)器,從設(shè)定好的串口發(fā)送特定的PWM控制脈沖調(diào)速信號(hào),完成了對(duì)智能小車直流電機(jī)的有效控制。L298N引腳排列如圖4.2所示。圖4.2L298N芯片引腳圖圖4.3電機(jī)驅(qū)動(dòng)原理圖芯片控制端的電平高低是通過IAP15單片機(jī)的I/O口輸入決定的,根據(jù)L298N芯片的輸入輸出關(guān)系,表4.1是電機(jī)功能邏輯圖。對(duì)電機(jī)輸入相應(yīng)的控制電平,就可以實(shí)現(xiàn)對(duì)直流電機(jī)的驅(qū)動(dòng)。L298N驅(qū)動(dòng)原理圖如圖4.3。表4.1電機(jī)功能邏輯圖紅外避障電路紅外傳感器模塊是現(xiàn)代在各種避障應(yīng)用中性價(jià)比較高的一款產(chǎn)品,它可以一邊發(fā)送特定頻率的紅外線,一邊接收,主要靠紅外發(fā)射管與接收管來完成這個(gè)動(dòng)作,發(fā)射管在發(fā)射出紅外線后,當(dāng)障礙物(反射面)在檢測(cè)方向4-10米范圍內(nèi)遇到,紅外線會(huì)迅速反射回來并被接收,它的精確度可達(dá)1m,模塊尺寸較小,易于安裝,使用非常方便,但是缺點(diǎn)在于易受周圍環(huán)境干擾而且在紅外檢測(cè)前方距離不是很長(zhǎng),從而影響避障效果。圖4.3紅外避障原理圖4.4紅外避障流程圖超聲波測(cè)距電路超聲波傳感器是利用超聲波的特性研制而成的傳感器,超聲波是一種振動(dòng)頻率高于聲波的機(jī)械波,由換能晶片在電壓的激勵(lì)下發(fā)生振動(dòng)產(chǎn)生的,它具有頻率高、波長(zhǎng)短、繞射現(xiàn)象小,特別是方向性好、能夠成為射線而定向傳播等特點(diǎn)[17]。超聲波是一種穿透性相當(dāng)強(qiáng)的波,在氣體中它可以正常工作,在固液體中超聲波一般也能夠穿透。波測(cè)超聲波傳感器在應(yīng)用領(lǐng)域的代表作是1997年美國(guó)的NASA火星探測(cè)車上運(yùn)用的超聲障礙物檢測(cè)設(shè)備[18]。我們可以指出的意義,在理論的固體中的應(yīng)用,超聲波像光的反射原理進(jìn)行工作[19]。超聲波工作時(shí),當(dāng)前方出現(xiàn)可以聲波穿不過去的物體時(shí),此時(shí)超聲波會(huì)在固體的表面發(fā)生反射,反射回來的聲波被接收,傳送給與它相連接的單片機(jī)進(jìn)行數(shù)據(jù)處理,超聲波的檢測(cè)靈敏度很高,所以在工業(yè)生產(chǎn)控制領(lǐng)域、軍事防御等方面,超聲波被經(jīng)常用來發(fā)揮不可替代的角色。超聲波模塊的性能非常穩(wěn)定,但是不可以在戶外惡劣的環(huán)境下工作,不可以在比較炎熱的環(huán)境里工作,并且工作在有很大壓強(qiáng)的環(huán)境下時(shí),超聲波模塊就會(huì)失區(qū)避障的能力。測(cè)距的原理如圖4.5。圖4.5超聲波測(cè)距原理框圖超聲波測(cè)量精度很高,產(chǎn)生人耳不能聽到的高頻聲波,若檢測(cè)到超聲波傳播方向上有不能穿過去的固體,大部分聲波會(huì)在固體表面形成很小的反射角,小部分的聲波會(huì)穿過固體表面發(fā)生折射。經(jīng)過反射的聲波被接收后,經(jīng)過芯片處理后,可以將固體所在的距離信息傳輸給STC15單片機(jī)做進(jìn)一步的處理。表4.2超聲波模塊電氣參數(shù)DHT11數(shù)字溫濕度傳感器DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),具有極高的可靠性與穩(wěn)定性,單線制串行接口,使之十微控制器的連接可以更簡(jiǎn)潔,并且功耗極低,信號(hào)傳輸距離可達(dá)20m以上,DHT11采用4針單排引腳封裝,電路連接方便[20]。它將溫度感測(cè)、濕度感測(cè)功能集成到一個(gè)芯片上,集成度高,可同時(shí)測(cè)量溫濕度[21]。才目傳感器內(nèi)部嵌入一個(gè)可以檢測(cè)濕度的感濕元件和一個(gè)可以檢測(cè)溫度的NTC測(cè)溫元件。本設(shè)計(jì)中,通過溫濕度傳感器和新一代的8位STC15單片機(jī)相應(yīng)的串口相連接,就可以實(shí)現(xiàn)溫濕度的數(shù)據(jù)傳輸。DHT11傳感器得到廣泛使用,和它本身的特點(diǎn)分不開,這些特點(diǎn)為:1.體積小,適合很多地點(diǎn)的應(yīng)用;2.檢測(cè)溫濕度靈敏度高;3.?dāng)?shù)據(jù)處理很快;4.制作成本低,用途很廣泛;5.性能穩(wěn)定6.使用方法簡(jiǎn)單,易于操作。在本設(shè)計(jì)中DATA線與單片機(jī)P2.3口相連接實(shí)現(xiàn)數(shù)據(jù)傳輸,模塊接線圖如圖4.6所示。模塊與單片機(jī)通信采用串行通信(單線雙向),每回的通訊時(shí)間在4ms左右,一次完整的數(shù)據(jù)傳輸為40bit。通信框圖如圖4.2所示。圖4.6溫濕度傳感器應(yīng)用電路圖圖4.7DHT11通信框圖LED點(diǎn)陣顯示屏模塊本設(shè)計(jì)中,組成LED點(diǎn)陣屏的是16個(gè)8x8高亮度的、分辨率較高的3.75雙色點(diǎn)陣,點(diǎn)陣屏整個(gè)屏幕最多能夠顯示四位漢字,如果超出四個(gè)中文漢字,所要顯示的字就會(huì)發(fā)生滾動(dòng)現(xiàn)象。點(diǎn)陣屏采用5V的直流供電,可以在屏幕上顯示很多字體效果,比如中文漢字、阿拉伯?dāng)?shù)字及英文字母的顯示以及動(dòng)態(tài)特效展示。三色LED點(diǎn)陣屏的接口主要有兩個(gè),如圖4.8所示,下圖中藍(lán)色的接口是RS485接口,而黑色的接口是電源接口。LED點(diǎn)陣屏的通信接口是四個(gè)螺絲端子排列焊接而成的RS485通信接口。485電路會(huì)很容易燒壞,如果連接RS485沒有共地。電源的接口規(guī)格是5.5x2.1mm。圖4.8LED顯示屏RS485接口要想使點(diǎn)陣屏正常工作,需要改變點(diǎn)陣屏上反面的撥碼開關(guān),也就是要改變地址,如圖4.9所示。點(diǎn)陣屏上撥碼開關(guān)的數(shù)量不能高于八位,通常開關(guān)地址的數(shù)量是六位。撥碼開關(guān)下方粉色的字,分別代表著屏幕地址相對(duì)應(yīng)的位,從右到左分表表示地址的第1到8位。安裝了撥碼開關(guān)后并撥到ON的位為0,不然就為1,沒有安裝撥碼開關(guān)的位為1。本設(shè)計(jì)中,點(diǎn)陣屏要把后面的1、2倆個(gè)地址開關(guān)推上去,才可以使其正常工作。圖4.9485地址設(shè)置LED點(diǎn)陣屏的數(shù)據(jù)幀格式如下:數(shù)據(jù)幀格式:XXXXXXXXXXXX……XXXXXX123456……NN+1N+21)第一字節(jié):起始數(shù)據(jù),作為數(shù)據(jù)幀的同步,設(shè)置為0X01。2)第二字節(jié):屏幕485通信接口的位置,可以通過改變撥碼開關(guān)進(jìn)行設(shè)置。3)第三字節(jié):“有效數(shù)據(jù)”的長(zhǎng)度=數(shù)據(jù)幀長(zhǎng)度-2(校驗(yàn)數(shù)據(jù))。長(zhǎng)度單位為字節(jié)。4)第四字節(jié):累加標(biāo)記。當(dāng)?shù)谒淖止?jié)累加標(biāo)記取值為0X00時(shí),LED點(diǎn)陣屏原來設(shè)定顯示的內(nèi)容就會(huì)被覆蓋,變成新的設(shè)定的內(nèi)容。當(dāng)?shù)谒淖止?jié)累加標(biāo)記取值是0X01的時(shí)候,新內(nèi)容將不會(huì)覆蓋之前顯示的內(nèi)容,將會(huì)在顯示完之前顯示的內(nèi)容之后再進(jìn)行顯示新內(nèi)容。5)第五字節(jié):這個(gè)字節(jié)表示顯示效果。若該字節(jié)設(shè)置成0X01,設(shè)定LED點(diǎn)陣屏字體顏色為紅色;當(dāng)該字節(jié)取值為0X02時(shí),設(shè)定顯示的字體顏色為綠色;當(dāng)該字節(jié)取值為0X03時(shí),設(shè)定顯示的字體顏色為橙色;當(dāng)該字節(jié)取值為0X04時(shí),設(shè)定顯示的字體顏色為紅色,字體并伴有閃爍效果;當(dāng)該字節(jié)取值為0X05時(shí),設(shè)定顯示內(nèi)容為綠色,并伴有閃爍效果;當(dāng)該字節(jié)取值為0X06時(shí),設(shè)定顯示的字體顏色為橙色,并伴有閃爍效果。6)第六到第N字節(jié):中文字體和ASCII數(shù)據(jù),中文字體的編碼形式為GBK,ASCII是標(biāo)準(zhǔn)的ASCII形式。7)第N+1和第N+2字節(jié):這2位字節(jié)是用于檢驗(yàn)之前的N個(gè)不同作用的字節(jié)相加起來后,也就是數(shù)據(jù)幀,判斷是否發(fā)生異常。如果檢測(cè)到數(shù)據(jù)幀沒有發(fā)生錯(cuò)誤,屏幕將在20ms內(nèi)發(fā)送回所有字節(jié)的相加之和:0X010X000X210X03。數(shù)據(jù)幀如果出錯(cuò),不返回任何的內(nèi)容。本設(shè)計(jì)打開LED點(diǎn)陣屏開關(guān)時(shí)顯示內(nèi)容為“歡迎使用”,并清除原來的內(nèi)容,顯示效果為紅色。數(shù)據(jù)幀格式為:01030D0001BBB6D3ADCAB9D3C3061C。和校驗(yàn)計(jì)算方法:01+03+0D+00+01+BB+B6+D3+AD+CA+B9+D3+C3=61。下位機(jī)程序編寫本設(shè)計(jì)的下位機(jī)程序編寫是在Keil軟件平臺(tái)下進(jìn)行編寫,工程具體包括以下幾個(gè)文件:io.c;delay.c;csb.c;dht11.c,下位機(jī)工程視圖如圖4.10。圖4.10下位機(jī)工程視圖下位機(jī)軟件主要完成的目標(biāo)是:通過DHT11數(shù)字溫濕度模塊與單片機(jī)P0.3口的數(shù)據(jù)通信,將檢測(cè)到的溫濕度數(shù)據(jù)返回給上位機(jī);通過超聲波測(cè)距模塊與單片機(jī)的P1.0口、P1.1口、P1.6口、P1.7口的數(shù)據(jù)通信,將檢測(cè)回來得數(shù)據(jù),傳輸?shù)缴衔粰C(jī);通過單片機(jī)串口驅(qū)動(dòng)LED點(diǎn)陣模塊完成相應(yīng)的內(nèi)容顯示以及字體顏色得更改;ZigBee點(diǎn)對(duì)點(diǎn)進(jìn)行數(shù)據(jù)通信,數(shù)據(jù)從IAP15單片機(jī)TXD和RXD串口輸出,數(shù)據(jù)在ZigBee點(diǎn)對(duì)點(diǎn)的的雙線通信中安全有效的快速發(fā)送,將小車的所處狀態(tài)以及各個(gè)傳感器檢測(cè)到的數(shù)據(jù)返回到上位機(jī)進(jìn)行顯示。程序設(shè)計(jì)框圖如圖4.11。下位機(jī)在程序開始運(yùn)行時(shí),先會(huì)進(jìn)行延時(shí)1s的等待,以此跳過由于電路啟動(dòng)而引起抖動(dòng)的不穩(wěn)定狀態(tài),延時(shí)過后會(huì)進(jìn)行函數(shù)的聲明以及主函數(shù)main函數(shù)的運(yùn)行,在main函數(shù)中,首先進(jìn)行串口初始化,串口發(fā)送初始顯示狀態(tài)為“歡迎使用”程序以及字體顏色選擇的程序,將會(huì)在點(diǎn)陣屏上顯示亮眼的紅色字體“歡迎使用”效果。圖4.11下位機(jī)程序設(shè)計(jì)流程圖在主函數(shù)中的while循環(huán)中,while函數(shù)每進(jìn)行循環(huán)一次,每次循環(huán)都會(huì)進(jìn)行自加的標(biāo)志位lj同時(shí)也會(huì)存在延時(shí)等待約有100ms,每次的循環(huán)中當(dāng)lj=5時(shí),會(huì)通過函數(shù)wsd與DHT11溫濕度檢測(cè)模塊進(jìn)行數(shù)據(jù)通信,以獲取溫濕度信息;當(dāng)lj=10時(shí)并自動(dòng)清零,同時(shí)會(huì)通過csb函數(shù)與超聲波測(cè)距模塊進(jìn)行數(shù)據(jù)通信,以獲取距離信息,并同時(shí)發(fā)送檢測(cè)到的溫濕度數(shù)據(jù)以及距離信息到上位機(jī)。由下位機(jī)程序設(shè)計(jì)可知道,串口每發(fā)送大概1s時(shí)間,再進(jìn)行一次數(shù)據(jù)的發(fā)送,以防止串口的數(shù)據(jù)發(fā)送過快,從而導(dǎo)致數(shù)據(jù)傳輸發(fā)生錯(cuò)誤或者數(shù)據(jù)丟失。下面對(duì)各項(xiàng)硬件功能的程序設(shè)計(jì)進(jìn)行介紹:溫濕度數(shù)據(jù)監(jiān)測(cè)功能程序?qū)崿F(xiàn)溫濕度檢測(cè)功能的程序?qū)崿F(xiàn),主要是通過dht11.c中的DHT11_ReadTempAndHumi()函數(shù)與wsd()函數(shù),并通過在主函數(shù)while循環(huán)中,每隔100ms左右調(diào)用一次wsd()函數(shù),實(shí)現(xiàn)溫濕度數(shù)據(jù)的更新。在整個(gè)程序的while循環(huán)里,wsd()函數(shù)里會(huì)通過運(yùn)行DHT11_ReadTempAndHumi()函數(shù),并將該返回來的數(shù)據(jù)讓它等于變量wsd,從而DHT11_ReadTempAndHumi()函數(shù)實(shí)現(xiàn)與DHT11溫濕度檢測(cè)模塊的通信。首先DHT11_ReadTempAndHumi()函數(shù)會(huì)發(fā)送開始信號(hào),并等待應(yīng)答,如果沒有應(yīng)答信號(hào),這時(shí)函數(shù)會(huì)返回ERROR,代表本次的調(diào)用沒有接收到溫濕度的數(shù)據(jù),如果接收到應(yīng)答信號(hào),則函數(shù)會(huì)繼續(xù)進(jìn)行數(shù)據(jù)的接收,并將所接收到的溫濕度的數(shù)據(jù)處理并返回OK,wsd()函數(shù)根據(jù)變量wsd的值,來進(jìn)行進(jìn)一步的處理,如果wsd等于OK代表數(shù)據(jù)接收成功,并發(fā)送到上位機(jī);如果wsd的值等于ERROR,則代表數(shù)據(jù)接收失敗,不進(jìn)行數(shù)據(jù)的處理。程序?qū)崿F(xiàn)框圖如圖4.12所示。圖4.12溫濕度數(shù)據(jù)檢測(cè)程序?qū)崿F(xiàn)框圖超聲波檢測(cè)功能程序?qū)崿F(xiàn)超聲波數(shù)據(jù)檢測(cè)功能程序的實(shí)現(xiàn),主要通過csb.c中的csb()函數(shù)來實(shí)現(xiàn),在主函數(shù)while循環(huán)中,執(zhí)行csb()函數(shù)可以進(jìn)行超聲波測(cè)距,其中由StartModule()函數(shù)發(fā)送開始測(cè)量信號(hào)。程序?qū)崿F(xiàn)框圖如圖4.13所示。圖4.13超聲波測(cè)距程序?qū)崿F(xiàn)框圖在整個(gè)程序運(yùn)行的while循環(huán)里,每次延時(shí)大概100ms,csb()函數(shù)就會(huì)被while循環(huán)調(diào)用,通過StartModule()函數(shù)發(fā)送距離檢測(cè)信號(hào)與超聲波模塊通信,如果超聲波模塊檢測(cè)到前方有障礙物,并返回障礙物的距離,若達(dá)到停車的最小距離,實(shí)現(xiàn)停車;如果沒有發(fā)現(xiàn)前方有障礙物或者沒有達(dá)到自動(dòng)停止的最小安全位置時(shí),則電機(jī)驅(qū)動(dòng)電路會(huì)繼續(xù)驅(qū)動(dòng)。ZigBee模塊串口通信功能程序?qū)崿F(xiàn)ZigBee模塊串口通信功能的程序?qū)崿F(xiàn)主要是通過函數(shù)csbfs()函數(shù)實(shí)現(xiàn),在主函數(shù)的while循環(huán)中,標(biāo)志位lj在每一次的while循環(huán)中都進(jìn)行自加一次,每當(dāng)lj=10時(shí),就會(huì)調(diào)用csbfs()函數(shù),進(jìn)行IO口信息的傳輸。由于每一次while循環(huán)結(jié)束時(shí),都會(huì)有100ms的延時(shí),所以csbfs()函數(shù)大概每1s時(shí)間就會(huì)被調(diào)用一次,這樣可以防止由于串口數(shù)據(jù)發(fā)送的過快,而導(dǎo)致數(shù)據(jù)傳輸發(fā)生錯(cuò)誤或者數(shù)據(jù)丟失。終端的控制信號(hào)有電腦上位機(jī)進(jìn)行發(fā)送,由ZigBee與IAP15單片機(jī)的串口相連接,并觸發(fā)串口中斷,實(shí)現(xiàn)控制信號(hào)的發(fā)送。程序?qū)崿F(xiàn)框圖如圖4.14所示。圖4.14ZigBee模塊發(fā)送功能程序?qū)崿F(xiàn)框圖上位機(jī)界面設(shè)計(jì)與程序編寫上位機(jī)界面設(shè)計(jì)本設(shè)計(jì)中上位機(jī)使用CSharp語言,在MicrosoftVisualStudio2010軟件平臺(tái)下進(jìn)行設(shè)計(jì),設(shè)計(jì)內(nèi)容包括:1.系統(tǒng)時(shí)間顯示部分;2.串口設(shè)置部分;3.小車控制部分;4.超聲波數(shù)據(jù)、溫濕度數(shù)據(jù)監(jiān)測(cè)顯示部分;5.LED點(diǎn)陣顯示控制部分;上位機(jī)界面如圖5.1所示。圖5.1上位機(jī)界面系統(tǒng)時(shí)間顯示部分系統(tǒng)時(shí)間顯示部分可以實(shí)時(shí)獲取并顯示當(dāng)前系統(tǒng)時(shí)間,設(shè)計(jì)中會(huì)根據(jù)系統(tǒng)時(shí)間各個(gè)時(shí)間點(diǎn)的不同完成溫濕度折線繪制并記錄。時(shí)間的獲取由System.DateTime.Now.ToString("G")函數(shù)進(jìn)行,返回值為String,運(yùn)用timer組件使得系統(tǒng)時(shí)間每100ms刷新一次,實(shí)現(xiàn)系統(tǒng)時(shí)間的實(shí)時(shí)顯示。系統(tǒng)時(shí)間顯示部分界面如圖5.2所示。圖5.2系統(tǒng)時(shí)間顯示串口設(shè)置部分串口設(shè)置部分由2個(gè)Label控件、2個(gè)Combobox控件、1個(gè)Button控件、1個(gè)Textbox控件構(gòu)成,實(shí)現(xiàn)的功能是進(jìn)行串口屬性的設(shè)置和連接,通過“打開串口”按鍵來實(shí)現(xiàn)對(duì)serialPort組件中的串口號(hào)和波特率的設(shè)置以及相應(yīng)串口的連接。在串口成功打開后按鍵會(huì)變化為“關(guān)閉串口”并在Textbox控件上顯示所打開的串口號(hào),如果串口打開失敗,會(huì)返回相應(yīng)的錯(cuò)誤參數(shù)。串口設(shè)置部分界面如圖5.3所示。圖5.3串口設(shè)置小車控制部分小車控制部分由5個(gè)Button控件組成,分別表示前進(jìn)、后退、向左、向右與停止,小車控制部分界面如圖5.4所示。圖5.4小車控制在上位機(jī)界面點(diǎn)擊相應(yīng)按鈕會(huì)觸發(fā)程序中的相應(yīng)事件,通過在事件中向串口發(fā)送相對(duì)應(yīng)的數(shù)據(jù)可以達(dá)到控制小車的目的。并且,根據(jù)由單片機(jī)所返回的數(shù)據(jù),系統(tǒng)會(huì)自動(dòng)判斷小車前方與后方是否存在障礙物,并由此鎖死相應(yīng)的按鍵達(dá)到提示障礙物信息與避障的作用。超聲波數(shù)據(jù)、溫濕度數(shù)據(jù)監(jiān)測(cè)顯示部分超聲波數(shù)據(jù)、溫濕度數(shù)據(jù)監(jiān)測(cè)顯示部分由Label控件與CheckBox控件組成其中Label控件用于顯示超聲波數(shù)據(jù)與溫濕度檢測(cè)數(shù)據(jù),超聲波數(shù)據(jù)與溫濕度數(shù)據(jù)均精確到小數(shù)點(diǎn)后一位。圖5.5傳感器監(jiān)控CheckBox控件的主要作用是選擇在LED點(diǎn)陣顯示屏上是否顯示出當(dāng)前所檢測(cè)到的溫濕度信息,超聲波數(shù)據(jù)、溫濕度數(shù)據(jù)監(jiān)測(cè)顯示部分界面如圖5.5所示。LED點(diǎn)陣顯示控制部分該LED點(diǎn)陣顯示控制部分主要由RadioButton控件、TextBox控件以及Button控件組成。界面如圖5.6所示。圖5.6LED點(diǎn)陣顯示控制RadioButton控件用于控制LED點(diǎn)陣顯示屏的顯示模式、LED點(diǎn)陣顯示屏顏色的控制、LED點(diǎn)陣顯示屏顯示方式的控制以及添加方式的確定,其中,顯示模式有顯示時(shí)間、顯示內(nèi)容與顯示日期三種模式,而當(dāng)溫濕度數(shù)據(jù)顯示被選定之后,溫濕度信息會(huì)被添加在顯示模式的內(nèi)容之后進(jìn)行顯示或分時(shí)顯示;LED點(diǎn)陣顯示屏顏色控制中共有3顏色,分別為紅色、綠色和橙色;LED點(diǎn)陣顯示屏顯示方式的控制有兩種顯示方式分別為普通顯示模式和閃爍顯示模式;添加方式有兩種,為添加或者覆蓋原內(nèi)容,如果選擇添加那么所選擇的顯示內(nèi)容不會(huì)覆蓋原有內(nèi)容,而是跟隨原內(nèi)容之后流動(dòng)顯示。TextBox控件與顯示內(nèi)容模式共同使用,在顯示內(nèi)容模式下觸發(fā)按鍵事件,系統(tǒng)會(huì)將TextBox中的內(nèi)容發(fā)送到LED點(diǎn)陣顯示屏上進(jìn)行覆蓋或添加在原內(nèi)容之后。Button控件用于觸發(fā)相應(yīng)事件,添加按鍵可以將相應(yīng)數(shù)據(jù)顯示在LED點(diǎn)陣顯示屏上,而清除按鍵則會(huì)清除當(dāng)前顯示在LED點(diǎn)陣顯示屏上的內(nèi)容。通過RadioButton控件、TextBox控件與Button控件之間的相互配合可以很好的發(fā)揮出LED點(diǎn)陣顯示屏的功能,實(shí)現(xiàn)了本次設(shè)計(jì)中的要求。上位機(jī)程序設(shè)計(jì)本設(shè)計(jì)中上位機(jī)程序設(shè)計(jì)內(nèi)容主要包括以下幾個(gè)方面:1.timer組件的使用以及程序編寫;2.串口組件serialPort的使用以及使用buttonOpenClose打開和關(guān)閉串口;3.在串口觸發(fā)事件comm_DataReceived中如何讀取串口緩存區(qū)的數(shù)據(jù),并將數(shù)據(jù)進(jìn)行相對(duì)應(yīng)的處理,顯示在對(duì)應(yīng)的Label控件上;4.通過小車控制部分的5個(gè)Button控件對(duì)小車進(jìn)行控制;5.通過CheckBox控件、RadioButton控件、TextBox控件以及Button控件對(duì)LED點(diǎn)陣顯示屏顯示內(nèi)容進(jìn)行控制,程序所實(shí)現(xiàn)的主要內(nèi)容包括:讀取所需顯示的內(nèi)容;將讀取的數(shù)據(jù)轉(zhuǎn)化為GBK十六進(jìn)制碼;將GBK十六進(jìn)制碼進(jìn)行處理轉(zhuǎn)化為L(zhǎng)ED點(diǎn)陣顯示可以識(shí)別的碼組形式并存儲(chǔ)在相應(yīng)的數(shù)組中等待發(fā)送;將數(shù)組中的數(shù)據(jù)發(fā)送出去。定時(shí)器組件timer的使用及程序編寫上位機(jī)設(shè)計(jì)中的timer組件相當(dāng)于單片機(jī)設(shè)計(jì)中的定時(shí)器,而函數(shù)timer1_Tick函數(shù)相當(dāng)于單片機(jī)設(shè)計(jì)中的定時(shí)器中斷,timer組件屬性圖如圖5.7所示。在本次設(shè)計(jì)中定時(shí)器中斷時(shí)間設(shè)定為100ms,在上位機(jī)程序每次啟動(dòng)時(shí)會(huì)首先運(yùn)行Form1_Load函數(shù)進(jìn)行程序的初始化設(shè)定,而定時(shí)器開始計(jì)時(shí)函數(shù)timer.start函數(shù)被放置在該程序初始化函數(shù)中,因此在程序開啟后沒100ms會(huì)觸發(fā)一次timer1_Tick函數(shù)進(jìn)行相應(yīng)操作。圖5.7timer組件屬性定時(shí)器中斷中所實(shí)現(xiàn)的主要功能包括:(1)在Label控件shijian上顯示當(dāng)前系統(tǒng)時(shí)間:this.shijian.Text=System.DateTime.Now.ToString("G");//顯示系統(tǒng)時(shí)間通過上述語句可以實(shí)現(xiàn)系統(tǒng)時(shí)間的讀取,并由于定時(shí)器每100ms執(zhí)行一次,因此,可以實(shí)現(xiàn)系統(tǒng)時(shí)間的實(shí)時(shí)顯示。(2)判斷CheckBox控件的選定狀態(tài),并實(shí)現(xiàn)實(shí)時(shí)顯示:if(shiduxianshi.Checked||wenduxianshi.Checked){tianjia_Click(tianjia,null);wsdxskz++;if(wsdxskz>10){wsdxskz=0;}}上述語句中shiduxianshi.Checked的值代表CheckBox控件的選定狀態(tài),1代表控件被選定,因此當(dāng)溫度或濕度顯示被選定時(shí)會(huì)在定時(shí)器中每100ms觸發(fā)一次tianjia_Click事件,由此可以實(shí)現(xiàn)數(shù)據(jù)在LED點(diǎn)陣顯示屏上的實(shí)時(shí)顯示。(1)顯示時(shí)間模式中,對(duì)顯示時(shí)間進(jìn)行實(shí)時(shí)更新:if(radioButton8.Checked==true)//顯示時(shí)間{tianjia_Click(tianjia,null);}上述語句與前一組語句類似,當(dāng)radioButton8.Checked的值為true時(shí)代表當(dāng)前選定的顯示模式為顯示時(shí)間模式,并在定時(shí)器中對(duì)顯示的時(shí)間進(jìn)行更新。串口組件serialPort的使用本次上位機(jī)設(shè)計(jì)中通過串口組件serialPort實(shí)現(xiàn)與下位機(jī)端的串口通信,串口的屬性如圖5.8所示。圖5.8serialPort組件屬性主要包括:串口號(hào);波特率;校驗(yàn)位;數(shù)據(jù)位;停止位。其中,校驗(yàn)位使用系統(tǒng)默認(rèn)設(shè)置NONE,數(shù)據(jù)位使用默認(rèn)設(shè)置8,停止位使用默認(rèn)設(shè)置1,而串口號(hào)與波特率通過上位機(jī)界面中串口設(shè)置部分的ComboBox控件中的數(shù)據(jù)進(jìn)行設(shè)置,并且通過該部分中的buttonOpenClose按鍵可以實(shí)現(xiàn)對(duì)串口屬性中串口號(hào)與波特率的賦值并實(shí)現(xiàn)的打開和關(guān)閉串口的功能,該部分中的TextBox則顯示當(dāng)前串口的打開與關(guān)閉情況。在程序初始化函數(shù)Form1_Load中會(huì)進(jìn)行當(dāng)前系統(tǒng)中所有串口號(hào)的掃描讀取并賦值給ComboBox中顯示,在選定串口號(hào)后可以通過buttonOpenClose按鍵開啟串口。1.讀取串口號(hào):string[]ports=SerialPort.GetPortNames();//初始化下拉串口名稱列表框Array.Sort(ports);//獲取系統(tǒng)所有串口號(hào)comboPortName.Items.AddRange(ports);//將獲取的串口號(hào)賦值給comboPortNamecomboPortName.SelectedIndex=comboPortName.Items.Count>0?0:-1;2.buttonOpenClose按鍵觸發(fā)事件函數(shù):if(comm.IsOpen)//根據(jù)當(dāng)前串口對(duì)象,來判斷操作{comm.Close();//打開時(shí)點(diǎn)擊,則關(guān)閉串口}else//關(guān)閉時(shí)點(diǎn)擊,則設(shè)置好端口,波特率后打開{comm.PortName=comboPortName.Text;comm.BaudRate=int.Parse(comboBaudrate.Text);try{comm.Open();}catch(Exceptionex)//捕獲到異常信息,創(chuàng)建一個(gè)新的comm對(duì)象,之前的不能用了。{comm=newSerialPort();MessageBox.Show(ex.Message);//現(xiàn)實(shí)異常信息返回}}//設(shè)置按鈕的狀態(tài)buttonOpenClose.Text=comm.IsOpen?"關(guān)閉串口":"打開串口";buttonOpenClose.BackColor=comm.IsOpen?Color.Red:Color.LimeGreen;chuankou.ForeColor=comm.IsOpen?Color.LimeGreen:Color.Red;chuankou.Text=comm.IsOpen?comboPortName.Text+"已打開":comboPortName.Text+"已關(guān)閉";串口觸發(fā)事件函數(shù)comm_DataReceived串口觸發(fā)事件函數(shù)comm_DataReceived與單片機(jī)設(shè)計(jì)中的串口中斷相同,首先需要在程序初始化函數(shù)Form1_Load中對(duì)comm_DataReceived事件進(jìn)行注冊(cè),時(shí)間注冊(cè)完畢之后當(dāng)上位機(jī)串口接收到數(shù)據(jù)之后會(huì)將數(shù)據(jù)存儲(chǔ)在串口數(shù)據(jù)緩存區(qū)中并觸發(fā)該事件,在事件函數(shù)中則可以對(duì)串口數(shù)據(jù)進(jìn)行讀取和處理。在串口接收到數(shù)據(jù)觸發(fā)事件并將接收到的串口數(shù)據(jù)存儲(chǔ)至串口緩存區(qū)的過程中,由于上位機(jī)對(duì)數(shù)據(jù)的處理速度遠(yuǎn)高于單片機(jī)使得單片機(jī)發(fā)送的一幀數(shù)據(jù)在上位機(jī)端被處理時(shí)分成多幀存儲(chǔ)在串口緩存區(qū),而每次數(shù)據(jù)更新是前一幀數(shù)據(jù)會(huì)被覆蓋而造成數(shù)據(jù)丟失使得數(shù)據(jù)處理存在困難,為了避免數(shù)據(jù)丟失就需要考慮到多幀處理的問題,在本設(shè)計(jì)中通過在單片機(jī)發(fā)送的數(shù)據(jù)中設(shè)置起始位和終止位的方式來進(jìn)行處理,上位機(jī)在接受到數(shù)據(jù)之后會(huì)首先查找起始位與終止位并將起始位與終止位之間的數(shù)據(jù)存儲(chǔ)在byte型數(shù)組buf1中,根據(jù)串口數(shù)據(jù)的發(fā)送格式來進(jìn)行數(shù)據(jù)處理。串口數(shù)據(jù)處理過程如下:假設(shè)下位機(jī)發(fā)送數(shù)據(jù)起始位為“$”,停止位為“*”則在上位機(jī)接收到數(shù)據(jù)是可以通過設(shè)置標(biāo)志位的方式對(duì)數(shù)據(jù)進(jìn)行處理,在上位機(jī)接收到起始位“$”時(shí)將標(biāo)志位sn賦1(默認(rèn)為0),在標(biāo)志位為1并接受到數(shù)據(jù)時(shí)會(huì)將數(shù)據(jù)存儲(chǔ)至buf1數(shù)組中,在緩存區(qū)所有數(shù)據(jù)處理完成后如果沒有檢測(cè)到停止位“*”,那么就將sn賦2,當(dāng)標(biāo)志位為2時(shí),在下一次數(shù)據(jù)到來是會(huì)直接將數(shù)據(jù)存儲(chǔ)至buf1數(shù)組中,直至接受到停止位“*”為止停止數(shù)據(jù)處理并將sn重新賦0,這樣存儲(chǔ)在buf1數(shù)組中的數(shù)據(jù)即為單片機(jī)所發(fā)送的數(shù)據(jù)。在本次設(shè)計(jì)中單片機(jī)發(fā)送的數(shù)據(jù)共有5組數(shù)據(jù),起始位為0xFF,終止位為0xFE,其他3組數(shù)據(jù)分別為溫度數(shù)值,濕度數(shù)值和超聲波數(shù)值,在上位機(jī)接受到數(shù)據(jù)之后,會(huì)將這3組數(shù)據(jù)放置在buf1數(shù)組中,通過對(duì)數(shù)據(jù)的處理可以實(shí)現(xiàn)溫濕度數(shù)據(jù),超聲波數(shù)據(jù)的顯示,由于上位機(jī)界面顯示與串口處理不在同一線程,因此需要進(jìn)行跨線程操作,具體實(shí)現(xiàn)程序如下:sd=buf1[0].ToString();//濕度數(shù)據(jù)類型轉(zhuǎn)換wd=buf1[1].ToString();//溫度數(shù)據(jù)類型轉(zhuǎn)換csb1b[1]=buf1[2];csb1b[0]=buf1[3];this.Invoke((EventHandler)(delegate//跨線程操作{wendu.Text=wd;shidu.Text=sd;csbcj1.Text=Math.Round(((Convert.ToInt32(buf1[2])*256+Convert.ToInt32(buf1[3]))*0.922)/100,2).ToString();csbcj2.Text=Math.Round(((Convert.ToInt32(buf1[4])*256+Convert.ToInt32(buf1[5]))*0.922)/100,2).ToString();}));LED點(diǎn)陣顯示屏顯示控制LED點(diǎn)陣顯示屏顯示內(nèi)容的控制通過串口來進(jìn)行控制,串口數(shù)據(jù)由N+2位字節(jié)組成,其中第一字節(jié)為起始字節(jié),用于數(shù)據(jù)幀同步,取值為0X01;第二字節(jié)為屏幕485地址;第三字節(jié)為“有效數(shù)據(jù)”的長(zhǎng)度=數(shù)據(jù)幀長(zhǎng)度-2(校驗(yàn)數(shù)據(jù));第五字節(jié)表示顯示效果,取值為0X01時(shí),設(shè)定顯示內(nèi)容為紅色,取值為0X02時(shí),設(shè)定顯示內(nèi)容為綠色,取值為0X03時(shí),設(shè)定顯示內(nèi)容為橙色,取值為0X04時(shí),設(shè)定顯示內(nèi)容為紅色,并伴有閃爍效果,取值為0X05時(shí),設(shè)定顯示內(nèi)容為綠色,并伴有閃爍效果,取值為0X06時(shí),設(shè)定顯示內(nèi)容為橙色,并伴有閃爍效果,第六到第N字節(jié)為漢字和ASCII數(shù)據(jù),漢字編碼為GBK,ASCII為標(biāo)準(zhǔn)ASCII編碼。第N+1和第N+2字節(jié)和校驗(yàn),用于檢測(cè)數(shù)據(jù)幀是否正確,其值為前N個(gè)字節(jié)的和。根據(jù)需要顯示的內(nèi)容,系統(tǒng)將所需向LED點(diǎn)陣顯示屏發(fā)送的數(shù)據(jù)存儲(chǔ)在dz數(shù)組、gbk數(shù)組與變量jy1與jy2中中,其中dz數(shù)組存儲(chǔ)發(fā)送數(shù)據(jù)的前5個(gè)字節(jié),gbk數(shù)組中存儲(chǔ)著顯示內(nèi)容的GBK編碼值或ASCII編碼,由于發(fā)送內(nèi)容的不同gbk數(shù)組的位數(shù)以及內(nèi)容都會(huì)有所不同,下面對(duì)所發(fā)送的數(shù)據(jù)分別進(jìn)行介紹。1.第一字節(jié)-第四字節(jié)第一字節(jié)至第四字節(jié)所顯示的數(shù)據(jù)是固定值,因此在數(shù)組dz定義直接進(jìn)行賦值,程序如下:Int32[]dz={0x01,0x03,0x05,0x00,0x01};2.第五字節(jié)第五字節(jié)所代表的是LED點(diǎn)陣顯示屏的顯示方式,分為6種方式,在程序中根據(jù)普通顯示和閃爍顯示與三種顏色的組合決定,當(dāng)閃爍顯示被選定是標(biāo)志位xg被賦值0X03,當(dāng)選定普通顯示方式時(shí),xg被賦值0X00,而根據(jù)顏色的不同,程序中會(huì)將相對(duì)應(yīng)的數(shù)值賦值至dz數(shù)組中的第五位數(shù)據(jù)中,程序如下:if(radioButton4.Checked==true)//無{xg=0x00;}if(radioButton5.Checked==true)//閃爍{xg=0x03;}if(radioButton1.Checked==true)//紅色{dz[4]=0x01+xg;}if(radioButton2.Checked==true)//綠色{dz[4]=0x02+xg;}if(radioButton3.Checked==true)//橙色{dz[4]=0x03+xg;}3.第6字節(jié)-第N字節(jié)由于所需顯示的內(nèi)容不同,這組字節(jié)的長(zhǎng)度是無法確定的,這組字節(jié)由GBK編碼與ASCII編碼組成,系統(tǒng)讀取TextBox中需要在LED顯示屏上顯示的內(nèi)容并將這些內(nèi)容轉(zhuǎn)化為GBK編碼或ASCII編碼并將數(shù)據(jù)存儲(chǔ)在byte型數(shù)組gbk中,程序如下:byte[]gbk=Encoding.GetEncoding("GBK").GetBytes(hz);zc=gbk.Length;dz[2]+=zc;4.第N+1字節(jié)、第N+2字節(jié)第N+1字節(jié)、第N+2字節(jié)為數(shù)據(jù)校驗(yàn)位,這兩位數(shù)據(jù)的值為前N位數(shù)據(jù)的和,程序中通過for循環(huán)對(duì)前N位數(shù)據(jù)進(jìn)行求和并將求和所得數(shù)值賦值給jy1與jy2變量中,程序如下:for(i=0;i<5;i++)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度音樂節(jié)場(chǎng)地借用與現(xiàn)場(chǎng)管理服務(wù)合同3篇
- 2024軟件版權(quán)授權(quán)與維護(hù)服務(wù)合同2篇
- 2024年餐飲行業(yè)合伙人加盟協(xié)議模板版B版
- 2024年版物聯(lián)網(wǎng)技術(shù)研發(fā)與應(yīng)用合同
- 2024幼兒園幼兒藝術(shù)教育課程開發(fā)與實(shí)施勞務(wù)合同3篇
- 2024年股權(quán)質(zhì)押融資借款具體合同版
- 2025年度數(shù)據(jù)中心機(jī)房租賃及智能化升級(jí)服務(wù)合同3篇
- 2024年經(jīng)銷商銷售權(quán)益合同一
- 2024版承包茶館經(jīng)營(yíng)合同
- 2024年貴族小學(xué)教師聘請(qǐng)協(xié)議3篇
- 2024年高標(biāo)準(zhǔn)農(nóng)田建設(shè)土地承包服務(wù)協(xié)議3篇
- 閱讀理解(專項(xiàng)訓(xùn)練)-2024-2025學(xué)年湘少版英語六年級(jí)上冊(cè)
- 民用無人駕駛航空器產(chǎn)品標(biāo)識(shí)要求
- 2024年醫(yī)院產(chǎn)科工作計(jì)劃例文(4篇)
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí) CCAA年度確認(rèn) 試題與答案
- 2024年浙江省公務(wù)員考試結(jié)構(gòu)化面試真題試題試卷答案解析
- 中國(guó)音樂史與名作賞析智慧樹知到期末考試答案章節(jié)答案2024年山東師范大學(xué)
- 投標(biāo)文件封標(biāo)用封面、密封條11
- 300MW火電廠水汽氫電導(dǎo)率超標(biāo)的原因及處理方法
- 國(guó)際文憑組織IBO簡(jiǎn)介
- 星巴克營(yíng)銷策劃方案(共24頁)
評(píng)論
0/150
提交評(píng)論