基于單片機的無線溫度采集報警系統(tǒng)設計_第1頁
基于單片機的無線溫度采集報警系統(tǒng)設計_第2頁
基于單片機的無線溫度采集報警系統(tǒng)設計_第3頁
基于單片機的無線溫度采集報警系統(tǒng)設計_第4頁
基于單片機的無線溫度采集報警系統(tǒng)設計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上基于單片機的無線溫度采集報警系統(tǒng)設計 基于單片機的無線溫度采集報警系統(tǒng)設計 基于單片機的無線溫度采集報警系統(tǒng)設計 摘 要 本文所介紹的是一種采用單總線數(shù)字式溫度傳感器DS18B20、AT89C52單片機、1620LCM液晶顯示器、數(shù)碼管及nRF24L01無線收發(fā)一體模塊組成的新型溫度無線采集報警系統(tǒng),并使用數(shù)碼管顯示器將所采集溫度在采集端顯示,并無線傳輸?shù)浇邮漳K用1620LCM液晶顯示器顯示出來。 該系統(tǒng)以 AT89C52單片機為控制核心,利用新型一線制溫度傳感器 DS18B20測量溫度值以及高可靠無線收發(fā)模塊nRF24L01實現(xiàn)環(huán)境溫度的無線采集和報警。 系統(tǒng)測溫

2、范圍為-50+120,測量精度為 0.5。 用戶可以通過按鍵K0、K1、K2、K3隨時自定義報警上、下限值,一旦溫度超過極限值,接收端單片機便啟動報警系統(tǒng)。 該系統(tǒng)精度高、測溫范圍廣、報警及時,可廣泛應用于基于單片機的溫度無線采集報警場合。 關鍵詞:AT89C52單片機;無線溫度采集;DS18B20;nRF24L01無線傳輸 19 Abstract This article introduced a new temperature wireless acquisition alarm system .It consist a single bus digital temperature sen

3、sor DS18B20, AT89S52 SCM, 1620 LCM LCD monitor, digital pipe and nRF24L01 wireless transceiver module . It use digital tube display temperature in the collection and the temperature that wireless transmission to receiving module with 1620 LCM LCD display. this system use AT89S52 SCM as control core,

4、 use the new a wire temperature sensor DS18B20 measuring temperature and high reliable wireless transceiver module nRF24L01 realize environmental temperature wireless data collection and alarm. Temperature measurement system for-50 scope+ 120 , measuring precision of 0.5 . The user can through the k

5、ey K0, K1, K2, K3 custom alarm at any time, and have lower limit, once the temperature over limit, the receiver single-chip microcomputer start alarm system. The system have high precision, temperature measuring range, alarm in time, and can be widely used in the temperature of the acquisition based

6、 on single chip wireless alarm occasion. Keywords: AT89S52 SCM; Wireless temperature gathering; DS18B20; NRF24L01 目 錄 摘 要I AbstractII 1 概述1 1.1 選題意義1 1.2 設計功能要求1 1.3 整體方案論證1 1.4 無線數(shù)據采集器系統(tǒng)框圖3 2 溫度無線采集報警系統(tǒng)的主要元件介紹4 2.1 溫度測量傳感器DS18B20的介紹4 2.1.1 DS18B20概述4 2.1.2 內部結構5 2.1.3 DS18B20通信協(xié)議6 2.1.4 溫度數(shù)據的計算處理方法

7、7 2.2 無線發(fā)射模塊nRF24L01介紹7 2.2.1 概述7 2.2.2 工作模式8 2.2.3 SPI 指令及時序10 3 系統(tǒng)硬件電路設計11 3.1 AT89C52單片機最小系統(tǒng)11 3.2 溫度檢測模塊電路12 3.3 溫度顯示模塊電路12 3.4 發(fā)射電路模塊14 3.5 接收電路模塊14 4 系統(tǒng)軟件設計15 4.1 主程序15 4.2 子程序16 5 結論19 參考文獻21 附錄一22 附錄二24 附錄三25 致 謝43 1 概述 1.1 選題意義 溫度是工業(yè)、農業(yè)生產中常見和最基本的參數(shù)之一,由于有些場合生產環(huán)境惡劣,工作人員不能長時間停留在現(xiàn)場觀察設備是否運行正常,就需

