




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本科生畢業(yè)設(shè)計糧倉管理系統(tǒng)的設(shè)計學(xué)院:************************************專業(yè):************************學(xué)號:************************學(xué)生姓名:************指導(dǎo)教師:************************(職稱)二年六月摘要隨著科學(xué)技術(shù)的高速發(fā)展,單片機(jī)技術(shù)、自動檢測技術(shù)已廣泛應(yīng)用于社會的各個行業(yè)。本文主要采用單片機(jī)技術(shù)、自動檢測技術(shù)對糧倉管理系統(tǒng)進(jìn)行應(yīng)用設(shè)計。設(shè)計的糧倉管理系統(tǒng)主要由51單片機(jī)為控制中心、DH11溫濕度傳感器、無線接發(fā)模塊、時鐘芯片、液晶、儲存芯片、上位機(jī)等部分組成。無線接發(fā)模塊將檢測到糧倉的實時溫、濕度發(fā)送給主機(jī)然后將數(shù)據(jù)傳到電腦,使系統(tǒng)能根據(jù)檢測到的情況和設(shè)置情況作出相應(yīng)的控制,為確保糧倉的良好環(huán)境提供了保證。文中詳細(xì)介紹了糧倉管理系統(tǒng)的設(shè)計方案的選擇、硬件電路的組成、系統(tǒng)的工作原理、軟件程序的設(shè)計、系統(tǒng)的調(diào)試與檢測等,測試結(jié)果表明,所設(shè)計的系統(tǒng)能實現(xiàn)預(yù)定的各項功能,測試各項性能指標(biāo)全部達(dá)到設(shè)計的要求。關(guān)鍵詞:51單片機(jī);溫濕度傳感器;分機(jī);無線收發(fā)模塊;主機(jī);上位機(jī)DesignofManagementSysteminGranary
十十十十十
*****AbstractWiththerapiddevelopmentofscienceandtechnology,microcomputertechnologyandautomaticdetectiontechnologyhavebeenwidelyappliedinthevarioussectorsofsociety.Themonolithicintegratedcircuittechnologyandautomaticdetectiontechnologyaremainlyusedinapplicationdesignofgranarymanagementsysteminthispaper.With51singlechipmicrocomputerworkingascontrolcenter,thedesignofgranarymanagementsystemismainlycomposedofDH11temperature,humiditysensor,awirelessreceivingmodule,theclockchip,LCD,memorychipsandsoon.Wirelessreceivingmodulewilldetectthereal-timetemperatureandhumidityofthegranaryandsendittothehostandthentransmitsthedatatothecomputer,sothesystemcanbedetectedaccordingtothecircumstancesandsettingscorrespondingcontrol,whichwillensurethatthegranaryprovideagoodenvironment.Theselectionofdesignscheme,thehardwarecompositions,theworkingprinciple,thedesignofsoftware,thedebuggingandtestingofthegranarymanagementsystemareintroducedindetailinthispaper.Anditisshowedintestthatthesystemcanachievethepredeterminedfunctionsandtheperformanceindicatorsallmeettherequirementsofthisdesign.Keywords:51controlchip;Temperatureandhumiditysensor;Extension;Wirelesstransceivermodule;Host;PC選題背景錯誤!未定義書簽。TOC\o"1-5"\h\z\o"CurrentDocument"方案比較和選擇12.1控制芯片的選擇22.2溫度濕度傳感器的選擇22.3無線收發(fā)模塊的選擇42.4主機(jī)與PC機(jī)傳輸?shù)倪x擇5\o"CurrentDocument"系統(tǒng)方案的設(shè)計6\o"CurrentDocument"硬件電路的設(shè)計64.1單片機(jī)控制系統(tǒng)的設(shè)計74.2溫度濕度傳感器電路的設(shè)計84.3無線收發(fā)模塊84.4時鐘電路的設(shè)計94.5主機(jī)與PC機(jī)的傳輸設(shè)計94.6液晶電路的設(shè)計104.7儲存電路的設(shè)計11\o"CurrentDocument"軟件部分的設(shè)計12\o"CurrentDocument"系統(tǒng)的調(diào)試136.1硬件的調(diào)試136.2軟件的調(diào)試14結(jié)論及尚存在的問題錯誤!未定義書簽。參考文獻(xiàn)錯誤!未定義書簽。致謝錯誤!未定義書簽。附錄1主機(jī)系統(tǒng)電路圖18附錄2檢測單片機(jī)電路圖19附錄3PC機(jī)界面20附錄4主程序清單21糧倉管理系統(tǒng)的設(shè)計姓名:*****學(xué)號:*******班級:*******選題背景糧食是關(guān)系國計民生的重要戰(zhàn)略物資,吃飯始終是人類賴以生存和社會穩(wěn)定的頭等大事,保持糧食科學(xué)倉儲和流通至關(guān)重要,因此,開發(fā)一個結(jié)合現(xiàn)代計算機(jī)技術(shù)、自動控制技術(shù)的糧管理控制系統(tǒng),可以簡化糧食存儲管理過程,保障糧食的安全,減少人力,提高效率,這對于推進(jìn)糧庫管理的現(xiàn)代化將具有非常重要的意義。糧倉測控技術(shù)的研究始于20世紀(jì)70年代,它是科學(xué)保糧的重要技術(shù)之一,隨著國家農(nóng)業(yè)產(chǎn)業(yè)政策的不斷完善,以及現(xiàn)代科學(xué)技術(shù)在農(nóng)業(yè)生產(chǎn)中的應(yīng)川和推廣。國家糧食總產(chǎn)量不斷突破歷史新高。但國家的糧食儲備狀況自建國以來卻沒有得劍明顯改善。全國80%左右的糧食仍采川原始的存儲方式。初期,以銅電阻,熱敏電阻作為傳感器件,通過檢測電阻的變化來反映糧食溫度的變化.為糧食保管提供參考依據(jù)。但此工作靠人一點一點測精、效率低準(zhǔn)確性差。在糧食部門各級領(lǐng)導(dǎo)的關(guān)懷和糧食行業(yè)科技主管部門的人力支持,在糧食行業(yè)內(nèi)、外科技工作者近30年的共同努力下,糧食檢測技術(shù)不斷完善、提高、并日趨成熟,逐步形成了樣式繁多的糧情檢測系統(tǒng),為安全、科學(xué)儲糧起到了積極的作用。在儲藏過程中,糧食受溫度、濕度及其它因素的影響,可能出現(xiàn)發(fā)熱、霉變、蟲害等情況。為了減少糧食儲藏過程中的損失,保障糧食的品質(zhì)、質(zhì)量,首先應(yīng)該及時準(zhǔn)確地把握糧食儲藏過程中各種物理因素的變化情況,找出其變化規(guī)律。法國儲糧專家Je.Lasseran,D.Berhant采用溫度調(diào)節(jié)器來控制溫度。實驗在一個500噸、高16米的中型倉中進(jìn)行。研究表明,在低溫氣候下從夏季到秋季經(jīng)2?3次通風(fēng)每次要持續(xù)兒個晚上.每天4?10小時,可將溫度從300C降到SC(在英國氣候條件卜).在冬天糧溫可保持不變,井在春天有所上升,經(jīng)過一年的實踐表明:不僅甲生狀況良好。而且糧食的品質(zhì)沒有變化:澳人利弧Gib等專家最近研究了一種以PC機(jī)為基礎(chǔ)的可遙控利監(jiān)側(cè)通風(fēng)系統(tǒng)的通風(fēng)控制器.該控制器包括一臺PC機(jī)和相關(guān)的軟件、氣象預(yù)報臺和糧堆中的靈敏元件。它能靈活地、有效地控制通風(fēng)系統(tǒng),減少通風(fēng)費用,并可以實行聯(lián)網(wǎng),從而不必依靠倉庫管理人員收集的情況。就能得到通風(fēng)系統(tǒng)的有關(guān)數(shù)據(jù)和系統(tǒng)的運行情況。本設(shè)計儲糧管理系統(tǒng)能及時檢測、保存糧倉的糧情信息(如糧溫、糧濕等),對于安全儲糧、歷史數(shù)據(jù)查詢、分析得出儲糧普遍規(guī)律都有積極的作用;對于早期糧情信息檢測手工作業(yè)效率低,勞動強(qiáng)度大、儲糧成本高等缺陷有明顯改變作用。能產(chǎn)生一定期的經(jīng)濟(jì)效益,也具有重大的社會效益。方案比較和選擇糧管理控制系統(tǒng)由51單片機(jī)、溫濕度傳感器、液晶、無線收發(fā)模塊、DS1302時鐘芯片等元件組成,其中控制系統(tǒng)的選擇是關(guān)鍵,控制芯片的選擇既要求滿足控制的需求,又要省錢、易操作,總而言之是要求性價比達(dá)到最高,以便花最少的錢來設(shè)計出性能較好的系統(tǒng)??刂浦行牟粌H要處理檢測到的數(shù)據(jù),還要根據(jù)設(shè)置來發(fā)出相應(yīng)的操作指令,因而是系統(tǒng)能自動化、智能化的關(guān)鍵。作為測控系統(tǒng),如何獲取精準(zhǔn)的數(shù)據(jù)也十分關(guān)鍵,傳感器在系統(tǒng)中是實現(xiàn)測量的主要環(huán)節(jié),是測控系統(tǒng)必不可少的部件,如果沒有傳感器對信號進(jìn)行準(zhǔn)確可靠的檢測,一切準(zhǔn)確的測量和控制都將無法實現(xiàn)。工業(yè)生產(chǎn)過程的自動化測量和控制,幾乎主要依靠各種傳感器來檢測和控制生產(chǎn)過程中的各種參量,使設(shè)備和系統(tǒng)正常運行在最佳狀態(tài),從而保證生產(chǎn)的高效率和高質(zhì)量。2.1控制芯片的選擇方案一:采用AT89S51單片機(jī),AT89S51為ATMEL所生產(chǎn)的可電氣燒錄清洗的8051相容單芯片,其內(nèi)部程序代碼容量為4KB。AT89S51主要功能列舉如下:(1)為一般控制應(yīng)用的8位單芯片;(2)晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至12MHz);(3)內(nèi)部程式存儲器(ROM)為4KB;(4)內(nèi)部數(shù)據(jù)存儲器(RAM)為128B;(5)外部程序存儲器可擴(kuò)充至64KB;(6)外部數(shù)據(jù)存儲器可擴(kuò)充至64KB;(7)32條雙向輸入輸出線,且每條均可以單獨做I/O的控制;(8)5個中斷向量源;(9)2組獨立的16位定時器;(10)1個全多工串行通信端口;(11)8751及8752單芯片具有數(shù)據(jù)保密的功能;(12)單芯片提供位邏輯運算指令。方案二:選擇AT89S52單片機(jī),AT89S52為ATMEL所生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flsah存儲器。AT89S52主要功能列舉如下:(1)擁有靈巧的8位CPU和在系統(tǒng)可編程Flash;(2)晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至12MHz);(3)內(nèi)部程序存儲器(ROM)為8KB;(4)內(nèi)部數(shù)據(jù)存儲器(RAM)為256字節(jié);(5)32個可編程I/O口線;(6)8個中斷向量源;(7)三個16位定時器/計數(shù)器;(8)三級加密程序存儲器;(9)全雙工UART串行通道。對比兩個芯片的功能來看,AT89S52的性能比AT89S51要有優(yōu)勢,但相對于我們設(shè)計的系統(tǒng)來說,AT89S51能滿足了們的設(shè)計要求了,從性價比來選擇,選擇AT89S51更符合我們的設(shè)計要求。2.2溫、濕度傳感器的選擇方案一:采用pt100溫度傳感器。pt100是鉑熱電阻,它的阻值跟溫度的變化成正比。PT100的阻值與溫度變化關(guān)系為:當(dāng)PT100溫度為0°C時它的阻值為100歐姆,在100C時它的阻值約為138.5歐姆。它的工業(yè)原理:當(dāng)PT100在0攝氏度的時候他的阻值為100歐姆,它的阻值會隨著溫度上升而成勻速增長的。濕度檢測采用HS1100/HS1101濕度傳感器。HS1100/HS1101電容傳感器,在電路構(gòu)成中等效于一個電容器件,其電容量隨著所測空氣濕度的增大而增大。不需校準(zhǔn)的完全互換性,高可靠性和長期穩(wěn)定性,快速響應(yīng)時間,專利設(shè)計的固態(tài)聚合物結(jié)構(gòu),由頂端接觸(HS1100)和側(cè)面接觸(HS1101)兩種封裝產(chǎn)品,適用于線性電壓輸出和頻率輸出兩種電路,適宜于制造流水線上的自動插件和自動裝配過程等。相對濕度在1%---100%RH范圍內(nèi);電容量由16pF變到200pF,其誤差不大于土2%RH;響應(yīng)時間小于5S;溫度系數(shù)為0.04pF/C。可見精度是較高的。方案二:溫度檢測采用DS18B20,DS18B20的主要特性:適應(yīng)電壓范圍更寬,電壓范圍:3.0?5.5V,在寄生電源方式下可由數(shù)據(jù)線供電;獨特的單線接口方式;DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫;溫范圍一55C?+125C,在-10?+85C時精度為±0.5C;DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。濕度檢測采用HS1100/HS1101濕度傳感器。HS1100/HS1101電容傳感器,在電路構(gòu)成中等效于一個電容器件,其電容量隨著所測空氣濕度的增大而增大。不需校準(zhǔn)的完全互換性,高可靠性和長期穩(wěn)定性,快速響應(yīng)時間,專利設(shè)計的固態(tài)聚合物結(jié)構(gòu),由頂端接觸(HS1100)和側(cè)面接觸(HS1101)兩種封裝產(chǎn)品,適用于線性電壓輸出和頻率輸出兩種電路,適宜于制造流水線上的自動插件和自動裝配過程等。相對濕度在1%---100%RH范圍內(nèi);電容量由16pF變到200pF,其誤差不大于土2%RH;響應(yīng)時間小于5S;溫度系數(shù)為0.04pF/C。可見精度是較高的。方案三:采用DHT11數(shù)字溫濕度傳感器°DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4針單排引腳封裝,連接方便,測量范120—90%RH0—50C測濕精度土5%RH測溫精度±2C分辨力1單排直插。方案一、方案二都是由溫度傳感器與濕度傳感器組合起來,由單片機(jī)分別控制溫度與濕度的檢測與處理,而方案三是一個傳感器就能檢測到溫度與濕度,檢測的數(shù)據(jù)準(zhǔn)確度符合電路的數(shù)據(jù)要求,從各方面綜合考慮選擇方案三,DHT11溫濕度傳感器具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價比極高等優(yōu)點,完全符合電路的設(shè)計要求。2.3無線收發(fā)模塊的選擇方案一:RF1100-TTL無線串口收發(fā)模塊,采用TI公司的高性能CC1101無線通信芯片,433MHz免費ISM頻段免許可證使用,串口TTL通訊方式,透明傳輸,應(yīng)用簡單無需編程即可使用,極大方便使用,提供多達(dá)256個信道,低功耗工作,直線傳輸距離可達(dá)150米,可廣泛應(yīng)用于無線抄表、工業(yè)遙控等無線數(shù)傳領(lǐng)域。RF1100-TTL基本性能及特點:低功耗模塊,最大發(fā)射功率10mW;工作電壓5V,直流供電;工作于433MHz免費ISM頻段,免許可證使用(420MHz?440MHz);高抗干擾能力和低誤碼率,基于FSK的調(diào)制方式,采用高效前向糾錯和信道交織編碼技術(shù),提高了數(shù)據(jù)抗隨機(jī)干擾和突發(fā)干擾的能力,在信道誤碼率為10-2時,可得到實際誤碼率10-5?10-6;支持透明的數(shù)據(jù)傳輸及DL/645規(guī)約。提供透明的數(shù)據(jù)接口,能適應(yīng)任何標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)的用戶協(xié)議。自動過濾掉空中產(chǎn)生的假數(shù)據(jù)(所收即所發(fā));通信軟件支持無線抄表系統(tǒng)的DL/645規(guī)約;最大256個可編程信道(20M頻段)??梢园凑?00KHz間隔頻點則可以提供至少256個信道,滿足用戶多種通信組合方式;接口方式為TTL電平接口;采用專業(yè)的單芯片模塊設(shè)計,降低了用戶使用成本;大的數(shù)據(jù)緩沖區(qū)。接口波特率等于空中有效波特率,提供3種用戶可選波特率:4800、9600、19200bps(接口速率最高可設(shè)置到19200bps),數(shù)據(jù)格式為8N1/8E1/8O1用戶自定義,可傳輸最長為30字節(jié)的數(shù)據(jù)幀,用戶編程更靈活。方案二:NBC905_V2.0,是基于挪威NORDIC公司的最新封裝改版NRF905無線收發(fā)IC基礎(chǔ)上優(yōu)化設(shè)計的一款高性能433M無線收發(fā)模塊。模塊具有體積小,距離遠(yuǎn),功耗低,通信穩(wěn)定,抗干擾性強(qiáng)等特點。NBC905_V2.0主要有如下參數(shù)特點:工作電壓范圍:DC1.9V-DC3.6V;采用GFSK調(diào)制,433Mhz開放ISM頻段免許可證使用;接收發(fā)送功能合一,收發(fā)完成中斷標(biāo)志;170個頻道,滿足多點通訊和跳頻通訊需求,實現(xiàn)組網(wǎng)通訊,TDMA-CDMA-FDMA;內(nèi)置硬件8/16位CRC校驗,開發(fā)更簡單,數(shù)據(jù)傳輸可靠穩(wěn)定;接收靈敏度達(dá)-100dBm;收發(fā)模式切換時間<650us;每次最多可發(fā)送接收32字節(jié),并可軟件設(shè)置發(fā)送/接收緩沖區(qū)大小2/4/8/16/32字節(jié);模塊可軟件設(shè)地址,只有收到本機(jī)地址時才會輸出數(shù)據(jù)(提供中斷指示),可直接接各種單片機(jī)使用,軟件編程非常方便;最大發(fā)射功率10毫瓦,發(fā)射模式:最大電流<30mA;接收模式:電流12.2mA;內(nèi)置SPI接口,也可通過I/O口模擬SPI實現(xiàn)。最高SPI時鐘可達(dá)10M;發(fā)射速率50Kbps,外置433MHz天線,空曠通訊距離可達(dá)300米左右,室內(nèi)通信3-6層可實現(xiàn)可靠通信,抗干擾性能強(qiáng),很強(qiáng)的障礙穿透性能;方案三:nRF24.L01是一款新型單片射頻收發(fā)器件,工作于2.4GHz?2.5GHzISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強(qiáng)型ShockBurst技術(shù),其中輸出功率和通信頻道可通過程序進(jìn)行配置。nRF24L01功耗低,在以-6dBm的功率發(fā)射時,工作電流也只有9mA;接收時,工作電流只有12.3mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計更方便。NRF24L01基本特性:(1)2Mbit/s速率下接收時的峰值電流12.5mA;(2)在2Mbit/s速率下@0dBm輸出時的峰值電流11mA;(3)掉電模式下的功耗400nA;(4)待機(jī)模式下的功耗32uA;(5)130us的快速切換和喚醒時間;(6)具有片內(nèi)穩(wěn)壓器oltageregulators;(7)可在1.9to3.6V低電壓工作;(8)MultiCeiverMT硬件提供同時6個接收機(jī)的功能,2Mbit/s使得高質(zhì)量的VoIP成為可能。綜合各方面的條件,選擇方案三,因為nRF24.L01內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,使我們設(shè)計的電路更加可靠與穩(wěn)定,有多種低功率工作模式(掉電模式和空閑模式)使設(shè)計更方便。2.4主機(jī)與PC機(jī)傳輸?shù)倪x擇方案一:無線傳輸PC機(jī)與單片機(jī)通過無線信道傳輸數(shù)據(jù)。無線傳輸方案通過串口來實現(xiàn)PC機(jī)與單片機(jī)之間的雙工通信。無線傳輸可以用不同的方式來實現(xiàn),常用的有紅外方式、藍(lán)牙方式,其他的還有射頻收發(fā)芯片如CC1100,PT2262/2272芯片等。紅外通信是利用950nm近紅外波段的紅外線作為傳遞信息的載體,通過紅外光在空中的傳播來傳遞信息,由紅外發(fā)射器和接收器實現(xiàn)。發(fā)射端將二進(jìn)制數(shù)字信號調(diào)制成某一頻率的脈沖序列,經(jīng)電光轉(zhuǎn)換電路,驅(qū)動紅外發(fā)射管以光脈沖的形式發(fā)送到空中。接收端將接收到的光脈沖轉(zhuǎn)換成電信號,再經(jīng)解調(diào)和譯碼后恢復(fù)出原二進(jìn)制數(shù)字信號。其最大優(yōu)點是:不易被人發(fā)現(xiàn)和截獲,保密性強(qiáng);幾乎不會受到電氣、天電、人為干擾,抗干擾性強(qiáng)。此外,紅外線通信機(jī)體積小、重量輕、結(jié)構(gòu)簡單、價格低廉。不足之處在于它必須在視距內(nèi)通信,且傳播受天氣的影響。方案二:有線傳輸方式PC機(jī)與單片機(jī)之間通過電纜線傳輸數(shù)據(jù)。有線傳輸?shù)膬?yōu)勢是性能比較穩(wěn)定,調(diào)試簡單,而不足之處在于它的應(yīng)用范圍不夠廣、性能不夠好,而且傳輸距離受限,這樣就大大影響了系統(tǒng)的應(yīng)用范圍。單片機(jī)有一個全雙工的串行通訊口,所以單片機(jī)和電腦之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進(jìn)行電平轉(zhuǎn)換。由于本設(shè)計的傳輸距離不遠(yuǎn)、需要穩(wěn)定的數(shù)據(jù)傳輸,無線傳輸容易受到干擾而有線傳輸?shù)膬?yōu)勢是性能比較穩(wěn)定、調(diào)試簡單,所以綜合本次設(shè)計的要求選擇用芯片MAX232的有線傳輸。系統(tǒng)方案的設(shè)計糧倉管理系統(tǒng)的設(shè)計選用AT89S51芯片,配以溫濕度傳感器、無線接發(fā)模塊、串口通信、上位機(jī)等器件,實現(xiàn)了主機(jī)控制多分機(jī)糧倉檢測功能,通過無線接發(fā)模塊將分機(jī)檢測到的糧倉實時溫度、濕度傳回到主機(jī)然后用有線方式傳輸傳到PC機(jī),使系統(tǒng)能根據(jù)檢測到的情況作出相應(yīng)的控制,為管理糧倉提供更加合理和有效的系統(tǒng)。糧倉管理系統(tǒng)的設(shè)計的系統(tǒng)框圖如圖3-1所示:圖3-1糧倉管理系統(tǒng)的系統(tǒng)框圖硬件電路的設(shè)計硬件電路的設(shè)計主要分為兩大塊主機(jī)電路的設(shè)計與測量單片機(jī)電路的設(shè)計,包括單片機(jī)控制電路、溫濕度檢測電路、無線收發(fā)電路、液晶顯示、單片機(jī)與PC機(jī)通信電路、儲存模塊等電路。主機(jī)系統(tǒng)原理圖如圖4-1所示圖4-1主機(jī)系統(tǒng)原理圖測量單片機(jī)系統(tǒng)原理圖如圖4-2所示
圖4-2測量單片機(jī)系統(tǒng)原理圖4.1單片機(jī)控制系統(tǒng)的設(shè)計控制系統(tǒng)選用AT89S51單片機(jī),AT89S51是一個低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,功能強(qiáng)大的微型計算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4kBytesFlash片內(nèi)程序存儲器,128bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。單片機(jī)最小系統(tǒng)電路圖如圖4-3所示12MMTPfEHVCCMO.AIMKTALIPO1ADI5TTAL2P0J.AD2PO312MMTPfEHVCCMO.AIMKTALIPO1ADI5TTAL2P0J.AD2PO3KL4.AD4P0J.AD5PO.fi.AD6PO.7.-AD7RSTEAV?PIjD.TI哭ENPlI.TIEMJLLE.PE.CGPl-l-XCIPL3/CEJCOPl4.CE3C1PHQMDFL5.-CZEJC3P3l.TiDPlS.CE3C3P32-INTOPl7CEK4P33INTIP34-TOP20-ABP35T1PlISA9P3.6WRPUL-A10P3P23AllP2.4.A12P15.A13JKL&jimP2-7-A15PO"R103PIOHeaderP12□13~~FE-FZ_『m.一F「-OF:MQSITJB■以XQ3Oq亡I_KCH圖4-3單片機(jī)最小系統(tǒng)電路圖4.2溫度濕度傳感器電路的設(shè)計溫度濕度傳感器電路主要通過DHT11傳感器檢測,DHT11是一款含有已校準(zhǔn)熟悉信號輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價比極高等優(yōu)點。每個DHT11傳感器都在即為精確的濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式存在OTP內(nèi)存中,傳感器內(nèi)部在檢測型號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為給類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選擇。產(chǎn)品為4針單排引腳封裝,連接方便。DHT11的電路圖如圖4-4所示圖4-4DHT11的電路圖4.3無線收發(fā)模塊nRF24.L01是一款新型單片射頻收發(fā)器件,工作于2.4GHz?2.5GHzISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強(qiáng)型ShockBurst技術(shù),其中輸出功率和通信頻道可通過程序進(jìn)行配置。工作原理:發(fā)射數(shù)據(jù)時,首先將nRF24L01配置為發(fā)射模式:接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序由SPI口寫入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10us,延遲130us后發(fā)射數(shù)據(jù);若自動應(yīng)答開啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(自動應(yīng)答接收地址應(yīng)該與接收節(jié)點地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時TX_PLD從TXFIFO中清除;若未收到應(yīng)答,則自動重新發(fā)射該數(shù)據(jù)(自動重發(fā)已開啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TXFIFO中數(shù)據(jù)保留以便在次重發(fā);MAX_RT或TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進(jìn)入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧中無數(shù)據(jù)且CE為高,則進(jìn)入空閑模式2。接收數(shù)據(jù)時,首先將nRF24L01配置為接收模式,接著延遲130u,進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來。當(dāng)接收方檢測到有效的地址和CRC時,就將數(shù)據(jù)包存儲在RXFIFO中,同時中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時自動應(yīng)答開啟,接收方則同時進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號。最后接收成功時,若CE變低,則nRF24L01進(jìn)入空閑模式1。nRF24L01單端射頻輸出原理圖如圖4-5所示真10I§!■%-3球:一:虬1勤3raoB真10I§!■%-3球:一:虬1勤3raoBf*CEIT~pGnFCSHSCkM0S1MISO4sc_MCSJ」>X>cD1(MHzANT2aMI^'DD.PA圖4-5nRF24L01單端射頻輸出原理圖4.4時鐘電路的設(shè)計時鐘電路采用了DS1302芯片,DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補(bǔ)償功能,工作電壓為2.5V?5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31x8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。時鐘芯片的電路圖如圖4-6所示圖4-6時鐘芯片的電路圖4.5主機(jī)與PC機(jī)的傳輸設(shè)計主機(jī)與PC機(jī)的通信采用MAX232芯片,該產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口rs232電平是-10v+10v,而一般的單片機(jī)應(yīng)用系統(tǒng)
的信號電壓是ttl電平0+5v,max232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。主要特點:(1)單5V電源工作;(2)LinBiCMOSTMX藝技術(shù);(3)兩個驅(qū)動器及兩個接收器;(4)±30V輸入電平;(5)低電源電流:典型值是8mA;(6)符合甚至優(yōu)于ANSI標(biāo)準(zhǔn)EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn)V.28;(7)ESD保護(hù)大于MIL-STD-883(方法3015)標(biāo)準(zhǔn)的2000V。MAX232的電路圖如圖4-7所示_l±clOuHTCapPollUMAX_Ec_l(hif2TCapPol]1OiiFP31P30C1十VDDCPVCCC2十_l±clOuHTCapPollUMAX_Ec_l(hif2TCapPol]1OiiFP31P30C1十VDDCPVCCC2十C2-T1INT1OUTT2INT2OUTR1OUTR1INR2OUTR2INGNDVEE1511216Tvc(:14_廠CapPolllOuF1623849MAX232ACPE+|(C_1M4CapPollJ-232DConnector94.6液晶電路的設(shè)計液晶顯示電路采用了12864液晶模塊,液晶模塊的軟件特性主要由ST7920控制驅(qū)動器決定。ST7920同時作為控制器和驅(qū)動器,它可提供33路com輸出和64路seg輸出。在驅(qū)動器ST7921的配合下,最多可以驅(qū)動256X32點陣液晶。ST7920系列產(chǎn)品硬件特性如下:(1)提供8位,4位并行接口及串行接口可選;(2)并行接口適配M6800時序;(3)自動電源啟動復(fù)位功能;(4)內(nèi)部自建振蕩源;(5)64X16位字符顯示RAM(DDRAM最多16字符X4行,LCD顯示范圍16X2行);2M位中文字型ROM(CGROM),總共提供8192個中文字型(16X16點陣);16K位半寬字型ROM(HCGROM),總共提供126個西文字型(16X8點陣);64X16位字符產(chǎn)生RAM(CGRAM);15X16位總共240點的ICONRAM(ICONRAM)。ST7920系列產(chǎn)品軟件特性如下:文字與圖形混合顯示功能;畫面清除功能;光標(biāo)歸位功能;顯示開/關(guān)功能;光標(biāo)顯示/隱藏功能;顯示字體閃爍功能;光標(biāo)移位功能功能顯示移位功能;垂直畫面旋轉(zhuǎn)功能;(10)反白顯示功能;(11)休眠模式。利用液晶的顯示功能,我們可以將檢測到的溫濕度和時間在液晶上顯示,并通過按鍵來對系統(tǒng)進(jìn)行設(shè)置。12864的電路圖如圖4-8所示圖4-812864的電路圖4.7儲存電路的設(shè)計本電路主要采用了AT24C02,AT24C02是一個2K位串行CMOSE2PROM,內(nèi)部含有256個8位字節(jié),CATALYST公司的先進(jìn)CMOS技術(shù)實質(zhì)上減少了器件的功耗。AT24C02有一個16字節(jié)頁寫緩沖器。該器件通過IC總線接口進(jìn)行操作,有一個專門的寫保護(hù)功能。我
們將檢測到得溫濕度寫入到AT24C02中,當(dāng)需要時候又可以從中讀取出來。AT24C02的電路圖如圖4-9所示三U24C02VCCAI24C02圖4-9AT24C02的電路圖軟件部分的設(shè)計軟件部分設(shè)計包括:串口與PC機(jī)通信的設(shè)計,溫濕度程序設(shè)計,液晶顯示程序設(shè)計,無線收發(fā)程序設(shè)計等……主機(jī)系統(tǒng)流程圖如圖5-1所示:圖5-1主機(jī)系統(tǒng)程序流程圖檢測單片機(jī)系統(tǒng)如圖5-2所示:
開始圖5-2檢測單片機(jī)系統(tǒng)系統(tǒng)的調(diào)試調(diào)試工具:萬用表、信號發(fā)生器、示波器、KEIL編譯軟件、STC下載軟件、VC++6.0編譯軟件等。6.1硬件的調(diào)試首先按照電路圖,畫出PCB,然后制板。在焊元器件前要用萬用表檢查電路的各線路有沒有短路與斷路的,做完這些工作之后再焊接元器件。在焊元器件的時候要注意虛焊與元件之間不要短接,焊好之后用萬用表檢測元器件間是否通路。確定無誤之后上電,看看指示燈是否正常,然后測量各個腳的電壓,最后再插入芯片。硬件的實物圖如下圖6-1主機(jī)硬件圖:圖6-1主機(jī)硬件圖檢測單片機(jī)電路圖6-2如下:
圖6-2檢測單片機(jī)電路圖6.2軟件的調(diào)試軟件調(diào)試分為三部分:(1)主機(jī)的調(diào)試:主要有幾個子程序,時鐘的調(diào)試、液晶的顯示、無線收發(fā)的接收、按鍵的設(shè)置、自動降溫除濕的設(shè)置、串口通信等;(2)檢測單片機(jī)的調(diào)試:DHT11傳感器獲取溫濕度的調(diào)試、無線收發(fā)的數(shù)據(jù)發(fā)送調(diào)試;(3)PC機(jī)界面的調(diào)試:界面的設(shè)計、數(shù)據(jù)的顯示。結(jié)論及尚存在的問題本設(shè)計主要采用單片機(jī)技術(shù)、自動檢測技術(shù)對糧倉管理系統(tǒng)進(jìn)行應(yīng)用設(shè)計,所設(shè)計的系統(tǒng)完瀟完成了設(shè)計的要求,實現(xiàn)了設(shè)計的各項功能,具體包括:(1)能檢測到各倉庫的溫度與濕度,并在液晶上顯示;(2)能利用按鍵設(shè)置臨界值,當(dāng)超過之后會自動報警并提示是那個房間那種值超標(biāo),然后自動采取相應(yīng)的措施來除濕與降溫保持倉庫的良好環(huán)境;(3)能通過無線發(fā)收模塊將檢測到的值傳到電腦上,可以通過界面來監(jiān)控糧倉的情況;(4)能利用按鍵來查閱某段時間的溫濕度,更好了解倉庫溫濕度的變化情況;(5)通過時鐘芯片,能設(shè)置時間與顯示;通過多次的檢測、測試,證明糧倉管理系統(tǒng)的設(shè)計比較穩(wěn)定,各個功能都能按照我們的設(shè)想進(jìn)行工作,有比較好的智能化與自動化,能利用一臺主機(jī)對多臺分機(jī)進(jìn)行監(jiān)測,糧倉管理系統(tǒng)的應(yīng)用,大大緩解了糧食倉儲的壓力,它能及時、準(zhǔn)確、快速地反映糧堆溫度、濕度的變化情況,既省時又省力。本設(shè)計系統(tǒng)如果能利用WIFI來進(jìn)行通信,則效果會更加好,數(shù)據(jù)傳輸更加穩(wěn)定,但由于時間與技術(shù)有限,無法完成這樣的設(shè)計,待以后有機(jī)會的再繼續(xù)努力改進(jìn)。參考文獻(xiàn)[1]周航慈.單片機(jī)應(yīng)用程序設(shè)計[M].北京航空航天大學(xué)出版社,1991[2]何希才、虹敏.傳感器應(yīng)用接口電路[M].機(jī)械工業(yè)出版社,1997[3]劉篤仁、韓保君.傳感器原理及應(yīng)用技術(shù)[M].機(jī)械工業(yè)出版社,2003.8[4]康華光.電子技術(shù)基礎(chǔ).高等教育出版社[M],2003.6[5]〈美〉M考夫曼、AH塞德.電子計算手冊[M].國防工業(yè)出版社,1985[6]李建民.單片機(jī)在溫度控制系統(tǒng)中的應(yīng)用[J].江漢大學(xué)學(xué)報,1996.6[7]潘其光.常用測溫儀表技術(shù)問答[M].國防工業(yè)出版社,1989[8]陳后金,胡健,薛健.信號與系統(tǒng)[M].清華大學(xué)出版社,2003.3[9]凌肇元.集成電路應(yīng)用實例錦集[J].人民郵電出版,2001[10]胡漢才主編,單片機(jī)原理及其接口技術(shù)[M],清華大學(xué)出版社,2000[11]陳汝全主編,電子技術(shù)常用器件應(yīng)用手冊[J],第二版,機(jī)械工業(yè)出版社,2002[12]鄭郁正.單片機(jī)原理及應(yīng)用[M].四川大學(xué)出版社,2003.[13]譚浩強(qiáng).C程序設(shè)計(第二版)[M].清華大學(xué)出版社,1999.[14]王曉君.安國臣等.MCS—51及兼容單片機(jī)原理與選型[M].北京-電子工業(yè)出版社,2003.[15]李啟炎.Protel99SE應(yīng)用教程[J].上海-同濟(jì)大學(xué)出版社,2005.[16]張洪潤,張亞凡.單片機(jī)原理及應(yīng)用[J].清華大學(xué)出版社,2004.[17]王武江,陳樹海.常用集成電路速查手冊[J][M].冶金工業(yè)出版社,2002.[18]陳明熒.89C51單片機(jī)課程設(shè)計實訓(xùn)教程[M].清華大學(xué)出版社,2001.[19]王福瑞.單片機(jī)測控系統(tǒng)設(shè)計[J].北京航空航天大學(xué)出版社,1996.[20]郁慧綈.微機(jī)系統(tǒng)及其接口技術(shù)[M].南京東南大學(xué)出版社,1999.大學(xué)的最后一份作業(yè)一一畢業(yè)設(shè)計終于完成了,在這里非常感謝我的指導(dǎo)老師一一**老師。在四年的大學(xué)生活里,***老師做了我兩次的指導(dǎo)老師,第一次是2010年的****省智能家居電子大賽,第二次是畢業(yè)設(shè)計。記得參力加****省電子大賽的時候,我什么都不懂、基本上是空白,但在****老師的悉心教導(dǎo)下,我獲得了很大的進(jìn)步,最后拿到了****省電子大賽三等獎。而這次的畢業(yè)設(shè)計****老師更是親切關(guān)懷與細(xì)心指導(dǎo),****老師治學(xué)嚴(yán)謹(jǐn),學(xué)識淵博,思想深邃,視野雄闊,為我營造了一種良好的精神氛圍。授人以魚不如授人以漁,置身其間,耳濡目染,潛移默化,使我不僅接受了全新的思想觀念,樹立了宏偉的學(xué)術(shù)目標(biāo),領(lǐng)會了基本的思考方式,從論文題目的選定到論文寫作的指導(dǎo),經(jīng)由您悉心的點撥,再經(jīng)思考后的領(lǐng)悟,常常讓我有“山重水復(fù)疑無路,柳暗花明又一村”。大學(xué)四年的生活即將結(jié)束,在此感謝在大學(xué)四年里給我教導(dǎo)的老師,是你們讓我渡過了人生中最美好的大學(xué)生活,是你們讓我遨游在知識的海洋里,是你們讓我學(xué)到了有用的知識更讓我懂得了如何做人,使我受益終生。即將步入社會,我不會辜負(fù)你們對我的期望,會在社會中闖蕩一番,實現(xiàn)自己的理想。卜|尺也SS?-'S5?F_.q澄怎遑』]n播?]]?]lM5K]mmKJ:?]-mt-kMS-5-皿ID師Ifinl&llm皿uLLuuLlbl'LJI國Ln近敞K近品徼瞼"二附圖1主機(jī)系統(tǒng)原理圖DULLAT14CC2TO?XFr^TL3=MY'Si典mTZ7XI:U.TLRxjzx—5砰二M-NLMiJ-丐-堅出LE—tEat:L?JJFl5W.DFDTDicdziWiT0KIX=2$i;瑚LQ_J53~551~才3u-_W『英匚血比亡H.QkDQmiLM.LABLmiuMJAIKH.4aIMW.jADJ徐W竺彖心PL.QT2拓ETimEKAiznsa_njiKjSl.JCEfflSL4CECLPJJJLcEJLJCEC2篇lg£>FLFH口PJ.2KT5FL?CEMWJKTlPJ4TQJ2.HA3M.S/TL冀EPJ.twEPSEjUQFj'ITKJALLK.4AL2Pa.U'ALJM.iaAL4七室P2.?aALJ梆凸叫e掀《]:k?=4:C■'偵:VC.C|JU如9N6PLL世心2此(1A’任JL.+i;:—■3Z1X::?JKJK=£=JXJ-=-:StVCCS:E忙細(xì)j3_2JIOL!uTJiVC.CLri.V-J'2附圖2檢測單片機(jī)電路圖附圖3PC機(jī)界面圖#include"include.h”#include"wuxian.h”//#include”24c02.h”#include"lcd12864.h”//#include"USART.h”#include"ds1302.h”#include"isd1700.h”#include"wuxian.c”//#include”24C02.c”#include"lcd12864.c”#include"ds1302.c”//#include"isd1700.c”#include"display_data.c”#include"key.C”voidmain(){//L1=0;//L2=0;Set_RTC();//RST=0;//InitUsart();//WEIGOU;〃寫時間信息com();〃寫時間信息//ISD_Init();〃語音初始化LCDInit();//LCM初始化init_io();//無線初始化RX_Mode();//無線初始化Time_init();TMOD|=0x20;SM0=0;SM1=1;TH1=0xfd;TL1=0xfd;REN=1;TR1=1;EA=1;while(1){〃讀時間信息Read_RTC();display_time();display_data();//wuxian();key_fangdao();//com();//UsartPutchar(RX_BUF[1]);//UsartPutchar(RX_BUF[2]);//UsartPutchar(RX_BUF[0]);〃讀時間信息}}voidtime0()interrupt1{TH0=(65536-900)/256;TL0=(65536-900)%256;//com();if(wuxian_time<2001){wuxian_time++;if(wuxian_time==500)CheckButtons();if(wuxian_time==1000){CheckButtons2();}if(wuxian_time==1500){//com();}if(wuxian_time==2000)
wuxian_time=0;}/*if(wuxian_time2<10001){wuxian_time2++;if(wuxian_time2==10000){wuxian_time2=0;TR0=0;delay(50000);delay(50000);delay(50000);TR0=1;}}*//*if(weigou1<60001){weigou1++;if(weigou1==60000){weigou2++;weigou1=0;if(weigou2==10)WEIGOU;}}*/}voidcom_isr(void)interrupt4{〃定義變量接收串口數(shù)據(jù)//將寄存器復(fù)位等待接收下一個//〃定義變量接收串口數(shù)據(jù)//將寄存器復(fù)位等待接收下一個//將接收的數(shù)據(jù)存于變量中RI=0;tmp=SBUF;P0=tmp;SBUF=tmp;while(!TI);TI=0;*/unsignedchartemp[2];if(RI!=1)return;RI=0;temp[0]=SBUF;while(!RI);RI=0;temp[1]=SBUF;com();if(temp[0]==0x02){SBUF=0x38;while(!TI);TI=0;SBUF=l_tmp_room1[0];while(!TI);TI=0;SBUF=l_tmp_room1[1];while(!TI);TI=0;SBUF=l_tmp_room1[2];while(!TI);TI=0;SBUF=l_tmp_room1[3];while(!TI);TI=0;SBUF=l_tmp_room2[0];while(!TI);TI=0;SBUF=l_tmp_room2[1];while(!TI);TI=0;SBUF=l_tmp_room2[2];while(!TI);TI=0;SBUF=l_tmp_room2[3];while(!TI);TI=0;SBUF=l_tmp_room1[4];while(!TI);TI=0;SBUF=l_tmp_room2[4];while(!TI);TI=0;}}#include"lcd12864.h”/********宏定義***********************************************************/#defineLCD_DataP0#defineBusy0x80//用于檢測LCD狀態(tài)字中的Busy標(biāo)識/“““““““““““l(fā)—**rl.'*1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1*//***********與數(shù)據(jù)********************************************************/voidWriteDataLCD(unsignedcharWDLCD){ReadStatusLCD();〃檢測忙LCD_RS=1;LCD_RW=0;LCD_Data=WDLCD;LCD_E=1;LCD_E=1;LCD_E=1;LCD_E=0;}4*PiZk““““““““““““““““““““““““““““““““““““““““““““““““““““““““//***********與指令********************************************************/voidWriteCommandLCD(unsignedcharWCLCD,BuysC)//BuysC為0時忽略忙檢測{if(BuysC)ReadStatusLCD();/根根據(jù)需要檢測忙LCD_RS=0;LCD_RW=0;LCD_Data=WCLCD;LCD_E=1;LCD_E=1;LCD_E=1;LCD_E=0;}/***********l頭數(shù)據(jù)********************************************************/unsignedcharReadDataLCD(void){LCD_RS=1;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;return(LCD_Data);}/***********頭狀態(tài)*******************************************************/unsignedcharReadStatusLCD(void){LCD_Data=0xFF;LCD_RS=0;LCD_RW=1;LCD_E=1;while(LCD_Data&Busy);//檢測忙信號LCD_E=0;return(LCD_Data);}“一>jn4rZxZIz““““““““““““““““““““““““““““““““““““““““““““““““““““““““//***********初始化********************************************************/voidLCDInit(void){WriteCommandLCD(0x30,1);//顯示模式設(shè)置,開始要求每次檢測忙信號WriteCommandLCD(0x01,1);/顯示清屏WriteCommandLCD(0x06,1);//顯示光標(biāo)移動設(shè)置WriteCommandLCD(0x0C,1);//顯示開及光標(biāo)設(shè)置}/““““““““““*1*■?.I-T^l、““““““““““““““““““““““““““““““““““““““““““““““““““““““““//***********清屏********************************************************/voidLCDClear(void){WriteCommandLCD(0x01,1);//顯示清屏WriteCommandLCD(0x34,1);//顯示光標(biāo)移動設(shè)置WriteCommandLCD(0x30,1);//顯示開及光標(biāo)設(shè)置}/***********閃爍效果********************************************************/voidLCDFlash(void){WriteCommandLCD(0x08,1);//顯示清屏Delay400Ms();WriteCommandLCD(0x0c,1);//顯示開及光標(biāo)設(shè)置Delay400Ms();WriteCommandLCD(0x08,1);//顯示清屏Delay400Ms();WriteCommandLCD(0x0c,1);//顯示開及光標(biāo)設(shè)置Delay400Ms();WriteCommandLCD(0x08,1);//顯示清屏Delay400Ms();}/***********按指定位置顯示一個字符*******************************************/voidDisplayOneChar(unsignedcharX,unsignedcharYunsignedcharDData){if(Y<1)Y=1;if(Y>4)Y=4;X&=0x0F;〃限制X不能大于16,Y不能大于1switch(Y){case1:XI=0X80;break;case2:XI=0X90;break;case3:XI=0X88;break;case4:XI=0X98;break;}WriteCommandLCD(X,0);〃這里不檢測忙信號,發(fā)送地址碼WriteDataLCD(DData);}/***********按指定位置顯示一串字符*****************************************/voidDisplayListChar(unsignedcharX,unsignedcharYunsignedcharcode*DData){unsignedcharListLength,X2;ListLength=0;X2=X;if(Y<1)Y=1;if(Y>4)Y=4;X&=0x0F;//限制X不能大于16,Y在1-4之內(nèi)switch(Y){case1:X2I=0X80;break;//根據(jù)行數(shù)來選擇相應(yīng)地址case2:X2I=0X90;break;case3:X2I=0X88;break;case4:X2I=0X98;break;}WriteCommandLCD(X2,1);〃發(fā)送地址碼while(DData[ListLength]>=0x20)//若到達(dá)字串尾則退出{if(X<=0x0F)//X坐標(biāo)應(yīng)小于0xF{WriteDataLCD(DData[ListLength]);ListLength++;X++;Delay5Ms();}/***********按指定位置顯示數(shù)組內(nèi)的數(shù)據(jù)*****************************************/voidDisplayDate(unsignedcharX,unsignedchar*DData){unsignedchari;WriteCommandLCD(X,1);for(i=0;i<16;){WriteDataLCD(*DData);DData++;i++;}/***********短延時********************************************************/voidDelay5Ms(void){unsignedintTempCyc=5552;while(TempCyc--);}3““““““““““X7ZTn—k/***********長延時********************************************************/voidDelay400Ms(void){unsignedcharTempCycA=5;unsignedintTempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);}/*************延時子函數(shù)*******************************************/voiddelay(unsignedinttimer){while(timer--);}#include"wuxian.h"/***************************************************/#defineTX_ADR_WIDTH5//5字節(jié)寬度的發(fā)送/接收地址#defineTX_PLOAD_WIDTH6//數(shù)據(jù)通道4個字節(jié)的有效數(shù)據(jù)寬度ucharcodeTX_ADDRESS[TX_ADR_WIDTH]={0x36,0x63,0x24,0x05,0x10};//定義一個靜態(tài)發(fā)送地址ucharRX_BUF[TX_PLOAD_WIDTH]={0};//接收緩沖區(qū)ucharTX_BUF[TX_PLOAD_WIDTH]={0};〃發(fā)送緩沖區(qū)ucharflag;ucharbdatasta;態(tài)字sbitsbitsbit//定義一個零時狀態(tài)變量,來存儲讀操作時,讀出的配置寄存器的狀RX_DR=stag//剛剛定義的狀態(tài)變量的位定義,第六位定義TX_DS=staA5;//剛剛定義的狀態(tài)變量的位定義,第五位定義MAX_RT=staA4;/**************************************************//**************************************************函數(shù):init_io()描述:初始化24L01的IO口/**************************************************/voidinit_io(void){CE=0;CSN=1;SCK=0;IRQ=1;//待機(jī)//SPI禁止//中斷復(fù)位,也可以將這個腳接在外部中斷口上,這時就不用初始化這個腳,直接由中斷程序檢測就行EA=0;}/**************************************************//**************************************************函數(shù):delay_ms()描述:延遲x毫秒/**************************************************voiddelay_ms(ucharx){uchari,j;i=0;for(i=0;i<x;i++){j=250;while(--j);j=250;while(--j);/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函數(shù):SPI_RW()描述:根據(jù)SPI協(xié)議,寫一字節(jié)數(shù)據(jù)到nRF24L01,同時從nRF24L01讀出一字節(jié)這個函數(shù)的作用是選擇寄存器,并對寄存器做出相應(yīng)的操作,至于到底做什么樣操作就取決于byte,byte的格式,數(shù)值就是芯片的SPI指令格式,在模塊資料里的13頁圖8中有相應(yīng)的功能說明/**************************************************/ucharSPI_RW(ucharbyte){uchari;for(i=0;i<8;i++){//byte最高位輸出到MOSI//低一位移位到最高位//拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時MOSI=(byte&0x80);byte<<=1;//byte最高位輸出到MOSI//低一位移位到最高位//拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時//讀MISO到byte最低位//SCK置低//返回讀出的一字節(jié)//返回讀出的一字節(jié),這個字節(jié)是狀態(tài)寄存器里面的值,標(biāo)時序圖里面的Sn,用不用雖你return(byte);志該模塊此時的狀態(tài)}/**************************************************//**************************************************函數(shù):SPI_RW_Reg()描述:寫數(shù)據(jù)value到reg寄存器/**************************************************/ucharSPI_RW_Reg(ucharreg,ucharvalue){ucharstatus;//CSN置低,開始傳輸數(shù)據(jù)////CSN置低,開始傳輸數(shù)據(jù)//選擇寄存器,同時返回狀態(tài)字//然后寫數(shù)據(jù)到該寄存器//CSN拉高,結(jié)束數(shù)據(jù)傳輸//返回狀態(tài)寄存器status=SPI_RW(reg);SPI_RW(value);CSN=1;return(status);
/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函數(shù):SPI_Read()描述:從reg寄存器讀一字節(jié)(數(shù)據(jù))/**************************************************/ucharSPI_Read(ucharreg){//CSN置低,開始傳輸數(shù)據(jù)//CSN置低,開始傳輸數(shù)據(jù)//選擇寄存器,此時已經(jīng)有讀回一個字節(jié)了,可是這個即時序圖中的Sn。不是想要的數(shù)據(jù)//然后從該寄存器讀數(shù)據(jù),這里SPI_RW();函數(shù)里為什么CSN=0;SPI_RW(reg);字節(jié)是現(xiàn)階段的狀態(tài)寄存位reg_val=SPI_RW(0);是0,0并不是意味著MOSI會重新設(shè)定寄存器的地址,而是延時一個語句的時間,然后繼續(xù)產(chǎn)生sck時鐘信號從而讀出數(shù)據(jù)CSN=1;//CSN拉高,結(jié)束數(shù)據(jù)傳輸return(reg_val);//返回寄存器數(shù)據(jù)}/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函數(shù):SPI_Read_Buf()描述:從reg寄存器讀出bytes個字節(jié),通常用來讀取接收通道數(shù)據(jù)或接收/發(fā)送地址/**************************************************/ucharSPI_Read_Buf(ucharreg,uchar*pBuf,ucharbytes){ucharstatus,i;//CSN置低,開始傳輸數(shù)據(jù)////CSN置低,開始傳輸數(shù)據(jù)//選擇寄存器,同時返回狀態(tài)字status=SPI_RW(reg);//逐個字節(jié)從nRF24L01讀出//CSN拉高,結(jié)束數(shù)據(jù)傳輸//逐個字節(jié)從nRF24L01讀出//CSN拉高,結(jié)束數(shù)據(jù)傳輸//返回狀態(tài)寄存器CSN=1;return(status);}/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函數(shù):SPI_Write_Buf()
描述:把pBuf緩存中的數(shù)據(jù)寫入到nRF24L01,通常用來寫入發(fā)射通道數(shù)據(jù)或接收/發(fā)送地址/**************************************************/ucharSPI_Write_Buf(ucharreg,uchar*pBuf,ucharbytes){ucharstatus,i;//CSN置低,開始傳輸數(shù)據(jù)////CSN置低,開始傳輸數(shù)據(jù)//選擇寄存器,同時返回狀態(tài)字status=SPI_RW(reg);//逐個字節(jié)寫入nRF24L01//CSN//逐個字節(jié)寫入nRF24L01//CSN拉高,結(jié)束數(shù)據(jù)傳輸//返回狀態(tài)寄存器CSN=1;return(status);}/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/******
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑鋼結(jié)構(gòu)安全管理施工防護(hù)安全課件
- 工程結(jié)算88課件
- 建設(shè)工程投標(biāo)人學(xué)習(xí)情境一建設(shè)工程承發(fā)包與招投標(biāo)認(rèn)知課件
- 鋼筋的張拉控制應(yīng)力何玉明課件
- 哈爾濱科學(xué)技術(shù)職業(yè)學(xué)院《建筑環(huán)境交互原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江藝術(shù)職業(yè)學(xué)院《自然保護(hù)地學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 金融行業(yè)財務(wù)分析的深度與廣度探討
- 齊魯師范學(xué)院《現(xiàn)實生活中的博弈思維》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南稅務(wù)高等??茖W(xué)?!肚貪h史專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 營口職業(yè)技術(shù)學(xué)院《信息與編碼》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年高三第二學(xué)期物理備課組教學(xué)工作計劃
- 丁香園:2024年12月全球新藥月度報告-數(shù)據(jù)篇
- 生產(chǎn)與運作管理-第5版 課件全套 陳志祥 第1-14章 生產(chǎn)系統(tǒng)與生產(chǎn)運作管理概述 -豐田生產(chǎn)方式與精益生產(chǎn)
- 2025年湖南理工職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年西安航空職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 2024年港作拖輪項目可行性研究報告
- 課題申報書:“四新”建設(shè)與創(chuàng)新創(chuàng)業(yè)人才培養(yǎng)基本范式研究
- 春季高考高職單招數(shù)學(xué)模擬試題七套含答案
- 2024-2025學(xué)年陜西省寶雞市高三上學(xué)期高考模擬檢測(一)英語試題(含解析)
- 2025年企業(yè)的演講稿例文(2篇)
- 電瓶三輪車安全培訓(xùn)
評論
0/150
提交評論