簡(jiǎn)易數(shù)字溫度計(jì)單片機(jī)設(shè)計(jì)方案_第1頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)單片機(jī)設(shè)計(jì)方案_第2頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)單片機(jī)設(shè)計(jì)方案_第3頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)單片機(jī)設(shè)計(jì)方案_第4頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)單片機(jī)設(shè)計(jì)方案_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 /34溫度采集模塊設(shè)計(jì)為本溫度采集系統(tǒng)開(kāi)發(fā)的軟件程序,可以對(duì)DS1621內(nèi)部的寄存器編程控制DS1621的工作方式,以及從這些數(shù)據(jù)寄存器讀取溫度值,最后把經(jīng)過(guò)單片機(jī)數(shù)據(jù)處理后的溫度送到LED上顯示。AT89C51扮演著上傳下達(dá)的角色,單片機(jī)端的程序采用了C語(yǔ)言。DS1621一側(cè)的通信程序?qū)⒗貌⑿卸丝赑3.0和P3.1來(lái)模擬I2C總線協(xié)議,總線上的通信通過(guò)程序來(lái)實(shí)現(xiàn)。整個(gè)軟件采用了模塊化的程序設(shè)計(jì)方法。為了實(shí)現(xiàn)AT89C51和DS1621之間I2C協(xié)議之下的串行通信,編寫(xiě)了一些專(zhuān)用子程序。這些子程序段包括:符號(hào)定義、AT89C51的端口初始化、啟動(dòng)信號(hào)時(shí)序產(chǎn)生、停止信號(hào)時(shí)序產(chǎn)生、發(fā)送字節(jié)、讀

2、取字節(jié)、讀取溫度、顯示。系統(tǒng)電路在上電后開(kāi)始工作,最先程序單片機(jī)進(jìn)行初始化設(shè)置,然后單片機(jī)利用模擬I2C總線對(duì)DS1621進(jìn)行尋址。單片機(jī)在接收到DS1621應(yīng)答后,緊接著單片機(jī)利用命令A(yù)Ah、ACh、EEh、22h)將設(shè)置/狀態(tài)寄存器的值通過(guò)FC總線寫(xiě)入DS1621狀態(tài)寄存器,該系統(tǒng)中把DS1621設(shè)置為連續(xù)溫度轉(zhuǎn)換工作方式,之后DS1261在單片控制下進(jìn)行溫度測(cè)量,然后DS1261把所采集的溫度傳輸給單片機(jī),最后單片機(jī)把溫度數(shù)據(jù)送到LED上顯示。詳細(xì)程序可見(jiàn)附錄2。溫度計(jì)算模塊設(shè)計(jì)計(jì)算溫度子程序?qū)腄S1621中讀取的溫度值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖5

3、-2所示。計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值I結(jié)束丿圖5-2溫度計(jì)算流程圖串行總線編程在本系統(tǒng)中,單片機(jī)AT89C51作為主控器件,3個(gè)DS1621作為被控器,所以我們只要考慮主方式下的狀態(tài)處理模塊,即考慮AT89C51主發(fā)送和主接收方式下的狀態(tài)處理模塊。該電路中為了簡(jiǎn)化電路設(shè)計(jì)在I2C總線的時(shí)鐘和數(shù)據(jù)上各加了一個(gè)上拉電阻,以獲取一定的上拉電流使信號(hào)采集可靠。本系統(tǒng)中掛在I2C總線上的各電路模塊都有其節(jié)點(diǎn)地址。AT89C51作為主控器其節(jié)點(diǎn)地址無(wú)意義,作為被控器的3個(gè)DS1621都有其節(jié)點(diǎn)地址,其地址為1001A2A1A0,其中,1001是器件編號(hào),已由芯片生產(chǎn)廠家規(guī)定,A2A1A0