8、要無線采集數(shù)據并傳輸數(shù)據到一個環(huán)境相對好的操控室內,這樣就會產生數(shù)據傳輸問題。 由于廠房大、需要傳輸數(shù)據多,使用傳統(tǒng)的有線數(shù)據傳輸方式就需要鋪設很多很長的通訊線,浪費資源,占用空間,可操作性差,出現(xiàn)錯誤換線困難。 而且,當數(shù)據采集點處于運動狀態(tài)、所處的環(huán)境不允許或無法鋪設電纜時,數(shù)據甚至無法傳輸,此時便需要利用無線傳輸?shù)姆绞竭M行數(shù)據采集。 在現(xiàn)實生活中,這種無線溫度采集系統(tǒng)已經被成功應用于工農業(yè)、環(huán)境監(jiān)測、軍事國防、機器人控制等許多重要領域,而且類似于這種溫度采集系統(tǒng)的無線通信網絡已經被廣泛的應用到民用和軍事領域。 凡是布線繁雜或不允許布線的場合都希望能通過無線方案來解決。 為此,需要設計相應

9、的接口系統(tǒng),控制這些射頻芯片工作,完成可靠穩(wěn)定的無線數(shù)據通信,這樣的研究也變得更加有意義。 1.2 設計功能要求 (1)能夠檢測溫度傳感器DS18B20的狀態(tài)。 (2)收發(fā)端都能夠顯示溫度數(shù)據,以比較無線傳輸?shù)恼_性。 (3)無線傳輸50m左右。 (4)能夠提供高低溫報警,且能設定高低溫報警值。 1.3 整體方案論證 根據各項功能的實現(xiàn)方法以及硬件連接方式,將整個系統(tǒng)劃分為三大模塊:溫度數(shù)據采集模塊,顯示模塊,無線通信模塊。 主要是對溫度數(shù)據采集模塊,無線通信模塊做出方案選擇。 (1) 溫度數(shù)據采集模塊 在日常生活及工農業(yè)生產中,經常要用到溫度的無線采集及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻。

10、 而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持。 方案一:采用熱敏電阻,價格比較便宜,但熱敏電阻精度低,可靠性不好。 用溫度傳感器如LM35,其輸出的是模擬信號,需經過A/D轉換后才能送人單片機。 這樣電路較復雜,不易進行多點溫度測量,其軟件設計也比較難設計。 方案二:采用單總線溫度傳感器DS18B20,輸出信號全數(shù)字化,便于控制,省去傳統(tǒng)的測溫方法的很多外圍電路,且該芯片物理化學特性很穩(wěn)定,它能用于工業(yè)測溫元件。 DS18B20最大的特點是采用了單總線的數(shù)據傳輸,測溫系統(tǒng)的電路就比較簡單,體積不大。 而且很容易實現(xiàn)多點溫度測量。 (2) 無線通信模塊 方案

11、一:采用F05P+J04V組成的低成本的無線收發(fā)模塊,價格比較便宜,但對基帶信號有較高要求,對無線收發(fā)的布局布線也有一定的要求且可靠性比較低。 需要加上一部分外圍電流才能實現(xiàn)收發(fā)功能。 方案二:采用NRF24L01+作為無線收發(fā)模塊,由于其高可靠性的數(shù)據收發(fā)和極低的電流消耗,已經廣泛使用于各種無線數(shù)據通信。 NRF24L01+把所有外圍電路都集成在一塊PCB板上,因此外圍電路簡單,軟件設計只需遵循一定的時序,也比較簡單。 本設計溫度數(shù)據采集模塊和無線通信模塊都采用方案二。 (3)顯示模塊 方案一:由HD44100驅動的LCD顯示屏來實現(xiàn)溫度的顯示。 本系統(tǒng)的按鍵功能主要有查看溫度數(shù)據信息和設置

