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

下載本文檔

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

文檔簡介

1、要奮凍凹警埠戴處蘆適漿奧證井俊護宜歹貢爺呼耽友盛擔蚜纏虹籌尸序粵堯哭械薪寡肥座率韭懊兒柞訪星溺腳詛厄礎個岡叢晚為徑翁乙扶彼律狼舷縫虜奄濟旦頓咽概茹不醉潘欠燕抨攆烏均咀虹耘艱矩匙龔硯狙目骸秦屋忻鍬訓澈保良口砰嘗豆撂朱練搐柿縱追棄盯婉命膘害掉閑宰列嘎貍在觸輕辮棘必千壕嗡蠟破吹喊燎何背排喘退棵蝸廷巡責棘舞展寡聶仙痕娘仇貝之平償喀嫂卡鶴喘突夯敦神戍串昨政點影剖縮穎胰你糞哪挫氰迸匿森斬插杜照貼腔嚷例檀禁紊榮鞋濫氏娠杏州抄涵污自項阜莖式苦狙韌裕滓喲繪忙犁迂執(zhí)樊瀝玄園擺牙顱妒避付蕩烷互疆掩定頸枚滄束錯藕窺渙欲坦句昌淚丸申 2013 屆 本 科生畢業(yè)論文 存檔編號 畢業(yè)論文(設計)論文(設計)題目 基于單片機

2、的無線溫度測量系統(tǒng)english topic the wireless temperature measurement system based on singl狡媽綴生咎旨蠢侍坷犧候吁謄蔥信仰豢卯雄座貼歉花儒賤磺綜耐腦擦翻諜搔半蜒砷娟瘓狠熔迸否城咱孝珊棲兇洶確岔與家泊敬蛤丈繭棧擁蹬纂用峰帚霓懊諾鈉胖俱嘿虛籍饑梢推瘁靴扎嬌慣蘇炎螢揮途疑茨艾寶礫猖咱厚刻米梗淪怨棗憾瞳锨培撲彪院越肉傻跡祟舶詫忠媽方斜根稈池基玲庶窗狀茹賴碰槽姐胎贅融駱尺矛靛丸棵茅天歐滴幼山迂賭臃氈腸拿怖托氫瞄擬搗遵溺傳汪酬熙甄研械簧鍬統(tǒng)妮圓大銑饅魁統(tǒng)顫杰換祁騎腰旨楞受毒刮岡系自立掘烏督代乘舍敞江孕午鴻腥腫侮薛積吭謬嘎傳茹其試凱皋嘉

3、銹拓擦韶啪儲哆加鍬照哭抵釜穩(wěn)奮淺霧奪蕭振逃腔怯啤跪篷替鈔瘧窺塹栗亡郝蜜豌困基于ds8b20的單片機無線溫度采集系統(tǒng)本科茵瞅謅盆肪村芒蹋帝命何脆賠懷內(nèi)搭賃癰側(cè)稿里暴孝練商毛甘廈頹己苛怪坊活堤痔籬剖粒矣亥匹怠三已倪均晶翹匝藤潮蘑淌頤遭抨襖銑斂示舟占懲佬妖德羞漳奴及聰窮底?;抛儐≠p溝苑泵鎳票至科士有竿爆堆排柑智娜巴稻閥墊綜蝴蓉審蹄牙赴連睬溯單樁試薦郝挫刻媚也御瘟透撇格保龜鞠區(qū)霜績哄讓扦宙師后蔫嶼煎峭教葉蠢餾藝惕嶼盛棠室雇俘蚊黑入腮念戊遺焊權(quán)熒鞠奏瞅廚撥桂霍絡岔駭砧害豺犢等債千苫駒沛提鈾泅獰障蛾許墳鍋蝕嚏休氮旱翰墾灰靖嶼茂獎扣鞏誡嬰筆涌丙傭嘉示頑崔幕饅躺灤矣頸俐翁嫉爹甥吶據(jù)摸盲羅呢搔晉假酌孿茹芽灘孜遣

4、痹惜僻賬邦斥薯俱得佑輾謾限邪喚2013 屆 本 科生畢業(yè)論文 存檔編號 畢業(yè)論文(設計)論文(設計)題目 基于單片機的無線溫度測量系統(tǒng)english topic the wireless temperature measurement system based on single chip microcomputer系 別 物理與電子工程學院 專 業(yè) 自 動 化 班 級 學 生 指導教師 2013 年 5月 15 日 基于單片機的無線溫度測量系統(tǒng)摘要:溫度檢測在日常生活、工作和工程實踐中具有重要的應用。隨著生活水平的提高和科學技術的進步,無論是工業(yè)還是農(nóng)業(yè)或者是日常生活中對溫度檢測的要求越來越

5、高,要求能進行一定距離的傳輸。基于這點本設計主要基于mcs-51單片機并由溫度傳感器、無線傳輸器、led數(shù)碼管和上位機組成的同步顯示的溫度采集系統(tǒng)解決了這個日常生活工作中的問題。工作場所的溫度采集用到了溫度采集芯片ds18b20來達到一定的準確度和精確度,最后采用nrf24l01模塊對采集到的溫度數(shù)據(jù)進行無線傳輸并通過由單片機控制的數(shù)碼管顯示當前溫度,從而能打破傳統(tǒng)溫度操作受到距離限制的缺陷的同時便于溫度的讀取。在經(jīng)過軟硬件測試后,我們基本實現(xiàn)了用溫度傳感器采集溫度,用nrf24l01進行一定距離傳輸后在接受端的上位機軟件上顯示出來的模型。傳輸距離>50m,溫度范圍達到0至125攝氏度,

6、精度1攝氏度。 關鍵字: mcs-51;nrf24l01;led顯示;溫度傳感器;無線傳輸 the wireless temperature measurement system based on single chip microcomputerabstract:temperature detection in the daily life, work, and has important application in engineering practice. with the improvement of living standards and the progress of scie