4、為DS1621的3個(gè)引腳,在電路中分別接高低電平?jīng)Q定2個(gè)DS1621的不同地址。2個(gè)DS1621的地址分別為10010001001010。本系統(tǒng)中的I2C總線的尋址方式為的廣播尋址,即AT89C51對(duì)掛在I2C總線上所有的DS1621的廣播呼叫尋址。AT89C51發(fā)出開(kāi)始信號(hào)S后的第一個(gè)字節(jié)確定由AT89C51所選擇的一個(gè)DS1621的地址,然后在第一個(gè)字節(jié)以后開(kāi)始數(shù)據(jù)傳送。具體實(shí)現(xiàn)尋址的方法是:由AT89C51發(fā)出啟動(dòng)位S后緊跟著發(fā)送從器件DS1621的7位地址碼卩S+SLA,在節(jié)點(diǎn)地址尋址中SLA為被尋址的從節(jié)點(diǎn)地址,主控設(shè)備在發(fā)送數(shù)據(jù)前,在時(shí)鐘為高時(shí),在數(shù)據(jù)線上發(fā)送一個(gè)由高到低的信號(hào)來(lái)表

5、示開(kāi)始傳送數(shù)據(jù),DS1621接收到開(kāi)始信號(hào)時(shí),移入后續(xù)8位高7位地址線和一個(gè)R/W位)來(lái)確定進(jìn)行如何操作,R/W位為0表示寫(xiě),為1表示讀。讀寫(xiě)操作完成后,在時(shí)鐘為高時(shí),在數(shù)據(jù)線上發(fā)送一個(gè)由低到高的信號(hào)表示傳送結(jié)束。具體數(shù)據(jù)格式如圖5-3所示,時(shí)序如圖5-4所示。ZSLAVEADDRESS/;Zxxx宀/zzz/AA/Adatatnansfernsd(write)口bytes*acknowledge)圖5-3串行通信的數(shù)據(jù)格式圖5-4串行通信的時(shí)序圖軟硬件調(diào)試結(jié)果分析本設(shè)計(jì)應(yīng)用Proteus及Kei1軟件,首先根據(jù)自己設(shè)計(jì)的電路圖用Proteus軟件畫(huà)出電路模型,關(guān)于這個(gè)軟件的使用通過(guò)查一些資料

6、和自己的摸索學(xué)習(xí);然后用Kei1軟件對(duì)所編寫(xiě)的程序進(jìn)行編譯、鏈接,如果沒(méi)有錯(cuò)誤和警告便可生成程序的hex文件,調(diào)試好程序后將目標(biāo)文件導(dǎo)入Proteus的AT89C51芯片中進(jìn)行軟件調(diào)試。最后進(jìn)行三路溫度的對(duì)比測(cè)試。數(shù)字溫度計(jì)的仿真電路圖如圖6-1所示。1XTAL1pnrvAinP口.1/AD1PCI1XTAL1pnrvAinP口.1/AD1PCI2ifi.V2SCTAIZpnfamP口.期D*PHSA05PHJ9ADSFSTpn7/hITTpzn-HEPNNRfPE:EMP3A11ALEP2.WAGp?nPZ.&.H.HPS.TiASP1DP3ZVHXDpipiKilllllpqTiiTiF1

7、.fP3.4HDP1pasmP1JSP3.&1jTfKP1.7p.TiTTF圖6-1仿真圖仿真結(jié)果分析:不斷調(diào)整三路DS1621的溫度值,發(fā)現(xiàn)LED顯示器上的數(shù)值和DS1621屏幕上的標(biāo)準(zhǔn)值相差無(wú)幾,在誤差允許的范圍之內(nèi)。當(dāng)某一路的溫度不在50-80范圍時(shí),兩個(gè)LED同時(shí)發(fā)光,表示告警信息。經(jīng)調(diào)試,證明開(kāi)發(fā)者最終設(shè)計(jì)出結(jié)構(gòu)合理、美觀,主要電氣指標(biāo)良好,性能穩(wěn)定可靠的電路。總結(jié)不知不覺(jué)中,一周的課程設(shè)計(jì)實(shí)習(xí)已經(jīng)接近尾聲了??赡苁羌倨诳斓降木壒剩偢杏X(jué)這次實(shí)習(xí)特別短暫。此刻,真是感慨萬(wàn)千?。‖F(xiàn)在我可以自豪的說(shuō),這次實(shí)習(xí)我達(dá)到了預(yù)期的目標(biāo)。因?yàn)樵趯?shí)習(xí)期間,我每天都在接觸新的東西,每天都會(huì)有新的問(wèn)題等

