鹽城市亭湖高級(jí)中學(xué) 卜敏玥
鹽城工學(xué)院電氣工程學(xué)院 陸廣平
設(shè)計(jì)分為無(wú)線發(fā)送和無(wú)線接收模塊,無(wú)線發(fā)送模塊通過(guò)對(duì)溫度傳感器的數(shù)據(jù)實(shí)時(shí)采集,同時(shí)將結(jié)果通過(guò)4位動(dòng)態(tài)數(shù)碼管顯示,并利用無(wú)線模塊發(fā)送溫度數(shù)據(jù)。無(wú)線接收模塊接收發(fā)送模塊傳來(lái)的溫度數(shù)據(jù),同時(shí)將溫度數(shù)據(jù)通過(guò)液晶屏顯示,并與設(shè)定的溫度值進(jìn)行比較,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。發(fā)送和接收模塊的框圖如圖1所示。
圖1 發(fā)送和接收模塊框圖
圖2 單片機(jī)最小系統(tǒng)圖
單片機(jī)的最小系統(tǒng)模塊包括5v電源電路,晶振電路和復(fù)位電路三個(gè)部分,5v電源電路直接以USB供電,晶振電路選用12MHz晶振和兩個(gè)30pf的瓷片電容,設(shè)計(jì)的復(fù)位電路包括上電復(fù)位和按鍵復(fù)位,最小系統(tǒng)電路如圖2所示。
溫度數(shù)據(jù)采集電路如圖3所示。溫度傳感器DS18B20是單條信號(hào)線,這根信號(hào)線既可傳輸時(shí)鐘,又可以傳輸數(shù)據(jù),信號(hào)線并通過(guò)4.7KΩ連到5v電源端。測(cè)溫模塊通過(guò)單片機(jī)的P3.2口讀取溫度傳感器的溫度值,實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的采集并及時(shí)儲(chǔ)存數(shù)據(jù),采集的數(shù)據(jù)為無(wú)線發(fā)送模塊做準(zhǔn)備。
圖3 溫度檢測(cè)電路
圖4 無(wú)線模塊電路圖
無(wú)線發(fā)送模塊和接收模塊的電路都是將引腳CE、引腳CSN、引腳SCK、引腳MOSI、引腳MISO、引腳IRQ相對(duì)應(yīng)的與單片機(jī)引腳 P1.0、引腳P1.1、引腳P1.2、引腳P1.3、引腳P1.4、引腳P1.5相連接。發(fā)送和接收模塊的電路設(shè)計(jì)如圖4所示。
系統(tǒng)中發(fā)射模塊的顯示部分是4位共陰極數(shù)碼管顯示溫度值,接收模塊的顯示部分是LCD1602顯示溫度值,發(fā)射模塊的溫度值用數(shù)碼管顯示,主要是和接收端的溫度顯示比較,看無(wú)線模塊接收的溫度數(shù)據(jù)是否正常,而接收端用液晶顯示,可以顯示更多的信息。發(fā)送和接收端的顯示電路如圖5和6所示。發(fā)送端模塊選用了4個(gè)S8550PNP三極管,4個(gè)S8550PNP的基極B端分別通過(guò)1KΩ電阻與單片機(jī)的P2.0、P2.1、P2.2、P2.3相連,發(fā)射極E端分別連接4個(gè)數(shù)碼管的位選端,集電極都接地,當(dāng)P2.0~P2.3中的某位為0,選中對(duì)應(yīng)的數(shù)碼管。接收端設(shè)計(jì)中選用了液晶LCD1602,它的RS、EN、D0~D7分別與單片機(jī)的P2.0、P2.1、P0.0~P0.7相連。
圖5 發(fā)送端的顯示電路
圖6 接收端的顯示電路
發(fā)送模塊的設(shè)計(jì)相當(dāng)于是無(wú)限循環(huán)的系統(tǒng),發(fā)送模塊程序設(shè)計(jì)首先需要初始化無(wú)線發(fā)送模塊,要使無(wú)線模塊與單片機(jī)進(jìn)行通訊,需要初始化設(shè)置無(wú)線模塊的寄存器、單片機(jī)里的SFR特殊功能寄存器和DS18B20溫度傳感器,通過(guò)SPI總線實(shí)現(xiàn)對(duì)無(wú)線模塊的工作狀態(tài)控制,延時(shí)一會(huì)兒進(jìn)行溫度轉(zhuǎn)換,讀取溫度數(shù)據(jù),處理溫度數(shù)據(jù),通過(guò)無(wú)線模塊發(fā)送溫度數(shù)據(jù)的循環(huán)工作,在數(shù)碼管上顯示溫度值模塊流程圖如圖7(a)所示。
圖7 系統(tǒng)流程圖
接收模塊系統(tǒng)的設(shè)計(jì)同樣是在大循環(huán)里,需要設(shè)置無(wú)線模塊在接收的工作狀態(tài)下,系統(tǒng)實(shí)時(shí)接收發(fā)送模塊傳來(lái)的溫度數(shù)據(jù),如果無(wú)線模塊的有效地址被接收到,將數(shù)據(jù)存在堆棧段,根據(jù)狀態(tài)寄存器的高低電平判斷是否讀取溫度數(shù)據(jù)。首先需要設(shè)置無(wú)線模塊的端口,初始化無(wú)線模塊,延時(shí)一會(huì)兒,循環(huán)接收溫度數(shù)據(jù)值,接收的數(shù)據(jù)存在單片機(jī)的P0寄存器,并在液晶上顯示,接收端流程圖如圖7(b)所示。
上位機(jī)軟件是通過(guò)VC語(yǔ)言編寫成的,將編寫好的程序安裝好,然后進(jìn)行顯示界面的調(diào)試。上位機(jī)系統(tǒng)將采集到的溫度信息通過(guò)溫度刻度和具體數(shù)值兩種方式實(shí)時(shí)地顯示出來(lái),可以方便數(shù)據(jù)的讀取。在點(diǎn)擊開(kāi)始采集按鈕前必須要先上位機(jī)進(jìn)行參數(shù)的設(shè)置,參數(shù)設(shè)置后,可以點(diǎn)擊開(kāi)始采集按鈕來(lái)進(jìn)行溫度的采集,讀取溫度數(shù)值,上位機(jī)上還有暫停采集和退出按鈕,實(shí)現(xiàn)對(duì)溫度的遠(yuǎn)程監(jiān)控,當(dāng)監(jiān)測(cè)到的溫度數(shù)據(jù)高于或者低于設(shè)定值,進(jìn)行報(bào)警并將信息傳給主機(jī)單片機(jī)。
系統(tǒng)使用無(wú)線數(shù)據(jù)傳輸模塊實(shí)現(xiàn)主從機(jī)的通訊,將主機(jī)的溫度數(shù)據(jù)通過(guò)無(wú)線模塊傳給從機(jī),并且傳給上位機(jī)。通過(guò)主機(jī)上數(shù)碼管顯示的溫度值和從機(jī)在液晶上顯示的數(shù)據(jù)和上位機(jī)受到的數(shù)據(jù)進(jìn)行比較,接線簡(jiǎn)單,能更準(zhǔn)確的實(shí)時(shí)檢測(cè)溫度和傳輸溫度數(shù)據(jù),適用于許多不同的環(huán)境,測(cè)溫準(zhǔn)確度高。
對(duì)所測(cè)溫度進(jìn)行報(bào)警,通過(guò)監(jiān)控實(shí)現(xiàn)對(duì)溫度的實(shí)時(shí)監(jiān)控,系統(tǒng)所實(shí)現(xiàn)的是一對(duì)一的溫度數(shù)據(jù)無(wú)線傳輸和功能,可以將測(cè)溫的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)成多點(diǎn)溫度控制,提高系統(tǒng)的功能,上位機(jī)將無(wú)線發(fā)送模塊采集到的溫度數(shù)據(jù)通過(guò)接收模塊傳到串口進(jìn)行實(shí)時(shí)觀測(cè),實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的遠(yuǎn)程監(jiān)控和實(shí)時(shí)觀測(cè),也可以由上位機(jī)發(fā)送命令給發(fā)送和接收模塊,實(shí)時(shí)處理結(jié)果。
[1]郭天祥.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2014,11.
[2]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005,07.
[3]張?zhí)m紅,鄒華,等.單片機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2012,07.
[4]湯嘉立,楊后川.51單片機(jī)C語(yǔ)言輕松入門[M].北京:電子工業(yè)出版社,2016,01.
[5]薛小鈴,劉志群,賈俊榮.51單片機(jī)開(kāi)發(fā)實(shí)戰(zhàn)精講-從模塊到項(xiàng)目[M].北京:清華大學(xué)出版社,2015,01.