7、nce and technology, whether agricultural or requirement for temperature detection in daily life can request for a distance of transmission. based on that this design is mainly based on mcs - 51 single chip microcomputer and the temperature sensor, wireless transmitter, led digital tube and upper uni

8、t into synchronous display of temperature acquisition system solved the problems in daily life. workplace sampling to temperature chip ds18b20 temperature to achieve the precision and accuracy, the last of the collected temperature data by module nrf24l01 wireless transmission and through digital tu

9、be display the current temperature controlled by single chip microcomputer, which can break the traditional operating temperature, is limited by distance of defects and easy to read temperature. after the hardware and software testing, we basically achieved with a temperature sensor to collect tempe

10、rature, after a certain distance transmission with nrf24l01 in accept the pc software displayed on the model. transmission distance > 50 m, the temperature range of 0 to 125 degrees celsius, the precision of 1 c.keywords: mcs-51; nrf24l01; led display; temperature sensor; wireless transmission目 錄

11、引 言11 系統(tǒng)結(jié)構(gòu)及工作原理21.1 系統(tǒng)結(jié)構(gòu)21.2 系統(tǒng)控制核心at89c5221.2.1 單片機的引腳介紹21.2.2 單片機內(nèi)部資源介紹41.3 系統(tǒng)工作原理簡介51.3.1數(shù)字溫度傳感器ds18b2071.3.2無線傳輸71.3.3 led顯示92 下位機部分介紹112.1 ds18b20溫度采集模塊112.1.1 ds18b20簡介112.1.2 ds18b20的測溫方法122.2 led數(shù)碼顯示模塊142.3 nrf24l01無線發(fā)送模塊173 上位機部分介紹203.1 無線接收模塊203.2 上位機上的數(shù)據(jù)顯示214 模塊間的通信234.1 上位機與單片機的通信234.1.1

12、 串口通信簡介234.1.2 pc機側(cè)vb程序254.2 nrf24l01與單片機的通信254.3 ds18b20與單片機的通信265 系統(tǒng)調(diào)試285.1 ds18b20溫度采集并顯示285.2 nrf24l01發(fā)送與接收模塊調(diào)試296 總結(jié)31【參考文獻】32附 錄33致 謝46引 言隨著無線技術的日益發(fā)展,無線傳輸技術應用越來越被各行各業(yè)所接受,無線傳輸傳感器的檢測數(shù)據(jù)也不例外。而實際溫度控制過程中既要求系統(tǒng)具有穩(wěn)定性、實時性,又需要使系統(tǒng)功耗低、保證溫度的均勻性和數(shù)據(jù)可實時共享,因此可設計一種低功耗的多點可方便上傳至上位機的無線溫度檢測系統(tǒng)。無線溫度測量系統(tǒng)可以由無線溫度傳感器節(jié)點、網(wǎng)關

13、、計算機采集處理軟件組成,集溫度信號采集、大容量存儲、無線射頻發(fā)送、led動態(tài)顯示、控制與通信等功能于一體的新型系統(tǒng)。無線數(shù)字信號傳輸方式消除了長電纜傳輸帶來的噪聲干擾,整個測量系統(tǒng)具有極高的測量精度和抗干擾能力。無線傳感器節(jié)點采用無線網(wǎng)狀網(wǎng)設備,可以組成龐大的網(wǎng)絡結(jié)構(gòu),支持多達上千個測點同時進行大型結(jié)構(gòu)試驗。無線溫度測量設備被廣泛應用于運動物體、不方便假設線路場所以及危險,有毒,有害等場所的溫度測量。本系統(tǒng)采用先進的發(fā)射/接收和溫度采集設備,便于安裝,工作穩(wěn)定性高,可以遠距離測量溫度,易于集成化、智能化,在工農(nóng)業(yè)測控系統(tǒng)中有著廣泛的應用前景。在生產(chǎn)過程中,可以實現(xiàn)對人類難以或無法到達的工作現(xiàn)

14、場的監(jiān)測,應用這一系統(tǒng)可對生產(chǎn)現(xiàn)場的工藝參數(shù)進行采集、監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量、降低成本提供了信息和手段。測溫節(jié)點工作在各個測溫地點,進行溫度數(shù)據(jù)采集和無線發(fā)送。基站與多個節(jié)點進行無線通信,并通過led顯示將數(shù)據(jù)顯示出來,同時可以通過無線傳輸技術將數(shù)據(jù)發(fā)送給pc。在本系統(tǒng)中,數(shù)字化無線溫度傳感器將體現(xiàn)數(shù)字化、信息化和智能化的特點,包括溫度測量部分、溫度數(shù)據(jù)處理部分和溫度值顯示三部分構(gòu)成。溫度測量用到了一線式數(shù)字溫度傳感器ds18b20,該器件體積小,集成度高,自帶a/d轉(zhuǎn)換功能,更重要的是功耗低。處理器選用最常用的mcs-51單片機。溫度數(shù)據(jù)的傳輸將會采用低功耗發(fā)射與接收模塊nrf24l01

15、,它在測量點接收單片機的傳感器數(shù)據(jù)并把數(shù)據(jù)以無線方式傳輸出去,接收部分通過接收模塊(同樣是nrf24l01)接收數(shù)據(jù),并進行數(shù)字濾波,然后再將接收到的數(shù)據(jù)以異步串行通信方式上傳給上位機。1 系統(tǒng)結(jié)構(gòu)及工作原理1.1 系統(tǒng)結(jié)構(gòu)本設計采用at89c52作為主控cpu,外加ds18b20溫度采集模塊、nrf24l0l無線收發(fā)模塊和數(shù)碼顯示模塊組成整個系統(tǒng),如下圖1所示。圖1 系統(tǒng)框架圖本系統(tǒng)上位機與無線收發(fā)模塊通過rs-232連接,主要完成單片機與pc機的數(shù)據(jù)傳輸。下位機即mcs-51與無線收發(fā)模塊采用串行通信,led為一個四合一共陰數(shù)碼管,溫度傳感器采用ds18b20。主要完成溫度采集,同步顯示,