8、待我去探討去解決,每天都有新收獲?;叵胝n設(shè)第一天,我們做點(diǎn)電腦前,不知道自己能干點(diǎn)什么,對(duì)于指導(dǎo)老師的講解也是云里霧里的。因?yàn)轭^一回接觸Proteus和Kei1這兩個(gè)軟件。但是我相信,只要自己用心了,沒(méi)有辦不成的事。于是,我靜下心來(lái),仔細(xì)研究老師下發(fā)的教程。我珍惜每一次的上機(jī)機(jī)會(huì),勤加練習(xí),課下積極研究手冊(cè)和相關(guān)書(shū)籍。兩天過(guò)后,才算有點(diǎn)眉目了。到這時(shí)心里才算稍微安穩(wěn)了一些,再加上以前學(xué)過(guò)名為Prote1的電路設(shè)計(jì)軟件,所以我的自信心加強(qiáng)了。在這次設(shè)計(jì)過(guò)程中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)電路的能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而

9、加以彌補(bǔ)。在此感謝我們的郝志華,田紅霞,張國(guó)旭老師,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪;這次簡(jiǎn)易數(shù)字溫度計(jì)設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開(kāi)老師您的細(xì)心指導(dǎo)。而您開(kāi)朗的個(gè)性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計(jì)。同時(shí)感謝對(duì)我?guī)椭^(guò)的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同學(xué)的友誼。參考文獻(xiàn)馬忠梅等單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)北京:北京航空航天大學(xué)出版社,2007周堅(jiān)單片機(jī)C語(yǔ)言輕松入門(mén)北京:北京航空航天大學(xué)出版社,2007何立民單片機(jī)應(yīng)用技術(shù)大全北京:北京航空航天大學(xué)出版社,1994袁希光傳感器技術(shù)手冊(cè)

10、北京:國(guó)防工業(yè)出版社,19865馮英.傳感器電路原理與制作.成都:成都科技大學(xué)出版社,19976行開(kāi)先,葉濟(jì)民.熱敏電阻器.北京:機(jī)械工業(yè)出版社,19817丁元杰.單片微機(jī)原理及應(yīng)用第二版).機(jī)械工業(yè)出版社,2005.28張有德,趙志英.單片微型機(jī)原理、應(yīng)用于實(shí)驗(yàn).復(fù)旦大學(xué)出版社,2000.49趙新民,王祁.智能儀器設(shè)計(jì)基礎(chǔ).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999附錄A多點(diǎn)溫度采集系統(tǒng)電路原理圖XTXLiPD.1/AD1P口NHKZXTA12PD.AD*-PDJVAD6PJ9AKP3TPD.TiAtiTPZH.hEPZ.1/ASpziH.nP23A11ALEP2.AEEP2iAGP2.&H.U

11、P2.7iH.tP1DPanRXDp11PT1HXnp17PTIMIIIP1.H-P3.4HIP1F3SmP1JSpi.&ijrnrP1.7P3.7iTnr-附錄BC語(yǔ)言源代碼/七段碼數(shù)據(jù)輸出口/掃描數(shù)據(jù)輸出口/七段碼數(shù)據(jù)輸出口/掃描數(shù)據(jù)輸出口/小數(shù)點(diǎn)控制/串行時(shí)鐘/串行數(shù)據(jù)sbitDIN=P0a7osbitScl=P3A0osbitSda=P3Al。sbitalarm=PlA7。sbitalarm2=P1A6。uinti。uinth。uinttemp。uchardath2。ucharff2,ff1=0,t3=0ucharcode#definediscanP2/溫度輸入口#includereg

