基于單片機的溫度警報器設計方案_第1頁
基于單片機的溫度警報器設計方案_第2頁
基于單片機的溫度警報器設計方案_第3頁
基于單片機的溫度警報器設計方案_第4頁
基于單片機的溫度警報器設計方案_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 濱海職業學院全日制高等職業教育畢業實踐環節畢業設計(典型性項目)說明書 基于單片機的溫度報警器設計(方案) 佳璐 院系:濱海職業學院機電工程系 專業:電子信息工程技術 年級:2012級 學號: 指導教師: 時間:2015年4月主要容簡介在農業生產中,溫室的溫度很難把握。往往超過或低于允許值,致使大批良種的報廢,耽誤農時,影響生產。這就需要設計一個溫度報警器,在環境溫度超過一定圍時報警,來提醒使用者。 基于以上背景設計基于單片機的溫度報警器。本設計采用ATMEL公司的ATmega16單片機為硬件核心系統,添加數碼管、按鍵和溫度傳感器芯片,組成完整的硬件系統。采用C語言為編程語言,進行系統的軟件

2、系統開發。通過本系統硬件、軟件部分設計完成如下目標:1、完成系統的硬件部分設計,硬件部分包括電源、顯示、按鍵、溫度接口、報警觸發等部分設計。在此基礎上保證軟件功能實現。2、溫度報警器可以通過按鍵方便設定報警圍。3、溫度報警器通過數碼管顯示實時顯示測量的環境溫度。當環境溫度溫度超出設定圍時,啟動報警。本設計硬件制作方便,通過C語言程序實現軟件設計,可移植性強,能夠精準的對環境進行溫度測量并顯示,實用性強。關鍵字:M16;18B20;溫度控制;C語言目錄一、緒論4(一)研究背景與現狀4(二)設計容與要求4二、關鍵技術簡介5三、M16單片機概述6(一)ATmega16的主要性能6(二)M16的基本組

3、成與引腳6(三)M16的引腳基本功能6(四)外部晶體振蕩器8四、溫度傳感器18B20介紹8(一)溫度傳感器18B20的特性8(二)溫度傳感器18B20的基本組成,見下圖4所示。9(三)溫度傳感器18B20的測溫操作10五、硬件設計12(一)硬件電路設計12(二)電源和復位電路設計13(三) 輸入、輸出部分設計14(四)驅動部分設計15六、軟件設計15(一)顯示部分設計15(二)按鍵檢測設計21(三)1wire 是一種通訊協議實現23(四)軟件總體設計28一、緒論(一)研究背景與現狀1在農業生產中,溫室的溫度很難把握。往往超過或低于允許值,致使大批良種的報廢,耽誤農時,影響生產。日常生活中,經常

4、要用到高功率電器,但是高功率電器的發熱量大,有時候可能引起火災。等等之類的情況,這就需要一個溫度報警器在環境溫度超過一定圍時報警,來提醒使用者。經過試用和改進,溫度報警器可適用于變壓器超溫報警、環境溫度監測、配電柜溫度監測與風扇自動控制、機房、倉庫、魚塘、蔬菜大棚溫度監測與報警等等。2溫度控制器目前普遍采用的幾種方法:方案一:采用單總線的DS1820的溫度傳感器的控制儀。方案二:采用集溫濕度傳感器于一體的SHT11芯片為主要芯片的控制儀。雖然SHT11是瑞士Sensiri-on公司生產的具有二線串行接口的單片全校準數字式新型相對濕度和溫度傳感器,可用來測量相對濕度、溫度和露點等參數,具有數字式

5、輸出、免調試、免標定、免外圍電路與全互換的特點。但是本設計只對溫度控制,設計原理簡單,基于經濟效益的考慮此次選擇傳統的模擬式溫度度傳感器既方案一。(二)設計容與要求1本溫度報警器為超溫報警,與高于選定的高溫或低于選定的低溫均預報警,也就是說溫度超過某個選定的溫度圍則報警,溫度在這個圍則不報警。外觀如圖1所示:.圖1 設計外觀圖2使用方法:打開電源開關然后按如下操作:打開電源開關然后按如下操作:(1)下限設置:按下“SET”,進入溫度上限設置,數字閃爍,同時左第1位最上面顯示一橫,表示上限設置,按一次“”溫度值加0.1攝氏度,按一次“”,溫度值減小0.1攝氏度,設置好上限;這時再按“SET”一次

