一、設(shè)計任務(wù) 利用單片機AT89C51控制DS18B20溫度傳感器對水溫的控制,當(dāng)水溫低于預(yù)設(shè)的溫度值時系統(tǒng)開始加熱(點亮紅色發(fā)光二極管表示加熱狀態(tài)),當(dāng)溫度達(dá)到預(yù)設(shè)溫度值時自動停止加熱。預(yù)設(shè)溫度值和實測溫度值分別由3位數(shù)碼管顯示,范圍為0-99攝氏度。
二、要求 (1)控制密閉容器內(nèi)空氣溫度
(2)測溫和控溫范圍:0℃~99℃
(3)控溫精度±1℃
(4)掌握DS18B20的工作原理及使用方法。
三、實驗內(nèi)容 3.1 基本設(shè)計思路 根據(jù)系統(tǒng)的要求,本次設(shè)計可分為溫度溫度采集模塊、溫度顯示 和溫度信號控制3個模塊。具體框架圖如圖1所示:
3.2溫度控制系統(tǒng)工作原理
溫度傳感器 DS18B20 從設(shè)備環(huán)境的不同位置采集溫度,51單片機獲取采集的溫度值,經(jīng)處理后得到當(dāng)前環(huán)境中一個比較穩(wěn)定的溫度值,再根據(jù)當(dāng)前設(shè)定的溫度上下限值,通過加熱和降溫對當(dāng)前溫度進(jìn)行調(diào)整。通過按鈕來控制,使電路中的溫度控制在預(yù)設(shè)值范圍內(nèi)。當(dāng)LED燈亮?xí)r表示該硬件系統(tǒng)正在進(jìn)行加熱,當(dāng)達(dá)到預(yù)設(shè)值則停止加熱。
3.3溫度采集原理
a溫度傳感器熱電偶測溫基本原理
將兩種不同材料的導(dǎo)體或半導(dǎo)體A和B焊接起來,構(gòu)成一個閉合回路,如圖2所示。當(dāng)導(dǎo)體A和B的兩個執(zhí)著點1和2之間存在溫差時,兩者之間便產(chǎn)生電動勢,因而在回路中形成一個大小的電流,這種現(xiàn)象稱為熱電效應(yīng)。溫度傳感器熱電偶就是利用這一效應(yīng)來工作的。
b溫度傳感器熱電阻測溫原理
溫度傳感器熱電阻測溫是基于金屬導(dǎo)體的電阻值隨溫度的增加而增加這一特性來進(jìn)行溫度測量的。
c數(shù)字化溫度傳感器的工作原理
將溫度信號轉(zhuǎn)化為串行數(shù)字信號供微處理機處理
3.4 各模塊基本功能與設(shè)計方案選擇和論述 3.4.1 溫度采集方案的概述
溫度傳感器從使用的角度大致可分為接觸式和非接觸式兩大類,前者是讓溫度傳感器直接與待測物體接觸,而后者是使溫度傳感器與待測物體離開一定的距離,檢測從待測物體放射出的紅外線,達(dá)到測溫的目的。在接觸式和非接觸式兩大類溫度傳感器中,相比運用多的是接觸式傳感器,非接觸式傳感器一般在比較特殊的場合才使用,早期得到廣泛使用的接觸式溫度傳感器主要有熱電式傳感器,其中將溫度變化轉(zhuǎn)換為電阻變化的稱為熱電阻傳感器,將溫度變化轉(zhuǎn)換為熱電勢變化的稱為熱電偶傳感器。現(xiàn)在的溫度傳感器已經(jīng)走向數(shù)字化,集成化,外形小,接口簡單,廣泛用于生活中的各個領(lǐng)域。
方案一:采用熱敏電阻
可以用熱敏電阻對溫度感應(yīng)程度來實現(xiàn)對輸入信號的改變,價格比較便宜,但是其靈敏度不高。
方案二:采用熱電偶
熱電偶是目前接觸式測溫中應(yīng)用也十分廣泛的熱電式傳感器,它具有結(jié)構(gòu)簡單、制造方便、測溫范圍寬、熱慣性小、準(zhǔn)確度高、輸出信號便于遠(yuǎn)傳等優(yōu)點。但是,由于熱電偶來采集溫度的話會用到運放的比較器電路,信號放大電路,譯碼器電路來將模擬信號轉(zhuǎn)化為數(shù)字信號繼而在數(shù)碼管上顯示出來,電路結(jié)構(gòu)過于復(fù)雜。
方案三:采用二極管
二極管在正向?qū)〞r由于少子的存在和導(dǎo)電性,所以導(dǎo)通電壓會受溫度影響,優(yōu)點是價格便宜,對電路要求低,但缺點是精度不高。
方案四:采用數(shù)字化溫度傳感器DS18B20
DS18B20是美國半導(dǎo)體公司推出的第一片支持一線總線的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器的優(yōu)點,可以直接將溫度轉(zhuǎn)化成串行數(shù)字供微處理器處理。用此前器件后續(xù)電路只需要用單片機控制,電路簡單而且精確度高。
綜上所述:由于本次課設(shè)的要求是對一個較范圍內(nèi)的溫度進(jìn)行采集,所以對精度的要求較高,考慮到成本問題,并且保證電路結(jié)構(gòu)簡明,本次試驗采用方案三進(jìn)行溫度采集。
3.4.2溫度顯示方案的概述
本次設(shè)計要求對所檢測的溫度信號進(jìn)行測量顯示,并且精確度至少為1攝氏度。
方案一:用數(shù)碼管顯示
通過51單片機這個微處理器得到轉(zhuǎn)化后的溫度數(shù)值后,通過程序設(shè)定,是可以精確到小數(shù)點后兩位的,所以本次實驗中用4位數(shù)碼管就可以了,接口較少。并且數(shù)碼管消耗的電力比液晶顯示更加清晰,適合在白天等強光下顯示。缺點是只能夠顯示數(shù)字,不能夠顯示出其他有用信息。
方案二:用1602液晶屏顯示
也可以利用1602來對轉(zhuǎn)換后的溫度進(jìn)行顯示進(jìn)行控制,但是由于液晶是反光式的,在外界光線很明亮?xí)r容易看不清楚。它的優(yōu)點是可以顯示出文字信息,很明了。另外,其價格比數(shù)碼管要貴得多。
綜上所述:本次設(shè)計中主要是顯示出已經(jīng)測到的溫度值,并不需要顯示其他文字信息,考慮到價格及可見清晰度問題,決定采用方案一。
四、系統(tǒng)軟件設(shè)計 4.1 系統(tǒng)軟件設(shè)計思想
整個溫度系統(tǒng)是硬件電路配合軟件電路的設(shè)計來完成的。當(dāng)硬件的功能確定以后,軟件的功能也就確定了。
主程序分為4大模塊,分別為:
(1)DS18B20內(nèi)的溫度轉(zhuǎn)換部分
(2)讀出轉(zhuǎn)換后的溫度數(shù)值
(3)在七段數(shù)碼管上的顯示模塊
(4)溫度處理即控制模塊
4.2實驗原理 4.2.1AT89C51的運用及介紹
AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。
4.2.2溫度采集模塊電路的設(shè)計
DS18B20引腳圖如圖所示:
DS18B20內(nèi)部結(jié)構(gòu)介紹:
DS18B20內(nèi)部結(jié)構(gòu)圖
特性:
• 獨特的單線接口僅需一個端口引腳進(jìn)行通訊
• 簡單的多點分布應(yīng)用
• 無需外部器件
• 可通過數(shù)據(jù)線供電
• 零待機功耗
• 測溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F 遞增
• 溫度以9 位數(shù)字量讀出
• 溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值)
• 用戶可定義的非易失性溫度報警設(shè)置
• 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件
• 應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng)。
DS18B20的工作原理:
DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s 減為750ms。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計數(shù)器1對 低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即 為所測溫度。圖3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。
4.2.3基于74HC245的緩沖模塊總線收發(fā)器(bus transceiver),典型的CMOS型三態(tài)緩沖門電路。由于單片機或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,如果負(fù)載超過其負(fù)載能力,一般應(yīng)加驅(qū)動器。
245是方向可控的八路緩沖器,主要用于實現(xiàn)數(shù)據(jù)總線的雙向異步通信。為了保護(hù)脆弱的主控芯片,通常在主控芯片的并行接口與外部受控設(shè)備的并行接口間添加緩沖器。當(dāng)主控芯片與受控設(shè)備之間需要實現(xiàn)雙向異步通信時,自然就得選用雙向的八路緩沖器了,245就是面向這種需求的。常見于同并口液晶屏、并口打印機、并口傳感器或通訊模塊等設(shè)備的接口上。
五、 原理電路圖 運用電容、51單片機、七段數(shù)碼管、LED、電解電容 、DS18B20、電阻、74HC245構(gòu)成實驗整體原理圖。
5.1 51單片機
運用單片機處理溫度轉(zhuǎn)化成的串行數(shù)字信號,實現(xiàn)信號處理。將獲得的結(jié)果通過輸出裝置輸出顯示在七段數(shù)碼管上,并且在最后的處理部分也借用了P2口的三個引腳,來點亮所需要點亮的LED燈。
89C52單片機組成結(jié)構(gòu)中包含運算器、控制器、片內(nèi)存儲器、并行I/O口、串行I/O口、定時/計數(shù)器、中斷系統(tǒng)、振蕩器等功能部件。
5.2溫度采集部分 運用一個DS18B20溫度傳感器作為外部溫度的檢測部分,并將采集好的串行數(shù)字信號供單片機處理。如圖。
5.3 溫度顯示部分
7seg-mpx4-ca是4位共陽極7段式數(shù)碼顯示管7seg-mpx4-blue是藍(lán)色的4位7段式數(shù)碼顯示管
該7段數(shù)碼管分別接于AT89C51單片機和74HC245上,顯示初始的預(yù)設(shè)值和后期溫度傳感器的返回值。
5.4 加熱顯示裝置
運用單擊DS18B20上的+或-號來實現(xiàn)溫度的調(diào)節(jié):
1、當(dāng)溫度高于預(yù)設(shè)值時,單片機控制系統(tǒng)進(jìn)行加熱。LED燈亮。
2、當(dāng)溫度低于預(yù)設(shè)值時,LED燈不亮。
OVEN:
用于該水溫控制的加熱,當(dāng)紅燈亮?xí)r,表示在加熱。
六、仿真結(jié)果 溫度信號模擬,加載目標(biāo)代碼程序文件,進(jìn)入調(diào)試環(huán)境,執(zhí)行程序,在Proteus ISIS界面中,分別調(diào)試十位設(shè)置按鍵和個位設(shè)置按鍵來預(yù)設(shè)水溫,當(dāng)DS18B20的溫度低于預(yù)設(shè)值時,紅色發(fā)光二極管點亮表示進(jìn)入熱狀態(tài),反之,發(fā)光二極管滅,則表示停止加熱。仿真結(jié)果如圖所示:
課程設(shè)計總結(jié)
本次模擬電路課程設(shè)計有較強的綜合性,不僅要求設(shè)計者能熟練使用單片機來實現(xiàn)溫度的采集與讀數(shù),熟練編寫程序,還要求對單片機的電路連接結(jié)構(gòu),對數(shù)碼管芯片有明確清晰的了解與認(rèn)識,否則在設(shè)計的第一步就會遇到障礙。
經(jīng)過一個多星期的資料收集與查詢,又經(jīng)過幾天的總體構(gòu)思,在腦中對溫度控制系統(tǒng)的設(shè)計有了一個總體的框架,對程序的流程圖也有一個基本的結(jié)構(gòu),最后結(jié)合參考資料,又經(jīng)過兩天對程序的編寫以及程序的改進(jìn),最后終于完成了本次課程設(shè)計各項內(nèi)容。通過運用所學(xué)知識、網(wǎng)上查閱資料和努力設(shè)計,我從這次課程設(shè)計不僅僅只是獲得自己親手做的電子產(chǎn)品,還學(xué)到了很多,例如面對問題要保持冷靜,特別是在程序的編寫這一塊,要找出程序的錯誤一定要有一個冷靜的頭腦,否則很難發(fā)現(xiàn)錯誤甚至是越改越錯。另外我還認(rèn)識到與他人合作的重要性,虛心向別人學(xué)習(xí),充分利用網(wǎng)上資源,都是一些不錯的方法。模擬電子技術(shù)是一門很有用也是專業(yè)基礎(chǔ)的學(xué)科,一定要學(xué)好理論知識,打好基礎(chǔ),而且要學(xué)會動手,增強動手能力,通過實踐加深對理論知識的理解。
本次課程設(shè)計中不斷翻閱資料,提高了我的分析能力,也讓我體會到了動手實踐的快樂,受益匪淺!
參考文獻(xiàn)[1] 吳友宇.模擬電子技術(shù)基礎(chǔ).北京.高教出版社,2001年
[2] 康華光.電子技術(shù)基礎(chǔ)(模擬部分)(第四版).北京:高等教育出版社,1999
[3] 李萬臣.模擬電子技術(shù)基礎(chǔ)與課程設(shè)計.哈爾濱:哈爾濱工程大學(xué)出版社,2001.3
[4] 胡宴如.模擬電子技術(shù)..北京: 高等教育出版社,2000
[5] 沈尚賢.電子技術(shù)導(dǎo)論(下冊).北京:高等教育出版社,1986年
[6] 李建兵 周長林. Multisim與Protel的應(yīng)用.北京. 國防工業(yè)出版社. 2009年
[7]51單片機原理與實踐/高衛(wèi)東,辛友順,韓彥征編著.北京航空航天大學(xué)出版社,2008.1
[8]劉紅玲、邵曉根,《微機原理與接口技術(shù)》,中國電力出版社,2006年第一版
[9]馮博琴,《微型計算機原理及接口技術(shù)》,清華大學(xué)出版社
[10]白延敏,《51單片機典型系統(tǒng)開發(fā)實例精講》電子工業(yè)出版社,2009
[11]萬福君、潘松峰、劉芳 等,《MCS-51單片機原理,系統(tǒng)設(shè)計與應(yīng)用》,清華大學(xué)出版社,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黑下載附件…………
復(fù)制代碼