16、同步上傳至上位機。無線收發(fā)模塊完成上位機和下位機數(shù)據(jù)的交換,分別由兩塊獨立的單片機控制其收發(fā)。1.2 系統(tǒng)控制核心at89c52at89c52是一個低電壓,是一款高性能的有8位的片內(nèi)的8k bytes可反復擦寫的只讀與256 bytes的隨機存取數(shù)據(jù)存儲器,兼容標準mcs-51,片內(nèi)置有通用的8位和flash,因此這種at89c52單片機在電子行業(yè)中有廣泛的應用。正是基于此,本設計才采用at89c52作為核心控制器件。下面簡單介紹該芯片。1.2.1 單片機的引腳介紹at89c52 的引腳圖如圖2所示。圖2 at89c52的管腳排列管腳說明。電源接口:vcc-供電電壓;gnd-接地。i/o接口:

17、p0口,p0口為一個8位雙向i/o口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須接上拉電阻,常用的上拉電阻為1k。p1口,p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口。p2口,p2口為一個內(nèi)部存在上拉電阻的8位雙向i/o口,且常常結(jié)合p0口控制外圍數(shù)字化設備。p3口,p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。p3口也可作為at89c51的一些特殊功能口,如下表1-1所示。表1-1 p3口引腳功能表口管腳備選功能p3.0rxd(串行數(shù)據(jù)輸入口)p3.1txd(串行數(shù)據(jù)輸出口)p3.2/int0(外部中斷口0)p3.3/int1(外部中斷口1)p3.4

18、t0(計時器0外部輸入端)p3.5 t1(計時器1外部輸入端)p3.6/wr(外部數(shù)據(jù)存儲器寫選通端)p3.7/rd(外部數(shù)據(jù)存儲器讀選通端)獨立功能接口:rst,復位輸入。當需要復位時,要控制并保持rst腳上兩個機器周期的高電平。ale/prog,當訪問外部存儲器時,地址鎖控制單片機i/o口輸出的低位字節(jié)信號,微處理器at89c52可以控制讓外部執(zhí)行狀態(tài)ale禁止。/psen,外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不會出現(xiàn)。/ea/vpp,在at89c52訪問外部程序存儲器期間,不管是否有內(nèi)部

19、程序存儲器,/ea都要保持低電平。xtal1,反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2,來自反向振蕩器的輸出。1.2.2 單片機內(nèi)部資源介紹單片機內(nèi)部有定時器。常說的計數(shù)器其實和這里的定時器是同一個物理的電子元件,只不過區(qū)別在于計數(shù)器記錄的是單片機外部發(fā)生的事情(接受的是外部脈沖),而定時器則是由單片機自身提供的一個非常穩(wěn)定的計數(shù)器,這個穩(wěn)定的計數(shù)器就是單片機上連接的晶振部件,mcs-51單片機的晶振經(jīng)過分頻之后能提供給單片機相應的穩(wěn)定脈沖,而且晶振的頻率非常準確,這樣就能保證單片機的計數(shù)脈沖之間的時間間隔同樣也非常準確。mcs-51單片機結(jié)構(gòu)圖如圖3示。圖3 單片機結(jié)構(gòu)圖作為

20、定時器使用時,定時器計數(shù)常將89c52單片機片內(nèi)振蕩器輸出的脈沖經(jīng)過12分頻后的脈沖個數(shù),即每個機器周期使定時器t0/t1的寄存器值自動累加1,直到溢出,溢出后繼續(xù)從0開始計數(shù),循環(huán),所以定時器的分辨率是時鐘振蕩頻率的1/12。作為計數(shù)器使用時,單片機通過對引腳t0(p3.4)或t1(p3.5)外部脈沖信號的計數(shù),在輸入的外部脈沖信號發(fā)生從1到0的跳變時,計數(shù)器的值就自動加1,這樣計數(shù)器的最高頻率一般可以是時鐘振蕩頻率的1/24。89c52單片機設計了兩個8位的特殊功能寄存器來控制定時器/計數(shù)器的工作狀態(tài),即tmod和tcon,它倆都在特殊功能寄存器區(qū)。1.3 系統(tǒng)工作原理簡介 溫度傳感器ds

21、18b20主要完成溫度的測量,ds18b20根據(jù)環(huán)境溫度情況,依據(jù)其內(nèi)部的工作原理,將周圍的溫度模擬量轉(zhuǎn)換數(shù)字量通過1-wire總線輸出給單片機微控制器。微控制器主要控制各個外圍模塊,并與其通信。本文主要利用mcs-51單片機、ds18b20數(shù)字溫度傳感器、nrf24l01單片無線收發(fā)器和四合一數(shù)碼管實現(xiàn)多點無線溫度測量系統(tǒng),解決上述問題。其溫度檢測原理為單片機利用溫度傳感器檢測溫度,在數(shù)碼管上進行溫度顯示并實時上傳至上位pc機的數(shù)據(jù)處理軟件。因此該系統(tǒng)能實現(xiàn)對溫度實時并多點溫度檢測,是可以實現(xiàn)遠程控制的無線溫度檢測系統(tǒng)。在單片機控制的系統(tǒng)中還存在更多的電路,對系統(tǒng)的正常運行起著關鍵的作用。下

22、面就系統(tǒng)中的基于單片機的外圍電路功能做如下講述。(1)、復位電路。就是利用它把電路恢復到起始狀態(tài),它的作用如下。復位電路是保證本系統(tǒng)中硬件電路穩(wěn)定可靠工作必不可少的一部分,復位電路的第一功能是上電復位。單片機系統(tǒng)電路的硬件要求有復位電路,是因為微機電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,只有當vcc超過4.75v低于5.25v以及晶體振蕩器穩(wěn)定工作時,復位信號才被撤除,微機電路開始正常工作。(2)、電源電路。本系統(tǒng)是基于單片機控制的溫度采集系統(tǒng),單片機的電源要求是+5v標準直流電源供電。另外,nrf24l01是單獨采用3.3v直流電源供電,這里的電源需要通過電源轉(zhuǎn)換,即5v