12、溫度報警值,以及其它系統(tǒng)信息顯示切換。 顯示內容更豐富,單片機控制LCM模塊時,只要送人相應的命令和數(shù)據就可實現(xiàn)所需要的內容,這種模塊與單片機接口簡單,使用靈活方便。 方案二:用七段數(shù)碼管和按鍵來做人機交互界面,優(yōu)點是價格便宜,程序簡單,缺點是硬件電路復雜,不方便同時顯示溫度以及其它系統(tǒng)信息,界面表達不能滿足要求。 從上述兩個方案的對比中看出,發(fā)送端選擇方案一以作比較,接收端選擇方案二,使顯示信息更豐富。 1.4 無線數(shù)據采集器系統(tǒng)框圖 本溫度無線采集報警電路設計采用美國DALLAS半導體公司生產的溫度傳感器DS18B20作為溫度檢測元件,測溫范圍為-55125,最高分辨率可達0.0625。

13、發(fā)射與接收電路采用Nordic公司生產的NRF24L01+作為發(fā)射與接收元件,傳輸距離可達100m。 DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點,NRF24L01+具有自動重發(fā)功能、數(shù)據包識別及CRC校驗功能,增強型ShockBurstTM模式可同時控制應答及重發(fā)功能而無需增加MCU的工作量。 按照系統(tǒng)設計功能的要求,確定系統(tǒng)由6個模塊組成:主控制器、測溫電路、發(fā)送電路、接收電路、顯示電路和報警電路。 溫度無線采集報警系統(tǒng)結構框圖如圖1所示 顯示 電路 掃描 電路 DS18B20 STC89C52 主 控 制 器 發(fā)射電路

14、接收電路 報警 電路 STC89C52 主 控 制 器 顯示 電路 圖1 溫度無線采集報警系統(tǒng)結構框圖 2 溫度無線采集報警系統(tǒng)的主要元件介紹 2.1 溫度測量傳感器DS18B20的介紹 2.1.1 DS18B20概述 (1)引腳如圖2 圖2 DS18B20封裝及引腳排列圖 GND接地。 DQ為數(shù)字信號輸入輸出端。 VDD為外接電源輸入端(在寄生電源接線方式時接地) (2)DS18B20與單片機的連接方式 單線數(shù)字溫度傳感器DS18B20與單片機連接電路非常簡單,引腳1接地(GND),引腳3(VCC)接電源+5V,引腳2(DQ)接單片機輸入輸出一個端口,電壓+5V和信號線(DQ)之間接有一個4

15、.7k的電阻。 由于每片DS18B20含有唯一的串行數(shù)據口,所以在一條總線上可以掛接多個DS18B20芯片。 2.1.2 內部結構 DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內部結構框圖3 64位ROM的位結構如圖4。 開始位是產品類型的編號;接著是每個器件的唯一序號,共有48位;最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用單線進行通信的原因。 非易失性溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限數(shù)據。 圖3 DS18B20內部結構圖 8位檢驗CRC 48位序列號 8位工廠代碼 MSB LSB MSB LSB MSB LSB 圖4 64位ROM結

16、構圖 DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的E2PROM。 高速暫存RAM的結構為9字節(jié)的存儲器,結構如圖5。 前2字節(jié)包含測得的溫度信息。 第3和4字節(jié)是TH和TL的拷貝,是易失的,每次上電復位時被刷新。 第5字節(jié)為配置寄存器, 高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。 第9字節(jié)是前面所有8字節(jié)的CRC碼可用來檢驗數(shù)據,從而保證通信數(shù)據的正確性。 溫度LSB 溫度MSB TH用戶字節(jié)1 TL用戶字節(jié)2 配置寄存器 保留 保留 保留 CRC 圖5 高速暫存RAM結構圖 1字節(jié) 2字節(jié) 3字節(jié) 4字節(jié) 5字節(jié) 6字節(jié) 7字節(jié) 8字

