版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于18b20的溫度采集系統(tǒng)目錄摘要3一、設(shè)計(jì)任務(wù)和要求3二、系統(tǒng)方案3三、方案設(shè)計(jì)與論證4四、程序流程圖8五:元器件清單19六、結(jié)果分析19七、總結(jié)20八、設(shè)計(jì)體會(huì)與今后的改進(jìn)意見20附錄:.摘要本文介紹了基于ds18b20的溫度實(shí)時(shí)采集與顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)計(jì)中選取單片機(jī)stc89c52作為系統(tǒng)控制中心,數(shù)字溫度傳感器ds18b20作為單片機(jī)外部信號(hào)源,精度較好的數(shù)碼管來顯示溫度。利用單片機(jī)程序來完成對(duì)stc18b20與at89c52的控制,最終實(shí)現(xiàn)溫度的實(shí)時(shí)采集與顯示。 關(guān)鍵詞:ds18b20 stc89c52 溫度采集 數(shù)碼管abstract: this paper introdu
2、ces the temperature based on stc18b20 real-time data acquisition and display system design and implementation. design of stc89c52 as system selection single-chip microcomputer control center, and digital temperature sensor ds18b20 as external sources, microcontroller accuracy than good digital tube
3、to display temperature. using microcontroller program to accomplish ds18b20 and at89c52 single control temperature, and finally achieve the real-time data acquisition and display. keywords: ds18b20 at89c52 single temperature gathering digital tube.一、設(shè)計(jì)任務(wù)和要求1、利用ds18b20實(shí)現(xiàn)溫度采集,并用數(shù)碼管顯示。能實(shí)現(xiàn)溫度上下限的設(shè)置,并能夠超限
4、報(bào)警2、 硬件設(shè)計(jì)部分,根據(jù)設(shè)計(jì)的任務(wù)選定合適的單片機(jī),根據(jù)控制對(duì)象設(shè)計(jì)接口電路。設(shè)計(jì)的單元電路必須有工作原理,器件的作用,分析和計(jì)算過程;3、軟件設(shè)計(jì)部分,根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單;4、原理圖設(shè)計(jì)部分,根據(jù)所確定的設(shè)計(jì)電路,利用protel工具軟件繪制電路原理圖,提供元器件清單。5、編寫報(bào)告。進(jìn)行成果驗(yàn)收。 二、系統(tǒng)方案方案一:由于本設(shè)計(jì)是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計(jì)需要用到a
5、/d轉(zhuǎn)換電路,感溫電路比較麻煩。方案二:進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計(jì)也比較簡單,故采用了方案二。三:方案設(shè)計(jì)與論證1溫度采集模塊方案一:采用瑞士sensirion公司研制的sht11型智能化濕度/溫度傳感器,它采用cmosens專利技術(shù)(cmos和傳感器技術(shù)的融合),外形尺寸小。它具有i2c總線接口,接口電路簡單,并具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、一致性好的特點(diǎn)。
6、其電路原理圖如圖1所示。因其價(jià)格較貴,所以不采用此方案。圖1 sht11電路原理圖方案二:采用dallas公司推出的一線式數(shù)字溫度傳感器ds18b20,該芯片的管腳簡單,無需外圍硬件設(shè)備即可進(jìn)行溫度測量,與單片機(jī)交換信息僅需一根i/o口線,多個(gè)ds18b20可以并聯(lián)到3根或2根線上,實(shí)現(xiàn)多點(diǎn)測溫。cpu只需1根端口線就能與諸多ds18b20通信,占用微處理器的端口較少,可以節(jié)省大量的引線和邏輯電路。溫度測量范圍為-55125,固有測溫分辨率為0.5,符合本設(shè)計(jì)的要求,可編程為912位a/d轉(zhuǎn)換精度,用戶可自設(shè)定非易失性的報(bào)警上下限值,支持多點(diǎn)組網(wǎng)功能。具有負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因
7、發(fā)熱而燒毀,只是不能正常工作而已。被測量溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式輸出,而且其體積較小,方便焊接,因此采用此方案。其電路圖如圖2圖2 溫度采集電路圖2顯示電路模塊單片機(jī)掃描鍵盤得到功率預(yù)置值,通過p0的8位io口控制選定數(shù)碼管,p2的8位io口控制數(shù)碼管顯示,將該值送到led顯示器中顯示。其硬件原理如圖3所示。但此方案設(shè)備體積大,功耗大,因此不建議在實(shí)際應(yīng)用中選用此方案。圖3:顯示模塊3報(bào)警模塊此模塊原理簡單,使用單片機(jī)的一個(gè)io口控制蜂鳴器的響滅。如圖5三極管主要是做驅(qū)動(dòng)用的。因?yàn)閱纹瑱C(jī)的io口驅(qū)動(dòng)能力不夠讓蜂鳴器發(fā)出聲音,所以我們通過三極管放大驅(qū)動(dòng)電流,從而可以讓蜂鳴器發(fā)出聲音,當(dāng)i
8、o口輸出低電平,三極管導(dǎo)通,集電極電流通過蜂鳴器讓蜂鳴器發(fā)出聲音,當(dāng)輸出低電平時(shí),三極管截止,沒有電流流過蜂鳴器,所以就不會(huì)發(fā)出聲音。圖4:報(bào)警模塊4按鍵模塊按鍵模塊主要是為了達(dá)到如下兩個(gè)個(gè)功能:(1) 乙機(jī)任意控制甲機(jī)就行溫度的轉(zhuǎn)換;(2) 在不需要查詢溫度時(shí)乙機(jī)可以控制甲機(jī)斷電,到需要時(shí)在對(duì)其供電,以達(dá)到節(jié)約電能的目的。(3) 控制乙機(jī)自身的開關(guān)以及復(fù)位作用。(4) 原理圖如下:其中,s控制乙機(jī)自身的開關(guān)。s1.s2與k1控制甲機(jī)的開關(guān)。(5) s3.s4控制甲機(jī)是否就行溫度轉(zhuǎn)換。圖5:按鍵模塊5最小系統(tǒng)模塊其工作電路圖6所示圖6 51最小系統(tǒng)模塊電路圖電路設(shè)計(jì)文檔甲機(jī)原理圖乙機(jī)原理圖四:
9、程序流程圖甲機(jī)主程序甲機(jī)主程序的主要功能是等待接收乙機(jī)是否發(fā)送啟動(dòng)溫度轉(zhuǎn)換的命令,是,則開始就行溫度轉(zhuǎn)換,并發(fā)送給乙機(jī)。其程序流程見圖8所示。串口初始化定時(shí)器中斷初始化i=1?y接收數(shù)據(jù)賦予i開定時(shí)器t0i=2?n關(guān)定時(shí)器t0開始源程序如下:void main()tmod=0x21;th1=0xfd;tl1=0xfd;th0=0x3c;tl0=0xb0;tr0=0;tr1=1;scon=0x50;ea=1;et0=1;while(1)while(!ri)i=sbuf;ri=0;if(i=1)tr0=1;else if(i=2)tr0=0; 溫度采集子程序此程序就是啟動(dòng)溫度轉(zhuǎn)換,并返回溫度值。返
10、回溫度值數(shù)據(jù)讀取處理溫度轉(zhuǎn)換18b20初始化源程序如下:uchar readtemperaure()uchar th,tl,zong;init_18b20();xie(0xcc);xie(0x44);delay(125);init_18b20();xie(0xcc);xie(0xbe);tl=du();th=du();zong=(th4);return zong;寫入子程序此程序目的是將命令或數(shù)據(jù)寫入18b20內(nèi),寫入endy數(shù)據(jù)右移if i=0得到顯示數(shù)據(jù)低位i=8寫入初始化n源程序如下:void xie(uchar dat)uchar i;dq=1;delay(1);for(i=8;i0;
11、i-)dq=0;dq=dat&0x01;delay(5);dq=1;dat=1;delay(4);讀取子程序結(jié)束返回右移1位if (i0)讀出dq只賦給變量高位功能是從18b20內(nèi)讀出自己所要得數(shù)據(jù)讀出初始化yn源程序如下:uchar du()uchar temp=0,i;for(i=8;i0;i-)/dq=1;/delay(1);dq=0;temp=1;dq=1;delay(1);if(dq) temp|=0x80;delay(5);return temp;中斷函數(shù)此函數(shù)比較重要,溫度的讀取與傳輸都在此函數(shù)中。th0,tl0初始化t+t=20?t=0;溫度轉(zhuǎn)換yn將溫度發(fā)送給乙機(jī)結(jié)束源程序如
12、下:void zhongd() interrupt 1 th0=0x3c;tl0=0xb0;t+;if(t=20)t=0;i=readtemperaure();sbuf=i;while(!ti);ti=0;ti=0;乙機(jī):主函數(shù):串口通線初始化s1=0?給甲機(jī)發(fā)送01;b=1;ys2=0?y給甲機(jī)發(fā)送02;b=0;s3=0?a取反,當(dāng)a=1時(shí),jdq取反。yb=1?y顯示溫度i30?y驅(qū)動(dòng)蜂鳴器n關(guān)閉蜂鳴器nnnnn源程序如下:void main()uchar a=0,b=0;tmod=0x20;th1=0xfd;tl1=0xfd;/tl0=0xf0;/th0=0xf0; scon=0x50;
13、 tr1=1;/tr0=0;/et0=1;ea=0;es=1;jdq=0;while(1)if(!s1)sbuf=0x01;while(ti=0);ti=0;ea=1;b=1;if(!s2)ea=0;sbuf=0x02;while(ti=0);ti=0; wei=1;p0=0xff;wei=0;b=0;if(!s3)delayms(10);while(!s3);a=!a;jdq=!jdq; if(b)disp(i);if(i=30)fmq=0;else fmq=1;顯示函數(shù):將收到的溫度用數(shù)碼管顯示。num+第num個(gè)數(shù)碼管顯示顯示溫度的第num位延時(shí)5ms源程序如下:void disp(un
14、signed char temperature)static unsigned char num=0;num+;num=num%3;wei=1;p0=tablewnum;wei=0;p0=0x00;duan=1;switch(num)case 2:p0=tabledtemperature%10;break;case 1:p0=tabledtemperature/10%10;break;case 0:p0=tabledtemperature/100;break; default: ;duan=0;p0=0xff;delayms(5);中斷函數(shù):傳輸作用就是為了接收甲機(jī)傳送的溫度。i=subfri
15、=0;結(jié)束源程序如下:void zhongd2()interrupt 4ri=0;i=sbuf;p1=i; 甲機(jī)源程序:#include#define uchar unsigned char #define uint unsigned intvoid disp(unsigned char temperature);sbit dq=p22;unsigned char i=20;uchar t;void delay(uchar time)uchar n=0;while(n0;i-)dq=0;/delay(1);dq=dat&0x01;delay(5);/10dq=1;dat=1;delay(4);
16、uchar du()uchar temp=0,i;for(i=8;i0;i-)/dq=1;/delay(1);dq=0;temp=1;dq=1;delay(1);if(dq) temp|=0x80;delay(5);return temp; uchar readtemperaure()uchar th,tl,zong;init_18b20();xie(0xcc);xie(0x44);delay(125);init_18b20();xie(0xcc);xie(0xbe);tl=du();th=du();zong=(th4);return zong;void main()tmod=0x21;th1
17、=0xfd;tl1=0xfd;th0=0x3c;tl0=0xb0;tr0=1;tr1=1;scon=0x50;ea=0;et0=1;while(1)while(!ri)i=sbuf;ri=0;if(i=1)ea=1;else if(i=2)ea=0; / disp(i);void zhongd() interrupt 1 th0=0x3c;tl0=0xb0;t+;if(t=20)t=0;i=readtemperaure();sbuf=i;while(!ti);ti=0;ti=0;乙機(jī)源程序:#include#define uchar unsigned char #define uint uns
18、igned int code uchar tabled=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; code uchar tablew=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;sbit duan=p26; sbit wei=p27;sbit s1=p34;sbit s2=p35;sbit s3=p36;sbit fmq=p23;sbit jdq=p24;uchar i=0;void delayms(unsigned char z)unsigned char
19、 i;while(z-)for(i=112;i0;i-); void disp(unsigned char temperature)static unsigned char num=0;num+;num=num%3;wei=1;p0=tablewnum;wei=0;p0=0x00;duan=1;switch(num)case 2:p0=tabledtemperature%10;break;case 1:p0=tabledtemperature/10%10;break;case 0:p0=tabledtemperature/100;break; default: ;duan=0;p0=0xff;
20、delayms(5);void main()uchar a=0,b=0;tmod=0x20;th1=0xfd;tl1=0xfd;/tl0=0xf0;/th0=0xf0; scon=0x50; tr1=1;/tr0=0;/et0=1;ea=0;es=1;jdq=0;while(1)if(!s1)sbuf=0x01;while(ti=0);ti=0;ea=1;b=1;if(!s2)ea=0;sbuf=0x02;while(ti=0);ti=0; wei=1;p0=0xff;wei=0;b=0;if(!s3)delayms(10);while(!s3); jdq=!jdq; if(b)disp(i)
21、;if(i=30)fmq=0;else fmq=1;void zhongd2()interrupt 4ri=0;i=sbuf; 五:元器件清單遠(yuǎn)程溫度采集系統(tǒng)元器件清單元器件名稱數(shù)量晶振11.0592m2陶瓷電容33pf4電解電容22uf1電阻4.7k13單片機(jī)89s522傳感器ds18b201彈性按鍵4蜂鳴器1自鎖開關(guān)1繼電器srd-05vdc-sl-c1三極管pnp6數(shù)碼管hs-5101bs24pcb板2塊導(dǎo)線若干六、項(xiàng)目測試報(bào)告時(shí)間:2011.11.26 11:20:68 地點(diǎn):實(shí)訓(xùn)樓404教室條件:室溫。測試結(jié)果:1:各按鍵部分能達(dá)到預(yù)期效果。按鍵模塊合格2:能正常顯示室溫,用手捏住1
22、8b20時(shí),溫度能上升。溫度與鐘表上一致,溫度采集與顯示模塊合格。3:當(dāng)人為使溫度超過四十度時(shí),蜂鳴器能發(fā)出警報(bào)聲。報(bào)警模塊合格。七、總結(jié)經(jīng)過三個(gè)星期的學(xué)校,過程曲折可謂一語難盡。在此期間我們也失落過,也曾一度熱情高漲。從開始時(shí)滿富盛激情到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)滴滴無不令我回味無長。生活就是這樣,汗水預(yù)示著結(jié)果也見證著收獲。勞動(dòng)是人類生存生活永恒不變的話題。通過實(shí)習(xí),我才真正領(lǐng)略到“艱苦奮斗”這一詞的真正含義,我才意識(shí)到老一輩電子設(shè)計(jì)為我們的社會(huì)付出。我想說,設(shè)計(jì)確實(shí)有些辛苦,但苦中也有樂,在如今單一的理論學(xué)習(xí)中,很少有機(jī)會(huì)能有實(shí)踐的機(jī)會(huì),但我們可以,而且設(shè)計(jì)也是一個(gè)團(tuán)隊(duì)的任務(wù),一起的工
23、作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學(xué)里一年的相處還趕不上這十來天的合作,我感覺我和同學(xué)們之間的距離更加近了;我想說,確實(shí)很累,但當(dāng)我們看到自己所做的成果時(shí),心中也不免產(chǎn)生興奮; 正所謂“三百六十行,行行出狀元”。我們同樣可以為社會(huì)作出我們應(yīng)該做的一切,這有什么不好?我們不斷的反問自己。也許有人不喜歡這類的工作,也許有人認(rèn)為設(shè)計(jì)的工作有些枯燥,但我們認(rèn)為無論干什么,只要人生活的有意義就可。社會(huì)需要我們,我們也可以為社會(huì)而工作。既然如此,那還有什么必要失落呢?于是我們決定沿著自己的路,執(zhí)著的走下去。同時(shí)我認(rèn)為我們的工作是一個(gè)團(tuán)隊(duì)的工作,團(tuán)隊(duì)需要個(gè)人,個(gè)人也離不開團(tuán)
24、隊(duì),必須發(fā)揚(yáng)團(tuán)結(jié)協(xié)作的精神。某個(gè)人的離群都可能導(dǎo)致導(dǎo)致整項(xiàng)工作的失敗。實(shí)習(xí)中只有一個(gè)人知道原理是遠(yuǎn)遠(yuǎn)不夠的,必須讓每個(gè)人都知道,否則一個(gè)人的錯(cuò)誤,就有可能導(dǎo)致整個(gè)工作失敗。團(tuán)結(jié)協(xié)作是我們實(shí)習(xí)成功的一項(xiàng)非常重要的保證。而這次實(shí)習(xí)也正好鍛煉我們這一點(diǎn),這也是非常寶貴的。對(duì)我們而言,知識(shí)上的收獲重要,精神上的豐收更加可喜。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次學(xué)習(xí)必將成為我人生旅途上一個(gè)非常美好的回憶!通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在
25、設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多專業(yè)知識(shí)問題,最后在老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在老師的身上我們學(xué)也到很多實(shí)用的知識(shí),在次我們表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!八、設(shè)計(jì)體會(huì)與今后的改進(jìn)意見本系統(tǒng)采用采用單片機(jī)和數(shù)字溫度轉(zhuǎn)換器ds18b20 來實(shí)現(xiàn),具有主機(jī)接口簡單,結(jié)構(gòu)靈活,調(diào)試方便等特點(diǎn),實(shí)驗(yàn)結(jié)果表明這種測溫系統(tǒng)轉(zhuǎn)換速度快、精度高。 回顧起此次課程設(shè)計(jì),我
26、們感慨頗多,從選題到定稿,從理論到實(shí)踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多東西。這次實(shí)習(xí)不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上沒有的知識(shí)。通過這次課程設(shè)計(jì),我們得到了一些工程項(xiàng)目知識(shí),懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中,我們經(jīng)常遇到問題,可以說是困難重重,這畢竟第一次做,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計(jì)之后,一定把以
27、前所學(xué)過的知識(shí)重新溫故。雖然兩個(gè)周的課程設(shè)計(jì)過去了,但此次課程設(shè)計(jì)暴露了我不少問題,雖然在課堂上我學(xué)了不少東西,但當(dāng)付諸于實(shí)際時(shí)卻摸不著頭腦,所以我們不但要學(xué)習(xí)知識(shí),還要在實(shí)踐中運(yùn)用知識(shí),做到游刃有余。不管是在以后的工作或?qū)W習(xí)中,我都會(huì)全力以赴,積極思考,勇于探索,不斷創(chuàng)新。在設(shè)計(jì)中遇到了很多編程方面的調(diào)試問題還沒有解決,例如溫度沒有正負(fù)、溫度上下限的限制。我想在以后我會(huì)繼續(xù)查找各方面資料、請(qǐng)教老師、與同學(xué)共同探討,一起來解決這些問題。同時(shí)在以后的日子里我會(huì)慢慢改正在這次課程設(shè)計(jì)中所犯的錯(cuò)誤、把學(xué)過的知識(shí)掌握的更加牢固。參考文獻(xiàn):單片機(jī)應(yīng)用技術(shù)王靜霞電子工業(yè)出版社互聯(lián)網(wǎng)上相關(guān)資料附錄:核心元件
28、的功能(本節(jié)資料來源互聯(lián)網(wǎng))stc89c52單片機(jī)簡介 stc89c52是一種帶8k字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(fperom-flash programable and erasable read only memory )的低電壓,高性能comos8的微處理器,俗稱單片機(jī)。該器件采用atmel搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。單片機(jī)總控制電路如下圖41:圖41單片機(jī)總控制電路1.時(shí)鐘電路stc89c52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳rxd和txd分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的
29、時(shí)鐘電路如圖42(a) 所示,在rxd和txd引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212mhz之間選擇,電容值在530pf之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。外部方式的時(shí)鐘電路如圖42(b)所示,rxd接地,txd接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12mhz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘p1和p2,供單片機(jī)使用。示,rxd接地,txd接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12mhz的方波信號(hào)。片內(nèi)
30、時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘p1和p2,供單片機(jī)使用。rxd接地,txd接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12mhz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘p1和p2,供單片機(jī)使用。(a)內(nèi)部方式時(shí)鐘電路 (b)外部方式時(shí)鐘電路圖42時(shí)鐘電路2.復(fù)位及復(fù)位電路(1)復(fù)位操作復(fù)位是單片機(jī)的初始化操作。其主要功能是把pc初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。除pc之外,復(fù)位操作還對(duì)其他一些
31、寄存器有影響,它們的復(fù)位狀態(tài)如表一所示。表一 一些寄存器的復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)pc0000htcon00hacc00htl000hpsw00hth000hsp07htl100hdptr0000hth100hp0-p3ffhscon00hipxx000000bsbuf不定ie0x000000bpcon0xxx0000btmod00h(2)復(fù)位信號(hào)及其產(chǎn)生rst引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。若使用頗率為6mhz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖43所示:圖43復(fù)位信
32、號(hào)的電路邏輯圖整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(rst)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的s5p2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,其電路如圖44(a)所示。這佯,只要電源vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與vcc電源接通而實(shí)現(xiàn)的,其電路如圖44(b)所示;而按鍵脈沖復(fù)位則是利用rc微分電路產(chǎn)生的
33、正脈沖來實(shí)現(xiàn)的,其電路如圖44(c)所示:(a)上電復(fù)位 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位圖44復(fù)位電路上述電路圖中的電阻、電容參數(shù)適用于6mhz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。本系統(tǒng)的復(fù)位電路采用圖44(b)上電復(fù)位方式。stc89c52具體介紹如下: 主電源引腳(2根)vcc(pin40):電源輸入,接5v電源gnd(pin20):接地線外接晶振引腳(2根)xtal1(pin19):片內(nèi)振蕩電路的輸入端xtal2(pin20):片內(nèi)振蕩電路的輸出端控制引腳(4根)rst/vpp(pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ale/prog(
34、pin30):地址鎖存允許信號(hào)psen(pin29):外部存儲(chǔ)器讀選通信號(hào)ea/vpp(pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令??删幊梯斎?輸出引腳(32根)stc89c52單片機(jī)有4組8位的可編程i/o口,分別位p0、p1、p2、p3口,每個(gè)口有8位(8根引腳),共32根。po口(pin39pin32):8位雙向i/o口線,名稱為p0.0p0.7p1口(pin1pin8):8位準(zhǔn)雙向i/o口線,名稱為p1.0p1.7 p2口(pin21pin28):8位準(zhǔn)雙向i/o口線,名稱為p2.0p2.7 p3口(pin10pin17)
35、:8位準(zhǔn)雙向i/o口線,名稱為p3.0p3.7stc89c52主要功能如表二所示。表二 stc89c52主要功能主要功能特性兼容mcs51指令系統(tǒng)8k可反復(fù)擦寫flash rom32個(gè)雙向i/o口256x8bit內(nèi)部ram3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24mhz2個(gè)串行中斷可編程uart串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫中斷口線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能2、ds18b20美國dallas半導(dǎo)體公司的數(shù)字化溫度傳感器ds1820是世界上第一片支持 一線總線接口的溫度傳感器,在其內(nèi)部使用了在板(on-b0ard)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在
36、形如一只三極管的集成電路內(nèi)。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念?,F(xiàn)在,新一代的ds18b20體積更小、更經(jīng)濟(jì)、更靈活。使你可以充分發(fā)揮“一線總線”的優(yōu)點(diǎn)。新的一線器件ds18b20體積更小、適用電壓更寬、更經(jīng)濟(jì)。ds18b20可以程序設(shè)定912位的分辨率,精度為0.5c??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在eeprom中,掉電后依然保存。ds18b20的性能是新一代產(chǎn)品中最好的!性能價(jià)格比也非常出色! 繼一線總線的早期產(chǎn)品后,ds1820開辟了溫度傳感器技術(shù)的新概念。ds18b20使電壓、特性及封裝有
37、更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測溫系統(tǒng)。 ds18b20也支持一線總線接口,測量溫度范圍為-55c+125c,在-10+85c范圍內(nèi),精度為0.5c?,F(xiàn)場溫度直接以一線總線的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費(fèi)電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3.0v5.5v的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。2.1 ds18b20的主要特性(1)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電(2)獨(dú)特的單線接口方式,ds18b20在與微處理器連接時(shí)僅需要一
38、條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊(3)ds18b20支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫(4)ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)(5)溫范圍55125,在-10+85時(shí)精度為0.5(6)可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫 (7)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 (8)測量結(jié)果直接輸出數(shù)字溫度信號(hào),以一線總線串行傳送給cpu,
39、同時(shí)可傳送crc校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 (9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。2.2 ds18b20的內(nèi)部結(jié)構(gòu)ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl、配置寄存器。ds18b20引腳定義: (1) gnd為電源地; (2) dq為數(shù)字信號(hào)輸入/輸出端; (3) vdd為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)-2.3 ds18b20工作原理ds18b20的讀寫時(shí)序和測溫原理與ds1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 ds1
40、8b20測溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置
41、值。圖3: ds18b20測溫原理框圖ds18b20有4個(gè)主要的數(shù)據(jù)部件: (1)光刻rom中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼。64位光刻rom的排列是:開始8位(28h)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該ds18b20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(crc=x8+x5+x4+1)。光刻rom的作用是使每一個(gè)ds18b20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)ds18b20的目的。(2)ds18b20中的溫度傳感器可完成對(duì)溫度的測量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/lsb形式表達(dá),其中
42、s為符號(hào)位。表1: ds18b20溫度值格式表這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18b20的兩個(gè)8比特的ram中,二進(jìn)制中的前面5位是符號(hào)位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。例如+125的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0191h,-25.0625的數(shù)字輸出為ff6fh,-55的數(shù)字輸出為fc90h。表2: ds18b20溫度數(shù)據(jù)表(3)ds18b20溫度傳感器的存儲(chǔ)器ds18b20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存ram和一個(gè)非
43、易失性的可電擦除的eepram,后者存放高溫度和低溫度觸發(fā)器th、tl和結(jié)構(gòu)寄存器。(4)配置寄存器該字節(jié)各位的意義如下:tmr1r011111 表3: 配置寄存器結(jié)構(gòu)低五位一直都是1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在ds18b20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。r1和r0用來設(shè)置分辨率,如下表所示:(ds18b20出廠時(shí)被設(shè)置為12位)r1r0分辨率溫度最大轉(zhuǎn)換時(shí)間009位93.75ms0110位187.5ms1011位375ms1112位750ms 表4: 溫度分辨率設(shè)置表2.4高速暫存存儲(chǔ)器高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)
44、換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表1所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位s=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)s=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表2是對(duì)應(yīng)的一部分溫度值。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。寄存器內(nèi)容字節(jié)地址溫度值低位 (ls byte)0溫度值高位 (ms byte)1高溫限值(th)2低溫限值(tl)3配置寄存器4保留5保留6保留7crc校驗(yàn)值8 表5: ds18b20暫存寄存器分布根據(jù)ds18b20的通訊協(xié)議,主機(jī)(單片機(jī))控制ds18b20完成溫度轉(zhuǎn)換
45、必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)ds18b20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,這樣才能對(duì)ds18b20進(jìn)行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)ds18b20收到信號(hào)后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號(hào)表示復(fù)位成功。指 令約定代碼功 能讀rom33h讀ds1820溫度傳感器rom中的編碼(即64位地址)符合 rom55h發(fā)出此命令之后,接著發(fā)出 64 位 rom 編碼,訪問單總線上與該編碼相對(duì)應(yīng)的 ds1820 使之作出響應(yīng),為下一步對(duì)該 ds1820 的讀寫作準(zhǔn)備。搜索 rom0foh用于
46、確定掛接在同一總線上 ds1820 的個(gè)數(shù)和識(shí)別 64 位 rom 地址。為操作各器件作好準(zhǔn)備。跳過 rom0cch忽略 64 位 rom 地址,直接向 ds1820 發(fā)溫度變換命令。適用于單片工作。告警搜索命令0ech執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才做出響應(yīng)。 表6: rom指令表指 令約定代碼功 能溫度變換44h啟動(dòng)ds1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長為750ms(9位為93.75ms)。結(jié)果存入內(nèi)部9字節(jié)ram中。讀暫存器0beh讀內(nèi)部ram中9字節(jié)的內(nèi)容寫暫存器4eh發(fā)出向內(nèi)部ram的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。復(fù)制暫存器48h
47、將ram中第3 、4字節(jié)的內(nèi)容復(fù)制到eeprom中。重調(diào) eeprom0b8h將eeprom中內(nèi)容恢復(fù)到ram中的第3 、4字節(jié)。讀供電方式0b4h讀ds1820的供電模式。寄生供電時(shí)ds1820發(fā)送“ 0 ”,外接電源供電 ds1820發(fā)送“ 1 ”。 表7: ram指令表2.5 ds18b20的應(yīng)用電路ds18b20測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。下面就是ds18b20幾個(gè)不同應(yīng)用方式下的測溫電路圖:2.5.1 ds18b20寄生電源供電方式電路圖如下面圖4所示,在寄生電源供電方式下,ds18b20從單線信號(hào)線上汲取能量:在信號(hào)線dq處于高電平期間把能量儲(chǔ)存在內(nèi)部電容里,在信號(hào)線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。獨(dú)特的寄生電源方式有三個(gè)好處:(1)進(jìn)行遠(yuǎn)距離測溫時(shí),無需本地電源(2)可以在沒有常規(guī)電源
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《室內(nèi)設(shè)計(jì)空間組織》課件
- 《電源系統(tǒng)的建?!氛n件
- 《病理心理學(xué)》課件
- 通史版2025屆高考?xì)v史二輪總復(fù)習(xí)第二編考前突破突破一史學(xué)入門與史料研讀課件
- 大學(xué)生網(wǎng)絡(luò)安全教育
- 單位管理制度集合大合集人員管理十篇
- 單位管理制度合并選集【職員管理篇】十篇
- 單位管理制度分享匯編職員管理篇
- 單位管理制度分享大全職工管理
- 單位管理制度范例選集職工管理篇十篇
- 山東省濟(jì)南市2023-2024學(xué)年高二年級(jí)上冊(cè)1月期末英語試題(解析版)
- 初中體育教案【完整版】七年級(jí)
- 2024-2030年中國城市供熱行業(yè)市場前景預(yù)測及發(fā)展趨勢預(yù)判報(bào)告
- 2024年計(jì)算機(jī)二級(jí)MS Office考試題庫500題(含答案)
- 人教版七年級(jí)上冊(cè)《生物》期末試卷(完整)
- 福建中考英語作文15分評(píng)分標(biāo)準(zhǔn)
- 智慧磐石工程建設(shè)方案
- 等保2完整版本.0介紹及建設(shè)流程
- 蘇教版科學(xué)六年級(jí)上冊(cè)期末測試卷含完整答案(各地真題)
- 市場法評(píng)估企業(yè)價(jià)值
- DL-T 1476-2023 電力安全工器具預(yù)防性試驗(yàn)規(guī)程
評(píng)論
0/150
提交評(píng)論