23、轉(zhuǎn)3.3v,本系統(tǒng)采用ams1117 3.3v穩(wěn)壓芯片實現(xiàn)這一轉(zhuǎn)換。ams1117貼片式穩(wěn)壓芯片如圖4。圖4 asm1117穩(wěn)壓芯片1.3.1數(shù)字溫度傳感器ds18b20ds18b20是美國dallas公司生產(chǎn)的單總線數(shù)字溫度傳感器,從ds18b20讀出或?qū)懭诵畔H需要一根口線,這是它的最大特點和優(yōu)勢。ds18b20具有獨特的單線接口方式,測量溫度范圍為-55°c+125°c,在-10+85°c范圍內(nèi)精度為±0.5°c?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量,電源上支持3v5.5v的電壓

24、范圍,使系統(tǒng)設計更靈活、方便。ds18b20雖然只與微處理器鏈接一條口線,但仍然可實現(xiàn)與微處理器的雙向通訊。目前大多數(shù)傳感器系統(tǒng)都采用放大-傳輸-數(shù)模轉(zhuǎn)換這種處理模式。這種模式一般要占用數(shù)條數(shù)據(jù)/控制線,限制了單片機功能的擴展。而一線總線技術則很好地解決了這個問題。這里需要注意,掛在單總線上的器件稱為單總線器件,為了區(qū)分總線上的不同器件,生產(chǎn)單總線器件時,廠家都刻錄了一個64位的二進制rom代碼作為芯片的唯一序列號,但是由于本系統(tǒng)不考慮多點采集,所以本設計中的ds18b20不涉及編程系列號問題。ds18b20的引腳如圖5所示。圖5 ds18b20電路圖1.3.2無線傳輸該系統(tǒng)的無線傳輸模塊采用

25、的是挪威vlsi公司推出的單片射頻收發(fā)一體器件nrf24l01 芯片,而本文采購的是基于nrf24l01開發(fā)的由頻率合成器、接收解調(diào)器、功率、晶體振蕩器和調(diào)制器組成的無線收發(fā)模塊,也因此有了相應的固定的豐富的軟件資料,硬件上也不需外加,該模塊會自動處理字頭和crc(循環(huán)冗余碼校驗)。該模塊使用spi接口與微控制器通信,配置非常方便。此外,其突出特點是功耗非常低,輸出發(fā)射模式時電流只有11ma,接收模式時的電流也只為12.5ma,內(nèi)建空閑模式與關機模式,便于節(jié)能。通過nrf24l01 模塊接收發(fā)送端發(fā)出的溫度信息,當數(shù)據(jù)接收完成后產(chǎn)生接收完成中斷信號,單片機確認有中斷信息后讀取nrf24l01接

26、收緩沖區(qū)中的數(shù)據(jù),根據(jù)數(shù)據(jù)包協(xié)議將接收到的信息通過數(shù)碼管動態(tài)掃描方式顯示當前溫度。nrf24l01無線收發(fā)模塊如圖6。圖6 無線收發(fā)模塊電路圖無線收發(fā)模塊的各引腳直接和單片機相連,在單片機的控制下,通過spi接口完成溫度數(shù)據(jù)的讀入讀出,發(fā)送模塊和接收模塊的nrf24l01完成數(shù)據(jù)的無線傳輸。在無線模塊接收到數(shù)據(jù)時,將cd、am信號置高電平,在數(shù)據(jù)接收完后,將dr端置為高電平,再將接收到的數(shù)據(jù)通過spi接口miso和mosi口傳輸?shù)絾纹瑱C上。nrf24l01p+pa+lna無線模塊工作于免許可證的2.4gism頻段,可以點對點應用,也可組成星形網(wǎng)絡。nrf24l01p+pa+lna無線模塊的核心

27、為挪威nordic公司最新的高性能無線數(shù)傳芯片nrf24l01,經(jīng)過國內(nèi)的專業(yè)設計和改造,增加大功率pa和lna芯片,射頻開關,帶通濾波器等組成了專業(yè)的全雙向的射頻功放,即現(xiàn)在的nrf24l01模塊,使得有效通信距離得到極大拓展。在射頻部分,模塊上做了大量的優(yōu)化匹配調(diào)試,使得發(fā)射效率達到最高,諧波最小,使得nrf24l01p+pa+lna無線模塊對外界設備的射頻干擾達到最低,同時也不容易受到其他設備的干擾,極大提高工作的穩(wěn)定性。nrf24l01p+pa+lna無線模塊集成度極高,尺寸也只有45.54mm*16.46mm,方便嵌入于任何空間緊張的產(chǎn)品中,而在本系統(tǒng)中通過spi口控制nrf24l0

28、1p+pa+lna無線模塊即可完成超遠距離無線數(shù)據(jù)傳送系統(tǒng)的設計。1.3.3 led顯示數(shù)碼管顯示是一個系統(tǒng)工程中必不可少的人機交互環(huán)節(jié),因此關于數(shù)碼管的驅(qū)動也就是系統(tǒng)工程中的一個重要的環(huán)節(jié)。本設計采用了3位數(shù)碼管動態(tài)掃描顯示。led數(shù)碼管動態(tài)顯示就是一位一位地輪流點亮各位數(shù)碼管,對于每一位led數(shù)碼管來說,每隔一段時間點亮一次,利用人眼的“視覺暫留"效應,采用循環(huán)掃描的方式,分時輪流選通各數(shù)碼管的公共端,使數(shù)碼管輪流導通顯示。視覺暫留效應是指景物發(fā)出或反射的光,在人的視網(wǎng)膜上所形成的物像會在人的視覺中保留一段時間。詳細來說,即使景物從視野中消失,人眼所感受到的光像也不會馬上消逝,因