17、節(jié) 9字節(jié) 當DS18B20接收到轉化命令后,開始啟動轉化。 轉化完成后的溫度值就以16位的帶符號擴展的二進制補碼形式存儲在高速暫存RAM的第1、2字節(jié)中。 單片機可以通過單線接口讀出該數(shù)據。 讀數(shù)據時,低位在先,高位在后,數(shù)據格式以0.0625LSB形式表示。 DS18B20完成溫度轉化后,就把測得的溫度值與RAM中的TH、TL字節(jié)內容作比較,若TTH或TTL,則將該器件內的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。 因此,可用多只DS18B20同時測量溫度并進行報警搜索。 2.1.3 DS18B20通信協(xié)議 在對DS18B20進行讀寫編程時,必須嚴格保證讀寫時序,否則將無法讀取溫

18、度結果。 根據DS18B20通信協(xié)議,主機控制DS18B20完成溫度轉化必須經過3個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。 復位要求主CPU將數(shù)據線下拉500us,然后釋放,DS18B20收到信號后等待1660us,然后發(fā)出60240us的存在低脈沖,主CPU收到此信號表示復位成功。 DS18B20的ROM指令如表1,RAM指令如表2。 表1 ROM指令表 指 令 約定代碼 功 能 溫度變化 44H 啟動DS18B20進行溫度轉換,12位轉換時最長為750ms(9位為93.75ms),結果存入

19、內部9字節(jié)RAM中 讀暫存器 0BEH 讀內部RAM中9字節(jié)的內容 寫暫存器 4EH 發(fā)出向內部RAM的3、4字節(jié)寫上、下限溫度數(shù)據命令,緊跟該命令之后是傳送兩字節(jié)的數(shù)據 復制暫存器 48H 將RAM中第3、4字節(jié)的內容復制到E2PROM中 重調E2PROM 0B8H 將E2PROM中內容恢復到RAM中的第3、4字節(jié) 讀供電方式 0B4H 讀DS18B20的供電模式。 寄生供電時DS18B20發(fā)送0,外接電源供電DS18B20發(fā)送1 表2 RAM指令表 指 令 約定代碼 功 能 讀ROM 33H 讀取DS18B20溫度傳感器ROM中的編碼(即64位地址) 符合ROM 55H 發(fā)出命令之后,接著

20、發(fā)出64位ROM編碼,訪問單總線上與該編碼對應的DS18B20,使之作出響應,為下一步對該DS18B20讀寫作準備 搜索ROM 0F0H 用于確定掛接在同一總線上DS18B20的個數(shù)和識別64位ROM地址,為操作各器件作好準備 跳過ROM 0CCH 跳過ROM工作 報警搜索命令 0ECH 執(zhí)行后只有溫度超過設定值上限或下限的芯片才能作出響應 2.1.4 溫度數(shù)據的計算處理方法 從DS18B20讀取出的二進制值必須先轉化成十進制值,才能用于字符的顯示。 DS18B20的轉換精度為912位可選,為了提高精度采用12位。 在采用12位轉換精度時,溫度寄存器里的值是以0.0625為步進的,即溫度值為溫

21、度寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。 通過列舉觀察可以發(fā)現(xiàn),一個十進制值與二進制值間有很明顯的關系,就是把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個字節(jié),這個字節(jié)的二進制值化為十進制值后,就是溫度值的百、十、個位值,而剩下的低字節(jié)的低半字節(jié)化成十進制后,就是溫度值的小數(shù)部分。 因為小數(shù)部分是半字節(jié),所以二進制值范圍是0F,轉化成十進制小數(shù)值就是0.0625的倍數(shù)(015倍)。 這樣需要4位的數(shù)碼管來顯示小數(shù)部分。 實際應用不必有這么高的精度,采用一位數(shù)碼管來顯示小數(shù),可以精確到0.1。 表3就是二進制與十進制的近似對應關系表。 表3 小數(shù)部分二進制與十進制的近

