![溫度傳感器實訓報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/f9f01d22-c6e4-4015-952b-03a155bb2b5b/f9f01d22-c6e4-4015-952b-03a155bb2b5b1.gif)
![溫度傳感器實訓報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/f9f01d22-c6e4-4015-952b-03a155bb2b5b/f9f01d22-c6e4-4015-952b-03a155bb2b5b2.gif)
![溫度傳感器實訓報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/f9f01d22-c6e4-4015-952b-03a155bb2b5b/f9f01d22-c6e4-4015-952b-03a155bb2b5b3.gif)
![溫度傳感器實訓報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/f9f01d22-c6e4-4015-952b-03a155bb2b5b/f9f01d22-c6e4-4015-952b-03a155bb2b5b4.gif)
![溫度傳感器實訓報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/f9f01d22-c6e4-4015-952b-03a155bb2b5b/f9f01d22-c6e4-4015-952b-03a155bb2b5b5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、頁眉內容溫度傳感器實訓報告實訓報告課程:信號檢測與技術專業(yè):應用電子技術班級:應電1131班小組成員:歐陽主、王雅志、朱知榮、周筠旋、周合昱指導老師:宋曉虹老師2013年4月23日、實訓目的了解18b20溫度傳感器的基本原理與應用二、實訓過程1、電路實現(xiàn)功能:由電腦USB接口供電,也可外接6V16V的直流電源。通過溫度傳感器18B20作為溫度傳感器件,測出改實際溫度,再由芯片為DIP封裝AT89C2051單片機進行數(shù)據(jù)處理,通過數(shù)碼管顯示溫度值。溫度顯示(和控制)的范圍為:-55oC至U125oC之間,精度為1oC,也就是顯示整數(shù)。如果你設定報警的溫度為20oC,則當環(huán)境溫度達到21oC時,報
2、警發(fā)光二極管發(fā)光,同時繼電器動作。如果你不需要對溫度控制(報警),可以將報警溫度值設置高些。如果控制的是某局部的溫度,可將18B20用引線引出,但距離不宜過大,注意其引腳絕緣。2 .電路的構成該電路有電源、按鍵控制模塊、信號處理、驅動模塊、顯示模塊、檢測3 .電路原理圖5J1C1JZ3C210KIDQVCCV1“1N4148LED3R1P1P2/P3廠:5124568910R6AN1vcc470UFC3VCCL7805LED2LED-310UFC15+C4IC3R7D7區(qū)D6%-R9D5321RSTVCCP3.0(RXD)P1.7P3.1(TXD)P1.6XTAL2P1.5XTAL1P1.4P
3、3.2(INT0)P1.3P3.3(INT1)P1.2P3.4(T0)P1.1P3.5(T1)P1.0GNDP3.7OUTGNDINJ3USBJ2123421AT89C2051IC2DS18B20DOG324.7K7.P201918372220*737R24.7KR34.7KR44.7K12345678Q38550VCC3D4D5D6D7D12DD8.8.8.P123ABCDEFGDPPPQ285508.LED1123456R144708550Q44.電路仿真圖五、元件清單及功能介紹名稱規(guī)格編號主要功能或作用按鈕6X6X5AN1AN2AN3調節(jié)報警溫度的值電容30PC1、C2單片機時鐘振蕩電容
4、10UFC3單片機復位電容470UFC41電源濾波電容104C5電源濾波單片機(20P座)AT89C2051IC1CPU溫度傳感器DS18B20IC2溫度傳感器穩(wěn)壓塊L7805IC3電路工作于+5V接線座3P5.0J1外電路控制接線座接線座2P5.0J2外接電源接線USB電源插座USBJ3電腦供電插座晶體12MJZ單片機時鐘振蕩一位共陽數(shù)碼管0.56LED1攝氏溫度符號顯示三位共陽數(shù)碼管0.56LED2溫度值顯示發(fā)光二極管3MMLED3報警發(fā)光指示兼Q1偏置三極管8550Q1、Q2Q3Q41Q1:報警時驅動繼電器;Q2Q3Q4數(shù)碼管驅動1電阻10KR1單片機復位電阻220和470R7R13和R
5、14數(shù)碼管限流,其中R14=470電阻4.7KR2、R3R4R6三極管基極和溫度傳感器偏置電阻2KR5三極管Q1基極偏置二極管1N4148V1續(xù)流,保護Q1跳線X1、X2用元件引腳連繼電器5V2AJDQ溫度達到報警值時觸點動作PCB®73MMX85MMUSB電源線連接電腦USB口6、程序:/*溫度控制器V1.5顯示為三個共陽極LED溫度傳感器用單總線DS18B20CPU為2051,四個按鍵,分別為UP,DOWN,SET溫度調節(jié)上限為125度,下限為-55度只能用于單只18B20*/#include<AT89X051.H>#include<intrins.h>/
6、上調溫度/下調溫度/設定鍵(溫度設定,長按開電源)/繼電器輸出/LED 控制口/LED DS1 控制(百位)/LED DS2 控制(十位)/LED DS3 控制(個位)P37/DS1820 DataPort#defineKey_UPP3_0#defineKey_DOWNP3_1#defineKey_SETP1_7#defineRelayOutPortP3_5#defineLEDPortP1#defineLEDOneCP3_2#defineLEDTwoCP3_3#define TMPort#defineLEDThreeCP3_4unsignedcharcodeLEDDis=0xC0,0xF9,0
7、xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF;/0-9的LED筆劃,0xFF為空,0xF7為負號staticunsignedcharbdataStateREG;/可位尋址的狀態(tài)寄存器sbitDS1820ON=StateREGA0;DS1820是否存在sbitSetTF=StateREGAI;是否是在溫度設置狀態(tài)sbitKeySETDown=StateREGA2;/是否已按過SET鍵標識sbitPowTF=StateREGA3;/電源電源標識sbitKeyTF=StateREGA4;/鍵盤是否允許/sbitKeySETDowning=State
8、REGA5;/SET是否正在按下staticunsignedcharbdataTLV_at_0x0029;/溫度變量高低位staticunsignedcharbdataTHV_at_0x0028;staticsignedcharTMV;/轉換后的溫度值staticunsignedcharKeyV,TempKeyV;/鍵值staticsignedcharTMRomV_at_0x0027;/高溫限制staticsignedcharTMSetV_at_0x0026;/溫度設定值staticunsignedcharKSDNum;/SET鍵連按時的采集次數(shù)staticunsignedchaEntNum,
9、IntNum2,IntNum3;/中斷發(fā)生次數(shù),IntNum用于SET長按檢測,IntNum2用于設定狀態(tài)時LED閃爍staticsignedcharLED_One,LED_Two,LED_Three;/LED的顯示位LED_One為十位,LED_Two為個位staticunsignedcharSign;/負號標識/voidmain(void)voidInitDS1820(void);/定義函數(shù)voidROMDS1820(void);voidTMVDS1820(void);voidTMRDS1820(void);voidTMWDS1820(void);voidTMREDS1820(void);
10、voidTMERDS1820(void);voidReadDS1820(void);voidWriteDS1820(void);voidDelay_510(void);voidDelay_110(void);voidDelay_10ms(void);voidDelay_4s(void);voidV2ToV(void);StateREG=0;/初始化變量SetTF=1;PowTF=1;/關電源THV=0;TLV=0;TMV=0;KeyV=0;TempKeyV=0;KSDNum=0;IntNum=0;IntNum2=0;IntNum3=0;LED_One=0;LED_Two=0;InitDS182
11、0();/初始化ROMDS1820();/跳過ROMTMERDS1820();/E2PRAM中溫度上限值調入RAMInitDS1820();/初始化ROMDS1820();/跳過ROMTMRDS1820();/讀出溫度指令ReadDS1820();/讀出溫度值和上限值TMSetV=TMRomV;/拷貝保存在DS18B20ROM里的上限值到TMSetVEA = 1;ET0 = 1;TMOD = 0x1;TH0=0xB1;TL0=0xDF;TR0 = 1;while(1);/允許CPU中斷/定時器0中斷打開/設定時器0為模式1,16位模式/設定時值為20000us(20ms)/開始定時/定時器0中
12、斷外理中鍵掃描和顯示voidKeyAndDis_Time0(void)interrupt1using2TH0=0xB1;TL0=0xDF;/設定時值為20000us(20ms)LEDPort=0xFF;if(!Key_UP)KeyV=1;if(!Key_DOWN)KeyV=2;if(!Key_SET)KeyV=3;/KeySETDowning=0;/清除if(KeyV!=0)/有鍵按下Delay_10ms();/延時防抖按下10ms再測if(!Key_UP)TempKeyV=1;if(!Key_DOWN)TempKeyV=2;if(!Key_SET)TempKeyV=3;if(KeyV=Tem
13、pKeyV)/兩次值相等為確定接下了鍵if(KeyV=3)/按下SET鍵,如在SET狀態(tài)就退出,否則進入/KeySETDowning=1;表明SET正在按下PowTF=0;/電源標識開if(!KeyTF)if(SetTF)SetTF=0;/標識位標識退出設定InitDS1820();/初始化ROMDS1820();/跳過ROMTMWDS1820();/寫溫度上限指令WriteDS1820();/寫溫度上限到DS18B20ROMWriteDS1820();/寫溫度上限到DS18B20ROMWriteDS1820();/寫溫度上限到DS18B20ROMInitDS1820();/初始化ROMDS1
14、820();/跳過ROMTMREDS1820();溫度上限值COPY回E2PRAMelseSetTF=1;if(!KeySETDown)/沒有第一次按下SET時,KeySETDown標識置1KeySETDown=1;elseKSDNum=KSDNum+1;前一秒內有接過SET貝U開始計數(shù)if(SetTF)在SET狀態(tài)下if(KeyV=1)&&(!KeyTF)TMSetV=TMSetV+1;/上調溫度if(KeyV=2)&&(!KeyTF)TMSetV=TMSetV-1;/下調溫度if(TMSetV<=-55)/限制溫度上下限TMSetV=-55;if(TM
15、SetV>=125)TMSetV=125;if(!KeyTF)&&(IntNum3=0)KeyTF=1;/當鍵盤處于可用時,鎖定if(KeySETDown)在2秒內按下了SET則計中斷發(fā)生次數(shù)用于長按SET時計時用IntNum=IntNum+1;if(IntNum>55)/中斷發(fā)生了55次時(大約1.2秒)75為1.5秒左右IntNum=0;KeySETDown=0;if(KSDNum=55)如一直長按了SET1.2秒左右9RelayOutPort=1;/關閉繼電器輸出PowTF=1;/電源標識關LEDOneC=0;LEDTwoC=0;LEDThreeC=0;LED
16、Port=0xBF;/顯示"-"Delay_4s();/延時LEDOneC=1;LEDTwoC=1;/關顯示LEDThreeC=1;Delay_4s();IntNum=0;IntNum2=0;IntNum3=0;KSDNum=0;KeyV=0;TempKeyV=0;/清空變量準備下次鍵掃描if(!PowTF)InitDS1820();/初始化ROMDS1820();/跳過ROMTMVDS1820();/溫度轉換指令Delay_510();Delay_510();/延時等待轉換完成InitDS1820();/初始化ROMDS1820();/跳過ROMTMRDS1820();/
17、讀出溫度指令ReadDS1820();/讀出溫度值V2ToV();/轉換顯示值if(TMV>TMSetV)/根據(jù)采集到的溫度值控制繼電器RelayOutPort=0;elseRelayOutPort=1;if(SetTF)IntNum2=IntNum2+1;/用于閃爍計數(shù)if(IntNum2>50)IntNum2=0;if(KeyTF)IntNum3=IntNum3+1;/用于防止按鍵連按if(IntNum3>25)IntNum3=0;KeyTF=0;if(SetTF)&&(IntNum2<25)gotoInitEnd;/計數(shù)在后半段時顯示LEDPort
18、=LED_One;LEDOneC=0;Delay_510();LEDOneC=1;/顯示百位數(shù)LEDPort=LED_Two;LEDTwoC=0;Delay_510();LEDTwoC=1;/顯示十位數(shù)LEDPort=LED_Three;LEDThreeC=0;Delay_510();LEDThreeC=1;/顯示個位數(shù)InitEnd:;voidV2ToV(void)/數(shù)值轉換TLV=TLV>>4;THV=THV<<4;/讀出的高低位數(shù)值移位TMV=TLV|THV;/合并高低位放入TM為實際溫度值Sign=0;if(SetTF|!Key_SET)Sign=TMSetV&
19、gt;>7;/取符號elseSign=TMV>>7;if(Sign)if(SetTF|!Key_SET)LED_One=(TMSetV-1)/100;/SET狀態(tài)下顯示設定值LED_Two=(TMSetV-1)-LED_One*100)/10;LED_Three=(TMSetV-1)-LED_One*100-LED_Two*10;elseLED_One=(TMV)/100;/轉換百位值LED_Two=(TMV)-LED_One*100)/10;LED_Three=(TMV)-LED_One*100-LED_Two*10;elseif(SetTF|!Key_SET)LED_On
20、e=(TMSetV)/100;/SET狀態(tài)下顯示設定值LED_Two=(TMSetV-LED_One*100)/10;LED_Three=TMSetV-LED_One*100-LED_Two*10;elseLED_One=(TMV)/100;/轉換百位值LED_Two=(TMV-LED_One*100)/10;LED_Three=TMV-LED_One*100-LED_Two*10;/轉LED字段if(LED_One)/超過百時十位的處理LED_Two=LEDDisLED_Two;elseif(LED_Two=0)LED_Two=LEDDis10;elseLED_Two=LEDDisLED_T
21、wo;if(Sign)LED_One=LEDDis11;elseif(LED_One=0)LED_One=LEDDis10;elseLED_One=LEDDisLED_One;LED_Three=LEDDisLED_Three;voidInitDS1820(void)/初始化DS1820TMPort=1;/拉高TMPort_nop_();/保持一個周期TMPort=0;/拉低TMPortDelay_510();延時DS1820復位時間要500us的低電平TMPort=1;/拉高TMPort_nop_();/保持_nop_();_nop_();Delay_110();/延時110us等待DS18
22、20回應if(!TMPort)/回應信號為低電平DS1820ON=1;elseDS1820ON=0;Delay_110();/延時Delay_110();TMPort=1;/拉高TMPortvoidROMDS1820(void)/跳過ROM匹配#pragmaasmMOVA,#0CCHMOVR2,#8CLRCWR1:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR1SETBP3_7#pragmaendasmvoidTMVDS1820(void)#pragmaasmMOVA,#44HMOVR2,#8C
23、LRCWR2:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR2SETBP3_7#pragmaendasmvoidTMRDS1820(void)#pragmaasmMOVA,#0BEHMOVR2,#8CLRCWR3:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR3SETBP3_7#pragmaendasm/溫度轉換指令/讀出溫度指令19voidTMWDS1820(void)/寫入溫度限制指令#pra
24、gmaasmMOVA,#04EHMOVR2,#8CLRCWR13:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR13SETBP3_7#pragmaendasmvoidTMREDS1820(void)/COPYRAMtoE2PRAM#pragmaasmMOVA,#48HMOVR2,#8CLRCWR33:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR33SETBP3_7#pragmaendasmvoi
25、dTMERDS1820(void)#pragmaasm/COPYE2PRAMtoRAMMOVA,#0B8HMOVR2,#8CLRCWR43:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR43SETBP3_7#pragmaendasmvoidWriteDS1820(void)/寫入溫度限制值#pragmaasmMOVA,26H/發(fā)出4EH寫ROM指令后連發(fā)兩個字節(jié)分別為上下限MOVR2,#8CLRCWR23:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR2,WR23SETBP3_7#pragmaendasmvoidReadDS1820(void)/讀出溫度值#pragmaasmMOVR4,#3;將溫度高位和低位,高溫限制位從DS18
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年標準購房合同范例
- 2025年企業(yè)勞務派遣策劃安全防護協(xié)議書
- 2025年中小企業(yè)技術買賣合同示范
- 2025年勞動合同協(xié)議格式
- 2025年度臨時工廠雇傭協(xié)議
- 2025年上市公司法律咨詢與服務協(xié)議
- 2025年供應鏈管理貨物交易合同
- 2025年人才開發(fā)與合作協(xié)議
- 2025年遼陽貨物運輸駕駛員從業(yè)資格考試系統(tǒng)
- 2025年松原貨運駕駛員從業(yè)資格證考試題庫答案
- 數(shù)據(jù)結構英文教學課件:chapter1 Introduction
- 數(shù)學-九宮數(shù)獨100題(附答案)
- 中國農業(yè)發(fā)展銀行XX支行 關于綜合評價自評情況的報告
- 2010年宣武區(qū)第六屆中小學生地理知識競賽題庫
- 人教三年級數(shù)學下冊表格式全冊
- QC課題提高檢查井周邊壓實
- 應征公民體格檢查表(征兵)
- ACL磁致伸縮液位計說明書
- 優(yōu)秀教研組評比制度及實施細則
- 慈善祖師—太乙救苦天尊經(jīng)文選集拼音版
- 3建筑工程規(guī)劃放線、驗線多測合一成果報告書
評論
0/150
提交評論