版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢 業(yè) 設 計題 目:基于DS18B20的數(shù)字溫度計的設計與實現(xiàn)學生姓名:屈志喬學 號:系 (院):電子與信息工程系專 業(yè):電子信息科學與技術專業(yè)班 級:2011級 指導教師姓名及職稱:起止時間:年 月 年 月目 錄1 緒論11.1 溫度計的介紹11.2選題的目的和意義、11.2.1選題的目的11.2.2選題的意義22 數(shù)字溫度計的設計方案22.1 設計方案的確立及論證22.1.1 溫度傳感器DS18B20的選擇22.1.2 單片機STC89C52的選擇33 系統(tǒng)硬件電路的設計33.1 主控制器33.1.1 STC89C52的介紹43.1.2 DS18B20的介紹103.1.3 DS18B20
2、使用的注意事項173.2 DS18B20與單片機接口電路的設計173.3 顯示電路的設計183.3.1方案一:數(shù)碼管顯示183.3.2方案二:液晶顯示193.3.3 顯示電路224 系統(tǒng)程序的設計224.1 系統(tǒng)設計內容224.1.1主程序234.1.2 讀出溫度子程序234.1.3 溫度轉換命令子程序244.1.4 計算溫度子程序244.1.5 顯示數(shù)據刷新子程序254.1.6 溫度數(shù)據的計算處理方法264.2 匯編源程序264.2.1 DS18B20的各條ROM命令265 調試及性能分析285.1 系統(tǒng)的調試285.2 性能分析28致 謝30參考文獻31附錄32基于DS18B20的數(shù)字溫度
3、計的設計與實現(xiàn)自動化2008級1班:羅文釗指導老師:彭昕昀 講師1 緒論1.1 溫度計的介紹溫度計是測溫儀器的總稱。根據所用測溫物質的不同和測溫范圍的不同,有煤油溫度計、酒精溫度計、水銀溫度計、氣體溫度計、電阻溫度計、溫差電偶溫度計、輻射溫度計和光測溫度計等。隨著科學技術的發(fā)展和現(xiàn)代工業(yè)技術的需要,測溫技術也不斷地改進和提高。由于測溫范圍越來越廣,根據不同的要求,又制造出不同需要的測溫儀器。下面介紹幾種。氣體溫度計多用氫氣和氦氣作測溫物質,因為氫氣和氦氣的液化溫度很低,接近于絕對零度,故它的測溫范圍很廣。這種溫度計精確度很高,多用于精密測量。電阻溫度計分為金屬電阻溫度計和半導體電阻溫度計,都是
4、根據電阻值隨溫度的變化這一特性制成的。金屬溫度計主要有用鉑、金、銅、鎳等純金屬的及銠鐵、磷青銅合金的;半導體溫度計主要用碳、鍺等。電阻溫度計使用方便可靠,已廣泛應用。它的測量范圍為-260至600左右。溫差電偶溫度計是一種工業(yè)上廣泛應用的測溫儀器。利用溫差電現(xiàn)象制成。兩種不同的金屬絲焊接在一起形成工作端,另兩端與測量儀表連接,形成電路。把工作端放在被測溫度處,工作端與自由端溫度不同時,就會出現(xiàn)電動勢,因而有電流通過回路。通過電學量的測量,利用已知處的溫度,就可以測定另一處的溫度。這種溫度計多用銅康銅、鐵康銅、鎳銘康銅、金鉆銅、鉑銠等組成。它適用于溫差較大的兩種物質之間,多用于高溫和低濁測量。有
5、的溫差電偶能測量高達3000的高溫。有的能測接近絕對零度的低溫。1.2選題的目的和意義1.2.1選題的目的 利用單片機STC89C52和溫度傳感器DS18B20設計一個設計溫度計,能夠測量-55 +125之間的溫度值,用LCD液晶屏直接顯示,誤差在±0.5以內,同時要求使用的元器件數(shù)目最少。通過這次設計能夠更加了解數(shù)字溫度計的工作原理和熟悉單片機的發(fā)展和應用,鞏固所學的知識。1.2.2選題的意義 單片機是隨著超大規(guī)模集成電路技術的發(fā)展而誕生的,由于它具有體積小、功能強、性價比高等特點,所以廣泛應用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機器人、工業(yè)控制等諸多領域,使產品小型化、智能
6、化,既提高了產品的功能和質量,又降低了成本,簡化了設計。本設計主要利用單片機和LCD液晶顯示屏設計一個數(shù)字顯示的溫度計。選題的意義在于通過這次設計可以將平時在課堂上學到的關于單片機的知識應用與實踐中,而且更加深入的認識到單片機在現(xiàn)代生活和生產中的重要性。2 數(shù)字溫度計的設計方案2.1 設計方案的確立及論證功能要求:數(shù)字式溫度計測溫范圍在-55+125,誤差在±0.5以內,采用LCD液晶屏顯示,直接讀取測溫值。方案論證:2.1.1 溫度傳感器DS18B20的選擇方案一:水銀溫度計 在生活中我們經常看到水銀溫度計,它只能作為就地監(jiān)督的儀表,用它來測量溫度時,由于讀數(shù)時用眼睛觀察,主觀因素
7、大,容易造成誤差大,而且不同是水銀溫度計量程不同,在讀數(shù)前需要看清它的最小分度值,還有它有熱慣性,需要等到溫度計達到穩(wěn)定狀態(tài)后才能讀數(shù),比較麻煩,并且水銀有毒,不小心打破后接觸到水銀,對人體傷害大,所以危險性較高。方案二:傳統(tǒng)測溫元件 傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持,其缺點有:硬件電路復雜;軟件調試復雜;制作成本高。方案三:DS18B20傳感器測溫 本設計采用美國DALLAS半導體公司繼DS1820之后推出的一種改進型智能溫度傳感器DS18B20作為檢測元件 DS18B20可以直接讀出被測溫度值,而且采用三線制與
8、單片機相連,減少了外部的硬件電路,具有成本低和易使用的特點。2.1.2 單片機STC89C52的選擇 STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器,內置看門狗定時器,而且STC89C52可降到0Hz靜態(tài)邏輯操作,支持兩種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內存被保存,振蕩器被凍結,單片機一切工作停止,直到一個中斷或硬件復位為止。而且STC89C52的工作電壓為3.3V,因此可以用來開發(fā)三節(jié)5號電池供電的便攜式產品。和AT89S52單片機的對比: STC89C52RC
9、單片機: 8K字節(jié)程序存儲空間; 512字節(jié)數(shù)據存儲空間; 內帶4K字節(jié)EEPROM存儲空間; 可直接使用串口下載。 AT89S52單片機: 8K字節(jié)程序存儲空間; 256字節(jié)數(shù)據存儲空間; 沒有內帶EEPROM存儲空間。因此選用STC89C52更適合。按照系統(tǒng)設計功能的要求,確定系統(tǒng)由3個模塊組成;主控制器、測溫電路和顯示電路。 數(shù)字溫度計總體設計電路結構框圖如2.1圖所示:DS18B20STC89C52主控制器顯示電路掃描驅動 圖2.1 數(shù)字溫度計總體結構框圖3 系統(tǒng)硬件電路的設計3.1 主控制器單片機STC89C52具有高速、低功耗、超強抗干擾的特點,指令代碼完全兼容傳統(tǒng)8051單片機,
10、12時鐘機器周期和6時鐘機器周期可以任意選擇。3.1.1 STC89C52的介紹STC89C52簡介:STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM-Flash Programable and Erasable Read Only Memory)的低電壓,高性能COMOS8的微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。實物如3.1圖所示:STC89C52引腳及特點:STC89C52的引腳如圖3.2所示: 圖3.2 芯片引腳功能1. STC89C52引腳功能說明Vcc(40引腳):電源電壓。V
11、ss(20引腳):接地。P0端(P0.0P0.7,3932引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入,在訪問外部程序和數(shù)據存儲器時,P0口也可以提供低8位地址和8位數(shù)據的復用總線。此時,P0口內部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。 P1端口(P1.0P1.7,18引腳):P1口是一個帶內部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅動4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這是可用作輸
12、入口。P1口作輸入口使用時,因為有內部上拉電阻,那些被外部拉低的引腳會輸出一個電流。 此外,P1.0和P1.1還可以作為定時器/計數(shù)器2的外部技術輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如表3.1所示:表3.1 P1.0和P1.1引腳復用功能 P2端口(P2.0P2.7,2128引腳);P2口是一個帶內部上拉電阻的8位雙向I/O口.P2的輸出緩沖器可以驅動4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電平,這時可用作輸入口。P2作為輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。 在訪問外部程序存儲器和16位地址
13、的外部數(shù)據存儲器(如執(zhí)行“MOVXDPTR”指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據存儲器(如執(zhí)行“MOVXR1”指令)時,P2口引腳上的內容,在整個訪問期間不會改變。 在對Flash ROM編程和程序校驗期間,P2也接收高位地址和一些控制信號。 P3端口(P3.0P3.7,1017引腳):P3是一個帶內部上拉電阻的8位雙向I/O口。P3的輸出緩沖器可驅動4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流。 在對Flash ROM編程或程序校驗時,P3還接收一些控制
14、信號。 P3口除作為一般I/O口外,還有其他一些復用功能,如表3.2所示:表3.2 P3口引腳復用功能RST(9引腳):復位輸入。當輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機的復位初始化操作??撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE/PROG (30引腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳(PROG )也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外
15、部定時器或時鐘使用。然而,特別強調,在每次訪問外部數(shù)據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址位8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOV指令時有效。否則,ALE將被微弱拉高。這個ALE使能標志位(地址位8EH的SFR的第0位)的設置對微控制器在外部執(zhí)行模式下無效。 PSEN(29引腳):外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89C51RC從外部程序存儲器執(zhí)行外部代碼時,PSEN 在每個機器周期被激活兩次,而訪問外部數(shù)據存儲器時,PSEN將不被激活。EA/VPP(31引腳):訪問外部程序存儲器控制信號。
16、為使能從0000H到FFFFH的外部程序存儲器讀取指令, EA必須接GND。注意加密方式1時,EA將內部鎖定為RESET。為了執(zhí)行內部程序指令,EA應該接VCC。在Flash編程期間,EA也接收12伏VPP電壓。XTAL1(19引腳):振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。2.特殊功能寄存器 STC89C52除了有定時器/計數(shù)器0和定時器/計數(shù)器1之外,還增加了一個定時器/計數(shù)器2.定時器/計數(shù)器2的控制與狀態(tài)位位于T2CON,如表3.3所示:表3.3 特殊功能寄存器T2CON的描述T2CON 地址=0C8H 可位尋址 復位值=00H定時
17、器2是一個16位定時/計數(shù)器。通過設置特殊功能寄存器T2CON中的C/T2位,可將其作為定時器或計數(shù)器(特殊功能寄存器T2CON的功能說明如表3.4所示)。表3.4 定時/計數(shù)器2控制器寄存器各位功能說明 定時器2有3種操作模式:捕獲、自動重新裝載(遞增或遞減計數(shù))和波特率發(fā)生器,這3種模式由T2CON中的位進行選擇,如表3.5所示: 表3.5 定時器2工作方式3.STC89C52單片機的主要特征(1)增強型8051單片機,6時鐘/機器周期和12時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。(2)工作電壓:5.5V3.3V(5V單片機)/3.8V2.0V(3V單片機)。(3)工作頻
18、率范圍:040MHz,相當于普通8051的080MHz,實際工作頻率可達48MHz。(4)用戶應用程序空間為8K字節(jié)。(5)片上幾成512字節(jié)RAM。(6)通用I/O口(32個),復位后為:P1/P2/P3/P4是準雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。(7)ISP(在系統(tǒng)可編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。(8)具有EEPROM功能。(9)具有看門狗功能。(10)共有3個16位定時器/計數(shù)器。即定時器T0、T1、T
19、2。(11)外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒。(12)通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART。(13)工作溫度范圍;-40+85(工業(yè)級)/075(商業(yè)級)。(14)PDIP封裝。4. STC89C52單片機的工作模式(1)掉電模式:典型功耗0.1A,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序。(2)空閑模式:典型功耗2mA。(3)正常工作模式:典型功耗4mA7mA。(4)掉電模式可由外部中斷喚醒,適用于水表、氣表等電池供電系統(tǒng)及便攜設備。3.1.2 DS18B20的介紹1.DS18B20簡介Dalla
20、s的最新單線數(shù)字溫度傳感器DS18B20簡稱新的“一線器件”體積更小、使用電壓更寬、更經濟。Dallas半導體公司的數(shù)字化溫度傳感器DS18b20是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨特而且經濟的特點,使用戶可輕松地組建傳感器網絡,為測量系統(tǒng)的構建引入全新概念。DS18b20、DS1822“一線總線”數(shù)字化溫度傳感器同DS1820一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為-55+125,在-10+85范圍內,精度為±0.5。DS1822的精度較差為±2?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)
21、場溫度測量,如:環(huán)境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3V5.5V的電壓范圍,使系統(tǒng)設計更靈活、方便。而且新一代產品更便宜,體積更小。其實物圖如3.3圖所示:圖3.3 DS18B20的實物管腳分布圖2.DS18B20引腳及特點 (1)引腳功能說明GND是地址信號;DQ是數(shù)據輸入/輸出引腳,開漏單總線接口引腳,當被用在寄生電源下,也可以向器件提供電源;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。(2)DS18B20功能特點采用單總線技術,與單片機通信只需要一根I/O線,在一根線上可以掛接多個DS18B20。每只DS18B20具有一個獨有的,不可
22、修改的64位序列號,根據序列號訪問地應的器件。低壓供電,電源范圍從3.05.5V,可以本地供電,也可以直接從數(shù)據線竊取電源(寄生電源方式)。測溫范圍為-55+125,在-10+85范圍內誤差為±0.5??删庉嫈?shù)據為912位,轉換12位溫度時間為750ms(最大)。用戶可自設定報警上下限溫度。報警搜索命令可識別和尋址超過程序限定溫度(溫度報警條件)的器件。DS18B20的分辨率由用戶通過EEPROM設置為912位。DS18B20可將檢測到溫度值直接轉化為數(shù)字量,并通過串行通信的方式與主控制器進行數(shù)據通信。負電壓特性,電源極性接反時,溫度計不會因為發(fā)熱而燒毀,只是不能正常工作。3.DS1
23、8B20的內部結構(1)DS18B20內部結構及功能 DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內部結構如3.5圖所示,主要包括:寄生電源,溫度傳感器,64位ROM和單總線接口,存放中間數(shù)據的高速暫存器RAM,用于存儲用戶設定溫度上下限值的TH和TL觸發(fā)器,存儲與控制邏輯,8位循環(huán)冗余校驗碼(CRC)發(fā)生器等7部分。如圖3.4所示:圖3.4 DS18B20內部結構(2)64位激光ROM 每一個DS18B20包括一個唯一個64位長的ROM編碼。64位ROM的位結構如下圖3.5所示。開始的8位是單線產品系列編碼(DS1820編碼是10h);接著的48位是每個器件唯一的系列號;最后的8
24、位是開始56位CRC檢驗碼。64位ROM和ROM操作控制部分允許DS18B20作為一個單線器件工作并遵循“單線總線系統(tǒng)”一節(jié)中所詳述的單線協(xié)議。知道ROM操作協(xié)議被滿足,DS18B20控制部分的功能是不可訪問的。單線總線主機必須首先操作五種ROM操作命令之一:1、Read ROM(讀ROM),2、Match ROM(匹配(ROM),3、Search ROM(搜索ROM),4、Skip ROM(跳過ROM),或5、Alarm Search(告警搜索)。在成功地執(zhí)行了ROM操作序列之后DS18B20特定的功能便可訪問,然后總線上主機可提供六個存儲器和控制功能命令之一。8位檢驗CRC 48位序列號
25、8位工廠代碼(10H) MSB LSB MSB LSB MSB LSB圖3.5 64位ROM結構框圖(3)運用報警信號 在DS18B20完成溫度變換之后,溫度值與貯存在TH和TL內的觸發(fā)值相比較。因為這些寄存器僅僅是8位,所以0.5位在比較時被忽略。TH或TL的最高比較位直接對應于16位溫度寄存器的符號位。如果溫度測量的結果高于TH或低于TL,那么器件內告警標志將置位。每次溫度測量更新此標志。只要告警標志置位,DS18B20將對告警搜索命令做出響應。這允許并聯(lián)接許多DS18B20,同時進行溫度測量。如果某處溫度超過極限,那么可以識別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。(4)C
26、RC產生 DS18B20有一存貯在64位ROM的最高有效字節(jié)內的8位CRC??偩€上的主機可以根據64位ROM的前56位計算機CRC的值并把它與存貯在DS18B20內的值進行比較以決定ROM的數(shù)據是否已被主機正確地接收。CRC的等效多項式函數(shù)為:CRC=X8+X5+X4+1 (公式3.1) DS18B20也利用與上述相同的多項式函數(shù)產生一個8位CRC值并把此值提供給總線的主機以確認數(shù)據字節(jié)的傳送。在使用CRC來確認數(shù)據傳送的每一種情況中,總線主機必須使用上面給出的多項式函數(shù)計算CRC的值并把計算所得的值或者與存貯在DS18B20的64位ROM部分中的8位CRC值(ROM讀數(shù)),或者與DS18B2
27、0中計算得到的8位CRC值(在讀暫存存貯器中時,它作為第九個字節(jié)被讀出),進行比較。CRC值的比較和是否繼續(xù)操作都由總線主機來決定。當存貯在DS18B20內或由DS18B20計算得到的CRC值與總線主機產生的值不相符合時,在DS18B20內沒有電路來阻住命令序列的繼續(xù)執(zhí)行。(5)存貯器 DS18B20的存貯器由一個高速暫存(便箋式)RAM和一個非易失性、電可擦除EEPROM組成,后者存貯高溫度和低溫度觸發(fā)器TH和TL。暫存存貯器有助于在單線通信時確保數(shù)據的完整性。數(shù)據首先寫入暫存存貯器,在那里它可以被讀回。當數(shù)據被校驗之后,復制暫存存貯器的命令把數(shù)據傳送到非易失性EEPROM。這一過程確保了更
28、改存貯器時數(shù)據的完整性。高速暫存RAM的結構為9字節(jié)的存儲器,結構如3.6圖所示。前2字節(jié)包含測得的溫度信息。第3和第4字節(jié)是TH和TL的拷貝,是易失的,每次上電復位時刷新。第5字節(jié)為配置寄存器,其內容用于確定溫度值的數(shù)字轉換分辨率,DS18B20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數(shù)值。該字節(jié)個位的定義如3.7圖所示,其中,低5位一直為1;TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式,在DS18B20出廠時,該位被設置為0,用戶不要去改動;R1和R0決定溫度轉換的精度位數(shù),即用來設置分辨率,其定義方法見表3.6:表3.6 DS18B20分辨率R1 R0 分辨率
29、/位 溫度最大轉換時間/ms0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750表3.6 DS18B20分辨率的定義和規(guī)定 由表3.6可見,DS18B20溫度轉換的時間較長,而且設定的分辨率越高,所需要的溫度數(shù)據轉換時間就越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。 圖3.6 高速暫存RAM結構圖 高速暫存的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)是前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據,從而保證通信數(shù)據的正確性。如表3.7所示:表3.7 配置寄存器位定義當DS18B20接受到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符
30、號擴張的二進制補碼形式存儲在暫存RAM的第1、2字節(jié)中。 單片機可以通過單線接口讀出數(shù)據。讀數(shù)據是,低位在先,高位在后,數(shù)據格式以0.0625/LSB形式表示。溫度值格式如圖3.7所示:低字節(jié) 高字節(jié) 圖3.7 溫度數(shù)據值格式 圖中,S表示符號位。當S=0時,表示測得的溫度值為正值,可以直接將二進制轉換為十進制;當S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制值。表3.8是部分溫度值對應的二進制溫度表示數(shù)據。表3.8 DS18B20溫度與表示值對應表 DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內容作比較,若TTH或TTL,則將該器件內的報警標志
31、位置位,并對主機發(fā)出的報警搜索命令做出響應。因此,可用多個DS18B20同時測得溫度并進行報警搜索。 在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機根據ROM的前56位來計算CRC值,并與存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據是否正確。4.DS18B20的測溫原理 如圖3.8所示,圖中低溫度系數(shù)振蕩器的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)振蕩器隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數(shù)器2的脈沖輸入。圖3.8 DS18B20測溫原理圖 圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系
32、數(shù)振蕩器產生的時鐘脈沖進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55所對應的一個基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器和溫度寄存器被預置在-55所對應的一個基數(shù)值。 減法計數(shù)器1對低溫度系數(shù)振蕩器產生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預置值將重新被裝入,并重新開始對低溫度系數(shù)振蕩器產生的脈沖信號進行計數(shù)。如此循環(huán),知道減法計數(shù)器2計數(shù)到0時,停止溫度計數(shù)器值的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。圖3.9中的斜率累加器用于補償和修正測溫過程的非線形性,直到溫度寄存器達到被測
33、溫度值。另外,DS18B20單線通信功能是分時完成的,有嚴格的時隙概念,因此讀/寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據。3.1.3 DS18B20使用的注意事項DS1820雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應用中也應注意以下幾方面的問題: (1)較小的硬件開銷需要相對復雜的軟件進行補償,由于DS1820與微處理器間采用串行數(shù)據傳送,因此,在對DS1820進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在使用PL/M、C等高級語言進行系統(tǒng)程
34、序設計時,對DS1820操作部分最好采用匯編語言實現(xiàn)。 (2)在DS1820的有關資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認為可以掛任意多個DS1820,在實際應用中并非如此。當單總線上所掛DS1820超過8個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統(tǒng)設計時要加以注意。 (3)連接DS1820的總線電纜是有長度限制的。試驗中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據將發(fā)生錯誤。當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m,當采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形
35、產生畸變造成的。因此,在用DS1820進行長距離測溫系統(tǒng)設計時要充分考慮總線分布電容和阻抗匹配問題。 (4)在DS1820測溫程序設計中,向DS1820發(fā)出溫度轉換命令后,程序總要等待DS1820的返回信號,一旦某個DS1820接觸不好或斷線,當程序讀該DS1820時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS1820硬件連接和軟件設計時也要給予一定的重視。3.2 DS18B20與單片機接口電路的設計 DS18B20可以采用兩種供電方式:一種是采用電源供電方式,此時DS18B20的第1引腳接地,第2引腳作為信號線,第3引腳接電源;另外一種是寄生電源供電方式,如圖3.9所示。單片機端口接單
36、線總線,為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管來完成對總線的上位。圖3.9 DS18B20采用寄生電源的電路圖當DS18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有強的上拉,上拉開啟時間最長為500ms。采用寄生電源供電方式時,VDD和GND端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。3.3 顯示電路的設計3.3.1方案一:數(shù)碼管顯示數(shù)碼管是一種半導體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等
37、等數(shù)碼管。按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。LED數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成
38、“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃和公共電極。如圖3.10所示:圖3.10 八段數(shù)碼管圖數(shù)碼管的動態(tài)顯示:數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮
39、。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。3.3.2方案二:液晶顯示1602LCD液晶簡介1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊,它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的
40、間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此,所以它不能顯示圖形。1602LCD是指顯示的內容為16×2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。1602LCD的特性(1)+5V電壓,對比度可調。(2)內含復位電路。(3)提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能。(4)有80字節(jié)顯示數(shù)據存儲器DDRAM。(5)內建有160個5×7點陣的字型的字符發(fā)生器CGROM。(6)8個可由用戶自定義的5×7的字符發(fā)生器CGROM。(7)字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線是
41、背光電源線VCC(15腳)和地線(16腳),如表3.9所示:表3.9 液晶1602引腳表1602液晶模塊內部的控制器共有11條控制指令,如下表3.10所示:表3.10 1602的控制指令 指令1:清顯示,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍
42、。指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。R/L,高向左,低向右。指令6:功能設置命令 DL:高電平時為8位總線,低電平時為4位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。(有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)指令7:字符發(fā)生器RAM地址設置,地址:字符地址*8+字符行數(shù)。(將一個字符分成5*8點陣,一次寫入一行,8行就組成一個字符)指令8:置顯示地址,第一行為:80H8FH,第二行為:C0HCFH。指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊
43、不能接收命令或者數(shù)據,如果為低電平表示不忙。指令10:寫數(shù)據。指令11:讀數(shù)據。3.3.3 顯示電路設計顯示電路如圖3.11所示:圖3.11 1602液晶接線圖液晶屏的軟件編程控制操作主要包含初始化,寫指令和寫數(shù)據三個部分。凡是寫到液晶屏內部,用來控制液晶屏顯示的內容都屬于指令。寫入到液晶屏后能直接顯示出來的結果就屬于數(shù)據。兩種方案相比較,硬件方面方案二明顯比方案一簡單,而且手工制作容易實現(xiàn),而且液晶顯示具有穩(wěn)定性,不容易出現(xiàn)硬件出錯。軟件方面,兩種方案的軟件設計都比較容易實現(xiàn)。綜上所述,方案二適合本設計,所以采用方案二。4 系統(tǒng)程序的設計4.1 系統(tǒng)設計內容系統(tǒng)程序主要包括主程序、讀出溫度子
44、程序、溫度轉換命令子程序、計算溫度子程序和顯示數(shù)據刷新子程序等。4.1.1主程序 主程序主要功能是負責溫度的實時顯示、讀出處理DS18B20的測量溫度值。溫度測量每1秒進行一次。主程序流程圖如圖4.1所示:開始調用顯示子程序是否到一秒是否初次上電讀出溫度值溫度計算處理顯示數(shù)據刷新初始化發(fā)出溫度轉換開始命令圖4.1 主程序流程圖4.1.2 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時須進行CRC校驗,校驗有錯時不進行溫度數(shù)據的改寫。讀出溫度子程序流程圖如圖4.2所示:圖4.2 讀出溫度子程序流程圖4.1.3 溫度轉換命令子程序溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,
45、當采用12位分辨率時,轉換時間約為750ms。在本程序設計中,采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如圖4.3所示:發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉換開始命令結束圖4.3 溫度轉換命令子程序流程圖4.1.4 計算溫度子程序 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定。計算溫度子程序流程圖如圖4.4所示:圖4.4 計算溫度子程序流程圖4.1.5 顯示數(shù)據刷新子程序顯示數(shù)據刷新子程序主要是對顯示緩沖器的顯示數(shù)據進行刷新操作,當最高數(shù)據顯示位為0時,將符號顯示位移入下一位。顯示數(shù)據刷新子程序流程圖如圖4.5所示:圖4.5 顯示
46、數(shù)據刷新子程序流程圖4.1.6 溫度數(shù)據的計算處理方法 從DS18B20讀取出的二進制值必須轉換成十進制值,才能用于字符的顯示。DS18B20的轉換精度為912位,為了提高精度采用12位。在采用12位轉換精度時,溫度寄存器里的值是以0.0625為步進的,即溫度值為寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。 通過觀察表4.1可以發(fā)現(xiàn),一個十進制與二進制間有很明顯的關系,就是把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個字節(jié)的二進制化為十進制后,就是溫度值的百、十、個位字節(jié),所以二進制值范圍是0F,轉換成十進制小數(shù)就是0.0625的倍數(shù)(015倍)。這樣需要4位的數(shù)
47、碼管來表示小數(shù)部分。實際應用不必這么高的精度,采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1。表4.1 二進制與十進制的近似對應關系表4.2 源程序4.2.1 DS18B20的各條ROM命令 (1)Read ROM33H。這條命令允許總線控制器獨到DS18B20的8位系列編碼、唯一的序列號和8位CRC碼。只要在總線上存在單只DS18B20時,才能使用該命令。如果總線上有不止一個從機,則當所有從機試圖同時傳送信號時就會發(fā)生數(shù)據沖突(漏極開路連在一起形成相“與”的效果)。(2)Match ROM55H.這是一條匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點總線上定位一只特定的DS18B20.
48、只有與64位ROM序列完全匹配的DS18B20才能響應隨后的存儲器操作.所有與64位ROM序列不匹配的從機都將等待復位脈沖.這條命令在總線上有單個或多個器件時都可以使用.(3)Skip ROM0CCH.這條命令允許總線控制器不用提供64位ROM編碼就使用存儲器操作命令,在單點總線情況下,可以節(jié)省時間.如果總線上不止一個從機,則在Skip ROM命令之后跟著發(fā)一條讀命令.由于多個從機同時傳送信號,所以總線上就會發(fā)生數(shù)據沖突(漏極開路下拉效果相當于相“與”)。(4)Search ROM0F0H。當一個系統(tǒng)初次啟動時,總線控制器可能并不知道單線總線上有多少個器件或它們的64位ROM編碼。搜索ROM命
49、令允許總線控制器用排除法識別總線上的所有從機的64位編碼。(5)Alarm Search0ECH。這條命令的流程與Search ROM相同。然而,只有在最近一次測溫后遇到符合報警條件的情況下,DS18B20才會響應這條命令。報警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報警狀態(tài)將一直保持,直到再一次測得的溫度值達不到報警條件。(6)Write Scratchpad4EH。這條命令向DS18B20的暫存器TH和TL中寫入數(shù)據??梢栽谌魏螘r刻發(fā)出復位命令來中止寫入。(7)Read Scratchapad0BEH。這條命令讀取暫存器的內容。讀取將從第一字節(jié)開始,一直進行下去,知道第
50、九字節(jié)(CRC)讀完。如果不想讀完所有字節(jié),則控制器可以在任何時間發(fā)出復位命令來中止讀取。(8)Copy Scratchpad48H。這條命令把暫存器的內容拷貝到DS18B20的E²PROM存儲器里,即把溫度報警觸發(fā)字節(jié)存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于把暫存器拷貝到E²PROM存儲器,則DS18B20就會輸出一個0;如果拷貝結束,則DS18B20輸出1。如果使用寄生電源,則總線控制器必須在這條命令發(fā)出后立即啟動強上拉,并最少保持10ms。(9)Convert T44H。這條命令啟動一次溫度轉換而無需其他數(shù)據。溫度轉換
51、命令被執(zhí)行后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于做時間轉換,則DS18B20將在總線上輸出0;如果溫度轉換成功,則輸出1。如果使用寄生電源,則總線控制器必須在發(fā)出這條命令后立即啟動強上拉,并保持500ms以上時間。(10)Recall E²0B8H。這條命令把報警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時自動執(zhí)行,這樣器件一上電暫存器里馬上就存在有效的數(shù)據了。若在這條命令發(fā)出之后發(fā)出讀數(shù)據隙,器件會輸出溫度轉換忙的標識:0表示忙;1表示完成。(11)Read Power Supply0B4H。若把這條命令發(fā)
52、給DS18B20后發(fā)出讀時間隙,器件會返回它的電源模式0:0表示寄生電源;1表示外部電源。5 調試及性能分析5.1 系統(tǒng)的調試硬件調試比較簡單,首先檢查電路的焊接是否正確,然后可以用萬用表測試或通電檢測。軟件程序使用keil2軟件進行編程與編譯,Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。下載軟件使用的是STC-ISP,STC-ISP是一款單片機下載編程燒錄軟件,是針對STC系列單片機而設計的,可下載到STC89系列和12C2052型單片機。如下圖5.1所示:圖
53、5.1 STC-ISP的操作界面圖5.2 性能分析 性能測試可用制作的溫度計和已有的成品溫度計同時進行測量比較。由于DS18B20的精度很高,所以誤差指標可以限制在±0.5以內。 另外,-55+125的測量范圍使得該溫度計完全適合一般的應用場合,其低壓供電特性可以做成電池供電的手持電子溫度計。 DS18B20溫度計還可以在高低溫報警、遠距離多點測溫控制等方面進行應用開發(fā),但在實際設計中應注意一下問題: DS18B20工作時電流高達1.5mA,總線上掛接點數(shù)較多且同時進行轉換時要考慮增加總線驅動,可用單片機端口在溫度轉換時導通一個MOSFET供電。 連接DS18B20的總線電纜是有長度限制的,因此在用DS18B20進行長距離測溫系統(tǒng)設計時要充分考慮總線分布電容和阻抗匹配等問題。 在DS18B20測溫程序設計中,向DS18B20發(fā)出溫度轉換命令后,程序總要等待DS18B20的返回信號。一旦某個DS18B20接觸不好或短線,當程序讀該DS18B20時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS18B20硬件連接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網環(huán)境下的軟件測試挑戰(zhàn)與解決方案-洞察分析
- 網狐平臺用戶行為分析-洞察分析
- 《細菌鑒定流程》課件
- 2024年05月江蘇2024南京銀行總行信息技術部校園招考筆試歷年參考題庫附帶答案詳解
- 兼職外部董事聘任合同(2篇)
- 2024年05月山東中國郵政儲蓄銀行山東省分行春季校園招考筆試歷年參考題庫附帶答案詳解
- 2024年杭州市口腔醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 《船舶檢驗要求》課件
- 2024年湘師大新版八年級歷史上冊階段測試試卷含答案
- 2025年人教五四新版七年級歷史下冊階段測試試卷
- 全國自然教育中長期發(fā)展規(guī)劃
- 中等職業(yè)學校2024年中等職業(yè)教育質量年度報告
- 2023-2024學年福建省廈門市思明區(qū)重點中學七年級(上)期末數(shù)學試卷(含解析)
- 《測量管理體系培訓》課件
- 手機繳費收款授權委托書
- 2024版幼兒園課件《兒童的一百種語言》
- DLT817-2014 立式水輪發(fā)電機檢修技術規(guī)程
- 普外科乳房手術臨床技術操作規(guī)范2023版
- 2023年酒店前臺經理個人工作述職報告
- 全國各城市的50年一遇雪壓和風壓
- 英語聽力技巧與應用(山東聯(lián)盟)智慧樹知到課后章節(jié)答案2023年下濱州學院
評論
0/150
提交評論