![基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/0628670c-f314-4260-97eb-3c3f91d3d87a/0628670c-f314-4260-97eb-3c3f91d3d87a1.gif)
![基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/0628670c-f314-4260-97eb-3c3f91d3d87a/0628670c-f314-4260-97eb-3c3f91d3d87a2.gif)
![基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/0628670c-f314-4260-97eb-3c3f91d3d87a/0628670c-f314-4260-97eb-3c3f91d3d87a3.gif)
![基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/0628670c-f314-4260-97eb-3c3f91d3d87a/0628670c-f314-4260-97eb-3c3f91d3d87a4.gif)
![基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/0628670c-f314-4260-97eb-3c3f91d3d87a/0628670c-f314-4260-97eb-3c3f91d3d87a5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)學(xué)生姓名 學(xué)院名稱機(jī)電工程學(xué)院專業(yè)名稱電氣自動(dòng)化指導(dǎo)教師 2011年1月8日 摘要單片機(jī)已在各行業(yè)得到廣泛應(yīng)用,為適應(yīng)更多的應(yīng)用領(lǐng)域,廠家采取了在一塊單片機(jī)芯片上集成多種功能部件和大容量存儲(chǔ)器的方法。因而,整個(gè)應(yīng)用系統(tǒng)不需要擴(kuò)展,而體積變小、可靠性增高,使單片機(jī)成為真正意義上的單片機(jī)系統(tǒng)。本設(shè)計(jì)是基于stc89c52單片機(jī)和ds185b20實(shí)現(xiàn)溫度的測(cè)量系統(tǒng),單片機(jī)在本系統(tǒng)中作為溫度輸入和顯示控制器件,ds18b20被用作溫度數(shù)據(jù)的采集和溫度輸出器件。本系統(tǒng)采用單總線操作,線路簡(jiǎn)單,測(cè)量值精確,可實(shí)現(xiàn)多點(diǎn)測(cè)量,并對(duì)溫度超過(guò)限制值,產(chǎn)生報(bào)警和數(shù)據(jù)采
2、集。本系統(tǒng)被廣泛應(yīng)用于溫度控制、溫度檢測(cè)、溫度采、消防等系統(tǒng)中。關(guān)鍵詞 單片機(jī);數(shù)據(jù)轉(zhuǎn)換;溫度顯示目 錄第一章 緒論11.1 本系統(tǒng)功能11.1.1 溫度測(cè)量功能11.1.2 溫度采集功能11.1.3 系統(tǒng)工作流程11.2 本系統(tǒng)優(yōu)點(diǎn)21.2.1 線路簡(jiǎn)單21.2.2溫度精確2第二章 系統(tǒng)硬件介紹22.1本系統(tǒng)硬件和軟件組成22.1.1 硬件組成22.1.2軟件組成22.2 stc單片機(jī)介紹32.2.1 stc單片機(jī)功能介紹32.3 ds18b20數(shù)字溫度傳感器介紹62.3.1 功能介紹62.3.2 ds18b20內(nèi)部邏輯圖102.3.3 ds18b20溫度傳感器讀寫時(shí)序102.3.4 ds1
3、8b20存儲(chǔ)器操作命令122.3.5 ds18b20溫度傳感器與單片機(jī)的接口電路132.4系統(tǒng)工作過(guò)程222.4.1 溫度的測(cè)量222.4.2 溫度的采集23第三章 程序框圖及c語(yǔ)言程序243.1溫度采集系統(tǒng)原理框圖243.2溫度顯示模塊243.3讀溫度子程序253.4溫度轉(zhuǎn)換子程序253.5計(jì)算溫度子程序26結(jié)論35致謝36參考文獻(xiàn)37附錄38第一章 緒論1.1 系統(tǒng)功能1.1.1 溫度測(cè)量功能利用ds18b20數(shù)字溫度傳感器實(shí)現(xiàn)對(duì)溫度進(jìn)行準(zhǔn)確的測(cè)量,使溫度值顯示到數(shù)碼管上。1.1.2 溫度采集功能利用ds18b20數(shù)字溫度傳感器進(jìn)行溫度的采集,單片機(jī)作為控制器件,數(shù)據(jù)通過(guò)串口(rs232)
4、傳至計(jì)算機(jī),進(jìn)行溫度的采集。1.1.3系統(tǒng)工作流程,見圖1-1系統(tǒng)上電初始化ds18b20進(jìn)行數(shù)據(jù)的采集并將數(shù)據(jù)以二進(jìn)制的形式傳至單片機(jī)單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理數(shù)碼管進(jìn)行溫度顯示通過(guò)串口將數(shù)據(jù)傳至計(jì)算機(jī)圖1-1系統(tǒng)工作流程1.2 本系統(tǒng)優(yōu)點(diǎn)1.2.1 線路簡(jiǎn)單ds18b20與單片機(jī)之間一根導(dǎo)線進(jìn)行數(shù)據(jù)傳輸,不需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,接線簡(jiǎn)單。1.2.2 溫度測(cè)量準(zhǔn)確ds18b20的溫度分辨率為0.0625,所以對(duì)溫度值可以進(jìn)行準(zhǔn)確的溫度轉(zhuǎn)換。第二章 系統(tǒng)硬件介紹2.1系統(tǒng)硬件及軟件組成2.11硬件組成本系統(tǒng)所用的硬件有:見表2-1。表2-1系統(tǒng)硬件清單器件名稱數(shù)量stc89c52單片機(jī)1個(gè)74hc57
5、3鎖存器2個(gè)led發(fā)光二級(jí)管8個(gè)蜂鳴器1個(gè)獨(dú)立鍵盤5個(gè)數(shù)碼管(兩個(gè)一組)2個(gè)三極管1個(gè)ds18b201個(gè)max233串口芯片1個(gè)電容若干電阻若干導(dǎo)線若干2.1.2軟件組成軟件有:keil軟件、windows操作系統(tǒng)和串口調(diào)試助手等軟件組成。2.2 stc單片機(jī)介紹單片機(jī)作為微型計(jì)算機(jī)的一個(gè)重要分支,其應(yīng)用范圍很廣,發(fā)展也很快。1971年intel公司首次宣布4004的4位微處理器,1974年12月fairchild(仙童)公司即推出了8位單片機(jī)f8,開創(chuàng)了單片機(jī)的門戶。單片機(jī)在我國(guó)的應(yīng)用始于20世紀(jì)70年代末,那時(shí)我國(guó)的科研工作者開始對(duì)單片機(jī)的應(yīng)用進(jìn)行了初期探索,20世紀(jì)80年代,單片機(jī)在我國(guó)
6、得以廣泛的應(yīng)用,各理工科院校陸續(xù)開設(shè)了有關(guān)應(yīng)用課程。在教學(xué)及應(yīng)用上,zilog公司生產(chǎn)的z80cpu成為我國(guó)工業(yè)控制的主流,以z80為cpu組成的tp801單板機(jī)在教學(xué)上及應(yīng)用領(lǐng)域發(fā)揮過(guò)巨大作用。20世紀(jì)80年代末至90年代初,我國(guó)在工業(yè)控制領(lǐng)域開始轉(zhuǎn)向使用intel公司生產(chǎn)的mcs-51。單片機(jī)從1976年公布8位機(jī)至今不到30年的時(shí)間,它沒(méi)有像微處理器那樣從8位、16位,一直發(fā)展到32位、64位,8位機(jī)目前依然是單片機(jī)的主流機(jī)型。但是,它突破了原有的集成結(jié)構(gòu),在內(nèi)部繼承了越來(lái)越多的外圍電路和外設(shè)接口,從而發(fā)展成為控制器(microcontroller)的體系結(jié)構(gòu),其發(fā)展歷程大致分為以下幾步
7、:第一階段:?jiǎn)纹瑱C(jī)的控索階段第二階段:?jiǎn)纹瑱C(jī)的完善階段第三階段:8位單片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段第四階段:微控制器的全面發(fā)展階段單片機(jī)已在各行業(yè)得到廣泛應(yīng)用,為適應(yīng)更多的應(yīng)用領(lǐng)域,廠家采取了在一塊單片機(jī)芯片上集成多種功能部件和大容量存儲(chǔ)器的方法。因而,整個(gè)應(yīng)用系統(tǒng)不需要擴(kuò)展,而體積變小、可靠性增高,使單片機(jī)成為真正意義上的單片機(jī)系統(tǒng)2.2.1 stc單片機(jī)功能介紹單片機(jī)是隨著大規(guī)模集成電路的出現(xiàn)極其發(fā)展,將計(jì)算機(jī)的cpu,ram,rom,定時(shí)/計(jì)數(shù)器和多種i/o接口集成在一片芯片上,形成了芯片級(jí)的計(jì)算機(jī),因此單片機(jī)早期的含義稱為單片微型計(jì)算機(jī)(single chipmicrocom
8、puter).它擁有優(yōu)異的性價(jià)比、集成度高、體積小、可靠性高、控制功能強(qiáng)、低電壓、低功耗的顯著優(yōu)點(diǎn).主要應(yīng)用于智能儀器儀表、工業(yè)檢測(cè)控制、機(jī)電一體化等方面,并且取得了顯著的成果.單片機(jī)應(yīng)用系統(tǒng)可以分為:(1)最小應(yīng)用系統(tǒng)是指能維持單片機(jī)運(yùn)行的最簡(jiǎn)單配置的系統(tǒng)。這種系統(tǒng)成本低廉,結(jié)構(gòu)簡(jiǎn)單,常構(gòu)成一些簡(jiǎn)單的控制系統(tǒng),如開關(guān)狀態(tài)的輸入/輸出控制等。片內(nèi)有rom/eprom的單片機(jī),其最小應(yīng)用系統(tǒng)即為配有晶振,復(fù)位電路,電源的單個(gè)單片機(jī).片內(nèi)無(wú)rom/eprom的單片機(jī),其最小應(yīng)用系統(tǒng)除了外部配置晶振,復(fù)位電路,電源外,還應(yīng)外接eprom或eeprom作為程序存儲(chǔ)器用.(2)最小功耗應(yīng)用系統(tǒng)是指為了保
9、證正常運(yùn)行,系統(tǒng)的功耗最小.(3)典型應(yīng)用系統(tǒng)是指單片機(jī)要完成工業(yè)測(cè)控功能所必須的硬件結(jié)構(gòu)系統(tǒng)。stc89c52 是一種低功耗、高性能 cmos8 位微控制器,具有8k 在系統(tǒng)可編程 flash 存儲(chǔ)器。使用 atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。片上 flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 cpu 和在系統(tǒng)可編程 flash,使得 stc89c52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。stc89c52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) flash,256 字節(jié) ram,32 位
10、i/o 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,stc89c52 可降至 0hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下,cpu停止工作,允許 ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2211引腳結(jié)構(gòu),見圖2-1圖2-1單片機(jī)封裝及引腳結(jié)構(gòu)2212內(nèi)部邏輯圖,見圖2-2圖2-2內(nèi)部邏輯圖2213 引腳功能描述vcc :電源gnd:地p0 口:p0 口是一個(gè) 8 位漏極開路的雙向
11、i/o 口。作為輸出口,每位能驅(qū)動(dòng) 8 個(gè) ttl 邏輯電平。對(duì) p0 端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0 口也被作為低 8 位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0 具有內(nèi)部上拉電阻。在 flash 編程時(shí),p0 口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。p1 口:p1 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p1 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)ttl 邏輯電平。對(duì) p1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p
12、1.0 和 p1.2 分別作定時(shí)器/計(jì)數(shù)器 2 的外部計(jì)數(shù)輸入(p1.0/t2)和時(shí)器/計(jì)數(shù)器 2的觸發(fā)輸入(p1.1/t2ex),具體如下表所示。在 flash 編程和校驗(yàn)時(shí),p1 口接收低 8 位地址字。p2 口:p2 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)ttl邏輯電平。對(duì)p2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問(wèn)外部程序存儲(chǔ)器或用 16 位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 movx dptr)時(shí), p2 口送出高八位地址。在這種應(yīng)用中,p
13、2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送 1。在使用8 位地址(如 movx ri)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),p2 口輸出 p2 鎖存器的內(nèi)容。在 flash 編程和校驗(yàn)時(shí),p2 口也接收高 8 位地址字節(jié)和一些控制信號(hào)。p3 口:p3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè)ttl 邏輯電平。對(duì) p3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3 口亦作為 stc89c52 特殊功能(第二功能)使用,如下表所示。在 flash 編程和校驗(yàn)時(shí),p3 口也接收一些控制信號(hào)。
14、rst:復(fù)位輸入。晶振工作時(shí),rst 腳持續(xù) 2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,rst 腳輸出 96 個(gè)晶振周期的高電平。特殊寄存器 auxr(地址 8eh)上的 disrto 位可以使此功能無(wú)效。disrto 默認(rèn)狀態(tài)下,復(fù)位高電平有效。ale/prog:地址鎖存控制信號(hào)(ale)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在 flash 編程時(shí),此引腳(prog)也用作編程輸入脈沖。在一般情況下,ale以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ale 脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為 8eh
15、的 sfr 的第 0 位置“1”,ale 操作將無(wú)效。這一位置“1”,ale 僅在執(zhí)行 movx 或 movc 指令時(shí)有效。否則,ale 將被微弱拉高。這個(gè) ale 使能標(biāo)志位地址為 8eh 的 sfr 的第 0 位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。psen:外部程序存儲(chǔ)器選通信號(hào)psen是外部程序存儲(chǔ)器選通信號(hào)。當(dāng) stc89c52 從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),psen 在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),psen 將不被激活。 xtal1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。2.3 ds18b20數(shù)字溫度傳感器介紹2
16、.3.1 功能介紹dallas最新單線數(shù)字溫度傳感器ds18b20的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì) dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器ds1820是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。ds18b20、 ds1822 “一線總線”字化溫度傳感器 同ds1820一樣,ds18b20也 支持“一線總線”接口,測(cè)量溫度范圍為 -55c+125c,-10+85c范圍內(nèi),精度為0.5c。ds1822的精度較差為 2c ?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。
17、適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:境控制、設(shè)備或過(guò)程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3v5.5v的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。 ds18b20、 ds1822 的特性 ds18b20可以程序設(shè)定912位的分辨率,精度為0.5c??蛇x更小的方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在eeprom中,掉電依然保存。ds18b20的性能是新一代產(chǎn)品中最好的!性能價(jià)格比也非常出色! ds1822ds18b20軟件兼容,是ds18b20的簡(jiǎn)化版本。省略了存儲(chǔ)用戶定義報(bào)警溫度、分辨率參數(shù)的eeprom,精度降低為2c,適用
18、于對(duì)性能要求不高,成本控制嚴(yán)格的應(yīng)用,是經(jīng)濟(jì)型產(chǎn)品。 繼“一線總線”的早期產(chǎn)品后,ds1820開辟了溫度傳感器技術(shù)的新概念。ds18b20和ds1822使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng)。ds18b20的內(nèi)部結(jié)構(gòu)ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列如下: dq為數(shù)字信號(hào)輸入/輸出端;gnd為電源地;vdd為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。光刻rom中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼。64位光刻rom
19、的排列是:開始8位(28h)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該ds18b20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(crc=x8+x5+x4+1)。光刻rom的作用是使每一個(gè)ds18b20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)ds18b20的目的。ds18b20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/lsb形式表達(dá),其中s為符號(hào)位,見表2-1。表2-1ds18b20內(nèi)部溫度表示形式這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18b20的兩個(gè)8比特的ram中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位
20、為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。例如+125的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0191h,-25.0625的數(shù)字輸出為ff6fh,-55的數(shù)字輸出為fc90h。見表2-2表2-2ds18b20轉(zhuǎn)化溫度形式實(shí)際溫度值數(shù)字輸出(二進(jìn)制)數(shù)字輸出(十六進(jìn)制)+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 0
21、01000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6eh-551111 1100 1001 0000fc90h2.3.3 ds18b20的內(nèi)部邏輯圖,見圖2-3。c64 位rom和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器vdd圖2-3ds18b20內(nèi)部?jī)?nèi)部邏輯圖2.3.4 ds18b20讀寫時(shí)序
22、主機(jī)使用時(shí)間隙(time slots)來(lái)讀寫 dsl820 的數(shù)據(jù)位和寫命令字的位2.3.4.1初始化時(shí)序見圖 2-4主機(jī)總線 to 時(shí)刻發(fā)送一復(fù)位脈沖(最短為 480us 的低電平信號(hào))接著在 tl 時(shí)刻釋放總線并進(jìn)入接收狀態(tài)dsl820 在檢測(cè)到總線的上升沿之后 等待 15-60接著 ds1820 在 t2 時(shí)刻發(fā)出存在脈沖(低電平持續(xù) 60-240 us)如圖中虛線所示圖2-4ds18b20初始化時(shí)序圖程序:init_ds18b20(void)/初始化ds1820 dq = 1; /dq復(fù)位 _nop_(); _nop_(); /稍做延時(shí)2ms dq = 0; /單片機(jī)將dq拉低,發(fā)出復(fù)
23、位脈沖(要求480us960us) delay(70); /精確延時(shí)566us dq = 1; /拉高總線(要求1660us) delay(5); /延時(shí)46us presence = dq; /如果=0則初始化成功 =1則初始化失敗 delay(25); dq = 1; return(presence); /返回信號(hào),0=presence,1= no presence2.3.4.2寫時(shí)間隙當(dāng)主機(jī)總線 t o 時(shí)刻從高拉至低電平時(shí) 就產(chǎn)生寫時(shí)間隙從 to 時(shí)刻開始 15us 之內(nèi)應(yīng)將所需寫的位送到總線dsl820 在 t1為15-60us 間對(duì)總線采樣 若低電平 寫入的位是 0見若高電平 寫入
24、的位是連續(xù)寫 2 位間的間隙應(yīng)大于 1us ,見圖2-5。 圖2-5寫時(shí)間隙程序:writeonechar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-) dq = 0; dq = dat&0x01; delay(5); dq = 1; dat=1;2.3.4.3讀時(shí)間隙見圖 2-6 主機(jī)總線 to 時(shí)刻從高拉至低電平時(shí)總線只須保持低電平 l 7ts之后15捍 s也就是說(shuō)t z 時(shí)刻前主機(jī)必須完成讀位 并在 t o 后的 60 尸 s 一 120 fzs 內(nèi)釋放總線讀位子程序(讀得的位到 c 中) 圖2-6讀時(shí)序程序:readonec
25、har(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) dq = 0; / 給脈沖信號(hào) dat=1; dq = 1; / 給脈沖信號(hào) if(dq) dat|=0x80; delay(4);return(dat);2.3.5存儲(chǔ)器操作命令,見表2-5表2-5存儲(chǔ)器操作命令指令約定代碼功能讀rom33h讀取ds18b20rom中的編碼(64位地址)符合rom55h發(fā)出命令后,接著發(fā)出64位rom編碼,訪問(wèn)單總線上與該編碼相同的ds18b20,使之做出反應(yīng),為下一步讀寫作準(zhǔn)備。搜索rom0f0h用于確定掛在同一總線上ds18b
26、20的個(gè)數(shù),和識(shí)別64位rom地址,微操作各器件做準(zhǔn)備。跳過(guò)rom0cch忽略64位rom地址,直接向ds18b20發(fā)送溫度轉(zhuǎn)換命令,適用于單片工作。告警搜索命令0ech執(zhí)行后只有溫度值超過(guò)限度值才做出反應(yīng),溫度變換命令44h啟動(dòng)ds18b20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長(zhǎng)為500毫秒,結(jié)果存入內(nèi)部就九字節(jié)ram中。讀暫存器0beh讀內(nèi)部ra九字節(jié)內(nèi)容寫暫存器4eh發(fā)出向內(nèi)部ram的第3、4字節(jié)寫上下限溫度命令,緊隨該命令之后是傳送兩個(gè)字節(jié)數(shù)據(jù)。復(fù)制暫存器48h將ram中的第3、4字節(jié)內(nèi)容寫到eepram中。重調(diào)eepram0b8h將eepram中的第3、4字節(jié)內(nèi)容寫到ram中。2.4 ds18b
27、20溫度傳感器與單片機(jī)的接口電路ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)ds18b20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單片機(jī)端口接單線總線,為保證在有效的ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)mosfet管來(lái)完成對(duì)總線的上拉。當(dāng)ds18b20處于寫存儲(chǔ)器操作和溫度a/d轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)vdd端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。由于ds18b20是在一根i/o線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。ds18b20有嚴(yán)
28、格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。ds18b20的復(fù)位時(shí)序 ds18b20的讀時(shí)序?qū)τ赿s18b20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。對(duì)于ds18b20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓ds18b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成
29、。ds18b20的寫時(shí)序?qū)τ赿s18b20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過(guò)程。對(duì)于ds18b20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證ds18b20能夠在15us到45us之間能夠正確地采樣io總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。 圖5-2覆銅pcb2.5系統(tǒng)工作過(guò)程2.51溫度的測(cè)量 ds18b20數(shù)字溫度傳感器溫度數(shù)據(jù)以數(shù)字的形式傳至單片機(jī),單片機(jī)將數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制,送到數(shù)碼管進(jìn)行顯示,這也就完成了,溫度的測(cè)量,6-1。圖6-1溫度測(cè)量2.5.2溫度數(shù)據(jù)的采集 ds18b20數(shù)字溫度傳感器溫度數(shù)
30、據(jù)以數(shù)字的形式傳至單片機(jī),單片機(jī)通過(guò)rs232將數(shù)據(jù)傳至計(jì)算機(jī),由串口調(diào)試助手進(jìn)行數(shù)據(jù)的記錄和顯示,見圖6-2。圖6-2溫度數(shù)據(jù)的采集7程序框圖及c語(yǔ)言程序2.5.3溫度采集系統(tǒng)原理框圖,見圖7-1初始化調(diào)用顯示子程序1s到?初次上電?讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令ny主流程圖y主流程圖n圖7-1溫度采集系統(tǒng)原理框圖2.5.4溫度顯示模塊顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程,見圖7-2。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?n y百位數(shù)0? ny百位數(shù)顯示數(shù)據(jù) (不顯示符號(hào))十位數(shù)顯示符號(hào)百位數(shù)不顯示
31、y 結(jié)束圖7-2溫度顯示模塊流程圖2.5.5讀溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需要進(jìn)行crc校驗(yàn),其程序流程,見圖7-2。發(fā)ds18b20復(fù)位命令發(fā)跳過(guò)rom命令讀取溫度命令讀取操作,crc校驗(yàn)9字節(jié)完?crc校驗(yàn)正確?移入溫度暫存器結(jié)束 n y n y圖7-3讀溫度子程序7.1.3溫度轉(zhuǎn)換子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,其子程序流程見圖7-4。ds18b20復(fù)位命令跳過(guò)rom命令溫度轉(zhuǎn)換開始命令結(jié)束圖7-4溫度轉(zhuǎn)換子程序流程7.1.4計(jì)算溫度子程序此程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算并進(jìn)行正負(fù)判定流程,見圖7-5。開始溫度零下? n
32、溫度值取補(bǔ)碼置“”標(biāo)志 y置“+”標(biāo)志計(jì)算小數(shù)位溫度bcd值計(jì)算整數(shù)位溫度bcd值結(jié)束圖7-5計(jì)算溫度子程序流程 結(jié)論本次用單片機(jī)設(shè)計(jì)的溫度數(shù)據(jù)采集系統(tǒng)終于完成了,在本次設(shè)計(jì)中,從采集元件,軟件設(shè)計(jì),硬件焊結(jié),外觀到論文的編寫都是先查閱了大量資料,后確定,再經(jīng)老師指導(dǎo),最后經(jīng)過(guò)多天的不斷努力才完成的。在這次培訓(xùn)中,我切身感受到了動(dòng)手實(shí)踐的重要性,這對(duì)我以后的學(xué)習(xí)工作將產(chǎn)生深遠(yuǎn)影響。在本次設(shè)計(jì)研究和撰寫論文的過(guò)程中,我查閱了許多文獻(xiàn)資料,從中學(xué)到了很多有關(guān)系統(tǒng)開發(fā)和程序調(diào)試方面等的知識(shí)。在軟件開發(fā)過(guò)程中掌握了一些技術(shù)難題的解決方法和技巧,鞏固和加深了所學(xué)知識(shí)的理解,能夠把所學(xué)的知識(shí)與實(shí)踐相結(jié)合,
33、培養(yǎng)了認(rèn)真嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度,為以后開發(fā)軟件積累了大量的經(jīng)驗(yàn),提高了分析問(wèn)題和解決問(wèn)題的能力。但是由于認(rèn)識(shí)上的片面和不足,各方面的條件影響也很多,本設(shè)計(jì)還有待進(jìn)一步的完善和優(yōu)化,這些在以后的學(xué)習(xí)中要注重積累。致謝感謝于蕾老師對(duì)我的指導(dǎo),他的嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣。她循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪。無(wú)論是在課題的選題還是定稿、研究的方法、技術(shù)路線以及本文的撰寫都得到了于老師的嚴(yán)格要求和精心指導(dǎo),于老師花費(fèi)了大量的精力,在各個(gè)環(huán)節(jié)中給了我許多寶貴的意見。在這次培訓(xùn)中于老師嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)作風(fēng)、治學(xué)態(tài)度、求實(shí)的工作作風(fēng)和孜孜不倦的探索創(chuàng)新精神,以及平易近人的師長(zhǎng)風(fēng)范
34、給我創(chuàng)造了良好的學(xué)習(xí)設(shè)計(jì)環(huán)境,及給了我這個(gè)學(xué)習(xí)提高的機(jī)會(huì)和在生活上給我的無(wú)微不至的關(guān)懷。這些都是我不斷前進(jìn)的動(dòng)力,必將對(duì)我今后的學(xué)習(xí)和生活受益匪淺,我將終生學(xué)習(xí)和銘記。在此,謹(jǐn)向于老師的培育之恩表示最深的謝意!感謝其他多位老師對(duì)我學(xué)習(xí)和設(shè)計(jì)所給予的支持和幫助。感謝在我論文完成過(guò)程中同學(xué)們給我提供的支持、幫助和建議。在這里也衷心地感謝他們!在論文即將完成之際,我的心情無(wú)法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意 !參考文獻(xiàn)1 何立民電子設(shè)計(jì)自動(dòng)化j 電子技術(shù), 2008, (56) :5-92 李鴻嵌入式系統(tǒng)設(shè)計(jì)m 深圳:科技電
35、子出版社,2008:98-11303 嚴(yán)天峰單片機(jī)開發(fā)m 成都:科學(xué)出版社,2007:77-984 謝維成單片機(jī)原理與應(yīng)用d 北京:清華大學(xué),20035 錢顯毅電子電路設(shè)計(jì)n 科技時(shí)報(bào),2009-3-12(c1)附錄溫度采集系統(tǒng)c語(yǔ)言程序#include #define uchar unsigned char#define uint unsigned intsbit ds=p22;sbit fm=p23; /define interface 定義 ds18b20 接口int temp; / 溫度變量uchar flag1,count; / sign of the result positive
36、 or negativesbit dula=p26;sbit wela=p27;unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/不帶小數(shù)點(diǎn)編碼。unsigned char code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; /帶小數(shù)點(diǎn)編碼。void delay(uint x) /delayuchar i,j; for(i=0;ix;i+)for(j=0;j0)i-; ds=1; i=4; while(i0)i-;bit
37、 tmpreadbit(void) /read a bit讀一位 int i; bit dat; ds=0;i+; /i+小延時(shí)一下 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat);uchar tmpread(void) /讀一個(gè)字節(jié) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好 /一個(gè)字節(jié)在 dat 里 return(dat); /將一個(gè)字節(jié)數(shù)據(jù)返回void tmpwritebyte(uchar dat) /寫一個(gè)字節(jié)到 ds18b20 里 int i; char j; bit test
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦井防雷檢測(cè)基礎(chǔ)施工方案
- 奇偶層層鋁模施工方案
- 經(jīng)濟(jì)學(xué)研究挑戰(zhàn)與突破
- 2023年關(guān)于消防通知四篇
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)2.5《全等三角形的判定(ASA)》聽評(píng)課記錄
- 2025年專業(yè)級(jí)腳手架租賃與定期檢查合同范本
- 2025年度海洋生物資源運(yùn)輸保險(xiǎn)協(xié)議(2025年度)
- 部編人教版歷史九年級(jí)上冊(cè)第20課《第一次工業(yè)革命》聽課評(píng)課記錄
- 人教版數(shù)學(xué)七年級(jí)下冊(cè)第56課時(shí)《9.3一元一次不等式組(一)》聽評(píng)課記錄
- 電商物流中的智能分揀與配送解決方案
- 烤煙生產(chǎn)沿革
- GB 1886.227-2016食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑嗎啉脂肪酸鹽果蠟
- 毛澤東思想課件-第七章 毛澤東思想的活的靈魂
- 公共關(guān)系效果的評(píng)估課件
- 建筑施工安全員理論考核試題與答案
- 高速公路用地勘測(cè)定界及放線定樁技術(shù)標(biāo)書
- 建筑工程節(jié)后復(fù)工自查表
- 華萊士標(biāo)準(zhǔn)化體系
- 快捷smt全自動(dòng)物料倉(cāng)儲(chǔ)方案
- keysight眼圖和抖動(dòng)噪聲基礎(chǔ)知識(shí)與測(cè)量方法
- 鍋爐補(bǔ)給水陰陽(yáng)混床操作步序表
評(píng)論
0/150
提交評(píng)論