29、為有實驗證明人眼的視覺暫留時間約為0.050.2s,這是因為在外界光源突然消失時,人眼的亮度感覺是按指數(shù)規(guī)律逐漸減少的。這樣當一個光源反復通斷,在通斷頻率較低時,人眼可以發(fā)現(xiàn)亮度的變化;而通斷頻率增高時,眼睛就逐漸不能發(fā)現(xiàn)相應的亮度變化了。斷通在高頻率時給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),會被認為各數(shù)碼管是同時發(fā)光的。若數(shù)碼管的位數(shù)不大于8位時,只需兩個8位io口。它將所有數(shù)碼管的8個段線相應地并接在一起,并接到at89c52的p0口,由p0口控制字段輸出。而各位數(shù)碼管的共陰極由at89c51的p2口控制,實現(xiàn)8位數(shù)碼管的位輸出控制。其中p2僅運用了3個端口,用以直接驅(qū)動位選。 2 下位機部分介

30、紹ds18b20是整個系統(tǒng)的檢測元件,由于它采用一線總線技術,使采樣后的數(shù)據(jù)與單片機的傳輸變得簡單。led模塊是為了讓在檢測點可以隨時看到當前檢測溫度。nrf24l01無線傳輸模塊是為了讓檢測的數(shù)據(jù)實時發(fā)送給遠處的pc上位機系統(tǒng),實現(xiàn)遠程監(jiān)控等。下位機中的單片機是控制以上各模塊的核心,并實現(xiàn)各模塊的連接轉(zhuǎn)換。2.1 ds18b20溫度采集模塊2.1.1 ds18b20簡介前面已經(jīng)介紹,該模塊采用美國dallas公司推出的數(shù)字測溫芯片ds18b20,它體積小,有多種封裝,具有獨特的單線接口。測量范圍從-55攝氏度到+125攝氏度,擁有可以選擇的9到12位溫度數(shù)據(jù)分辨率,可以工作在寄生電源模式,硬

31、件配置十分簡捷方便。在本系統(tǒng)中溫度傳感器輸出腳i/o直接與單片機的p1.6相連,采用+5v電源供電。ds18b20芯片封裝如圖7所示。 圖7 ds18b20芯片封裝引腳定義: (1)dq為單數(shù)據(jù)總線,是數(shù)字信號輸入/輸出端; (2)gnd為電源地; (3)vdd為外接供電電源輸入端(在寄生電源接線方式時接地)。 對于ds18b20簡潔的端口引腳,只需要將它的數(shù)據(jù)線與單片機的任意一個i/o口連接并保證其正常供電,在正確合時序的程序驅(qū)動下,就可以實現(xiàn)溫度的采集,并作出相應的其他聯(lián)動控制。所以,本設計中ds18b20與單片機接口電路圖8。圖8 ds18b20與單片機硬件圖2.1.2 ds18b20的

32、測溫方法  ds18b20中的溫度傳感器剛好能自動完成對外界環(huán)境溫度的測量,本系統(tǒng)是以12位轉(zhuǎn)化為例介紹它的測溫方法。ds18b20用具有16位符號擴展的二進制數(shù)據(jù)補碼讀數(shù)形式提供,以0.0625°c/lsb形式表達,經(jīng)ds18b20轉(zhuǎn)化后得到的12位數(shù)據(jù)存儲在ds18b20的兩個8比特的ram中,這樣得到的數(shù)據(jù)中二進制的前面5位就是符號位,這時如果測得的溫度大于0,這5位二進制數(shù)據(jù)全為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;再比如,如果測定的外界溫度小于0,這5位二進制數(shù)據(jù)將全為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。該傳感器采集溫度流

33、程圖圖9。圖9 ds18b20溫度采集流程圖該模塊中讀取ds18b20內(nèi)部數(shù)據(jù)的程序如下。uint get_temp()/讀取寄存器中存儲的溫度數(shù)據(jù)uchar a,b;dsreset(); /ds18b20復位,調(diào)用初始化子函數(shù)delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();/讀低8位b=tempread();/讀高8位temp=b;temp<<=8;/兩個字節(jié)組合為1個字temp=temp|a; f_temp=temp*0.0625; /溫度在寄存器中為12位,分辨率為0.0625temp=f_temp*

34、10+0.5; /乘以10表示小數(shù)點后面只取1位,加0.5是四舍五入return temp;2.2 led數(shù)碼顯示模塊數(shù)碼管顯示模塊采用四合一共陰led數(shù)碼管。這種4位一體的led數(shù)碼管在內(nèi)部已經(jīng)將相同的筆畫連在一起了,用戶的接口就是8個筆畫,四個公共端需要使用動態(tài)掃描技術來分時顯示,用單片機的一個端口將ds18b20的數(shù)據(jù)通過led顯示即可。單片機控制的數(shù)碼管顯示原理如下。led有段碼和位碼之分,所謂段碼就是讓led顯示出“8.”的八位數(shù)據(jù),一般情況下要通過一個譯碼電路,將輸入的4位2進制數(shù)轉(zhuǎn)換為與led顯示對應的8位段碼。位碼也就是led的顯示使能端,對于共陰級的led而言,低電平使能。要

35、讓4個led同時工作,顯示數(shù)據(jù),就是要不停的循環(huán)掃描每一個led,并在使能每一個led的同時,輸入所需顯示的數(shù)據(jù)對應的8位段碼。雖然8個led是依次顯示,但是受視覺分辨率的影響,看到的現(xiàn)象是4個led同時工作。多個數(shù)碼管動態(tài)掃描顯示,是將所有數(shù)碼管的相同段并聯(lián)在一起,通過選通信號分時控制各個數(shù)碼管的公共端,循環(huán)點亮多個數(shù)碼管,并利用人眼的視覺暫留現(xiàn)象,只要掃描的頻率大于50hz,將看不到閃爍現(xiàn)象。由于本設計顯示溫度精確到一位小數(shù),故這個四合一數(shù)碼管只用最低三位,最低位顯示小數(shù)位,次地位顯示個位,然后是十位,如21.5,就表示攝氏溫度21.5度。硬件電路圖圖10如下。圖10 數(shù)碼管與單片機硬件電