6、,進入下限溫度設置,數字閃爍,同時左第1位最下面顯示一橫,表示是下限設置,按一次“”溫度值加0.1攝氏度,按一次,溫度值減小0.1攝氏度,設置好下限,再按一次“SET”,退出上下限設置,并把設置好的上下限參數保存到EEPROM中(2)負載載控制開關控制:有時不需要控制負載,就是待機狀態,在工作狀態下,按下WAIT,下面的數碼管會關顯示,什么也不顯示,表示不控制負載,這時再按下WAIT,又回到工作狀態,設置狀態也保存EEPROM中,交替顯示所設定的溫度上下限值。二、關鍵技術簡介1 單片機的技術的背景狀況單片機是靠程序的,并且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是

7、別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板,但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別。只因為單片機的通過你編寫的程序可以實現高智能,高效率,以與高可靠性。2目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控

8、制,以與程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。三、M16單片機概述(一)ATmega16的主要性能1、先進的、高性能的的8位CPU核結構:1)耗先進的RISC(精簡指令集計算機)結構;2)高速度,低功耗的新8位中央處理器;2、非易失性程序和數據存儲器:3、豐富的核外功能資源電路:完善的串、并、與JTAG(聯合測試行動組) 接口。4、電壓圍寬、功率消耗低、時鐘頻率靈活。5、極高的性價比和適于高級語言開發;(二)M16的基本組成與引腳M16的基本組成與引腳配置,見下圖2所示。圖2 M16的組成結構圖(三)M16的引腳基本功能1、VCC:數字

9、電路電源(+5V)2、GND:地(0V)3、端口A(PA7PA0)端口A為8位雙向I/O口,也是A/D轉換器的模擬輸入端。具有可編程的部上拉電阻。其輸出緩沖器可以輸出和吸收大電流。作為輸入使用時,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。4、端口B(PB7.PB0)為8位雙向I/O口,具有可編程的部上拉電阻。作為輸入使用時,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。5、端口C(PC7.PC0)為8位雙向I/O口,具有可編程的部上拉電阻。作為輸入使用時,若部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,端口C也處于高阻狀態6、端口D(PD7.P

10、D0)為8位雙向I/O口,具有可編程的部上拉電阻。作為輸入使用時,若部上拉電阻使能,則端口被外部電路拉低時將輸出電流。7、RESET:復位輸入引腳。8、XTAL1:反相振蕩放大器與片時鐘操作電路的輸入端。9、XTAL2:反相振蕩放大器的輸出端9、XTAL2:反相振蕩放大器的輸出端。10、AVCC:端口A與A/D轉換器的電源。11、AREF:A/D的模擬基準電壓輸入引腳。(1)ATmega16所有的I/O端口與外圍設備都被放置于I/O專用空間。所有的I/O寄存器都可以通過IN與OUT指令來訪問,在32個通用工作寄存器和I/O之間傳輸數據。地址為0x00-0x1F的前32個I/O寄存器還可用SBI

11、和CBI指令直接進行位尋址,而SBIS和SBIC則用來檢查某一位的值。(2)M16系統可編程的Flash程序存儲器:ATmega16具有16K字節(8K字0000-1FFF)的在線編程Flash,用于存放程序指令代碼。其結構具有兩個主要的存儲器空間:應用程序存儲空間和引導程序存儲空間。兩個空間通過對應鎖定位來選擇,引導區程序可用SPM指令再應用修改(4) 外部晶體振蕩器外部晶體振蕩器接線圖,如下圖3所示。圖3 外部晶體振蕩器四、溫度傳感器18B20介紹(一)溫度傳感器18B20的特性1.DS18B20可以程序設定912位分辨率可調,適用電壓為3V5V,精度為0.5C。可選更小的封裝方式,更寬的

