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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、精度1攝氏度。 關(guān)鍵字: 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 單片機(jī)的引腳介紹21.2.2 單片機(jī)內(nèi)部資源介紹41.3 系統(tǒng)工作原理簡(jiǎn)介51.3.1數(shù)字溫度傳感器ds18b2071.3.2無線傳輸71.3.3 led顯示92 下位機(jī)部分介紹112.1 ds18b20溫度采集模塊112.1.1 ds18b20簡(jiǎn)介112.1.2 ds18b20的測(cè)溫方法122.2 led數(shù)碼顯示模塊142.3 nrf24l01無線發(fā)送模塊173 上位機(jī)部分介紹203.1 無線接收模塊203.2 上位機(jī)上的數(shù)據(jù)顯示214 模塊間的通信234.1 上位機(jī)與單片機(jī)的通信234.1.1

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

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

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

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

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

17、p0口,p0口為一個(gè)8位雙向i/o口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須接上拉電阻,常用的上拉電阻為1k。p1口,p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口。p2口,p2口為一個(gè)內(nèi)部存在上拉電阻的8位雙向i/o口,且常常結(jié)合p0口控制外圍數(shù)字化設(shè)備。p3口,p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)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(計(jì)時(shí)器0外部輸入端)p3.5 t1(計(jì)時(shí)器1外部輸入端)p3.6/wr(外部數(shù)據(jù)存儲(chǔ)器寫選通端)p3.7/rd(外部數(shù)據(jù)存儲(chǔ)器讀選通端)獨(dú)立功能接口:rst,復(fù)位輸入。當(dāng)需要復(fù)位時(shí),要控制并保持rst腳上兩個(gè)機(jī)器周期的高電平。ale/prog,當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖控制單片機(jī)i/o口輸出的低位字節(jié)信號(hào),微處理器at89c52可以控制讓外部執(zhí)行狀態(tài)ale禁止。/psen,外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不會(huì)出現(xiàn)。/ea/vpp,在at89c52訪問外部程序存儲(chǔ)器期間,不管是否有內(nèi)部

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

38、作。sck,芯片控制的時(shí)鐘線(spi時(shí)鐘)。miso,芯片控制數(shù)據(jù)線(master input slave output)。mosi,芯片控制數(shù)據(jù)線(master output slave input)。irq,中斷信號(hào)。無線通信過程中mcu主要是通過irq與nrf24l01進(jìn)行通信。ce,芯片的模式控制線。在csn為低的情況下,ce協(xié)同nrf24l01的config寄存器共同決定nrf24l01的狀態(tài)。該模塊發(fā)送模式的工作流程如13所示。圖13 發(fā)送模式流程圖相關(guān)發(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 上位機(jī)部分介紹3.1 無線接收模塊上位機(jī)上的接收模塊依然是采用硬件配置相同的nrf24l01。硬件電路與下位機(jī)部分的無線發(fā)送模塊相同,以保證有相同的配置參數(shù),便于理解也便于編程。nrf24l01初始化后的流程圖圖14如下。圖14 nrf24l01接收流程圖無線接收模塊相關(guān)程序如下。/*函數(shù):void setrx_mode(void)/*功能:數(shù)據(jù)接收配置 void setrx_mode(void)ce=0;spi_rw_reg(write_reg + config, 0x0f); / irq收發(fā)完成中斷響應(yīng),16位crc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論