版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ( 屆)</b></p><p> 論文題目 基于單片機(jī)的CC1100無線溫濕度</p><p><b> 采集系統(tǒng)設(shè)計(jì)</b></p><p> (英文) Based on SCM CC1100 wireless
2、</p><p> temperature and humidity collection </p><p> system design</p><p> 所在學(xué)院 電子信息學(xué)院 </p><p> 專業(yè)班級 電子信息工程 </p><p> 學(xué)生
3、姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 日</p><p><b> 摘要</b></p><p> 隨著信息領(lǐng)域各種技術(shù)的發(fā)展,在數(shù)據(jù)采
4、集方面的技術(shù)也取得了長足的進(jìn)步,采集數(shù)據(jù)的信息化是目前社會的發(fā)展主流方向。</p><p> 本課題提出一種基于單片機(jī)的無線溫濕度采集系統(tǒng)方案,該方案是利用單片機(jī)控制DHT11溫度傳感器采集溫濕度、控制1602液晶顯示屏實(shí)時顯示溫度值、濕度值,控制CC1100無線模塊進(jìn)行數(shù)據(jù)的無線傳輸,并由單片機(jī)去把溫濕度數(shù)據(jù)傳至計(jì)算機(jī)進(jìn)行存儲。本系統(tǒng)中所用到的器件是STC公司的STC89C52單片機(jī)、數(shù)字溫濕度傳感器DHT1
5、1和無線芯片CC1100,測量結(jié)果用1602液晶屏顯示采集的數(shù)字信息,并利用單片機(jī)串行口,通過RS-232總線及通信協(xié)議將采集的數(shù)據(jù)傳送到PC機(jī),進(jìn)行進(jìn)一步的存檔、處理,并對測量結(jié)果進(jìn)行顯示和存儲。</p><p> 關(guān)鍵詞 單片機(jī);溫濕度采集;CC1100;數(shù)據(jù)傳輸;</p><p><b> Abstract</b></p><p>
6、 With the development of various technologies of information in the field,in data collection techniques have also made great progress,collect data,information and social development is the mainstream.</p><p>
7、; This issue presents a collection based on single chip system solutions for wireless temperature and humidity, The plan is to use single chip microcomputer control DHT11 temperature sensors to collect the temperature a
8、nd humidity, control 1602 liquid crystal display real-time display temperature, humidity value,Control CC1100 wireless module data wireless transmission, and by single-chip microcomputer temperature and humidity data to
9、the computer to storage. This system for devices is the STC89C5</p><p> Key words:single-chip microcomputer; The temperature and humidity collecting; CC1100; Data transmission;</p><p><b>
10、 目 錄</b></p><p> 一 緒 論 1</p><p> 1.1 概述 1</p><p> 1.2 系統(tǒng)設(shè)計(jì)任務(wù)分析2</p><p> 二 總體方案設(shè)計(jì)與選擇的論證3</p><p> 2.1 系統(tǒng)總體設(shè)計(jì)3</p><p> 2.
11、2 單片機(jī)最小系統(tǒng)3</p><p> 2.2.1 單片機(jī)的說明3</p><p> 2.2.2 STC89C52單片機(jī)簡介4</p><p> 2.3 無線收發(fā)模塊介紹4</p><p> 2.3.1 CC1100概述及特點(diǎn)4</p><p> 2:3.2 CC1100應(yīng)用原理框圖5</p
12、><p> 2.4 LCD液晶顯示6</p><p> 2.4.1 1602LCD的基本參數(shù)6</p><p> 2.4.2 1602LCD接線圖7</p><p> 2.5 溫濕度采集電路7</p><p> 2.5.1 DHT11性能參數(shù)7</p><p> 2.6 聲報(bào)警
13、電路設(shè)計(jì)8</p><p> 2.7 系統(tǒng)電路框圖說明8</p><p> 2.7.1 發(fā)射機(jī)硬件框圖8</p><p> 2.7.2 接收機(jī)硬件框圖8</p><p> 三 軟件設(shè)計(jì)報(bào)告10</p><p> 3.1 單片機(jī)軟件設(shè)計(jì)10</p><p> 3.
14、1.1 發(fā)送部分軟件設(shè)計(jì)10</p><p> 3.1.2 接收部分軟件設(shè)計(jì)12</p><p> 3.2 流程圖設(shè)計(jì)14</p><p> 3.2.1 發(fā)送部分流程圖14</p><p> 3.2.2 接收部分流程圖15</p><p> 四 系統(tǒng)的調(diào)試與測試結(jié)果15</p>&l
15、t;p> 4.1 調(diào)試步驟15</p><p> 4.2實(shí)驗(yàn)結(jié)果 15</p><p> 4.3下載操作說明(附圖)15</p><p><b> 五 總結(jié)17</b></p><p><b> 致 謝 18</b></p><p><b&g
16、t; 參考文獻(xiàn)19</b></p><p> 附 錄1 系統(tǒng)實(shí)物圖20</p><p> 附 錄2 電路原理圖21</p><p> 附 錄3 畢業(yè)設(shè)計(jì)作品說明書 22</p><p> 附 錄4 發(fā)送板代碼 23</p><p> 附 錄5 接收板代碼 40</p>
17、<p><b> 一 緒 論</b></p><p><b> 1.1概述</b></p><p> 隨著社會的進(jìn)步和生產(chǎn)的需要,利用無線通信進(jìn)行溫度數(shù)據(jù)采集的方式應(yīng)用已經(jīng)滲透到生活各個方面如圖1-1。</p><p> 圖1-1 短距離無線通信的應(yīng)用</p><p> 在工
18、業(yè)現(xiàn)場中,由于生產(chǎn)環(huán)境的限制或者其他情況,工作人員不能長時間停留在現(xiàn)場觀察設(shè)備是否運(yùn)行正常,這時就需要采集數(shù)據(jù)并傳輸數(shù)據(jù)到一個環(huán)境相對好的操控室內(nèi)給工作人員監(jiān)控設(shè)備運(yùn)轉(zhuǎn)情況,這樣就會產(chǎn)生數(shù)據(jù)傳輸問題。由于廠房大、需要傳輸數(shù)據(jù)多,使用傳統(tǒng)的有線數(shù)據(jù)傳輸方式就需要鋪設(shè)很多很長的通訊線,這樣不僅浪費(fèi)資源,占用空間,且可操作性差,出現(xiàn)錯誤時換線困難等問題。因此利用無線傳輸?shù)姆绞竭M(jìn)行數(shù)據(jù)采集就顯得尤為重要。</p><p>
19、; 在過去農(nóng)業(yè)生產(chǎn)上,不論是溫室大棚的溫濕度監(jiān)測,還是糧倉的管理,傳統(tǒng)上都是采取分區(qū)取樣的人工方法,這樣帶來了工作量大,可靠性差等問題。而且現(xiàn)代大棚和糧倉占地面積大,檢測目標(biāo)分散,測點(diǎn)較多,傳統(tǒng)的方法已經(jīng)不能滿足當(dāng)前農(nóng)業(yè)發(fā)展的需要。當(dāng)前的科技水平下,無線通信技術(shù)的發(fā)展使得溫濕度采集測量更為精確,簡便易行。</p><p> 在日常生活中,隨著人們生活水平的提高,居住條件也逐漸變得智能化。如今有些家庭就會安裝室
20、內(nèi)溫濕度采集控制系統(tǒng),其原理就是利用無線通信技術(shù)采集室內(nèi)溫濕度的數(shù)據(jù),并根據(jù)室內(nèi)溫濕度情況遙控空調(diào)等電器來調(diào)節(jié)房間里的溫濕度,合理的溫濕度可以更好地改善人們的居住環(huán)境。</p><p> 以上只是簡單列舉幾個現(xiàn)實(shí)的例子,在現(xiàn)實(shí)生活中,這種無線溫濕度采集系統(tǒng)已經(jīng)被大量的應(yīng)用于工農(nóng)業(yè)、環(huán)境監(jiān)測、軍事國防、機(jī)器人控制等許多重要領(lǐng)域,凡是布線繁雜或不允許布線的場合都希望能通過無線方案來解決。為此,需要設(shè)計(jì)相應(yīng)的接口系統(tǒng)
21、,控制這些射頻芯片工作,完成可靠穩(wěn)定的無線數(shù)據(jù)通信,這樣的研究也變得更加有意義了。</p><p> 1.2系統(tǒng)設(shè)計(jì)任務(wù)分析</p><p> 本系統(tǒng)的設(shè)計(jì)采用了低功耗單片機(jī)STC89C52RC控制CC1100射頻芯片實(shí)現(xiàn)短距離無線數(shù)據(jù)通信。該接口設(shè)計(jì)具有成本低、功耗低、傳輸速率高、軟件設(shè)計(jì)簡單以及通信穩(wěn)定可靠等特點(diǎn)。整個系統(tǒng)可分為發(fā)送和接收二部分,通過CC1100無線數(shù)據(jù)通信收發(fā)模塊
22、來實(shí)現(xiàn)無線數(shù)據(jù)傳輸。發(fā)送部分以單片機(jī)STC89C52為核心,使用溫濕度轉(zhuǎn)換芯片DHT11實(shí)時采集溫濕度并通過液晶屏顯示。將采集的溫濕度無線傳送給接收部分,然后再在液晶屏上顯示,并通過串口發(fā)送到PC機(jī)上顯示和記錄,通過蜂鳴器實(shí)現(xiàn)對溫濕度過高或過低進(jìn)行報(bào)警。</p><p> 本系統(tǒng)的核心控制芯片選用的是STC89C52RC。單片機(jī)在各個技術(shù)領(lǐng)域中的迅猛發(fā)展,與單片機(jī)所構(gòu)成的計(jì)算機(jī)應(yīng)用系統(tǒng)的特點(diǎn)有關(guān):</p&
23、gt;<p> · 單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。</p><p> · 系統(tǒng)構(gòu)建簡潔、易行,能方便的實(shí)現(xiàn)系統(tǒng)功能。</p><p> · 由于構(gòu)成的系統(tǒng)是一個計(jì)算機(jī)系統(tǒng),相當(dāng)多的功能由軟件實(shí)現(xiàn),故具有柔性特點(diǎn)和優(yōu)異的性能價(jià)格比。</p><p> 二 總體方案設(shè)計(jì)與選擇的論證</p>&
24、lt;p><b> 2.1系統(tǒng)總體設(shè)計(jì)</b></p><p> 溫濕度監(jiān)測系統(tǒng)的硬件框圖如圖2-1所示,包括微處理器及其外圍電路(STC89C52單片機(jī)、串口通信RS232、溫濕度傳感器DHT11、無線收發(fā)模塊CC1100和1602液晶顯示。)</p><p> 圖2-1 硬件框圖</p><p> 系統(tǒng)由兩臺溫濕度測量器組成
25、,一臺為接收機(jī),另一臺為發(fā)送機(jī)。系統(tǒng)啟動后,由發(fā)送機(jī)實(shí)時測量環(huán)境中的溫度與濕度在本機(jī)液晶屏上顯示,并通過無線模塊將測量到的溫濕度數(shù)據(jù)發(fā)送給接收機(jī)并同步顯示。</p><p> 2.2單片機(jī)最小系統(tǒng)</p><p> 2.2.1單片機(jī)的說明</p><p> 單片機(jī)的原名叫Microcontroller,即微型控制器。單片機(jī)有別于通用微型計(jì)算機(jī),它是專門為控制和
26、智能儀器設(shè)計(jì)的一種集成度很高的微型計(jì)算機(jī)。其控制功能強(qiáng),有優(yōu)異的性能、價(jià)格比,有很高的可靠性。因而,單片機(jī)的應(yīng)用范圍在不斷的擴(kuò)大,它已經(jīng)成了人類生活中不可缺少的工具。下面是單片機(jī)在幾個方面的典型應(yīng)用[1]。</p><p> (1)單片機(jī)在智能儀器中的應(yīng)用</p><p> (2)單片機(jī)在機(jī)電一體化產(chǎn)品中的應(yīng)用 </p><p> (3)單片機(jī)在過程控制中的應(yīng)
27、用</p><p> (4)單片機(jī)在計(jì)算機(jī)網(wǎng)絡(luò)及通信中的應(yīng)用</p><p> (5)單片機(jī)在家用電器方面的應(yīng)用[2]</p><p> 2.2.2 STC89C52單片機(jī)簡介</p><p> 本設(shè)計(jì)中使用的是STC89C52單片機(jī),它完全兼容MCS-51系列單片機(jī)的所有功能,并且本身帶有2K的內(nèi)存儲器,可以在編程器上實(shí)現(xiàn)閃爍式的電
28、擦寫達(dá)幾萬次以上,比以往慣用的8031CPU外加EPROM為核心的單片機(jī)系統(tǒng)在硬件上具有更加簡單方便等優(yōu)點(diǎn)。</p><p><b> 1.主要性能</b></p><p> 與MCS-51產(chǎn)品指令系統(tǒng)完全兼容;片內(nèi)集成4KB的FLASH存儲器,可反復(fù)編程/擦除1000次;數(shù)據(jù)保留時間:10年;全靜態(tài)設(shè)計(jì),時鐘頻率范圍為0~24MHz、33MHz;三個程序存儲器保
29、密位;128×8 字節(jié)的內(nèi)部RAM;32條可編程的I/O口線;2個可工作于4種模式的16位定時/計(jì)數(shù)器;5個中斷源/2個中斷優(yōu)先級;可編程串行通道;具有4種工作模式的全雙工串行口;低功耗的待機(jī)工作模式和掉電工作模式;片內(nèi)振蕩器和時鐘電路;具有4種工作模式的全雙工串行口;低功耗的待機(jī)工作模式和掉電工作模式;片內(nèi)振蕩器和時鐘電路[3];</p><p> 2.3無線收發(fā)模塊介紹</p>&l
30、t;p> 2.3.1CC1100概述及特點(diǎn)</p><p> CC1100是一種低成本真正單片的UHF收發(fā)器,為低功耗無線應(yīng)用而設(shè)計(jì)。電路主要設(shè)定為在315、433、868和915MHz的ISM和SRD頻率波段,也可以容易地設(shè)置為300-348MHz、400-464MHz和800-928MHz的其他頻率。其數(shù)據(jù)傳輸率可達(dá)500kbps,支持2-FSK、GFSK和MSK調(diào)制方式,高靈敏度,內(nèi)置硬件CRC檢
31、錯和點(diǎn)對多點(diǎn)通信地址控制,較低的電流消耗,可編程控制的輸出功率,對所有的支持頻率可達(dá)+10dBm,支持低功率電磁波激活(無線喚醒)功能,支持傳輸前自動清理信道訪問(CCA),即載波偵聽系統(tǒng),模塊可軟件設(shè)地址,軟件編程非常方便。通過開啟集成在調(diào)制解調(diào)器上的前向誤差校正選項(xiàng),能使性能得到提升。</p><p> CC1100為數(shù)據(jù)包處理[4]、數(shù)據(jù)緩沖、突發(fā)數(shù)據(jù)傳輸、清晰信道評估、連接質(zhì)量指示和電磁波激發(fā)提供廣泛的
32、硬件支持。CC1100引腳圖如下2-2所示:</p><p> 圖2-2 CC1100引腳圖</p><p> 2:3.2 CC1100應(yīng)用原理框圖</p><p> CC1100只需要少量的外部元件,推薦的應(yīng)用電路見圖2-3,圖2-3中偏阻器R171用來設(shè)置一個精確的偏電流,而C131、C121、L121和L131形成一個平衡轉(zhuǎn)換器,用以將CC1100上的
33、微分RF端口轉(zhuǎn)換成單端RF信號。為了使芯片能夠穩(wěn)定工作,在芯片電源輸入端必須加上濾波電容[5]。</p><p> 圖2-3 CC1100 應(yīng)用參考電路</p><p> 本設(shè)計(jì)中CC1100應(yīng)用原理圖及接線圖如圖2-4,、2-5所示,單片機(jī)通過CSN、GDO0、GDO1、MOSI、MISO、SCK來控制CC1100模塊的發(fā)送與接收。</p><p> 圖2
34、-4 CC1100接線圖</p><p> 圖2-5 與單片機(jī)相連接線圖</p><p> 2.4 LCD液晶顯示</p><p> 2.4.1 1602LCD的基本參數(shù)</p><p> 設(shè)計(jì)中使用1602液晶顯示器來實(shí)時顯示測量數(shù)據(jù),1602LCD具有微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn)。</p>&
35、lt;p> 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別[6],本設(shè)計(jì)中采用的是帶背光的1602LCD。</p><p> 1602LCD主要技術(shù)參數(shù):顯示容量:16×2個字符</p><p> 芯片工作電壓:4.5—5.5V</p><p> 工作電流:2.0mA
36、(5.0V)</p><p> 模塊最佳工作電壓:5.0V</p><p> 字符尺寸:2.95×4.35(W×H)mm</p><p> 2.4.2 1602LCD接線圖</p><p> 如圖2-6所示,單片機(jī)P0口、P3.4、P3.6、P3.7與1602相連接,單片機(jī)通過P0口、P3.4、P3.6、P3.7
37、控制1602顯示數(shù)據(jù)。</p><p> 圖2-6 LCD接線圖</p><p> 2.5溫濕度采集電路</p><p> 2.5.1 DHT11性能參數(shù)</p><p> 本設(shè)計(jì)中使用的DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。測量范圍:相對濕度20%~90%RH,攝氏溫度0~50℃。其中傳感器包括
38、了一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機(jī)相連接。數(shù)據(jù)接口采用單線制串行接口,信號傳輸距離可達(dá)20m以上。傳感器性能說明見表2-1。</p><p> DHT11數(shù)字溫濕度傳感器采用單線雙向的串行接口技術(shù),一次通訊時間約4ms,一次完整的數(shù)據(jù)傳輸為40bit,高位在先,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。即8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8b
39、it校驗(yàn)碼,其中校驗(yàn)數(shù)據(jù)等于上述4個8bit數(shù)據(jù)之和所得結(jié)果的末8位[7]。</p><p> 表2-1 傳感器性能:</p><p> 2.6 聲報(bào)警電路設(shè)計(jì)</p><p> 當(dāng)外界溫濕度超過預(yù)設(shè)溫度上下限時,為更加有效的引起用戶的注意,及時關(guān)注溫濕度的變化,本系統(tǒng)設(shè)計(jì)了聲報(bào)警電路。該電路由蜂鳴器組成,具體電路如圖2-7所示。</p><
40、;p> 圖2-7 警報(bào)電路</p><p> 2.7 系統(tǒng)電路框圖說明</p><p> 2.7.1 發(fā)射機(jī)硬件框圖</p><p> 如圖2-8中發(fā)射機(jī)原理圖,整個發(fā)射機(jī)由主控制器模塊、CC1100模塊、溫濕度測量模塊、警報(bào)模塊、按鍵模塊、顯示模塊、電源模塊構(gòu)成。系統(tǒng)開啟后,由溫濕度傳感器測量環(huán)境溫濕度,并將測量結(jié)果傳送給主控模塊處理。然后單片
41、機(jī)將處理后的數(shù)據(jù)傳輸給顯示模塊顯示和無線模塊發(fā)送出去。當(dāng)溫濕度值高于或者低于設(shè)定的上下限時,警報(bào)模塊鳴叫。</p><p> 圖2-8 發(fā)射機(jī)硬件框圖</p><p> 2.7.2 接收機(jī)硬件框圖</p><p> 如圖2-9中接收機(jī)原理圖,接收機(jī)比發(fā)射機(jī)少了一個溫濕度測量模塊,其它模塊都一樣。開啟電源后,由無線模塊接收數(shù)據(jù),將接收到數(shù)據(jù)傳輸給主控模塊處理
42、,在由單片機(jī)將處理后的數(shù)據(jù)傳輸給LCD模塊顯示,當(dāng)溫濕度值高于或者低于設(shè)定的上下限時,警報(bào)模塊鳴叫。</p><p> 圖2-9 接收機(jī)框圖</p><p><b> 三 軟件設(shè)計(jì)報(bào)告</b></p><p> 3.1單片機(jī)軟件設(shè)計(jì)</p><p> 3.1.1發(fā)送部分軟件設(shè)計(jì)</p><
43、p> 單片機(jī)對CC1100無線模塊以及DHT11進(jìn)行初始化之后,從DHT11讀取溫濕度數(shù)據(jù)。然后經(jīng)過溫濕度處理之后在液晶顯示屏上顯示,最后通過調(diào)用無線發(fā)送程序?qū)貪穸葦?shù)據(jù)發(fā)送給接收端。</p><p> 3.1.1.1溫濕度傳感DHT11</p><p> 對DHT11進(jìn)行操作,首先通過調(diào)用init_DTH11()函數(shù)對DHT11進(jìn)行初始化。然后調(diào)用DTH11_RD_CHAR(
44、)函數(shù)讀取DHT11采集到的數(shù)據(jù)并按8位一組,高16位是濕度,低16位是溫度[8]。接著將采集到的數(shù)據(jù)通過DTH11_DUSHU()函數(shù)賦值給wendu和shidu變量。</p><p> void DTH11_DUSHU()</p><p><b> {</b></p><p> unsigned char num;</p>
45、;<p> if(init_DTH11()==0)</p><p><b> {</b></p><p> wendu=DTH11_RD_CHAR();</p><p> DTH11_RD_CHAR();</p><p> shidu=DTH11_RD_CHAR();</p><
46、;p> DTH11_RD_CHAR();</p><p> DTH11_RD_CHAR();</p><p> for(num=0;num<17;num++); //最后BIT輸出后拉低總線59us</p><p><b> DQ=1;</b></p><p><b> }</b&
47、gt;</p><p><b> }</b></p><p> 3.1.1.2 LCD液晶顯示</p><p> 本設(shè)計(jì)采用的是1602LCD液晶作為顯示,首先通過調(diào)用init_1602( )函數(shù)對1602進(jìn)行初始化,然后調(diào)用write_com( )、write_str( )、write_data( )三個函數(shù)在顯示接收到的數(shù)據(jù)。writ
48、e_com( )用來定義輸入的地址,write_str( )用來顯示輸入的字符串,write_data( )用來顯示輸入的數(shù)據(jù)。在本設(shè)計(jì)1602顯示中使用Tem表示溫度,Hum表示濕度。根據(jù)1602的顯示使用說明調(diào)用函數(shù)write_data( )將接收到是濕度和溫度數(shù)據(jù)轉(zhuǎn)化為十進(jìn)制數(shù)字顯示:</p><p> 3.1.1.3無線模塊CC1100(發(fā)送)</p><p> 通過調(diào)用Cpu
49、Init();POWER_UP_RESET_CC1100()函數(shù)對CC1100進(jìn)行初始化,然后將wendu和shidu賦值給TxBuf[0]、TxBuf[1]通過調(diào)用函數(shù)halRfSendPacket(TxBuf,4)發(fā)送出去。具體代碼見附錄。</p><p> 圖3-1 數(shù)據(jù)發(fā)送過程</p><p> 3.1.2接收部分軟件設(shè)計(jì)</p><p> 開啟電源
50、,對CC1100無線模塊初始化。將接受到的數(shù)據(jù)通過1602液晶同步顯示出來。</p><p> 3.1.2.1無線模塊CC1100(接收)</p><p> 通過調(diào)用CpuInit();POWER_UP_RESET_CC1100()函數(shù)對CC1100進(jìn)行初始化,然后進(jìn)入接受狀態(tài),確定是否接受到數(shù)據(jù),如果接受到數(shù)據(jù)則讀出數(shù)據(jù)并判斷校驗(yàn)位,校驗(yàn)成功則返回接受成功,將讀出數(shù)據(jù)顯示。如果接受失
51、敗則調(diào)用halSpiStrobe(CCxxx0_SFRX)函數(shù)清洗接收緩沖區(qū)。具體代碼見附錄。</p><p> 圖3-2 數(shù)據(jù)接收過程</p><p> 3.1.2.2 LCD液晶顯示</p><p> 對1602初始化,將接收到的數(shù)據(jù)RxBuf[0]、RxBuf[1]轉(zhuǎn)換為十進(jìn)制顯示。因?yàn)?602液晶是ASCII顯示,所以在顯示溫度和濕度時需要加上48,
52、如write_data(RxBuf[1]/10%10+48);write_data(RxBuf[1]%10+48)。</p><p> 3.1.2.3串口通信</p><p> 程序的寫入單片機(jī)和讀出都需要通過串口,首先對串口進(jìn)行初始化[9],設(shè)置波特率為4800,將串口線兩端接口分別與PC機(jī)和單片機(jī)系統(tǒng)接好。開啟電源通過STC-ISP進(jìn)行下載。</p><p>
53、; 3.1.2.4警報(bào)設(shè)計(jì)</p><p> 可以在主程序中添加判斷語句對wendu和shidu的大小進(jìn)行判斷,設(shè)置wendu和shidu變量的上下限,當(dāng)wendu和shidu變量大于或者小于設(shè)置的上下限則開啟警報(bào)[10],以提醒工作人員做出反應(yīng)。</p><p><b> 3.2流程圖設(shè)計(jì)</b></p><p> 3.2.1發(fā)送部分
54、流程圖</p><p> 發(fā)送部分的一個循環(huán)的總體思路是這樣的先初始化系統(tǒng),從DHT11中讀出溫濕度,將得到的溫濕度值轉(zhuǎn)化成十進(jìn)制并通過1602液晶顯示出來,將DHT11采集到的數(shù)值寫入發(fā)送數(shù)據(jù)數(shù)組,然后初始化CC1100,將溫濕度發(fā)送,其流程圖如圖3-3所示。</p><p> 圖3-3 發(fā)送流程圖</p><p> 3.2.2接收部分流程圖</p&
55、gt;<p> 接收部分的總體思路是這樣的,首先還是初始化系統(tǒng),然后進(jìn)入大循環(huán)判斷狀態(tài)寄存器是否有接收中斷。如果有就從RXFIFO中讀入二進(jìn)制數(shù)據(jù),然后將數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制在1602液晶屏上顯示出來,其流程圖如圖3-4所示。</p><p> 圖3-4 接收流程圖</p><p> 四 系統(tǒng)的調(diào)試與測試結(jié)果</p><p><b>
56、4.1調(diào)試步驟</b></p><p> 步驟一 完成硬件電路的焊接。</p><p> 步驟二 將1602液晶模塊與電路板連接,下載檢測程序檢測是否正常顯示。</p><p> 步驟三 將DHT11傳感器與電路板連接,寫入測量溫濕度的程序。測試DHT11部分硬件及軟件部分是否能正常使用。</p><p> 步驟四 將CC
57、1100的收發(fā)部分分別與兩片電路板相連,寫入發(fā)射一個常數(shù)的程序,檢測收發(fā)模塊及程序是否能正常使用。</p><p> 步驟五 將顯示、收發(fā)、溫度檢測程序整合,檢測系統(tǒng)是否能將發(fā)送端的溫濕度值測量出來發(fā)送到接收端在液晶屏上顯示出來。</p><p><b> 4.2實(shí)驗(yàn)結(jié)果</b></p><p> 經(jīng)過測試能正常檢測出周邊環(huán)境的溫濕度值并
58、實(shí)現(xiàn)同步傳輸并顯示。如下圖4-1、4-2。</p><p> 圖4-1發(fā)送機(jī)結(jié)果 圖4-2接收機(jī)結(jié)果</p><p> 4.3下載操作說明(附圖)</p><p> 本系統(tǒng)使用前先分別將無線發(fā)送、接收程序通過STC_ISP軟件下載燒錄到型號為STC89C52RC的單片機(jī)上。具體過程為:先查看COM號,再打開STC
59、_ISP軟件選擇相應(yīng)的串口號,選擇好要下載的16進(jìn)制文件,進(jìn)行下載,設(shè)置波特率為115200。參照下圖進(jìn)行設(shè)置。</p><p><b> 具體下載流程如下:</b></p><p> 右鍵點(diǎn)擊我的電腦打開屬性,在彈出的界面中找到硬件欄。然后點(diǎn)擊設(shè)備管理,右鍵點(diǎn)擊端口COM1選擇屬性設(shè)置波特率。</p><p> 打開STC_ISP軟件,
60、選擇需要下載的文件進(jìn)行下載,如圖4-3.</p><p> 圖4-3 下載軟件界面說明圖</p><p> 程序下好后,接好電源線,在此使用USB供電。設(shè)發(fā)送部分為A,接收部分為B。分別給A、B通電,打開開關(guān)后,電源指示燈亮,A液晶顯示屏上顯示當(dāng)前溫濕度,末尾的C表示攝氏度。在這時, B通過無線接收到A發(fā)送的數(shù)據(jù)后,也在液晶顯示屏上顯示溫濕度,比較之后,發(fā)現(xiàn)完全符合。</p>
61、;<p><b> 五 總結(jié)</b></p><p> 數(shù)據(jù)采集與處理是51單片機(jī)的常用領(lǐng)域,除了電信號以外,單片機(jī)還可以利用傳感器實(shí)現(xiàn)對非電信號的采集。本設(shè)計(jì)介紹的數(shù)字溫濕度采集器就是一個典型事例。本設(shè)計(jì)采用一種直接數(shù)字輸入式的溫濕度傳感芯片DHT11實(shí)現(xiàn)了單片機(jī)控制的數(shù)字溫濕度計(jì)系統(tǒng)?;贒HT11數(shù)字溫濕度傳感器構(gòu)成的實(shí)時監(jiān)控系統(tǒng)確實(shí)具有精度高、抗干擾能力強(qiáng)、電路簡單
62、等諸多優(yōu)點(diǎn)。相比之下,傳統(tǒng)的溫度檢測系統(tǒng)采用熱敏電阻等溫度敏感元件,熱敏電阻成本低,但需要后續(xù)信號調(diào)理、AD轉(zhuǎn)換處理電路才能將溫度信號轉(zhuǎn)換成數(shù)字信號,不但電路復(fù)雜,而且熱敏電阻的可靠性相對較差,測量溫度的精度差,很難保證熱敏電阻的一致性和線性,在應(yīng)用中需要很好的解決引線誤差補(bǔ)償問題、共模干擾問題和放大電路零點(diǎn)漂移誤差等技術(shù)問題。</p><p> 另外本設(shè)計(jì)使用CC1100無線傳輸模塊完成了無線傳輸?shù)倪^程。通過
63、無線傳輸模塊可以省去有線帶來的布線麻煩。</p><p> 在此次設(shè)計(jì)過程中也遇到一些問題,比如,在單片機(jī)對于CC1100寄存器的定義、如何發(fā)送和讀寫、液晶的顯示等問題。</p><p> 不過,通過這次的學(xué)習(xí)和實(shí)踐,我學(xué)會了如何看待問題,解決問題。例如,在編譯程序時無錯誤,而編譯并生成應(yīng)用是提示內(nèi)存溢出的問題,后來發(fā)現(xiàn)是一些變量的定義太多還有重復(fù)定義造成的。下載時總是提示下載失敗,但
64、是當(dāng)把1602模塊拿掉后又能正常下載,至今未找出原因。</p><p> 在方老師的指導(dǎo)下,經(jīng)過4個月的努力,本論文已經(jīng)完成了預(yù)期的目標(biāo)并且保存了完整的記錄文檔。相關(guān)工作總結(jié)如下:</p><p><b> 本設(shè)計(jì)內(nèi)容重點(diǎn):</b></p><p> CC1100無線傳輸模塊的操作。</p><p> DHT11
65、的操作命令。</p><p><b> 1602液晶顯示。</b></p><p> CC1100正常傳送和接收。</p><p> 接收板能同步顯示發(fā)送板采集到的溫濕度數(shù)據(jù)。</p><p> 在學(xué)習(xí)期間,我了解和熟悉了溫濕度采集系統(tǒng)的全部流程,對keil和protel的應(yīng)用更加熟悉了,為以后的工作、學(xué)習(xí)打下良
66、好的基礎(chǔ)。</p><p><b> 致 謝</b></p><p> 經(jīng)過四個月的制作和調(diào)試,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個本科生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),很多問題都不清楚如何下手解決。</p><p> 在這里首先要感謝我的指導(dǎo)老師方老師。方老師平日里工作繁多,但在我做畢業(yè)設(shè)計(jì)的每
67、個階段,從外出實(shí)習(xí)到查閱資料,設(shè)計(jì)草案的確定和修改,中期檢查,后期詳細(xì)設(shè)計(jì)等整個過程中都給予了我悉心的指導(dǎo)。</p><p> 然后還要感謝大學(xué)四年來所有的老師,為我們打下電子信息工程專業(yè)知識的基礎(chǔ)。</p><p> 最后感謝電信學(xué)院和我的母?!f里學(xué)院四年來對我的栽培。</p><p><b> 參考文獻(xiàn)</b></p>
68、<p> [1]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京航空航天大學(xué)出版社,1991.</p><p> [2]郭兵.SOC技術(shù)原理應(yīng)用[M].清華大學(xué)出版社,2006.</p><p> [4]郭麗霞,李正斌,楊欣.基于MSP430F2012和CC1100的無線溫濕度傳感器節(jié)點(diǎn)設(shè)計(jì)[J].《電子與封裝》 2010年第10卷第7期 12-15頁.</p>
69、<p> [7]倪天龍.單總線傳感器DHT11在溫溫度測控中的應(yīng)用[J].《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 2010年06期</p><p> [9]范逸之.Visual Basic 與RS232 串口通訊控制[M].中國青年出版社</p><p> [10] 戴佳,戴衛(wèi)恒,劉博文。51單片機(jī)C語言應(yīng)用程序設(shè)計(jì) 實(shí)例精講[M],2008.12:73—85</p>&
70、lt;p> [11] Stuart Ball . Temperature Measurement Technique 2002.1</p><p> 附 錄1 系統(tǒng)實(shí)物圖</p><p><b> 發(fā)射機(jī)</b></p><p><b> 接收機(jī)</b></p><p> 附 錄2
71、 電路原理圖</p><p><b> 發(fā)射機(jī)原理圖</b></p><p><b> 接收機(jī)原理圖</b></p><p> 附 錄3 畢業(yè)設(shè)計(jì)作品說明書</p><p><b> 一、作品名稱</b></p><p> 基于單片機(jī)的CC11
72、00無線溫濕度采集器</p><p><b> 二、作品功能</b></p><p> 1、測量環(huán)境中溫度與濕度值。</p><p> 2、將測量到的溫濕度值實(shí)時無線傳送到上位機(jī)顯示。</p><p><b> 三、操作步驟</b></p><p> 1、發(fā)射機(jī):將
73、DHT11傳感器、CC1100無線模塊、LCD顯示模塊插入對應(yīng)的插口。</p><p> 接收機(jī):將CC1100無線模塊、LCD顯示模塊插入對應(yīng)的插口。</p><p> 2、連接USB線提供電源。</p><p><b> 3、開啟開關(guān)</b></p><p> 4、觀察發(fā)射機(jī)和接收機(jī)顯示內(nèi)容是否一致。<
74、/p><p><b> 四、注意事項(xiàng)</b></p><p> 1、切勿將DHT11插反,易燒壞芯片。</p><p> 2、切勿將無線模塊插反,易燒壞芯片。</p><p> 3、DHT11剛剛開啟測量時,測量值與實(shí)際不符,請等待幾分鐘。</p><p> 4、下載程序時,如果提示下載失敗
75、,請拿掉LCD顯示模塊后在下載。</p><p> 附 錄4 發(fā)送板代碼</p><p> // 濕度20-90 溫度0-50采樣間隔1S無線模塊板</p><p> #include<reg52.h></p><p> #include<intrins.h></p><
76、p> #define WRITE_BURST 0x40//連續(xù)寫入</p><p> #define READ_SINGLE 0x80//讀</p><p> #define READ_BURST 0xC0//連續(xù)讀</p><p> #define BYTES_IN_RXFI
77、FO 0x7F //接收緩沖區(qū)的有效字節(jié)數(shù)</p><p> #define CRC_OK 0x80 //CRC校驗(yàn)通過位標(biāo)志</p><p> //**************CC1100接口***********************</p><p> sbit GDO0=P3^3;<
78、;/p><p> sbit GDO2=P1^4;</p><p> sbitMISO=P1^2;</p><p> sbitMOSI=P1^1;</p><p> sbitSCK=P3^2;</p><p> sbitCSN=P1^3;</p><p> //**
79、**************DTH11*************</p><p> sbit DQ=P2^3; </p><p> // **********************1602**********************</p><p> sbit lcden=P3^7;</p><p> sbit lcdrs=P3^4
80、;</p><p> sbit lcdrw=P3^6;</p><p> sbit BELL=P1^6;</p><p> unsigned char wendu;</p><p> unsigned char shidu;</p><p> //***************更多功率參數(shù)設(shè)置可詳細(xì)參考DAT
81、ACC1100英文文檔中第48-49頁的參數(shù)表******************</p><p> unsigned char PaTabel[8] = {0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60 ,0x60}; //0dBm</p><p> //*******************CC1100程序函數(shù)聲明****************
82、******************</p><p> void SpiInit(void);</p><p> void CpuInit(void);</p><p> void RESET_CC1100(void);</p><p> void POWER_UP_RESET_CC1100(void);</p><
83、;p> void halSpiWriteReg(unsigned char addr, unsigned char value);</p><p> void halSpiWriteBurstReg(unsigned char addr, unsigned char *buffer, unsigned char count);</p><p> void halSpiStrob
84、e(unsigned char strobe);</p><p> unsigned char halSpiReadReg(unsigned char addr);</p><p> void halSpiReadBurstReg(unsigned char addr, unsigned char *buffer, unsigned char count);</p>&l
85、t;p> unsigned char halSpiReadStatus(unsigned char addr);</p><p> void halRfWriteRfSettings(void);</p><p> void halRfSendPacket(unsigned char *txBuffer, unsigned char size); </p><
86、;p> unsigned char halRfReceivePacket(unsigned char *rxBuffer, unsigned char *length); </p><p> //********************延時*************************************</p><p> void Delay(unsigned in
87、t s);</p><p> void inerDelay_us(unsigned char n);</p><p> //*************************CC1100配置************************************</p><p> // CC1100 STROBE, CONTROL AND STATUS REG
88、SITER</p><p> #define CCxxx0_IOCFG2 0x00 // GDO2 output pin configuration</p><p> #define CCxxx0_IOCFG1 0x01 // GDO1 output pin configuration</p><p> #d
89、efine CCxxx0_IOCFG0 0x02 // GDO0 output pin configuration</p><p> #define CCxxx0_FIFOTHR 0x03 // RX FIFO and TX FIFO thresholds</p><p> #define CCxxx0_SYNC1 0x0
90、4 // Sync word, high unsigned char</p><p> #define CCxxx0_SYNC0 0x05 // Sync word, low unsigned char</p><p> #define CCxxx0_PKTLEN 0x06 // Packet length</p
91、><p> #define CCxxx0_PKTCTRL1 0x07 // Packet automation control</p><p> #define CCxxx0_PKTCTRL0 0x08 // Packet automation control</p><p> #define CCxxx0_ADDR
92、 0x09 // Device address</p><p> #define CCxxx0_CHANNR 0x0A // Channel number</p><p> #define CCxxx0_FSCTRL1 0x0B // Frequency synthesizer control</p>
93、;<p> #define CCxxx0_FSCTRL0 0x0C // Frequency synthesizer control</p><p> #define CCxxx0_FREQ2 0x0D // Frequency control word, high unsigned char</p><p> #de
94、fine CCxxx0_FREQ1 0x0E // Frequency control word, middle unsigned char</p><p> #define CCxxx0_FREQ0 0x0F // Frequency control word, low unsigned char</p><p> #defin
95、e CCxxx0_MDMCFG4 0x10 // Modem configuration</p><p> #define CCxxx0_MDMCFG3 0x11 // Modem configuration</p><p> #define CCxxx0_MDMCFG2 0x12 // Modem configu
96、ration</p><p> #define CCxxx0_MDMCFG1 0x13 // Modem configuration</p><p> #define CCxxx0_MDMCFG0 0x14 // Modem configuration</p><p> #define CCxxx0_DEVIAT
97、N 0x15 // Modem deviation setting</p><p> #define CCxxx0_MCSM2 0x16 // Main Radio Control State Machine configuration</p><p> #define CCxxx0_MCSM1 0x17
98、// Main Radio Control State Machine configuration</p><p> #define CCxxx0_MCSM0 0x18 // Main Radio Control State Machine configuration</p><p> #define CCxxx0_FOCCFG 0x19
99、 // Frequency Offset Compensation configuration</p><p> #define CCxxx0_BSCFG 0x1A // Bit Synchronization configuration</p><p> #define CCxxx0_AGCCTRL2 0x1B // AGC c
100、ontrol</p><p> #define CCxxx0_AGCCTRL1 0x1C // AGC control</p><p> #define CCxxx0_AGCCTRL0 0x1D // AGC control</p><p> #define CCxxx0_WOREVT1 0x1E
101、 // High unsigned char Event 0 timeout</p><p> #define CCxxx0_WOREVT0 0x1F // Low unsigned char Event 0 timeout</p><p> #define CCxxx0_WORCTRL 0x20 // Wake On Radio c
102、ontrol</p><p> #define CCxxx0_FREND1 0x21 // Front end RX configuration</p><p> #define CCxxx0_FREND0 0x22 // Front end TX configuration</p><p> #define
103、 CCxxx0_FSCAL3 0x23 // Frequency synthesizer calibration</p><p> #define CCxxx0_FSCAL2 0x24 // Frequency synthesizer calibration</p><p> #define CCxxx0_FSCAL1 0
104、x25 // Frequency synthesizer calibration</p><p> #define CCxxx0_FSCAL0 0x26 // Frequency synthesizer calibration</p><p> #define CCxxx0_RCCTRL1 0x27 // RC oscil
105、lator configuration</p><p> #define CCxxx0_RCCTRL0 0x28 // RC oscillator configuration</p><p> #define CCxxx0_FSTEST 0x29 // Frequency synthesizer calibration control&
106、lt;/p><p> #define CCxxx0_PTEST 0x2A // Production test</p><p> #define CCxxx0_AGCTEST 0x2B // AGC test</p><p> #define CCxxx0_TEST2 0x2C //
107、Various test settings</p><p> #define CCxxx0_TEST1 0x2D // Various test settings</p><p> #define CCxxx0_TEST0 0x2E // Various test settings</p><p> //
108、 Strobe commands</p><p> #define CCxxx0_SRES 0x30 // Reset chip.</p><p> #define CCxxx0_SFSTXON 0x31 // Enable and calibrate frequency synthesizer (if MCSM0.FS_AUTOC
109、AL=1).</p><p> // If in RX/TX: Go to a wait state where only the synthesizer is</p><p> // running (for quick RX / TX turnaround).</p><p> #define CCxxx0_SXOFF 0x32
110、 // Turn off crystal oscillator.</p><p> #define CCxxx0_SCAL 0x33 // Calibrate frequency synthesizer and turn it off</p><p> // (enables quick start).</p><p> #def
111、ine CCxxx0_SRX 0x34 // Enable RX. Perform calibration first if coming from IDLE and</p><p> // MCSM0.FS_AUTOCAL=1.</p><p> #define CCxxx0_STX 0x35 // In IDLE st
112、ate: Enable TX. Perform calibration first if</p><p> // MCSM0.FS_AUTOCAL=1. If in RX state and CCA is enabled:</p><p> // Only go to TX if channel is clear.</p><p> #define CCxxx
113、0_SIDLE 0x36 // Exit RX / TX, turn off frequency synthesizer and exit</p><p> // Wake-On-Radio mode if applicable.</p><p> #define CCxxx0_SAFC 0x37 // Perform AFC
114、adjustment of the frequency synthesizer</p><p> #define CCxxx0_SWOR 0x38 // Start automatic RX polling sequence (Wake-on-Radio)</p><p> #define CCxxx0_SPWD 0x39 /
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的cc1100無線溫濕度采集系統(tǒng)設(shè)計(jì)[任務(wù)書]
- 基于51單片機(jī)的cc1100無線溫濕度采集系統(tǒng)設(shè)計(jì)[開題報(bào)告]
- 基于單片機(jī)的溫濕度檢測畢業(yè)論文
- 基于單片機(jī)的溫濕度檢測畢業(yè)論文
- 畢業(yè)論文-基于單片機(jī)的溫濕度控制系統(tǒng)
- 畢業(yè)論文----基于單片機(jī)的土壤溫濕度采集系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文--基于51單片機(jī)的溫濕度采集系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的溫濕度檢測
- 基于單片機(jī)的溫濕度檢測
- 單片機(jī)無線溫濕度測量系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的室內(nèi)溫濕度計(jì)的設(shè)計(jì)
- 單片機(jī)溫濕度畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的糧倉溫濕度控制
- 畢業(yè)論文-基于51單片機(jī)的溫濕度檢測控制系統(tǒng)
- 基于單片機(jī)溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的溫室溫濕度控制系統(tǒng)的設(shè)計(jì) 畢業(yè)論文
- 基于avr單片機(jī)的溫濕度采集系統(tǒng)
- 基于單片機(jī)的無線溫濕度檢測系統(tǒng)的設(shè)計(jì)湖南理工標(biāo)準(zhǔn)畢業(yè)論文格式
- 基于單片機(jī)的糧庫溫濕度智能監(jiān)控系統(tǒng)設(shè)計(jì)-本科畢業(yè)論文
- 基于51單片機(jī)的大棚溫濕度檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)--畢業(yè)論文
評論
0/150
提交評論