12、51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedint#defineDiSdataP0dis_712=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x40。共陰LED段碼表0123456789滅-ucharcodescan_con5=0 xfd,0 xfb,0 xf7,0 xef,0 xdf。/LED顯示控制,對(duì)應(yīng)0的LED有效uchardatadisplay5=0 x00,0 x00,0 x00,0 x00,0 x002。/

13、顯示單元數(shù)據(jù),共6個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用uchardatadisplay15=0 x01,0 x02,0 x03,0 x04,0 x052。uchardataDD4=0 x90,0 x92,0 x94。/voiddelay_us(uintt/延時(shí)函數(shù)for(。t0。t-。/scan(/LED掃描函數(shù)uchark。for(k=0。kv5。k+discan=scan_conk。控制位送P2口DiSdata=dis_7displayk。數(shù)據(jù)位送PO口if(k=3DIN=1。elseDIN=O。/小數(shù)點(diǎn)顯示delay_us(15O。/voiddelay(void/延時(shí)函數(shù)_nop_(。_nop_(。_n

14、op_(。_nop_(。_nop_(。_nop_(。/voidi_start(void岡開(kāi)始Sda=1。Scl=1。delay(。Sda=O。delay(。Scl=O。/voidi_stop(void岡終止Sda=O。Scl=1。delay(。Sda=1。delay(。Scl=0。Sda=0。/biti_clock(void/應(yīng)答信號(hào)bitsample。Scl=1。delay(。sample=Sda。_nop_(。_nop_(。Scl=0。delay(。return(sample。/voidi_ack(voidSda=0。i_clock(。Sda=1。/biti_send(uchari_dat

15、a岡發(fā)送uchari。for(i=0。iv8。i+Sda=(bit(i_data&0 x80。i_data=i_data。Sda=1。return(i_clock(。/uchari_receive(void/Ic接收uchari_data=0。uchari。for(i=0。iv8。i+i_data。Scl=1。delay(。i_data|=Sda。Scl=0。delay(。return(i_data。/bitstart_temperature_T(unsignedchard/開(kāi)始轉(zhuǎn)換命令uchart1。t1=DDd。i_start(。if(i_send(t1if(i_send(0 xeei_s

16、top(。delay(。return(1。elsei_stop(。delay(。return(0。elsei_stop(。delay(。return(0。/bitread_temperature_T(unsignedchar*p,unsignedchardunsignedchart1,t2。t1=DDd。t2=DDd+0 x01。i_start(。if(i_send(t1if(i_send(0 xaai_start(。if(i_send(t2*(p+1=i_receive(。i_ack(。*p=i_receive(。i_stop(。delay(。i_send(t1。i_send(0 x22。d

17、elay(。return(1。elsei_stop(。delay(。return(0。elsei_stop(。delay(。return(0。elsei_stop(。delay(。return(0。bitds1621(unsignedchardunsignedchart1。t1=DDd。i_start(。if(i_send(t1if(i_send(0 xaci_start(。if(i_send(0 x0ai_stop(。delay(。return(1。elsei_stop(。delay(。return(0。elsei_stop(。delay(。return(0。elsei_stop(。dela

18、y(。return(0。/voidchuli_temp(unsignedchardunsignedchardatah,f=1,datal,t。while(ft=start_temperature_T(d。if(tread_temperature_T(dath,d。f=0。delay_us(20。datah=dathl。datal=dathO。if(datalalarml=l。elsealarml=0。if(datah80alarm2=l。elsealarm2=0。display0=d。f=0。if(datah&0 x80!=0f=l。displayl=l0。datah=datah+l。datah=datah。datah=datah+l。display2=(datah/l0%l0。display3=datah%l0。if(datal&0 x80=0 x80display4=5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論