12、電壓適用圍。分辨率設定,與用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產品中最好的!性能價格比也非常出色!DS1822與DS18B20軟件兼容,是DS18B20的簡化版本。省略了存儲用戶定義報警溫度、分辨率參數的EEPROM,精度降低為2C,適用于對性能要求不高,成本控制嚴格的應用,是經濟型產品。TO-92、SOIC與CSP封裝可選,經濟型版本無EEPROM合自己的經濟的測溫系統。2.繼“一線總線”的早期產品后,DS1820開辟了溫度傳感器技術的新概念。DS18B20和DS1822使電壓、特性與封裝有更多的選擇,讓我們可以構建適合自己的經濟的測溫系統。(

13、二)溫度傳感器18B20的基本組成,見下圖4所示。圖4 溫度傳感器DS1820數字溫度計以9位數字量的形式反映器件的溫度值。DS1820通過一個單線接口發送或接收信息,因此在中央微處理器和DS1820之間僅需一條連接線(加上地線)。用于讀寫和溫度轉換的電源可以從數據線本身獲得,無需外部電源。因為每個DS1820都有一個獨特的片序列號,所以多只DS1820可以同時連在一根單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。這一特性在HVAC環境控制、探測建筑物、儀器或機器的溫度以與過程監測和控制等方面非常有用。1.引腳說明16腳SSOPPR35符號說明82DQ數據輸入/輸出腳。對單線操作:漏極

14、開路73 VDD可選的VDD引腳。DS1820S(16腳SSOP):所有上表中沒提到的腳均接地 DS1820的主要部件模塊圖5 DS1820的主要部件模塊圖5的方框圖示出了DS1820的主要部件。DS1820有三個主要數字部件:1)64位激光ROM,2)溫度傳感器,3)非易失性溫度報警觸發器TH和TL。器件用如下方式從單線通訊線上汲取能量:在信號線處于高電平期間把能量儲存在部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。DS1820也可用外部5V電源供電。(三)溫度傳感器18B20的測溫操作DS1820通過一種片上溫度測量技術來測量溫度。圖6示出了

15、溫度測量電路的方框圖。圖6 溫度測量電路圖DS1820是這樣測溫的:用一個高溫度系數的振蕩器確定一個門周期,部計數器在這個門周期對一個低溫度系數的振蕩器的脈沖進行計數來得到溫度值。計數器被預置到對應于-55的一個值。如果計數器在門周期結束前到達0,則溫度寄存器(同樣被預置到-55)的值增加,表明所測溫度大于-55。同時,計數器被復位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數器又開始計數直到0,如果門周期仍未結束,將重復這一過程。斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力。這是通過改變計數器對溫度每增加一度所需計數

16、的的值來實現的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數器的值和每一度的計數值。DS1820部對此計算的結果可提供0.5的分辨力。溫度以16bit帶符號位擴展的二進制補碼形式讀出,表1給出了溫度值和輸出數據的關系。數據通過單線接口以串行方式傳輸。DS1820測溫圍-55+125,以0.5遞增。如用于華氏溫度,必須要用一個轉換因子查找表。意DS1820溫度表示值為1/2LSB。最高有效(符號)位被復制充滿存儲器中兩字節溫度寄存器的高MSB位,由這種“符號位擴展”產生出了示于表1的16bit溫度讀數。可用下述方法獲得更高的分辨力。首先,讀取溫度值,將0.5位(LSB)從讀取的值中截

17、去,這個值叫做TEMP_READ。然后讀取計數器中剩余的值,這個值是門周期結束后保留下來的值(COUNT_REMAIN)。最后,我們用到在這個溫度下每度的計數值(COUNT_PER_C)。用戶可以用下面的公式計算實際溫度值:TEMPEATURE=TEMP_READ-0.25=(COUNT_PER_C-COUNT_REMAIN)/COUNT_PER_CDS18B20的使用:CPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數據操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協議。如主機控制DS18B20完成溫度轉換這一過程,根據D

