使用18b20采集溫度,輸入預設溫度,低于預設溫度,加熱。
摘要 單片機是20世紀中期發展起來的一種面向控制的大規模集成電路模塊,具有功能強、體積小、可靠性高、價格低廉等特點,在工業控制、數據采集、智能儀表、機電一體化、家用電器等領域得到了廣泛的應用,極大的提高了這些領域的技術水平和自動化程度。 51系列單片機是國內目前應用最廣泛的一種8位單片機之一,隨著嵌入式系統、片上系統等概念的提出和普遍接受及應用。51系列及其衍生單片機還會在繼后很長一段時間占據嵌入式系統產品的低端市場,因此,作為新世紀的大學生,在信息產業高速發展的今天,掌握單片機的基本結構、原理和使用是非常重要的。 本次課程設計的內容是使用AT89C51單片機最小系統設計溫度控制系統,系統以單片機為主控單元,主要用于對溫度信號的采集。 通過對水溫值得設定進行檢測和報警系統。
目錄一、設計任務 二、要求 三、實驗內容 3.1 基本設計思路 3.2溫度控制系統工作原理 3.3溫度采集原理 3.4 各模塊基本功能與設計方案選擇和論述 3.4.1 溫度采集方案的概述 3.4.2溫度顯示方案的概述 四、系統軟件設計 4.1 系統軟件設計思想 4.2實驗原理 4.2.1AT89C51的運用及介紹 4.2.2溫度采集模塊電路的設計 4.2.3基于74HC245的緩沖模塊 五、 原理電路圖 5.1 51單片機 5.2溫度采集部分 5.3 溫度顯示部分 5.4 加熱顯示裝置 六、仿真結果 課程設計總結 參考文獻 一、設計任務 利用單片機AT89C51控制DS18B20溫度傳感器對水溫的控制,當水溫低于預設的溫度值時系統開始加熱(點亮紅色發光二極管表示加熱狀態),當溫度達到預設溫度值時自動停止加熱。預設溫度值和實測溫度值分別由3位數碼管顯示,范圍為0-99攝氏度。 二、要求 (1)控制密閉容器內空氣溫度 (2)測溫和控溫范圍:0℃~99℃ (3)控溫精度±1℃ (4)掌握DS18B20的工作原理及使用方法。 三、實驗內容 3.1 基本設計思路 根據系統的要求,本次設計可分為溫度溫度采集模塊、溫度顯示 和溫度信號控制3個模塊。具體框架圖如圖1所示: 3.2溫度控制系統工作原理 溫度傳感器 DS18B20 從設備環境的不同位置采集溫度,51單片機獲取采集的溫度值,經處理后得到當前環境中一個比較穩定的溫度值,再根據當前設定的溫度上下限值,通過加熱和降溫對當前溫度進行調整。通過按鈕來控制,使電路中的溫度控制在預設值范圍內。當LED燈亮時表示該硬件系統正在進行加熱,當達到預設值則停止加熱。 3.3溫度采集原理 a溫度傳感器熱電偶測溫基本原理 將兩種不同材料的導體或半導體A和B焊接起來,構成一個閉合回路,如圖2所示。當導體A和B的兩個執著點1和2之間存在溫差時,兩者之間便產生電動勢,因而在回路中形成一個大小的電流,這種現象稱為熱電效應。溫度傳感器熱電偶就是利用這一效應來工作的。 b溫度傳感器熱電阻測溫原理 溫度傳感器熱電阻測溫是基于金屬導體的電阻值隨溫度的增加而增加這一特性來進行溫度測量的。 c數字化溫度傳感器的工作原理 將溫度信號轉化為串行數字信號供微處理機處理 3.4 各模塊基本功能與設計方案選擇和論述 3.4.1 溫度采集方案的概述 溫度傳感器從使用的角度大致可分為接觸式和非接觸式兩大類,前者是讓溫度傳感器直接與待測物體接觸,而后者是使溫度傳感器與待測物體離開一定的距離,檢測從待測物體放射出的紅外線,達到測溫的目的。在接觸式和非接觸式兩大類溫度傳感器中,相比運用多的是接觸式傳感器,非接觸式傳感器一般在比較特殊的場合才使用,早期得到廣泛使用的接觸式溫度傳感器主要有熱電式傳感器,其中將溫度變化轉換為電阻變化的稱為熱電阻傳感器,將溫度變化轉換為熱電勢變化的稱為熱電偶傳感器。現在的溫度傳感器已經走向數字化,集成化,外形小,接口簡單,廣泛用于生活中的各個領域。 方案一:采用熱敏電阻 可以用熱敏電阻對溫度感應程度來實現對輸入信號的改變,價格比較便宜,但是其靈敏度不高。 方案二:采用熱電偶 熱電偶是目前接觸式測溫中應用也十分廣泛的熱電式傳感器,它具有結構簡單、制造方便、測溫范圍寬、熱慣性小、準確度高、輸出信號便于遠傳等優點。但是,由于熱電偶來采集溫度的話會用到運放的比較器電路,信號放大電路,譯碼器電路來將模擬信號轉化為數字信號繼而在數碼管上顯示出來,電路結構過于復雜。 方案三:采用二極管 二極管在正向導通時由于少子的存在和導電性,所以導通電壓會受溫度影響,優點是價格便宜,對電路要求低,但缺點是精度不高。 方案四:采用數字化溫度傳感器DS18B20 DS18B20是美國半導體公司推出的第一片支持一線總線的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器的優點,可以直接將溫度轉化成串行數字供微處理器處理。用此前器件后續電路只需要用單片機控制,電路簡單而且精確度高。 綜上所述:由于本次課設的要求是對一個較范圍內的溫度進行采集,所以對精度的要求較高,考慮到成本問題,并且保證電路結構簡明,本次試驗采用方案三進行溫度采集。 3.4.2溫度顯示方案的概述 本次設計要求對所檢測的溫度信號進行測量顯示,并且精確度至少為1攝氏度。 方案一:用數碼管顯示 通過51單片機這個微處理器得到轉化后的溫度數值后,通過程序設定,是可以精確到小數點后兩位的,所以本次實驗中用4位數碼管就可以了,接口較少。并且數碼管消耗的電力比液晶顯示更加清晰,適合在白天等強光下顯示。缺點是只能夠顯示數字,不能夠顯示出其他有用信息。 方案二:用1602液晶屏顯示 也可以利用1602來對轉換后的溫度進行顯示進行控制,但是由于液晶是反光式的,在外界光線很明亮時容易看不清楚。它的優點是可以顯示出文字信息,很明了。另外,其價格比數碼管要貴得多。 綜上所述:本次設計中主要是顯示出已經測到的溫度值,并不需要顯示其他文字信息,考慮到價格及可見清晰度問題,決定采用方案一。 四、系統軟件設計 4.1 系統軟件設計思想 整個溫度系統是硬件電路配合軟件電路的設計來完成的。當硬件的功能確定以后,軟件的功能也就確定了。 主程序分為4大模塊,分別為: (1)DS18B20內的溫度轉換部分 (2)讀出轉換后的溫度數值 (3)在七段數碼管上的顯示模塊 (4)溫度處理即控制模塊 4.2實驗原理 4.2.1AT89C51的運用及介紹 AT89C51是一種帶4K字節FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。 4.2.2溫度采集模塊電路的設計 DS18B20引腳圖如圖所示:
DS18B20內部結構介紹: DS18B20內部結構圖 特性: • 獨特的單線接口僅需一個端口引腳進行通訊
• 簡單的多點分布應用
• 無需外部器件
• 可通過數據線供電
• 零待機功耗
• 測溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F 遞增
• 溫度以9 位數字量讀出
• 溫度數字量轉換時間200ms(典型值)
• 用戶可定義的非易失性溫度報警設置
• 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件
• 應用包括溫度控制、工業系統、消費品、溫度計或任何熱感測系統。 DS18B20的工作原理: DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數因分辨率不同而不同,且溫度轉換時的延時時間由2s 減為750ms。高溫度系數晶振 隨溫度變化其振蕩率明顯改變,所產生的信號作為計數器2的脈沖輸入。計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。計數器1對 低溫度系數晶振產生的脈沖信號進行減法計數,當計數器1的預置值減到0時,溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重 新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即 為所測溫度。圖3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數器1的預置值。 4.2.3基于74HC245的緩沖模塊總線收發器(bus transceiver),典型的CMOS型三態緩沖門電路。由于單片機或CPU的數據/地址/控制總線端口都有一定的負載能力,如果負載超過其負載能力,一般應加驅動器。 245是方向可控的八路緩沖器,主要用于實現數據總線的雙向異步通信。為了保護脆弱的主控芯片,通常在主控芯片的并行接口與外部受控設備的并行接口間添加緩沖器。當主控芯片與受控設備之間需要實現雙向異步通信時,自然就得選用雙向的八路緩沖器了,245就是面向這種需求的。常見于同并口液晶屏、并口打印機、并口傳感器或通訊模塊等設備的接口上。 五、 原理電路圖 運用電容、51單片機、七段數碼管、LED、電解電容 、DS18B20、電阻、74HC245構成實驗整體原理圖。 5.1 51單片機 運用單片機處理溫度轉化成的串行數字信號,實現信號處理。將獲得的結果通過輸出裝置輸出顯示在七段數碼管上,并且在最后的處理部分也借用了P2口的三個引腳,來點亮所需要點亮的LED燈。 89C52單片機組成結構中包含運算器、控制器、片內存儲器、并行I/O口、串行I/O口、定時/計數器、中斷系統、振蕩器等功能部件。
5.2溫度采集部分 運用一個DS18B20溫度傳感器作為外部溫度的檢測部分,并將采集好的串行數字信號供單片機處理。如圖。 5.3 溫度顯示部分 7seg-mpx4-ca是4位共陽極7段式數碼顯示管7seg-mpx4-blue是藍色的4位7段式數碼顯示管 該7段數碼管分別接于AT89C51單片機和74HC245上,顯示初始的預設值和后期溫度傳感器的返回值。
5.4 加熱顯示裝置
運用單擊DS18B20上的+或-號來實現溫度的調節: 1、當溫度高于預設值時,單片機控制系統進行加熱。LED燈亮。 2、當溫度低于預設值時,LED燈不亮。 OVEN: 用于該水溫控制的加熱,當紅燈亮時,表示在加熱。 六、仿真結果 溫度信號模擬,加載目標代碼程序文件,進入調試環境,執行程序,在Proteus ISIS界面中,分別調試十位設置按鍵和個位設置按鍵來預設水溫,當DS18B20的溫度低于預設值時,紅色發光二極管點亮表示進入熱狀態,反之,發光二極管滅,則表示停止加熱。仿真結果如圖所示:
課程設計總結
本次模擬電路課程設計有較強的綜合性,不僅要求設計者能熟練使用單片機來實現溫度的采集與讀數,熟練編寫程序,還要求對單片機的電路連接結構,對數碼管芯片有明確清晰的了解與認識,否則在設計的第一步就會遇到障礙。 經過一個多星期的資料收集與查詢,又經過幾天的總體構思,在腦中對溫度控制系統的設計有了一個總體的框架,對程序的流程圖也有一個基本的結構,最后結合參考資料,又經過兩天對程序的編寫以及程序的改進,最后終于完成了本次課程設計各項內容。通過運用所學知識、網上查閱資料和努力設計,我從這次課程設計不僅僅只是獲得自己親手做的電子產品,還學到了很多,例如面對問題要保持冷靜,特別是在程序的編寫這一塊,要找出程序的錯誤一定要有一個冷靜的頭腦,否則很難發現錯誤甚至是越改越錯。另外我還認識到與他人合作的重要性,虛心向別人學習,充分利用網上資源,都是一些不錯的方法。模擬電子技術是一門很有用也是專業基礎的學科,一定要學好理論知識,打好基礎,而且要學會動手,增強動手能力,通過實踐加深對理論知識的理解。 本次課程設計中不斷翻閱資料,提高了我的分析能力,也讓我體會到了動手實踐的快樂,受益匪淺!
參考文獻[1] 吳友宇.模擬電子技術基礎.北京.高教出版社,2001年 [2] 康華光.電子技術基礎(模擬部分)(第四版).北京:高等教育出版社,1999 [3] 李萬臣.模擬電子技術基礎與課程設計.哈爾濱:哈爾濱工程大學出版社,2001.3 [4] 胡宴如.模擬電子技術..北京: 高等教育出版社,2000 [5] 沈尚賢.電子技術導論(下冊).北京:高等教育出版社,1986年 [6] 李建兵 周長林. Multisim與Protel的應用.北京. 國防工業出版社. 2009年 [7]51單片機原理與實踐/高衛東,辛友順,韓彥征編著.北京航空航天大學出版社,2008.1 [8]劉紅玲、邵曉根,《微機原理與接口技術》,中國電力出版社,2006年第一版 [9]馮博琴,《微型計算機原理及接口技術》,清華大學出版社 [10]白延敏,《51單片機典型系統開發實例精講》電子工業出版社,2009 [11]萬福君、潘松峰、劉芳 等,《MCS-51單片機原理,系統設計與應用》,清華大學出版社,2008
附錄:
單片機源程序如下:
- TMPL EQU 29H
- TMPH EQU 28H
- FLAG1 EQU 38H
- DATAIN BIT P3.7
- ORG 00H
- LJMP MAIN1
- ORG 03H
- LJMP ZINT0
- ORG 13H
- LJMP ZINT1
- ORG 30H
- MAIN1:
- SETB IT0
- SETB EA
- SETB EX0
- SETB IT1
- SETB EX1
- SETB P3.6
- SETB P3.2
- MOV 74H,#0
- MOV 75H,#0
- MOV 76H,#9
- MOV 77H,#0
- MAIN:
- LCALL GET_TEMPER
- LCALL CVTTMP
- LCALL DISP1
- AJMP MAIN
- INIT_1820:
- SETB DATAIN
- NOP
- CLR DATAIN
- MOV R1,#3
- TSR1:
- MOV R0,#107
- DJNZ R0,$
- DJNZ R1,TSR1
- SETB DATAIN
- NOP
- NOP
- NOP
- MOV R0,#25H
- TSR2:
- JNB DATAIN,TSR3
- DJNZ R0,TSR2
- CLR FLAG1
- SJMP TSR7
- TSR3:
- SETB FLAG1
- CLR P1.7
- MOV R0,#117
- TSR6:
- DJNZ R0,$
- TSR7:
- SETB DATAIN
- RET
- GET_TEMPER:
- SETB DATAIN
- LCALL INIT_1820
- JB FLAG1,TSS2
- NOP
- RET
- TSS2:
- MOV A,#0CCH
- LCALL WRITE_1820
- MOV A,#44H
- LCALL WRITE_1820
- ACALL DISP1
- LCALL INIT_1820
- MOV A,#0CCH
- LCALL WRITE_1820
- MOV A,#0BEH
- LCALL WRITE_1820
- LCALL READ_1820
- RET
- WRITE_1820:
- MOV R2,#8
- CLR C
- WR1:
- CLR DATAIN
- MOV R3,#6
- DJNZ R3,$
- RRC A
- MOV DATAIN,C
- MOV R3,#23
- DJNZ R3,$
- SETB DATAIN
- NOP
- DJNZ R2,WR1
- SETB DATAIN
- RET
- READ_1820:
- MOV R4,#2
- MOV R1,#29H
- RE00:
- MOV R2,#8
- RE01:
- CLR C
- SETB DATAIN
- NOP
- NOP
- CLR DATAIN
- NOP
- NOP
- NOP
- SETB DATAIN
- MOV R3,#9
- RE10:
- DJNZ R3,RE10
- MOV C,DATAIN
- MOV R3,#23
- RE20:
- DJNZ R3,RE20
- RRC A
- DJNZ R2,RE01
- MOV @R1,A
- DEC R1
- DJNZ R4,RE00
- RET
- CVTTMP:
- MOV A,TMPH
- ANL A,#80H
- JZ TMPC1
- CLR C
- MOV A,TMPL
- CPL A
- ADD A,#1
- MOV TMPL,A
- MOV A,TMPH
- CPL A
- ADDC A,#0
- MOV TMPH,A
- MOV 73H,#0BH
- SJMP TMPC11
- TMPC1:
- MOV 73H,#0AH
- TMPC11:
- MOV A,TMPL
- ANL A,#0FH
- MOV DPTR,#TMPTAB
- MOVC A,@A+DPTR
- MOV 70H,A
- MOV A,TMPL
- ANL A,#0F0H
- SWAP A
- MOV TMPL,A
- MOV A,TMPH
- ANL A,#0FH
- SWAP A
- ORL A,TMPL
- H2BCD:
- MOV B,#100
- DIV AB
- JZ B2BCD1
- MOV 73H,A
- B2BCD1:
- MOV A,#10
- XCH A,B
- DIV AB
- MOV 72H,A
- MOV 71H,B
- TMPC12:
- NOP
- DISBCD:
- MOV A,73H
- ANL A,#0FH
- CJNE A,#1,DISBCD0
- SJMP DISBCD1
- DISBCD0:
- MOV A,72H
- ANL A,#0FH
- JNZ DISBCD1
- MOV A,73H
- MOV 72H,A
- MOV 73H,#0AH
- DISBCD1:
- RET
- TMPTAB:
- DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9
- DISP1:
- MOV R1,#70H
- MOV R0,#74H
- MOV R5,#0FEH
- PLAY:
- MOV P1,#0FFH
- MOV A,R5
- MOV P2,A
- MOV A,@R1
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P1,A
- MOV A,@R0
- MOVC A,@A+DPTR
- MOV P0,A
- MOV A,R5
- JB ACC.1,LOOP1
- CLR P1.7
- CLR P0.7
- LOOP1:
- LCALL DL1MS
- INC R1
- INC R0
- MOV A,R5
- JNB ACC.3,ENDOUT
- RL A
- MOV R5,A
- MOV A,73H
- CJNE A,#1,DD2
- SJMP LEDH
- DD2:
- MOV A,72H
- CJNE A,#0AH,DD3
- MOV 72H,#0
- DD3:
- MOV A,76H
- CJNE A,72H,DDH
- SJMP DDL
- DDH:
- JNC PLAY1
- SJMP LEDH
- DDL:
- MOV A,75H
- CJNE A,71H,DDL1
- SJMP LEDH
- DDL1:
- JNC PLAY1
- LEDH:
- CLR P3.6
- SJMP PLAY
- PLAY1:
- SETB P3.6
- SJMP PLAY
- ENDOUT:
- MOV P1,#0FFH
- MOV P2,#0FFH
- RET
- TAB:
- DB 0C0H,0F9H,0A4H,0B0H,99H
- DB 92H,82H,0F8H,80H,90H,0FFH,0BFH
- DL1MS:
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (23.58 KB, 下載次數: 71)
下載附件
2017-12-29 01:27 上傳
全部資料51hei下載地址(含proteus仿真與代碼+word格式的課設論文):
水溫控制.rar
(312.48 KB, 下載次數: 175)
2017-12-28 20:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|