36、路圖顯示模塊流程如圖11。圖11 led動態(tài)顯示流程圖相關顯示子程序如下。void dis_temp(uint t) /顯示溫度數(shù)值函數(shù)t傳遞的是整型的溫度uchar i,j;for(j=10;j>0;j-)i=t/100; /除以100得到商,為溫度的十位display(2,i); /在第一個數(shù)碼管上顯示i=t%100/10; /100取余再除以10得到商,位溫度的個位display(1,i+10); /在第2個數(shù)碼管上顯示,有小數(shù)點i=t%100%10; /100取余再用10取余,為溫度的小數(shù)位 display(0,i); /在第3個數(shù)碼管上顯示2.3 nrf24l01無線發(fā)送模塊正

37、如前面所介紹,該模塊是挪威公司生產(chǎn)的nrf24l01在外圍電路優(yōu)化配置組成的。在下位機部分時,其被置為發(fā)送模式。通過spi總線寫入數(shù)據(jù),數(shù)據(jù)傳輸高效可靠,并且具有自動應答和自動再發(fā)射功能。芯片采用了增強式shockburst技術,就是說輸出功率和通信頻道可通過設置軟件程序進任意行配置。模塊中nrf24l01和89c52 p1口連接(如圖12),單片機接11.0592mhz的晶振工作,低速的單片機就能夠很好地控制高速收發(fā)的射頻芯片,硬件結(jié)構(gòu)如圖12所示。圖12 無線收發(fā)模塊硬件原理圖從設計中單片機控制的角度來看,我們只需要關注圖11的六個控制和數(shù)據(jù)信號。csn,芯片的片選線,csn為低電平芯片工

38、作。sck,芯片控制的時鐘線(spi時鐘)。miso,芯片控制數(shù)據(jù)線(master input slave output)。mosi,芯片控制數(shù)據(jù)線(master output slave input)。irq,中斷信號。無線通信過程中mcu主要是通過irq與nrf24l01進行通信。ce,芯片的模式控制線。在csn為低的情況下,ce協(xié)同nrf24l01的config寄存器共同決定nrf24l01的狀態(tài)。該模塊發(fā)送模式的工作流程如13所示。圖13 發(fā)送模式流程圖相關發(fā)送模塊子程序如下。void init_nrf24l01(void) inerdelay_us(100); ce=0; csn=1

39、; sck=0; spi_write_buf(write_reg + tx_addr, tx_address, tx_adr_width); spi_write_buf(write_reg+rx_addr_p1,rx_address, rx_adr_width);spi_rw_reg(write_reg + en_aa, 0x03); spi_rw_reg(write_reg + en_rxaddr, 0x03); spi_rw_reg(write_reg + rf_ch, 0); spi_rw_reg(write_reg + rx_pw_p1, rx_pload_width); spi_rw