18、S18B20的通訊協議,須經三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。 DS18B20常用控制命令,如表4-1所示。表1 DS18B20控制命令表指 令 約定代碼 操 作 說 明 溫度轉換 44H 啟動DS18B20進行溫度轉換 讀暫存器 BEH 讀暫存器9個字節容 寫暫存器 4EH 將數據寫入暫存器的TH、TL字節 復制暫存器48H 把暫存器的TH、TL字節寫到E2RAM中 重新調E2RAMB8H 把E2RAM中的TH、TL字節寫到暫存器TH字節 讀電源供電方式B4H 啟動DS18B20發送

19、電源供電方式的信號給主CPU 五、硬件設計(一)硬件電路設計系統設計包括硬件系統、軟件系統兩部分組成,系統硬件電路如圖5-1所示。硬件系統設計由電源、復位、按鍵、傳感器接口、報警驅動、顯示等部分組成。它們可以分成三類:1)電源、復位:復位、按鍵部分2)輸入輸出:按鍵、顯示部分3)驅動:傳感器接口、報警驅動部分圖7 系統硬件原理圖(1)(二)電源和復位電路設計系統采用交流供電,系統經過外接12V交流變壓器,將市電變成12V交流電。系統經過全波整流將交流電變成直流電,一部分整流后直流電通過直流穩壓芯片7812變成平滑的12V直流電,提供給報警器接口。另一部分整流后直流電通過直流穩壓芯片7805變成

20、平滑的直流電,提供給系統其他部分。單片機常見的復位電路有:上電復位、手動復位。本設計采用上電復位。圖7 系統軟件原理流程圖(2)(三) 輸入、輸出部分設計輸入、輸出部分是單片機的信息傳輸通道,本部分實現按鍵的讀取(輸入)、溫度值的顯示(輸出)。傳統的按鍵設計,由電阻和按鍵組成,電阻的一端接電源,電阻的另一端接按鍵和單片機引腳。當按鍵按下時,單片機引腳為低電平;當按鍵放開時,單片機引腳為高電平。本系統在進行輸入部分在設計時利用了ATmega16單片機的部上拉電阻,直接將按鍵連接到引腳,節省了4個電阻。顯示部分設計由8個共陽級數碼管和8個三極管組成,采用動態顯示方法實現數字顯示。8個數碼管的數字腳

21、并接到單片機PA端口,確定數碼管的顯示容;數碼管公共端分別接三極管發射極,確定在某一時刻,那個數碼管顯示。8個三極管集電極電源,三極管基極接極接單片機PC端口,當某PC端口為高電平時,對應數碼管被選中,數字腳顯示數字。(四)驅動部分設計傳感器接口按照18b20的要求,接電源和地后,數據引腳通過上拉電阻接單片機即可。報警器采用電平驅動,具體報警設備可以外接,也可用蜂鳴器。此外還采用發光二極管、小燈泡等發光設備進行報警提示。外接報警設備通過三極管驅動繼電器完成六、軟件設計(一)顯示部分設計1、數碼管的外觀圖8數碼管的外觀圖9 5011系列數碼管的引腳排列一個“8”字型的顯示模塊用“a、b、c、d、

22、e、f、g、dp” 8 個發光二極管組合而成。每個發光二極管稱為一字段。其部電原理圖如圖63、64,分別是共陰極和共陽極LED數碼管兩種結構形式。圖10共陰極數碼管 圖11共陽極數碼管以共陰極數碼管為例,由圖中可以看出:如果要點亮數碼管的某一段,只需將該段加上高電平,然后使數碼管的公共端3、8腳為低電平,那么該段就會點亮。2、單個數碼管的電路連接 單個數碼管的電路連接可以直接同AVR單片機的某個口連接。在圖65中,PC0接A段對應引腳,PC1接B段對應引腳, PC7接dp段對應引腳,采用的是共陽極數碼管。圖12單個數碼管的電路連接2、單數字的顯示單數字的顯示通過PC端口輸出數字對應字段的編碼,

23、在數碼管上就可顯示對應數字。程序如下:#include#includeunsigned char seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,i;int main()DDRC=0xff;PORTC=0xff;while(1)for(i=0;i=9;i+)PORTC=segi;_delay_ms(2000.0);程序的關鍵是字形編碼的書寫,不同的字形編碼會得到不同的符號。在字形編碼眾多時,字形編碼會占用大量的存空間,字形編碼這類數據的特點是:我們只需要讀取它們的容,而不會修改其容,即只進行讀操作不進行寫操作。這種特點的數據,可以看成