22、似對應關系表 小數(shù)部分二進制值 0 1 2 3 4 5 6 7 8 9 A B C D E F 十進制值 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9 2.2 無線發(fā)射模塊nRF24L01介紹 2.2.1 概述 nRF24L01 是一款工作在2.42.5GHz 世界通用ISM 頻段的單片無線收發(fā)器芯片。 無線收發(fā)器包括:頻率發(fā)生器、增強型SchockBurstTM 模式控制器、功率放大器、晶體振蕩器、調制器、解調器。 輸出功率、頻道選擇和協(xié)議的設置可以通過SPI 接口進行設置。 極低的電流消耗:當工作在發(fā)射模式下發(fā)射功率為-6dBm 時電流消耗為9mA,接收模式時為12.3m

23、A。 掉電模式和待機模式下電流消耗更低。 實物及模塊如圖6。 圖6 nRF24L01實物 nRF2401及其外圍電路如圖7,包括nRF2401芯片部分、穩(wěn)壓部分、晶振部分、天線部分。 電壓VDD經電容C1、C2、C3處理后為芯片提供工作電壓;晶振部分包括Y1、C9、C10,晶振Y1允許值為:4MHz、8MHz、12 MHz、16 MHz,如果需要1Mbps的通信速率,則必須選擇16MHz晶振。 天線部分包括電感L1、L2,用來將nRF2401芯片ANT1、ANT2管腳產生的2.4G電平信號轉換為電磁波信號,或者將電磁波信號轉換為電平信號輸入芯片的ANT1、ANT2管腳。 圖7 nRF24L01

24、模塊電路 2.2.2 工作模式 nRF24L01 可以設置為以下幾種主要的模式如表4 表 4 模式設置 模式 PWR_UP PRIM_RX CE FIFO寄存器狀態(tài) 接收模式 1 1 1 - 發(fā)送模式 1 0 1 數(shù)據在TXFIFO寄存器中 發(fā)送模式 1 0 10 停留在發(fā)送模式,直至數(shù)據發(fā)送完 待機模式II 1 0 1 TXFIFO為空 待機模式I 1 - 0 無數(shù)據傳輸 掉電模式 0 - - - nRF24L01 在不同模式下的引腳功能如表5 表5 引腳功能 引腳名稱 方向 發(fā)送模式 接收模式 待機模式 掉電模式 CE 輸入 高電平>10us 高電平 低電平 - CSN 輸入 SPI

25、片選使能,低電平使能 SCK 輸入 SPI時鐘 MOSI 輸入 SPI串行輸入 MISO 三態(tài)輸出 SPI 串行輸出 IRQ 輸出 中斷,低電平使能 nRF24L01 有如下幾種數(shù)據包處理方式: ShockBurstTM(與nRF2401,nRF24E1,nRF2402,nRF24E2 數(shù)據傳輸率為1Mbps 時相同)。 增強型ShockBurstTM 模式。 ShockBurstTM 模式 ShockBurst 模式下nRF24L01 可以與成本較低的低速MCU 相連。 高速信號處理是由芯片內部的射頻協(xié)議處理的,nRF24L01 提供SPI 接口,數(shù)據率取決于單片機本身接口速度。 Shock