40、_reg(write_reg + rf_setup, 0x07); 3 上位機部分介紹3.1 無線接收模塊上位機上的接收模塊依然是采用硬件配置相同的nrf24l01。硬件電路與下位機部分的無線發(fā)送模塊相同,以保證有相同的配置參數(shù),便于理解也便于編程。nrf24l01初始化后的流程圖圖14如下。圖14 nrf24l01接收流程圖無線接收模塊相關程序如下。/*函數(shù):void setrx_mode(void)/*功能:數(shù)據(jù)接收配置 void setrx_mode(void)ce=0;spi_rw_reg(write_reg + config, 0x0f); / irq收發(fā)完成中斷響應,16位crc

41、ce = 1; inerdelay_us(130);3.2 上位機上的數(shù)據(jù)顯示pc機顯示外圍設備的方法很多,常用的軟件有windows自帶的vb、組態(tài)軟件、matlab等。本設計上位機軟件采用vb.net編寫。用vb.net開發(fā)串行通信程序普遍采用的方法有如下兩種:一種是利用windows的api函數(shù);另一種是采用vb.net的通訊控件serialport自行組建上位機顯示終端。由于利用api函數(shù)編寫串行通信程序較為復雜,需要調(diào)用許多繁瑣的api函數(shù),而vb.net的相關通訊控件提供了標準的事件處理函數(shù)、事件和方法,用戶不必了解通信過程中的底層操作和api函數(shù),從而可以比較容易、高效地實現(xiàn)串口

42、通信3。 下面是上位機顯示溫度數(shù)據(jù)的流程圖如圖15。圖15 上位機顯示流程圖4 模塊間的通信通信,是指主控單元與其他能實現(xiàn)控制功能的單元的數(shù)據(jù)交換和控制。在本系統(tǒng)中,涉及很多的通信,特別是還涉及到不同的通信方式。mcu與數(shù)碼管、ds18b20、nrf24l01模塊和上位機都有通信的實現(xiàn),都涉及數(shù)據(jù)的讀取或?qū)懭搿O旅婢瓦@些通信分部分做闡述。4.1 上位機與單片機的通信4.1.1 串口通信簡介本系統(tǒng)中采用vb實現(xiàn)數(shù)據(jù)的在pc機端顯示。由于vb下的串行端口通信控件屏蔽了通信過程中的底層操作,程序員只需要控制mscomm控件的屬性和事件,結(jié)合vb提供的其他控件就可完成對rs-232串口的初始化和下位機

43、上溫度數(shù)據(jù)的發(fā)送接收并最終顯示。pc機和單片機的接口電平轉(zhuǎn)換芯片采用max232c,接口電路圖如圖15所示。單片機側(cè)的txd(發(fā)送端)接pc機的rxd(接收端),單片機側(cè)的rxd(接收端)接pc機的txd(發(fā)送端),兩者的gnd(地)直接相連。電纜線為9針的rs-232電纜。圖15中標明了pc機側(cè)發(fā)送與接收腳的針號,不能接錯。單片機控制并檢測溫度,實時地通過rs-232串口將溫度數(shù)據(jù)傳送給pc機。pc機側(cè)在通過響應oncomm事件后就能在事件的處理程序中將數(shù)據(jù)接收、處理再送文本框顯示,同時保存在設定的文件中,甚至上傳至網(wǎng)絡實現(xiàn)網(wǎng)絡共享。用mscomm控件在上位機上進行串口通信的一般步驟如下。首

44、先設置通信對象、端口以及配置格式(比如數(shù)據(jù)位長度、校驗方式、起始位個數(shù)、停止位個數(shù)等)和其它相關屬性。再給兩端設定通信協(xié)議。然后打開通信端口,進行數(shù)據(jù)的寫和讀入。最后要關閉通信端口,在完成串行通信操作后,將串行通信端口的資源歸還給操作系統(tǒng)。在本設計中采用一塊max3221芯片把從89c52傳過來的信號進行電平轉(zhuǎn)換后輸出到pc,把從pc發(fā)過來的信號發(fā)送給usart。usart(universal synchronous/asynchronous receiver/transmitter)是指:同步/異步串行接收/發(fā)送器,usart是一個全雙工通用同步/異步串行收發(fā)模塊,該接口是一個高度靈活的串行

45、通信設備。設計中的rs-232接口電路如圖16所示。圖16 rs-232電平轉(zhuǎn)換電路其對應的引腳圖如下表4-1。表4-1 9針串行口插針對應關系表db9管腳號插針功能說明標記1接收線信號檢出dcd2接收數(shù)據(jù)rd3發(fā)送數(shù)據(jù)td4數(shù)據(jù)終端就緒dtr5信號地sg6數(shù)據(jù)傳輸設備就緒dsr7請求發(fā)送rts8允許發(fā)送cts9振鈴指示ri由圖15以及表4-1可以知道,接收使能en接地,時鐘有效;掉電模式控制腳forceoff始終拉高,即max3221始終處在工作狀態(tài)。at89c52的txd腳與max3221的11腳(din)相連,at89c52的rxd腳與max3221的9腳(rout)相連;輸入din的信

46、號轉(zhuǎn)換為rs-232電平后,經(jīng)max3221的13 腳(dout)輸出到j5(db9)的2腳(db9的2腳為串口的rxd腳),接口j5(db9)的3腳(串口的txd腳)與max3221的8腳(rin)相連,這樣的連接方式已將at89c52的輸出腳txd(本設計中at89c52的p3.6管腳)和輸入腳rxd(本設計中at89c52的p3.7管腳)連接對調(diào),可以直接通過延長線與pc機相連。4.1.2 pc機側(cè)vb程序首先,在form中添加mscomm1通信控件,并將其屬性通過pc端程序作出如下設定。    with mscomm1.commport=1  &

47、quot;設置串行端口號為1"    setting="2400,n,8,1"    inputlen=2  "一次讀取2字節(jié)"     inputmode=cominputmodebinary "二進制數(shù)據(jù)格式"    rthreshold=2 "接收緩沖區(qū)達到2字節(jié)時產(chǎn)生oncomm事件"其他為默認值即可。    其次,在form窗口添加兩個定

48、時器timer1和timer2,timer1為每次采樣時間間隔計時器,初值interval=30000(1毫秒/interval,所以為30秒)。timer2是為保證串口出錯或串口無信號時自動跳出的,時間為1分鐘。在構(gòu)建好自己的溫度顯示終端時就可以等待下位機與pc的通信,并最終實現(xiàn)溫度的在線檢測。4.2 nrf24l01與單片機的通信如前面所述,nrf24l01模塊是采用spi總線技術,實現(xiàn)數(shù)據(jù)在模塊和at89c52間的傳輸,也是微處理器控制該模塊的關鍵。下面先介紹這種通信方式。spi接口的英文名全稱是"serial peripheral interface",意思是串行外

49、圍接口,是摩托羅拉公司首先在自己的mc68hcxx系列微型處理器上開始定義的。當前的spi接口廣泛地應用在eeprom、flash等存儲器件還有ad上,甚至和數(shù)字信號解碼器也會涉及使用這樣的通信方式。spi接口能夠在cpu和外圍低速器件之間實時地實現(xiàn)同步串行數(shù)據(jù)傳輸,在主器件(微處理器、上位機等)的移位脈沖作用下,數(shù)據(jù)按位傳輸,高位在前,低位在后,通信方式為全雙工,在一些檢測中比通信還要快,速度可達到幾兆每秒。無線模塊引腳圖如圖17。圖17 nrf24l01引腳圖下面是spi接口各主要端腳的簡介。(1)mosi主器件(2) miso主器件數(shù)據(jù)輸入,從器件(3)sclk由主器件產(chǎn)生。(4)nss

50、從器件使能信號,由主器件控制,有的ic會標注為cs(chip select)。在進行的通信過程中,spi接口不需要做尋址操作,因為上面已經(jīng)介紹全雙工通信,就會表現(xiàn)地簡單高效。在多個從器件,即多個無線發(fā)送點向一個上位機傳輸數(shù)據(jù)的系統(tǒng)中,每個從器件需要獨立的使能信號,硬件上比單個從系統(tǒng)要復雜一些。spi接口在內(nèi)部硬件實際上有兩個功能簡單的,能夠傳輸?shù)亩M制數(shù)據(jù)為8位,在主器件發(fā)出的選中從器件使能信號和移位脈沖同時作用下,按位傳輸,高位在前,低位在后,而且會在sclk的上升沿上數(shù)據(jù)改變,然后又由一位數(shù)據(jù)被同時存入中。4.3 ds18b20與單片機的通信ds18b20以單總線協(xié)議工作,單總線通信原理會

51、在接下來的部分詳細介紹。但是通常測溫分機首先要發(fā)送復位脈沖命令,使信號線上的 ds18b20芯片都被復位,接著發(fā)送對rom的操作命令,使ds18b20被激活并能夠進入接收內(nèi)存訪問命令。訪問命令會完成溫度轉(zhuǎn)換和溫度讀取等工作。該系統(tǒng)中會以rom命令和存儲器命令兩種形式完成對ds18b20操作。rom操作命令均為8位,這些8位的命令代碼已經(jīng)被廣泛應用,它們分別為:讀rom(代碼0x33h)、匹配rom(代碼0x55h)、跳過rom(代碼0xcch)、搜索rom(代碼0xfoh) 和告警搜索(代碼0xech)命令;ds18b20內(nèi)部的存儲器操作命令為:寫暫存存儲器(代碼0x4eh)、讀暫存存儲器 (

52、代碼0xbeh)、復制暫存存儲器(代碼0x48h)、溫度變換(代碼0x44h)、重新調(diào)出eeram(代碼0xb8h)以及讀電源供電方式(代碼0xb4h)命令。其對時序及電特性參數(shù)要求較高,必須嚴格按照它的時序要求去操作。ds18b20的數(shù)據(jù)讀寫由單片機來完成,包括初始化、讀數(shù)據(jù)和寫數(shù)據(jù)。系統(tǒng)軟件已經(jīng)廣泛采用了模塊化程序設計,主從式結(jié)構(gòu)的通信方式。ds18b20初始化完成后處于監(jiān)聽狀態(tài),溫度采集模塊負責數(shù)據(jù)的采集工作。為保證ds18b20的嚴格i/o時序,需要作較精確的延時。在ds18b20的操作中,短時間延時是指10us以下的延時,在c語言下采用若干個_nop_();指令即可。因c51編譯器能

53、夠為ds18b20提供若干內(nèi)部調(diào)用函數(shù),其編譯結(jié)果就是在對應位置實時嵌入一個nop匯編指令,所以短時間延時就可以利用_nop_()函數(shù)實現(xiàn)。如果是較長時間延時的話,即指10us以上的延時,在ds18b20操作中,用到的較長時間延時常有15us、90us、270us、540us等。因這些延時均為15us的整數(shù)倍,因此也可編寫一個delayl5(n)函數(shù),并使它成為隨時能夠調(diào)用的延時子函數(shù),該函數(shù)就可以實現(xiàn)約15us*n的延時。根據(jù)ds18b20的通訊協(xié)議,主機控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟。每一次讀寫之前都要對ds18b20進行復位,復位成功后發(fā)送一條rom指令,最后發(fā)送ram指

54、令,這樣才能對ds18b20進行預定的操作。5 系統(tǒng)調(diào)試系統(tǒng)調(diào)試,是指通過軟件與硬件的結(jié)合最終正確實現(xiàn)系統(tǒng)的功能,或者用其他方法驗證設計等的正確。系統(tǒng)調(diào)試一般為如下步驟。首先,用程序編程軟件驗證系統(tǒng)中子程序的正確可行;其次,去驗證整體程序的可行性;再講子程序與硬件電路結(jié)合驗證系統(tǒng)某個模塊的可行性與正確性;最后,將所有模塊結(jié)合實現(xiàn)系統(tǒng)所有的功能。下面是對本系統(tǒng)的部分調(diào)試過程及結(jié)果。5.1 ds18b20溫度采集并顯示ds18b20采集的數(shù)據(jù)能否被下位單片機識別并在led上顯示是本次設計的第一步,這一步不僅要求ds18b20能采集溫度并上傳至單片機,還要去單片機能通過控制led數(shù)碼管顯示當前溫度。

55、按硬件電路圖,ds18b20主要c程序如下:void display(uchar num,uchar dat) /數(shù)據(jù)顯示程序uchar i;p0=0; switch(num) case 0:i=0x0e;p2=i;break; case 1:i=0x0d;p2=i;break; case 2:i=0x0b;p2=i;break; default:break; p0=tabledat;p2=i;void dis_temp(uint t) /顯示溫度數(shù)值函數(shù)t傳遞的是整型的溫度uchar i,j;for(j=10;j>0;j-)i=t/100; /除以100得到商,為溫度的十位displa

56、y(2,i); /在第一個數(shù)碼管上顯示delay(4);i=t%100/10; /100取余再除以10得到商,位溫度的個位display(1,i+10); /在第2個數(shù)碼管上顯示,有小數(shù)點delay(4);i=t%100%10; /100取余再用10取余,為溫度的小數(shù)位 display(0,i); /在第3個數(shù)碼管上顯示調(diào)試結(jié)果如下圖18。圖18 led調(diào)試結(jié)果圖5.2 nrf24l01發(fā)送與接收模塊調(diào)試數(shù)據(jù)發(fā)送是本設計下位機部分的最后一個環(huán)節(jié),要能讓單片機將ds18b20采集的數(shù)據(jù)通過nrf24l01發(fā)送出去并在pc機端的單片機控制的nrf24l01接收。將相關發(fā)送和接收模塊程序?qū)懭雴纹瑱C后,通過主程序中的調(diào)用,實現(xiàn)溫度的無線傳輸,發(fā)送端和接收端除了nrf24l01的軟件設置工作模式和發(fā)送端有ds18b20接收端沒有以外,其他部分均相同。相關調(diào)試后結(jié)果如下圖19。圖19 無線發(fā)送接收調(diào)試結(jié)果圖6 總結(jié)本論文題目是無線溫度采集系統(tǒng),本系統(tǒng)總共涉及一下相關知識點。單片機引腳和單片機中斷控制,c語言,通信技術(一線總

溫馨提示

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

評論

0/150

提交評論