24、常數,對于常數可以保存在程序區。3、多數字動態顯示 單個數碼管僅顯示一個數字,多數情況往往需要顯示多個數字。多個數字的顯示多采用動態顯示方法。4數碼管動態顯示原理圖,如圖6-6所示。 圖13 四數碼管動態顯示原理圖從多數字動態顯示電路可以看出:所有的數碼管的一樣腳連在一起,再接到PC端口。各數碼管的公共端分別接在PD03。4、基本多數字動態程序 在多數字動態顯示電路下,要顯示數字的字形數據由PC端口送出,此字形數據由那個數碼管顯示,只要那個數碼管的公共端同其他不同,對共陽極那個數碼管的公共端為高電平,其他為低電平。程序如下:#include#include#includeconst prog_

25、uchar seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98;unsigned char i;int main()DDRC=0xff;PORTC=0xff;DDRD=0xff;PORTD=0xff;while(1)PORTC=pgm_read_byte(seg+0);PORTD=0xf8;_delay_ms(50.0);PORTC=pgm_read_byte(seg+1);PORTD=0xf4;_delay_ms(50.0);PORTC=pgm_read_byte(seg+2);PORTD=0xf2;_delay_ms(50.0);PO

26、RTC=pgm_read_byte(seg+3);PORTD=0xf1;_delay_ms(50.0);這個基本多數字動態程序不夠靈活,只能顯示提前設定的數字,通過帶緩沖區的多數字動態程序可以靈活實現數字顯示。5、帶緩沖區的多數字動態程序 帶緩沖區的多數字動態程序是將顯示部分提出,單獨寫成子程序,在調用子程序前,將要顯示數據放入顯示緩存區,再調用顯示子程序。#include#include#includeconst prog_uchar seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98;unsigned char buf=4,7,9,8

27、,i;void dsp();int main()DDRC=0xff;PORTC=0xff;DDRD=0xff;PORTD=0xff;while(1)dsp();void dsp()PORTC=pgm_read_byte(seg+buf0);PORTD=0xf8;_delay_ms(50.0);PORTC=pgm_read_byte(seg+buf1);PORTD=0xf4;_delay_ms(50.0);PORTC=pgm_read_byte(seg+buf2);PORTD=0xf2;_delay_ms(50.0);PORTC=pgm_read_byte(seg+buf3);PORTD=0xf

28、1;_delay_ms(50.0);數組buf為顯示緩存區,在其中放入不同數值,執行顯示子程序dsp后,會顯示對應數字。(二)按鍵檢測設計按鍵是基本方便的輸入手段,可通過按鍵開關控制發光二極管的亮滅來,說明AVR單片機的端口檢測外部信號的功能和方法。1、單按鍵的電路典型的單按鍵的電路如圖67所示,在按鍵沒有按下時,PA5引腳信號為高電平,當按鍵按下時PA5引腳信號為低電平。通過檢測引腳的電平會方便的知道按鍵的狀態。圖14 按鍵電路我們日常所說的按鍵,外觀如圖68所示,有四個腳。按鍵兩側的腳是連通的,之所以做成四個腳,是為了安裝牢固。圖15 按鍵開關2、按鍵的響應過程理想的按鍵的閉合和斷開時,接

29、觸點的電壓應該立即變高或者變低,但是由于機械觸點的彈性以與按鍵按動時電壓突變等原因,在觸點閉合或斷開的瞬間會出現電壓抖動現象,如圖69所示。在發生抖動的時間一般在5-10ms。一次按鍵處理過程如下:當按鍵按下之后,相應的按鍵接觸點的電壓以高低電平的方式輸入到單片機的I/O口。按鍵的閉合與斷開是有一定時間的,一般為0.1-1S。而AVR單片機的機器周期一般為1us甚至更短,在0.1-1S的時間段,程序會檢測很多次按鍵的輸入電平,這樣單片機可能會認為按鍵被按下了多次,從而出現誤判。圖17 按鍵閉合斷開時的電壓波動示意圖3、按鍵去抖動的方法和原理為了去除按鍵的抖動,保證單片機對按鍵的一次輸入只響應一