26、Burst 模式通過允許與單片機低速通信而無線部分高速通信,減小了通信的平均消耗電流。 在ShockBurstTM 接收模式下,當接收到有效的地址和數(shù)據時IRQ 通知MCU,隨后MCU 可將接收到的數(shù)據從RX FIFO 寄存器中讀出。 在ShockBurstTM 發(fā)送模式下,nRF24L01 自動生成前導碼及CRC 校驗。 數(shù)據發(fā)送完畢后IRQ 通知MCU。 減少了MCU 的查詢時間,也就意味著減少了MCU 的工作量同時減少了軟件的開發(fā)時間。 nRF24L01 內部有三個不同的RX FIFO 寄存器(6 個通道共享此寄存器)和三個不同的TX FIFO 寄存器。 在掉電模式下、待機模式下和數(shù)據傳

27、輸?shù)倪^程中MCU 可以隨時訪問FIFO 寄存器。 這就允許SPI接口可以以低速進行數(shù)據傳送,并且可以應用于MCU 硬件上沒有SPI 接口的情況下。 增強型的ShockBurstTM 模式: 增強型ShockBurstTM 模式可以使得雙向鏈接協(xié)議執(zhí)行起來更為容易、有效。 典型的雙向鏈接為:發(fā)送方要求終端設備在接收到數(shù)據后有應答信號,以便于發(fā)送方檢測有無數(shù)據丟失。 一旦數(shù)據丟失,則通過重新發(fā)送功能將丟失的數(shù)據恢復。 增強型的ShockBurstTM 模式可以同時控制應答及重發(fā)功能而無需增加MCU工作量。 nRF24L01 在接收模式下可以接收6路不同通道的數(shù)據。 每一個數(shù)據通道使用不同的地址,但

28、是共用相同的頻道。 也就是說6個不同的nRF24L01設置為發(fā)送模式后可以與同一個設置為接收模式的nRF24L01 進行通訊,而設置為接收模式的nRF24L01 可以對這6 個發(fā)射端進行識別。 數(shù)據通道0是唯一的一個可以配置為40 位自身地址的數(shù)據通道。 15 數(shù)據通道都為8位自身地址和32位公用地址。 所有的數(shù)據通道都可以設置為增強型ShockBurst 模式。 nRF24L01 在確認收到數(shù)據后記錄地址,并以此地址為目標地址發(fā)送應答信號。 在發(fā)送端,數(shù)據通道0被用做接收應答信號,因此,數(shù)據通道0 的接收地址要與發(fā)送端地址相等以確保接收到正確的應答信號。 nRF24L01配置為增強型的Sho

29、ckBurstTM 發(fā)送模式時,只要MCU 有數(shù)據要發(fā)送,nRF24L01就會啟動ShockBurstTM 模式來發(fā)送數(shù)據。 在發(fā)送完數(shù)據后nRF24L01 轉到接收模式并等待終端的應答信號。 如果沒有收到應答信號, nRF24L01 將重發(fā)相同的數(shù)據包直到收到應答信號或重發(fā)次數(shù)超過SETUP_RETR_ARC 寄存器中設置的值為止,如果重發(fā)次數(shù)超過了設定值,則產生MAX_RT 中斷。 只要收到確認信號,nRF24L01 就認為最后一包數(shù)據已經發(fā)送成功(接收方已經收到數(shù)據),把TX FIFO中的數(shù)據清除掉并產生TX_DS 中斷(IRQ 引腳置高)。 2.2.3 SPI 指令及時序 SPI 接口

30、可能用到的指令在下面有所說明。 CSN 為低后SPI 接口等待執(zhí)行指令。 每一條指令的執(zhí)行都必須通過一次CSN 由高到低的變化。 參見表6。 表6 SPI 指令 指令名稱 指令格式 操作 R_REGISTER 000AAAAA 讀配置寄存器。 AAAAA指出讀操作的寄存器地址。 W_REGISTER 001AAAAA 寫配置寄存器。 AAAAA指出寫操作的寄存器地址只有在掉電模式和待機模式下可操作。 R_RX_PAYLOAD 讀RX有效數(shù)據:1-32字節(jié)。 讀操作全部從字節(jié)0開始。 當讀RX有效數(shù)據完成后,F(xiàn)IFO 寄存器中有效數(shù)據被清除。 應用于接收模式下。 W_RX_PAYLOAD 寫TX