30、次,可以采用硬件和軟件兩種方法:硬件電路去抖動是在外圍電路中加入去抖動電路(如R-S觸發器);軟件去抖動是在程序中加入延時程序以跳過抖動時間,等待信號穩定后再次判斷按鍵的輸入電平,如果信號電平保持不變,則可以確認一次按鍵按下。硬件去抖動電路的原理用R-S觸發器形成去抖電路是單片機外圍電路設計中常用的方法,這種方法可以減少單片機軟件對按鍵動作的延時和計算。典型的硬件去抖動電路如圖610,74LS02構成一個R-S觸發器電路實現按鍵的消抖電路。圖610 74LS02實現的硬件消抖電路軟件消抖的原理和實現軟件消抖的基本原理是在軟件中對按鍵進行兩次檢測確認,記載第一次檢測到按鍵按下后,間隔10ms左右

31、再次檢測按鍵是否按下,只有在兩次都檢測到按鍵按下時才最終確認有鍵按下,這樣就避開了按鍵的抖動時間,從而消除了抖動的影響。 在按鍵接口軟件的設計中,除了要考慮按鍵消抖外,一般還要判別按鍵的釋放,只有檢測到按鍵釋放后,才能確定為一次完整的按鍵動作。通用的案件檢測程序如下:Keyscan()if(PINA&0X20)=0) /判斷按鍵是否按下,等于0表示按鍵按下delayms(20); /延時20ms。避開按鍵抖動時間if(PINA&0X20)=0) /再次判斷按鍵是否按下, /按鍵按下的處理程序While(PINA&0X20)=0); /判斷按鍵是否放開,不等于表示按鍵釋放,退出處理函數(三)1w

32、ire 是一種通訊協議實現對18b20的操作實質是1wire 是一種通訊協議。1wire 是一種通訊協議,它只有一個信號線,信號線即可以進行輸入也可以進行輸出操作。在此基礎上進行移植,在實際應用過程中意義重大。而以往使用AVR進行引腳操作時,一個引腳要么輸入、要么輸出。在1wire下,一個引腳既要實現輸入操作、也要實現輸出操作,因而需要對DDR操作進行深入的了解,認識DDR操作對引腳電平的影響。1wire通訊協議基本基本操作包括復位、寫數據位、讀位數據。8個位操作形成字節數據的讀寫,所有操作都在復位后才可以開始。1、復位時序對DS18B20進行所有操作之前,首先要將它復位。復位時序圖6-11如

33、下:圖18 復位時序圖 (1)主機將信號線置為低電平,時間為480960S。 (2)主機將信號線置為高電平,時間為1560S。 (3)從機(DS18B20)發出60240S 的低電平作為應答信號,后釋放信號線,信號線恢復為高電平。主機收到此信號后,才能認定復位操作完成,可以對DS18820進行其它操作。2、對DS18B20操作的宏復位的實現代碼為實現代碼的可移植性,實現對DS18B20的操作代碼前,定義如下宏。#define OW_PIN PD0#define OW_IN PIND#define OW_OUT PORTD#define OW_DDR DDRD#define OW_GET_IN(

34、) ( OW_IN & (1OW_PIN)#define OW_OUT_LOW() ( OW_OUT &= (1 OW_PIN) )#define OW_OUT_HIGH() ( OW_OUT |= (1 OW_PIN) )#define OW_DIR_IN() ( OW_DDR &= (1 OW_PIN ) )#define OW_DIR_OUT() ( OW_DDR |= (1 OW_PIN) )3、復位的實現代碼unsigned char ow_reset(void) unsigned char err; OW_OUT_LOW(); OW_DIR_OUT(); /主機將信號線置為低電平 _delay_us(490); /延時480us OW_DIR_IN(); /主機將信號線置為高電平,因為有上拉電阻 _delay_us(66); /延時60userr =OW_GET_IN(

溫馨提示

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

評論

0/150

提交評論