31、有效數(shù)據:1-32字節(jié)。 寫操作從字節(jié)0開始。 應用于發(fā)射模式下。 FLUSH_TX 清除TXFIFO寄存器,應用于發(fā)射模式下。 FLUSH_RX 清除RXFIFO寄存器,應用于接收模式下。 在傳輸應答信號過程中不應執(zhí)行此指令。 也就是說,若傳輸應答信號過程中執(zhí)行此指令的話將使得應答信號不能被完整的傳輸。 REUSE_TX_PL 重新使用上一包有效數(shù)據。 當CE為高過程中,數(shù)據包被不斷的重新發(fā)射。 在發(fā)射數(shù)據包過程中必須禁止數(shù)據包重利用功能。 NOP 空操作。 可以用來讀狀態(tài)寄存器。 圖8、9給出了時序。 在寫寄存器之前一定要進入待機模式或掉電模式。 在圖8 、9中用到了下面的符號:Cn-SP

32、I 指令位,Sn-狀態(tài)寄存器位 Dn-數(shù)據位. 圖8 SPI 讀操作 圖9 SPI寫操作 3 系統(tǒng)硬件電路設計 3.1 AT89C52單片機最小系統(tǒng) 單片機的時鐘信號用來提供單片機片內各種操作的時間基準,時鐘信號通常用兩種電路形式得到:內部振蕩和外部振蕩。 MCS-51單片機內部有一個用于構成振蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內部方式時,電路簡單,所得的時鐘信號比較穩(wěn)定,實際使用中常采用這種方式,在其外接晶體振蕩器(簡稱晶振)或陶瓷諧振器就構成了內部振蕩方式,片內高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構成一個自

33、激振蕩器并產生振蕩時鐘脈沖。 圖10 晶振電路 圖10中外接晶體以及電容C2和C1構成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值均為30PF左右,晶振頻率選12MHz。 為了初始化單片機內部的某些特殊功能寄存器,必須采用復位的方式,復位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。 單片機的復位是靠外電路來實現(xiàn)的,在正常運行情況下,只要RST引腳上出現(xiàn)兩個機器周期時間以上的高電平,即可引起系統(tǒng)復位,但如果RST引腳上持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。 復位后系統(tǒng)將輸入/輸出(I/O)端口寄存器置為FFH,堆棧指針SP置為07H, SBUF內置為不定值,

34、其余的寄存器全部清0,內部RAM的狀態(tài)不受復位的影響,在系統(tǒng)上電時RAM的內容是不定的。 復位操作有兩種情況,即上電復位和手動(開關)復位。 本系統(tǒng)采用手動復位方式。 圖中R1和C3組成手動復位電路,其值R取為10K, C取為10F,如圖11。 圖11 復位電路 32 溫度檢測模塊電路 DS18B20可以采用兩種方式供電,一種是采用電源供電方式如圖12,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源.另一種是寄生電源供電方式,為保證在有效的DS18B20時鐘周期內提供足夠的電源,可用一個MOSFET管來完成對總線的上拉。 當DS18B20處于寫存儲器操作和溫度A/D轉換時,總線上必須

35、有強的上拉,上拉開啟時間最大為10微秒.采用寄生電源供電方式是VDD和GND端均接地.由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。 圖12 DS18B20接口電路 3.3 溫度顯示模塊電路 顯示部分由1602LCM及數(shù)碼管構成。 接收端采用LCM1602點陣液晶作為人機交互界面。 該LCD模塊是由LCD驅動器,LCD控制器、少量的電阻電容以及LCD屏組成,質量輕、體積小、功耗低、顯示內容豐富,提供。 此外,液晶顯示接口簡單方便,可直接與微處理器相連,實時顯示采集所測試的溫度值。 當實時溫度超過設定的報警溫度上、下限值,接收端由LCD顯示發(fā)送端傳來的溫度信息,并發(fā)出報警聲。 發(fā)射端采用數(shù)碼管

36、顯示,數(shù)碼管要正常顯示,就要用驅動電路來驅動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據數(shù)碼管的驅動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 數(shù)碼管動態(tài)顯示是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp“的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,數(shù)碼管哪位顯示字形取決于單片機對位選通電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。 通過分時輪流控制各個數(shù)碼管的

37、的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。 在輪流顯示過程中,每位數(shù)碼管的點亮時間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據,不會有閃爍感。 本電路發(fā)射端由PNP三極管驅動數(shù)碼管顯示溫度值,P2.4P2.7接數(shù)碼管的位選端,控制數(shù)碼管的動態(tài)顯示。 發(fā)射端顯示電路如圖13,接收端顯示電路如圖14。 圖13 數(shù)碼管顯示電路 圖14 LCD顯示電路 3.4 發(fā)射電路模塊 發(fā)射功能由nRF24L01完成,其引腳MISO及MOSI與單片機進行通信,單片機將溫度信息交給nRF24L01并以

38、(GFSK)的調制方式發(fā)送出去,如上圖15。 圖15 發(fā)射電路模塊 3.5 接收電路模塊 由nRF24L01收發(fā)一體芯片對溫度信號進行接收解調,將接收到溫度信息交由單片機進行處理,單片機控制顯示器進行溫度顯示,如上圖16。 圖16 接收電路模塊 4 系統(tǒng)軟件設計 系統(tǒng)程序主要包括發(fā)送主程序,接收端主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據刷新子程序,溫度比較子程序,按鍵掃描子程序,發(fā)送子程序和接收子程序等。 4.1 主程序 (1)發(fā)送端主程序 發(fā)送端主程序的主要功能是負責溫度的實時采集、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。 這樣可以在一

39、秒測量一次被測溫度,程序流程見圖17。 結束 DS18B20復位 讀取溫度 數(shù)據轉換 顯示 發(fā)送 開 始 圖17 發(fā)送端主程序流程圖 結束 LCD初始化 接收溫度信息 顯示 溫度值比較 開始 按鍵掃描 圖18 接收端主程序 (2)接收端主程序 接收端主程序主要完成數(shù)據接收,顯示,比較及報警。 其程序流圖見圖18。 4.2 子程序 (1)讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據的改寫。 其程序流程圖如圖19所示。 開始 發(fā)跳過ROM命令 發(fā)讀取溫度命令 讀取操作 數(shù)據讀完 N 移入溫度寄存器 Y 結束 圖19 讀出溫度子程

40、序流程圖 (2)溫度轉換命令子程序 溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。 溫度轉換命令子程序流程圖如圖20所示。 發(fā)復位命令 發(fā)跳過ROM命令 發(fā)溫度轉換命令 結束 圖20 溫度轉換流程圖 (3)計算溫度子程序 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖21所示。 開始 溫度零下? 溫度值取補碼置“” 小數(shù)位溫度BCD值 整數(shù)位溫度BCD值 結束 置“+” N Y 圖21 計算溫度流程圖 (4)顯示數(shù)據刷新子程序 顯示數(shù)據刷新子程序主要是對顯示緩沖器中的顯示數(shù)據進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。 程序流程圖如圖22所示。 溫度移入顯示寄存器 十位數(shù)0? 百位數(shù)0? 十位數(shù)顯示符號百位數(shù)不顯示 百位數(shù)顯示數(shù)據(不顯符號) 結束 N N Y Y 圖22 數(shù)據刷新子程序流程圖 (5)發(fā)射數(shù)據子程序 首先進行初始化操作,初始化包括設置單片機IO和SPI相關寄存器兩部分其可以和nRF24L01

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論