版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
基于單片機數(shù)字溫濕度控制器的設計摘要本設計詳細地闡述了以單片機為處理器的溫濕度自動測控系統(tǒng)的硬件、軟件及可靠性設計等問題。該系統(tǒng)以ATMEI公司的AT89S52單片機為核心,由傳感檢測電路、信號處理電路、外設(鍵盤、顯示器、驅(qū)動等)配置接口電路、輸出控制電路、以及報警電路等構(gòu)成。它能夠?qū)崿F(xiàn)多路采集輸入和多路輸出控制功能,通過傳感器實現(xiàn)自動閉環(huán)控制和開環(huán)控制等控制模式,并具有系統(tǒng)故障報警和參數(shù)越限報警功能。硬件設計方面,空氣濕度的檢測采用經(jīng)濟實用的HIH-3610相對濕度傳感器,它是熱固聚脂電容式具有信號處理功能的傳感器;空氣的溫度檢測,采用了美國達拉斯(DALLAS)半導體公司推出的應用單總線技術的數(shù)字溫度傳感器。該器件將半導體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。既方便又經(jīng)濟。鍵盤、顯示局部分別采用了獨立式按鍵和LED數(shù)碼管;故障以及越限報警;采用壓電式蜂鳴器;輸出控制電路由三極管、繼電器等組成。軟件設計采用了目前流行的模塊化編程方法,軟件的開發(fā)全部采用了實時性很強的匯編語言。主要程序模塊包括:溫度模塊;鍵盤顯示程序模塊;A/D轉(zhuǎn)換程序;看門狗程序模塊等。為了提高系統(tǒng)的可靠性,在軟硬件設計方面均采取了相應的抗干擾措施。關鍵詞:AT89S52單片機;濕度傳感器;溫度傳感器;A/D轉(zhuǎn)換。如需此論文Word版本,單片機程序/單片機技術支持,請訪問:嵌入式應用軟件園。TheDesignofDigitalTemperatureandHumidityControllerBasedonSingle-chipMicrocomputerABSTRCTThisdesigndescribedinAutomaticTemperatureandHumidityControlSystemwhichuseMCUforitsprocessor,andsolvethehardware、softwareanddesignreliabilityandsoon.ThissystemuseAT89S52forCPUwhichbelongtoATMELcompany,andincludingsensingcircuit、signalprocessingcircuit、peripheralinterfacecircuitconfiguration(keyboards,monitors,harddrives,etc)、outputcontrolcircuit、AlarmCircuitandsoon.ThesystemcanSamplemulti-channelinputsandmulti-channeloutputscontrolfunction,Throughsensortoachieveautomaticclosed-loopcontrolandOpen-loopcontrolmode,meanwhileitcanAlarmwhenthereissomethingwrongwiththesystemandparameterslimit.Inhardwaredesignaspect,theairhumidityexaminationusestheeconomicalpracticalHIH-3610relativehumiditysensor.Whichisthethermosettinggathersthefatelectriccapacityanyhavinghavethesignalprocessingfunctionsensor,airtemperatureexaminationhasusedthesinglemainlinetechnologydigitaltemperaturesensorwhichAmericanDallas(DALLAS)SemiconductorCompanypromotes.Thiscomponentsemiconductorsetswarmsensitivecomponent,A/Dswitch,thememoryandsoondoonaverysmallintegratedcircuitchip.Whichisfacilitatedandtheeconomic.Thekeyboard,andthedemonstrationparthaveusedthefreestandingpressedkeyandtheLEDnumericalcodeseparately;Thebreakdownaswellastheoverstepreporttothepolice;usesthepiezoelectricitytypebuzzer;theoutputcontrolcircuitiscomposedofthetriode,therelayandsoon.Theofsoftwaredesignhasusedthepresentpopularmodulationprogrammingmethod,thesoftwaredevelopedhascompletelyusedverystrongassemblylanguage.Themainprogrammoduleincludes:Temperaturemodule;Keyboarddemonstrationprogrammodule;A/Dtransformationprocedure;Watch-dogprogrammoduleandsoon..Inordertoenhancethesystemthereliability.Thisarticlehastakenthecorrespondingantjammingmeasureinthesoftwareandhardwaredesignaspect.Keywords:AT89S52monolithicintegratedcircuit.Humiditysensor;Temperaturesensor;A/Dtransforms.目錄引言圖2-1系統(tǒng)結(jié)構(gòu)圖下面就對各個功能模塊或芯片進行詳細介紹。2.1AT89S52單片機及其晶振電路功能特性描述AT89S52是一種低功耗、高性能CMOS八位微控制器,具有8K在系統(tǒng)可編程Flash存儲器,使用ATMEL公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許ROM在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使其為眾多嵌入式控制應用系統(tǒng)提供靈活的解決方案。其主要特性為:●與MCS-51單片機產(chǎn)品兼容;●8K字節(jié)在系統(tǒng)可編程Flash存儲器;●1000次擦寫周期;●全靜態(tài)操作:0Hz~33Hz;●三級加密程序存儲器;●32個可編程I/O口線;●三個16位定時器/計數(shù)器;●八個中斷源;●全雙工UART串行通道;●低功耗空閑和掉電模式;●掉電后中斷可喚醒;●看門狗定時器;●雙數(shù)據(jù)指針;●掉電標識符。AT89S52芯片的引腳圖見圖2-2P1.0P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST93.0/RXD103.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL118XTAL219Vss20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039Vcc40圖2-2AT89S52的引腳圖VCC:電源Vss:地P0口:8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”在Flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IILP2口:具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動四個TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕表2-1P1口引腳的第二功能引腳號第二功能P1.0T2〔定時器/計數(shù)器T2的外部計數(shù)輸入〕,時鐘輸出P1.1T2EX〔定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制〕P1.5MOSI〔在系統(tǒng)編程用〕P1.6MISO〔在系統(tǒng)編程用〕P1.7SCK〔在系統(tǒng)編程用〕在Flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動四個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IILP3口亦作為AT89S52特殊功能〔第二功能〕使用,如下表所示。在Flash編程和校驗時,P3口也接收一些控制信號。表2-2P3口引腳的第二功能引腳號第二功能P3.0RXD〔串行輸入〕P3.1TXD〔串行輸出〕P3.2〔外部中斷0〕P3.3〔外部中斷1〕P3.4T0〔定時器0外部輸入〕P3.5T1〔定時器1外部輸入〕P3.6〔外部數(shù)據(jù)存儲器寫選通〕P3.7〔外部數(shù)據(jù)存儲器讀選通〕RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊存放器AUXR〔地址8EH〕上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE/:控制信號〔ALE〕是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳〔〕也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1〞,ALE操作將無效。這一位置“1〞,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否那么,ALE將被微弱拉高。這個ALE使能標志位〔地址為8EH的SFR的第0位〕的設置對微控制器處于外部執(zhí)行模式下無效。:外部程序存儲器選通信號〔〕是外部程序存儲器選通信號。當89S52從外部程序存儲器執(zhí)行外部代碼時,在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,將不被激活。/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,必須接地。為執(zhí)行內(nèi)部程序指令,應該接VCC。在Flash編程期間,也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.2AT89S52晶振連接電路AT89S52單片機有一個用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1和XTAL2分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來一起構(gòu)成自激振蕩器。從外部時鐘源驅(qū)動器件的話,XTAL2可以不接,而從XTAL1接入,如圖2-4。在本設計系統(tǒng)中采用的是外部振蕩電路連接法,如圖2-3所示。圖2-3內(nèi)部振蕩電路連接圖圖2-4外振振蕩電路連接圖〔石英晶振C1,C2=30PF±10PF陶瓷諧振器C1,C2=40PF±10PF〕2.2看門狗復位電路當系統(tǒng)CPU不能正常工作時,有可能會造成死機、信息喪失、運行不穩(wěn)定等故障。為了解決這些問題,實現(xiàn)系統(tǒng)平安可靠、穩(wěn)定、實時運行,可以采用集可編程看門狗、電壓監(jiān)控、E2PROM等功能于一身的X5045芯片。這種組合設計有效地減少了硬件電路的復雜程度。X5045中的看門狗對系統(tǒng)提供了保護功能。當系統(tǒng)發(fā)生故障而超過設置時間時,電路中的看門狗將通過RESET信號向CPU做出反響。X5045提供了三個時間值供用戶選擇使用。它所具有的電壓監(jiān)控功能還可以保護系統(tǒng)免受低電壓的影響,當電源電壓降到允許范圍以下時,系統(tǒng)將復位,直到電源電壓返回到穩(wěn)定值為止。X5045的存儲器與CPU可通過串行通信方式接口。引腳介紹:X5045的引腳圖可參見圖2-5。它共有8個引腳:圖2-5X5045的引腳圖表2-3引腳功能描述引腳名稱功能描述1/WDI芯片選擇輸入:當是高電平時,芯片末選中,并將SO置為高阻態(tài)。器件處于標準的功耗模式,除非一個向非易失單元寫的周期開始。在是高電平時,將拉低將使器件處于選擇狀態(tài),器件將工作于功耗狀態(tài)。在上電后任何操作之前,必須要有一個高變低的過程??撮T狗輸入:在看門狗定時器超時并產(chǎn)生復位之前,一個加在WDI引腳上的由高到低的電平變化將復位看門狗定時器。2SO串行輸出:SO是一個推/拉串行數(shù)據(jù)輸出引腳,在讀數(shù)據(jù)時,數(shù)據(jù)在SCK脈沖的下降沿由這個引腳送出。3寫保護:當引腳是低電平時,向X5045中寫的操作被禁止,但是其它的功能正常。當引腳是高電平時,所有操作正常,包括寫操作。如果在是低的時候,變?yōu)榈碗娖?,那么會中斷向X5045中寫的操作,但是,如果此時內(nèi)部的非易失性寫周期己經(jīng)初始化了,變?yōu)榈碗娖讲黄鹱饔谩?VSS地。5SI串行輸入:SI是串行數(shù)據(jù)輸入端,指令碼、地址、數(shù)據(jù)都通過這個引腳進行輸入。在SCK的上升沿進行數(shù)據(jù)的輸入,并且高位(MSB)在前。6SCK串行時鐘:串行時鐘的上升沿通過SI引腳進行數(shù)據(jù)的輸入,下降沿通過SO引腳進行數(shù)據(jù)的輸出。7RESET復位輸出:RESET下是一個開漏型輸出引腳。只要Vcc下降到最小允許Vcc值,這個引腳就會輸出高電平,一直到Vcc上升超過最小允許值之后200ms。同時它也受看門狗定時器控制,只要看門狗處于激活狀態(tài),并且WDI引腳上電平保持為高或者為低超過了定時的時間,就會產(chǎn)生復位信號。引腳上的一個下降沿將會復位看門狗定時器。由于這是一個開漏型的輸出引腳,所以使用時必須接上拉電阻。8VCC正電源。X5045的狀態(tài)存放器描述了器件的當前狀態(tài),各位意義如下所示。表2-4X5045狀態(tài)存放器各位定義7654321000WD1WD0BL1BL0WELWIP其中,WD1、WD0是看門狗定時時間設置位;BL1、BL0是存儲單元寫保護區(qū)設置位;WEL是只讀標志,1說明寫使能開關翻開;WIP也是只讀標志,1代表芯片內(nèi)部正處于寫周期。電復位時,各位都被清零。X5045芯片功能包括以下4種:〔1〕上電復位控制。在對X5045通電時,RESET引腳輸出有效的復位信號,并保持至少200ms,使CPU有效復位。〔2〕電源電壓監(jiān)控。當檢測到電源電壓低于內(nèi)部門檻電壓VTRIP時,RESET輸出復位信號,直至電源電壓高于VTRIP并保持至少200ms,復位信號才被撤消。VTRIP的出廠值根據(jù)芯片型號不同共有5個級別的電壓范圍。對于需要電源電壓精確監(jiān)控的應用,用戶可以搭建編程電路,對芯片內(nèi)VTRIP電壓進行微調(diào)。〔3〕看門狗定時器。芯片內(nèi)部狀態(tài)存放器的WD1、WD0是看門狗定時設置位,通過狀態(tài)存放器寫指令WRSR修改這兩個標志位,就能在三種定時間隔中進行選擇或關閉定時器。對看門狗的復位由輸入電平的下降沿完成。下表是WD1、WD0組合的含義。表2-5WD1、WD0組合定義WD1WD0看門狗定時值001.4s01600ms10200ms11禁止看門狗工作〔4〕串行E2PROM。芯片內(nèi)含512字節(jié)存儲單元,10萬次可擦寫,數(shù)據(jù)保持時間100年,并設計了3種保護方式防止誤寫。包括:=1\*GB3①寫保護引腳,當引腳被拉低時,內(nèi)部存儲單元狀態(tài)存放器都禁止寫入;=2\*GB3②存儲區(qū)域?qū)懕Wo模式,通過對狀態(tài)存放器的BL1、BL0位的設置,可以選擇對不同的存儲區(qū)域進行寫保護;=3\*GB3③在進行任何寫操作前都必須翻開寫使能開關,而且在上電初始化寫操作完成時,寫使能開關自動關閉。顯然,在幾方面的保護之下,產(chǎn)生誤寫的可能性極小,下表是BL1、BL0組合的含義。表2-6BL1、BL0組合定義BL1BL0寫保護的單元地址00沒有保護01180H~1FFH10100H~1FFH11000H~1FFH〔1〕WREN和WRDI是寫使能開關的開/關指令。它們都是單字節(jié)指令?!?〕RDSR和WRSR是狀態(tài)存放器的讀/寫指令。在從SI輸入指令后,RDSR的執(zhí)行結(jié)果,即狀態(tài)存放器內(nèi)容須從SO讀出;而WRSR需要緊接著輸入修改數(shù)據(jù)?!?〕READ和WRITE是存儲單元的讀/寫指令。輸入指令后〔指令的位三用于選擇存儲器的上半?yún)^(qū)和下半?yún)^(qū)〕,接著輸入低八位地址,最后就可以連續(xù)讀出或?qū)懭霐?shù)據(jù)。其中,讀指針和寫指針的工作方式完全不同,讀指針的全部8位用來計數(shù),0FFH溢出后變成00H;寫指針只用最低兩位計數(shù),XXXXXX11B溢出后變成XXXXXX00B,所以連續(xù)寫的實際結(jié)果是在4個單元中反復寫入。另外,由于E2PROM的寫入時間長,所以在連續(xù)兩條寫指令之間應讀取WIP狀態(tài),只有內(nèi)部寫周期結(jié)束時才可輸入下一條寫指令。芯片內(nèi)部共有6條指令,如下表所列。表2-7X5045內(nèi)部指令命令名稱命令格式內(nèi)
容WREN00000110翻開寫使能開關WRDI00000100關閉寫使能開關RDSR00000101讀狀態(tài)存放器WRSR00000001寫狀態(tài)存放器READ0000A8011讀存儲單元WRITE0000A8010寫存儲單元對X5045的操作是通過4根口線、SCK、SI和SO進行同步串行通信來完成的。X5045與AT89S52單片機的連接電路圖見圖2-14。SCK是外部輸入的同步時鐘信號,在對芯片進行寫入指令或數(shù)據(jù)時,時鐘前沿將SI引腳信號輸入;在讀取數(shù)據(jù)時,時鐘后沿將數(shù)據(jù)位輸出到SO引腳上。數(shù)據(jù)的輸入、輸出都是高位在先。圖2-6X5045與AT89S52單片機連接電路圖綜上所述,并基于圖2-6電路產(chǎn)生復位信號的條件,只要滿足以下任意一個條件,就將使系統(tǒng)產(chǎn)生復位,迫使程序從起點執(zhí)行?!?〕該芯片在其上電后自產(chǎn)生復位信號,這樣就實現(xiàn)單片機的上電自動復位;〔2〕當電源VCC低于規(guī)定值時,〔如VCC=5V,那么規(guī)定值為4.25~2.5V〕,將產(chǎn)生復位信號。這樣就實現(xiàn)系統(tǒng)電源的掉電復位;〔3〕當程序在編程選擇的時間里沒有訪問X5045時,即沒有一個喂狗語句,那么看門狗〔WDT〕將起作用,RST將產(chǎn)生復位信號,迫使單片機復位。2.3溫度信號采集模塊DS18B20芯片簡介DS18B20是美國達拉斯(DALLAS)半導體公司推出的應用單總線技術的數(shù)字溫度傳感器。該器件將半導體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。本設計中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比擬和考慮后決定的,主要有以下幾方面的原因:〔1〕系統(tǒng)的特性:測溫范圍為-55℃~+125℃,測溫精度為士0.5℃;溫度轉(zhuǎn)換精度〔2〕系統(tǒng)本錢:由于計算機技術和微電子技術的開展,新型大規(guī)模集成電路功能越來越強大,體積越來越小,而價格也越來越低。一支DS18B20的體積與普通三極管相差無幾,價格只有十元人民幣左右?!?〕系統(tǒng)復雜度:由于DS18B20是單總線器件,微處理器與其接口時僅需占用1個I/O端口且一條總線上可以掛接幾十個DS18B20,測溫時無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復雜度,減少工程的施工量。使測溫系統(tǒng)的線路結(jié)構(gòu)設計和硬件開銷大為簡化?!?〕系統(tǒng)的調(diào)試和維護:由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時因為DS18B20是全數(shù)字元器件,故障率很低,抗干擾性強,因此,減少了系統(tǒng)的日常維護工作。DS18B20采用3腳封裝如圖2-7所DS18B20DS18B20VDDDQGNDVDDDQGND圖2-7DS18B20引腳圖引腳說明:1.GND接地2.DQ數(shù)字輸入/輸出3.VDD可選的電源DS18B20的溫度測量DS18B20的核心功能是其數(shù)字溫度傳感器,其溫度與數(shù)字量的關系如表2-8所示。溫度傳感器的測量結(jié)果被用戶定義為9,10,11或12位,其各自的準確度為0.5、0.25、0.125、0.0625。DS18B20測得溫度數(shù)據(jù)在溫度存放器中被存為帶標志位的16位數(shù),標志位S表示溫度是正是負,為正那么S=0,為負那么S=1,如果DS18B20設定為12位結(jié)果,溫度存放器中所有位將包含有數(shù)據(jù);對于11位結(jié)果,0位未定義;10位結(jié)果,0位和1位未定義;9位結(jié)果位2、位1和位0未定義。表2-9是DS18B20內(nèi)部存儲器,表2-10是DS18B20溫度存儲格式與配置存放器控制字的格式。由表2-8可知,檢測溫度由兩個字節(jié)組成,字節(jié)1的高5位S代表符號位,字節(jié)0的低4位是小數(shù)局部,中間7位是整數(shù)局部。字節(jié)4是配置存放器控制字的格式,當主機發(fā)出溫度轉(zhuǎn)換命令〔44H〕時,啟動溫度轉(zhuǎn)換過程,轉(zhuǎn)換時間最長750ms。主機通過讀存放器命令〔BEH〕,將溫度值讀出。通過寫存放器功能命令,改變分辨率的設置。表2-8溫度和數(shù)字量的關系溫度數(shù)字輸出〔二進制〕數(shù)字輸出〔十六進制〕+1250000011111010000B07D0H+850000010101010000B0550H+25.06250000000110010001B0191H+10.1250000000010100010B00A2H+0.50000000000001000B0008H00000000000000000B0000H-0.51111111111111000BFFF8H-10.1251111111101011110BFF5EH-25.06251111111001101111BFE6FH-551111110010010000BFC90H表2-9DS18B20內(nèi)部存儲器字節(jié)ROMRAM0產(chǎn)品代號〔28H〕溫度低8位148位器件序列號溫度高8位248位器件序列號TH348位器件序列號TL448位器件序列號配置存放器548位器件序列號保存648位器件序列號保存7CRC保存8CRCE2PROMTHTL配置存放器表2-10溫度存儲格式與配置存放器控制字格式Bite7Bite6Bite5Bite4Bite3Bite2Bite1Bite0字節(jié)0232221202-12-22-32-4字節(jié)1SSSSS2-62-52-4字節(jié)40R1R011111溫度報警信號DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH,TL作比擬。假設T>TH或T<TL,那么將該器件內(nèi)的報警標志置位,并對主機發(fā)出的告警搜索命令作出響應。因此,多只DS18B20同時測量溫度并進行報警搜索,一旦某測溫點越限,主機利用報警搜索命令,即可識別正在報警的器件,并讀出其序列號。溫度傳感器的登記每一個DS18B20在接入系統(tǒng)工作前,必須先進行登記注冊。在每臺分機上都有一個登記注冊端口,DS18B20在接入系統(tǒng)前,先接到登記注冊端口,確認后,CPU將DS18B20的物理位址(8個BYTE)讀出,然后存入到E2PROM中剛剛設定的邏輯地址上,DS18B20在E2PROM中邏輯地址定義見表2-11。表2-11存儲器中邏輯地址定義A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A000P1P2P3L1L2L3D1D2D3D4XXXX表中各位表示的意義如下:A15A14存儲操作標志(為固定值00)A13A12AA10A9AA7A6AA3A2ADS18B20的通信協(xié)議數(shù)字式溫度傳感器和模擬傳感器最大的區(qū)別,是將溫度信號直接轉(zhuǎn)化成數(shù)字信號,然后通過串行通信的方式輸出。因此掌握DS18B20的通信協(xié)議是使用該器件的關鍵。所有的DS18B20器件要求采用嚴格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復位脈沖、應答脈沖時隙;寫“0〞寫“1〞時隙;讀“0〞讀“1〞時隙。與DS18B20的通信,是通過操作時隙完成單總線上的數(shù)據(jù)傳輸。發(fā)送所有的命令和數(shù)據(jù)時,都是字節(jié)的低位在前,高位在后?!?〕復位和應答脈沖時隙每個通信周期起始于微控制器發(fā)出的復位脈沖,其后跟DS18B20發(fā)出的應答脈沖。在寫時隙期間,主機向DS18B20器件寫入數(shù)據(jù),而在讀時隙期間,主機讀入來自18B20的數(shù)據(jù)。在每一個時隙,總線只能傳輸一位數(shù)據(jù)?!?〕寫時隙當主機將單總線DQ從邏輯高〔空閑狀態(tài)〕拉為邏輯低時,即啟動一個寫時隙。所有的寫時隙必須在60~120us完成,且在每個循環(huán)之間至少需要1us的恢復時間。寫0和寫1時隙如圖2-4所示。在寫0時隙期間,微控制器在整個時隙中將總線拉低,而寫1時隙期間,微控制器將總線拉低,然后在時隙起始后15us之后釋放總線。圖2-8寫圖2-8寫“0〞和寫“1〞時隙寫“0”時隙1us〈Trec〈∞〉1us寫“160~120usVP–––––––––––––––––––––––––––––GND––––––––––––––––DS18B20采樣DS18B20采樣15us45us15us45us(3)讀時隙DS18B20器件僅在主機發(fā)出讀時隙時才向主機傳輸數(shù)據(jù),所以在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能夠傳輸數(shù)據(jù)。所有讀時隙至少需要60us,且在兩次獨立的讀時隙之間,至少需要1us的恢復時間。每個讀時隙都有主機發(fā)起,至少拉低總線1us。讀時隙如圖2-5所示,在主機發(fā)起讀時隙之后,DS18B20器件才開始在總線上發(fā)送“0”或“1”,假設DS18B20發(fā)送“1”,那么保持總線為高電平。假設發(fā)送“0”,那么拉低總線當發(fā)送“0”讀“0〞時隙1us〈Trec〈∞讀“1〞時隙圖2-9圖2-9讀‘0’和‘1’時隙VP––––––––––––––––––––––––––––主機采樣〉1us主機采樣〉1us15us45us15usDS18B20與單片機的接口電路DS18B20只有三根外引線:單線數(shù)據(jù)傳輸總線端口DQ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時VDD接地,它是通過內(nèi)部電容在空閑時從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應的完成溫度轉(zhuǎn)換的時間較長。這種情況下,用單片機的一個I/O口來完成對DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應的完成溫度測量的時間較短。在本設計中采用外部供電方式實現(xiàn)DS18B20傳感器與單片機的連接,其接口電路如圖2-10所示。圖2-10溫度傳感器DS18B20與單片機的連接2.4濕度的信號采集模塊濕度的檢測方法,一般采用濕敏元件檢測,分為濕敏電阻和濕敏電容兩種情況?;诒敬卧O計,我就采用了HIH-3610相對濕度傳感器它是一種熱固聚脂電容式傳感器。采集到的濕度信號再配以進行適當?shù)姆糯?,?jīng)過A/D轉(zhuǎn)換送至單片機。實現(xiàn)濕度的顯示與控制。電路連接圖如圖2-11所示。其濕度傳感器我就一個濕敏電阻代替一下。圖2-11濕度檢測模塊與單片機的連接圖HIH-3610相對濕度傳感器Honeywell相對濕度傳感器是熱固聚脂電容式具有信號處理功能的傳感器,線形放大輸出、工廠標定,獨特的多曾結(jié)構(gòu)能非常好地抵環(huán)境的侵蝕,諸如濕氣、塵埃、贓物、油、及一些化學品。傳感器結(jié)構(gòu)包括一和熱固聚合物保護層的平板電容,可抵抗臟污、灰塵、油物及其他侵入。其實物圖如圖2-12所示圖2-12HIH3610濕度傳感器實物圖特點:低本錢,大批量OEM設計0.05″和0.1″兩種引腳間距可選精度2%,激光修正互換性止5%低功耗設計:200謬安驅(qū)動電流快速反響:15秒穩(wěn)定性好、低漂移、抗化學腐蝕性能HIH-3610濕度傳感器是為大批量OEM設計、具有儀表級測量性能、低本錢SIP封裝。線形放大的電壓輸出可使器件直接與控制器或其他器件一致性好,減少和消除OEM生產(chǎn)標定費用,并且廠家可提供單個傳感器標定數(shù)據(jù)。HIH-3610濕度傳感器的輸出電壓與相對濕度值有一定的比例關系,圖2-13所示給出了幾種溫度下的線形關系。圖2-13輸出電壓與相對濕度曲線由圖可知:在0℃時相對濕度與電壓的關系電壓=0.0357*相對濕度+0.8在25℃時相對濕度與電壓的關系電壓=0.0310*相對濕度+0.8在85℃時相對濕度與電壓的關系、電壓=0.070*相對濕度+0.82.4.2HA17358F運算放大器運算放大器在電路中發(fā)揮重要的作用,其應用已經(jīng)延伸到汽車電子、通信、消費等各個領域,并將在支持未來技術方面扮演重要角色。傳感器+運算放大器+A/D+處理器是運算放大器的典型應用電路,在這種應用中,一個典型的問題是傳感器提供的電流非常低,在這種情況下,必須完成信號放大,使之適用于單片機的數(shù)據(jù)采集系統(tǒng)。而放大器的種類很多,不同傳感器放大器的選擇有著不同的選擇標準,基于本次設計可以配備統(tǒng)一的電源等個方面考慮,HA1358F放大器是個很好的選擇,而且可以雙重操作,廣泛用于控制設備中。HA17358其引腳圖如2-14所示。圖2-14HA17358引腳圖HA17358F其引腳功能如下:引腳主要功能1運放A輸出2運放A反相輸入3運放A同相輸入4地5運放B同相輸入6運放B反相輸入7運放B輸出8電源Vcc2.4.3A/D轉(zhuǎn)換電路本電路設計A/D轉(zhuǎn)換局部主要核心局部就是我精選的高性價比的A/D轉(zhuǎn)換芯片TLC549,以下進行詳細介紹1.A/D轉(zhuǎn)換芯片介紹TLC549是德州儀器公司生產(chǎn)的8位串行A/D轉(zhuǎn)換器芯片,可與通用微處理器、控制器通過I/OCLOCK、、DATA三條口線進行串行接口。具有4MHz片內(nèi)系統(tǒng)時鐘和軟、硬件控制電路,轉(zhuǎn)換時間最長17μs,TLC548允許的最高轉(zhuǎn)換速率為45500次/s,TLC549為40000次/s??偸д{(diào)誤差最大為±0.5LSB,典型功耗值為6mW。采用差分參考電壓高阻輸入,抗干擾,可按比例量程校準轉(zhuǎn)換范圍,VREF-接地,VREF+-VREF-≥1V,可用于較小信號的采樣。TLC549引腳圖如下列圖所示:DATAOUTI/OCLOCK45GNDDDATAOUTI/OCLOCK45GNDDREF—ANALOGIN236781REF+VCC圖2-15TLC549引腳圖TLC549的極限參數(shù)如下:電源電壓:6.5V;輸入電壓范圍:0.3V~VCC+0.3V;輸出電壓范圍:0.3V~VCC+0.3V;峰值輸入電流(任一輸入端):±10mA;總峰值輸入電流(所有輸入端):±30mA;工作溫度:0℃~70℃TLC549I:-40℃~85℃TLC549M:-55℃~125℃2.TLC549工作原理TLC549有片內(nèi)系統(tǒng)時鐘,該時鐘與I/OCLOCK是獨立工作的,無須特殊的速度或相位匹配。當CS為高時,數(shù)據(jù)輸出(DATAOUT)端處于高阻狀態(tài),此時I/OCLOCK不起作用。這種CS控制作用允許在同時使用多片TLC549時,共用I/OCLOCK,以減少多路(片)A/D并用時的I/O控制端口。一組通常的控制時序為:(1)將置低。內(nèi)部電路在測得下降沿后,再等待兩個內(nèi)部時鐘上升沿和一個下降沿后,然后確認這一變化,最后自動將前一次轉(zhuǎn)換結(jié)果的最高位(D7)位輸出到DATAOUT端上。(2)前四個I/OCLOCK周期的下降沿依次移出第2、3、4和第5個位(D6、D5、D4、D3),片上采樣保持電路在第4個I/OCLOCK下降沿開始采樣模擬輸入。(3)接下來的3個I/OCLOCK周期的下降沿移出第6、7、8(D2、D1、D0)個換位。(4)最后,片上采樣保持電路在第8個I/OCLOCK周期的下降沿將移出第6、7、8(D2、D1、D0)個轉(zhuǎn)換位。保持功能將持續(xù)4個內(nèi)部時鐘周期,然后開始進行32個內(nèi)部時鐘周期的A/D轉(zhuǎn)換。第8個I/OCLOCK后,必須為高,或I/OCLOCK保持低電平,這種狀態(tài)需要維持36個內(nèi)部系統(tǒng)時鐘周期以等待保持和轉(zhuǎn)換工作的完成。如果為低時I/OCLOCK上出現(xiàn)一個有效干擾脈沖,那么微處理器/控制器將與器件的I/O時序失去同步;假設為高時出現(xiàn)一次有效低電平,那么將使引腳重新初始化,從而脫離原轉(zhuǎn)換過程。在36個內(nèi)部系統(tǒng)時鐘周期結(jié)束之前,實施步驟(1)~(4),可重新啟動一次新的A/D轉(zhuǎn)換,與此同時,正在進行的轉(zhuǎn)換終止,此時的輸出是前一次的轉(zhuǎn)換結(jié)果而不是正在進行的轉(zhuǎn)換結(jié)果。假設要在特定的時刻采樣模擬信號,應使第8個I/OCLOCK時鐘的下降沿與該時刻對應,因為芯片雖在第4個I/OCLOCK時鐘下降沿開始采樣,卻在第8個I/OCLOCK的下降沿開始保存。圖2-16所示為TLC549工作的時序圖。圖2-16TLC549工作時序圖3.TLC549與單片機的連接本設計采用TLC549與單片機AT89S52相連實現(xiàn)電信號的轉(zhuǎn)換與采集,TLC549具有轉(zhuǎn)換誤差小,與單片機接口簡單的特點,連接圖如下列圖2-17圖2-17TLC549與單片機AT89S52的連接圖2.5鍵盤與顯示電路LED顯示電路設計在單片機系統(tǒng)中,發(fā)光二極管(LED)常常作為重要的顯示手段,它既可以顯示系統(tǒng)的狀態(tài),又可以顯示數(shù)字和字符。由于LED顯示器的驅(qū)動電路簡單,易于實現(xiàn)且價格低廉,因此是工業(yè)儀表和實驗室儀器常用的一種輸出顯示設備。LED顯示器是LED顯示器的一種,它是將多個發(fā)光二極管集中在一塊,構(gòu)成阿拉伯數(shù)字筆畫的形狀。這些發(fā)光二極管共用一個或兩個公共極,為數(shù)字信息的顯示提供了方便。LED顯示器的驅(qū)動方法分靜態(tài)和動態(tài)兩種。所謂動態(tài)是指LED顯示器上的信息是通過不斷地刷新(即周期性的驅(qū)動)維持的。動態(tài)驅(qū)動的優(yōu)點是連線比靜態(tài)方式大為減少,它是數(shù)碼顯示器常用的一種方式。靜態(tài)驅(qū)動編程簡單,但占用I/O口較多。本設計采用74LS164驅(qū)動4位LED顯示的動態(tài)掃描驅(qū)動方式。1、芯片介紹74LS164是8位串入并出移位存放器,其芯片引腳如圖2-18所示。圖2-1874LS164引腳圖引腳功能如下:A與B—串行數(shù)據(jù)輸入,每個輸入可以作為另一個輸入的高電平有效輸入,在使用時,兩個輸入端必須相連,而不同輸入端必須接高電平。CLK—時鐘信號,高電平有效。MR/—清零復位端,低電平有效。Q0-Q7—數(shù)據(jù)輸出端。74LS164的真值表為表2-12示:表2-1274LS164的真值表輸入輸出MR/CLKABQAQBQCQDQEQFQGQHLXXXLLLLLLLLHLXXQA0QB0QC0QD0QE0QF0QG0QH0HHHHQAnQBnQCnQDnQEnQFnQGnHLXLQAnQBnQCnQDnQEnQFnQFnHXLLQAnQBnQCnQDnQEnQFnQFn在使用時將A、B并接作為數(shù)據(jù)的串行輸入端DIO,CLK作為時鐘端。串行輸入時,先將數(shù)據(jù)在A、B端準備好,在CLK端產(chǎn)生一上升沿,那么一位數(shù)據(jù)移至最低位Q0;再將下一位數(shù)據(jù)準備好后,在CLK端產(chǎn)生下一上升沿,那么下一位數(shù)據(jù)移至次低位Q1,其余位順次從低位到高位移動。這種時序符合串行器件特性,即把74LS164當成一典型串行外設,用具有串行外設接口的單片機很簡單地傳入數(shù)據(jù),也可以用普通I/O口模擬其時序?qū)?shù)據(jù)移入。74LS164為一般TTL器件,其并行輸出端(Q0~Q7)帶拉電流負載能力很弱(約400uA),在帶電流負載時,每位可允許最大電流8mA,所以在電路連接時,用其并出端連LED的“段〞,而“位〞那么需要驅(qū)動控制。2、74LS164與AT89S52連接74LS164與AT89S522-19所示,圖中由于P0口的驅(qū)動能力有限,在此我們采用二極管來增加其驅(qū)動能力。LED動態(tài)顯示的原理:首先以串行方式向LED顯示器數(shù)據(jù)端口發(fā)送第一個8位數(shù)據(jù),這時發(fā)送位碼數(shù)據(jù)到P0口,此時由于P0.4位低電平而其他口都為高電平,因此LED1數(shù)碼管顯示該數(shù)碼。這樣我們可以發(fā)送第二個數(shù)據(jù),同樣我們應使其對應的位碼為低電平且保證其它位為高電平。以此類推對各顯示器進行掃描,顯示器分時輪流工作。顯然每次只有一個顯示器顯示,但由于人的視覺暫留現(xiàn)象我們?nèi)詴杏X所有的顯示器都在同時顯示。它的優(yōu)點是:硬件電路簡單,占用較少的I/O口,但其傳輸數(shù)速度較慢。圖2-19顯示電路的連接2.5.2前面設計的控制面板中帶一個鍵盤,這里的鍵盤我并沒有用專業(yè)的鍵盤。因為如果利用通訊接口連接上了帶有專業(yè)鍵盤的上位機,這里設計的專業(yè)鍵盤就顯得華而不實,因此我用了幾個簡單的按鍵將它們拼成了一個簡易的鍵盤。為提高CPU的效率,鍵盤采用中斷方式。按鍵對單片機的接口電路圖如圖2-20所示。圖2-20按鍵對單片機的接口電路圖2.6輸出驅(qū)動接口電路將繼電器接到單片機AT89S52的P2.0、P2.1口,開關輸出控制加濕或者加溫裝置電路,單片機將采集到的溫濕度數(shù)字量與預設的進行基準上下限進行運算比擬處理后,從P2.0、P2.1口輸出驅(qū)動電磁繼電器,對溫濕度裝置進行調(diào)節(jié),以及電源通斷等控制。驅(qū)動電路與單片機的連接電路如圖2-21所示圖2-21驅(qū)動電路與單片機的連接第3章軟件程序設計單片機的程序設計有其自身的特點。在單片機系統(tǒng)中,硬件與軟件緊密結(jié)合,由于硬件電路的設計不具有通用性,所以必須根據(jù)具體的硬件電路來設計對應的軟件,硬件設計的優(yōu)劣直接影響到軟件設計的難易,軟件設計的優(yōu)劣又直接影響到硬件的發(fā)揮。在很多時候,軟件可以替代硬件的功能,當然,需要付出額外占用CPU時間的代價。軟件程序的設計是根據(jù)硬件電路圖的連接和各個元器件的功能進行設計。在編寫軟件時,可以按各個程序的功能將軟件細分為各個功能模塊,再通過主程序的調(diào)用來實現(xiàn)整個軟件系統(tǒng)。3.1主程序流程圖整個軟件局部的主程序包含有以下子程序:讀實時DS18B20子程序模塊,看門狗電路子程序,A/D轉(zhuǎn)換子程序,A/D處理程序模塊(PID算法)。LED顯示子程序,鍵盤掃描子程序利用中斷來實現(xiàn)。主流程圖如圖3-1所示。系統(tǒng)初始化系統(tǒng)初始化調(diào)用看門狗子程序讀實時18B20調(diào)用實時溫濕度與設定值比擬程序模塊〔PID算法〕置相應標志位調(diào)用根據(jù)標志位輸出繼電器動作程序模塊結(jié)束調(diào)用A/D轉(zhuǎn)換子程序調(diào)用A/D處理程序圖3-1主程序流程圖3.2定時器中斷效勞程序流程圖設計在本次設計的系統(tǒng)中使用了兩個中斷效勞程序:定時器T0中斷和定時器T1中斷。T0中斷效勞程序那么是處理鍵盤設定子程序。T1中斷效勞程序?qū)崿F(xiàn)的功能是動態(tài)顯示時點亮LED數(shù)碼管。T0中斷效勞子程序在T0中斷程序中,調(diào)用鍵盤掃描子程序,如有按鍵按下,就進入鍵值處理子程序,執(zhí)行完畢后就重裝T0計數(shù)初值,然后中斷返回。鍵盤所用開關通常為機械性開關,利用了機械觸點的閉合和斷開來描述不同的工作狀態(tài),由于機械觸點的彈性作用,一個按鍵開關在閉合及斷開的瞬間均伴隨有一連串的抖動,抖動時間一般為10ms~20ms。鍵盤的抖動會引起一次按鍵被誤讀屢次,為了確保CPU對一次按鍵動作只確認一次按鍵,必須消除抖動的影響。消除抖動的措施有硬件和軟件兩種方法。本設計采用軟件延時的方法進行消除抖動。在第一次檢測到有按鍵按下時,執(zhí)行一段10ms左右的延時子程序,再確認該鍵電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平那么確認為真正有鍵按下,從而消除了抖動的影響。其鍵盤掃描流程圖如圖3-2所示。圖3-2鍵盤中斷流程圖圖3-2鍵盤中斷流程圖入棧保護有鍵按下?調(diào)延時20ms子程序有鍵閉合?轉(zhuǎn)各鍵處理子程序恢復現(xiàn)場返回NNY讀鍵值鍵盤掃描T1中斷效勞程序設計本次設計采用的是動態(tài)顯示,其原理為:首先以串行方式由DAT口向LED顯示器數(shù)碼端口發(fā)送第一個8位數(shù)據(jù),這時發(fā)送位碼數(shù)據(jù)到P0口,此時由于P0為低電平而其它口都為高電平,因此只有8個發(fā)光二極管工作。這樣我們可以發(fā)送第二個數(shù)據(jù),同樣我們應使其對應的位碼為低電平且保證其它位為高電平。依次類推對8個發(fā)光二極管和四位LED顯示器進行掃描,顯示器分時輪流工作。雖然每次只有一個顯示器工作,但由于人的視覺暫留現(xiàn)象我們?nèi)詴杏X所有的顯示器都在同時顯示。它的優(yōu)點是:硬件電路簡單,占用較少的I/O口,但其傳送速度較慢。保護現(xiàn)場重裝定時器T1初值保護現(xiàn)場重裝定時器T1初值取顯示數(shù)據(jù),查段碼表得到顯示段碼將顯示位碼送R2調(diào)串行發(fā)送子程序送位碼至掃描口四位顯示完?YN顯示緩沖區(qū)首址送R0,位碼賦初值給R2恢復現(xiàn)場中斷返回顯示緩沖區(qū)R0加1,位碼左移一位圖3-3T1中斷效勞程序流程圖3.3DS18B20子程序流程圖根據(jù)DS18B20的通訊協(xié)議,主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。DS18B20的初始化流程圖如圖3-3所示。DS18B20的讀程序流程圖如圖3-4所示。DS18B20的寫程序其流程如圖3-5所示。溫度采集程序流程圖如圖3.6所示。圖3-418B20初始化流程圖3-5DS18B20的讀程序流程圖開始開始拉低數(shù)據(jù)線延時數(shù)據(jù)移置為數(shù)據(jù)線上返回延時八位移完了嗎?NY圖3-6DS18B20的寫程序其流程圖開始開始復位DS18B20發(fā)出溫度轉(zhuǎn)換指令復位DS18B20發(fā)出讀溫度指令DS18B20出錯DS18B20正常?延時結(jié)束YN圖3-7溫度采集程序流程圖3.4看門狗程序流程圖的設計X5045芯片提供了EEPROM存貯數(shù)據(jù)及看門狗功能。它必須通過微處理器加以控制方可實現(xiàn)。在前面已經(jīng)詳細介紹了X5045與單片機的接口電路,其功能的實現(xiàn)還是要靠軟件來實現(xiàn)。X5045讀/寫操作時序1、讀時序(l)把CS拉低以選擇芯片(2)發(fā)送8位的讀(READ)指令(3)送8位的字節(jié)地址(4)將所選定地址的存儲器中的數(shù)據(jù)移到期SO線上2、寫時序在寫時序之前,必須先發(fā)出WREN指令使“寫使能〞鎖存器置位。具體置位“寫使能〞鎖存器操作為:(1)CS先被拉到低電平(2)由時鐘同步送入WREN指令(3)將CS變?yōu)楦唠娖綄憯?shù)據(jù)到EEPROM操作為:(l)拉低CS并保持在低電平(2)發(fā)送寫指令(WRITE)(3)寫數(shù)據(jù),可以連續(xù)寫多達4個字節(jié)的數(shù)據(jù),但必須是這4個字節(jié)在同一頁上。X5045讀寫程序流程圖如圖3-7所將CS拉將CS拉低允許寫寫入地址選擇所寫的位置數(shù)據(jù)寫完了嗎?等待狀態(tài)存放器不忙將CS拉低將數(shù)據(jù)一位一位地讀出開始將數(shù)據(jù)的一位寫入將CS拉高選擇所讀數(shù)據(jù)的位置寫入地址NY結(jié)束圖3-8X5045讀寫程序的流程圖3.5A/D轉(zhuǎn)換子程序流程圖本設計采用的TLC549是以開關電容逐次逼近原理工作的8位串行A/D轉(zhuǎn)換器。單電源3V~6V供電范圍,控制口線少,時序簡單,轉(zhuǎn)換速度快,功耗低,價格廉價,適用于低功耗的小型儀器儀表上的單路A/D采樣,也可將多個器件并聯(lián)使用。TLC549的硬件電路圖在第2章已經(jīng)給出,A/D轉(zhuǎn)換子程序流程圖如圖3-8所示開始開始CS置高,CLK置低,移位計數(shù)器R0為0CS置低選中TLC5491.4uS后CLK置高讀DOUT、CLK置低CS置高轉(zhuǎn)換值存入緩沖區(qū)子程序返回R0加1,8位讀完嗎?YN圖3-9A/D轉(zhuǎn)換子程序流程圖結(jié)論與展望經(jīng)過三個多月的設計時間,本次畢業(yè)設計:基于單片機數(shù)字溫濕度控制器的設計已經(jīng)根本完成了。通過這次畢業(yè)設計,我掌握了一些實踐性質(zhì)的設計的根本步驟:首先,明確設計任務,并且要對市場上溫濕度控制器要有初步了解,還要知道前人做了哪些工作,本設計方案的可利用程度等等。其次,要對整個設計系統(tǒng)做深入的方案論證、計算并且結(jié)合現(xiàn)有實際條件,確立自己的設計方案,進而,就是對自己確立的方案進行硬件實現(xiàn),包括所用原器件選型,以及控制局部整個單片機系統(tǒng)的硬件選型與設計,并用Protel繪制出整個系統(tǒng)總體電路圖。接著我們就進入到軟件編程設計了,要畫出各局部的大體流程圖,弄清楚各個局部實現(xiàn)的功能,最后對整個系統(tǒng)進行軟件編程實現(xiàn)。到此為止,這個系統(tǒng)的設計根本上已經(jīng)完成了,最后就是要經(jīng)過生產(chǎn)實踐的檢驗,確定我們的設計是否符合實際要求,具有可利用價值。本系統(tǒng)采用的單片機控制,實現(xiàn)對室內(nèi)溫濕度的智能控制,單片機可完成室內(nèi)的數(shù)據(jù)采集、傳送預處理和控制任務。用單片機匯編語言編程,采用模塊化的結(jié)構(gòu)設計,提高了可靠性和可擴展性。把單片機控制理論與技術應用在監(jiān)控中,能夠?qū)崿F(xiàn)智能化的控制要求。整個設計過程同時也是一個很好的學習時機,例如以前自己沒有學習過運用Protel繪圖,經(jīng)過這次設計后自己在這方面有很大地進步;在查找資料方面,認識到:圖書資料、網(wǎng)絡資料和期刊等都很有價值,以后做設計的時候要注意查找完整的資料,不要只偏重一個方面。當然整個設計過程學到的知識和經(jīng)驗遠遠比運用Protel、學會查找多方資料多得多,這些對于自己以后的學習和工作將受益匪淺。但必須認識到的是,在設計中也存在著缺乏之處,例如單片機控制系統(tǒng)在可靠性方面相對于可編程控制器〔PLC〕控制系統(tǒng)略為欠缺,并且自己深入實踐不夠,所做的系統(tǒng)也不是很完善。但是我想通過以后的學習和努力一定會有所提高,能夠做出更好的設計。所設計系統(tǒng)不僅適用于室內(nèi)濕度環(huán)境的控制,對軟件進行一定的擴展后也可用于實驗室、醫(yī)療室、儲藏保鮮、組織培養(yǎng)等生物環(huán)境和糧庫等環(huán)境的控制,具有較強的通用性和適應性。致謝作者:2006年參考文獻[1]安源.8位串行模數(shù)轉(zhuǎn)換TLC548、TLC549的應用[J].國外電子元器件,2000,2:25–26.[2]馮國珍.基于數(shù)字溫度傳感器DS18B20的分布式測溫系統(tǒng)的設計[J].吉林化工學院學報,2003,20〔3〕:46-48.[3]胡漢才主編.單片機原理及其接口技術(第2版)[M].北京:清華大學出版,2003[4]梅麗鳳,王艷秋,汪毓鐸,張軍.單片機原理及接口技術[M].北京:清華大學出版社,北京交通大學出版社,2004.[5]何利民.MCS-51系列單片機應用系統(tǒng)設計系統(tǒng)配置與接口技術[M].北京:北京航空航天大學出版社,2001[6]李杏春,徐平,李華,趙嘉蔚編.8098單片機原理及實用接口技術[J].北京航空航天大學出版社,1996.[7]李華,孫曉民,李紅青.MCS-51系列單片機實用接口技術[M].北京:北京航空航天大學出版社,1993.[8]雷升印,周元志.X5045芯片在單片機系統(tǒng)中應用的研究[J].武漢理工大學學報,2003,25〔3〕:28-29..[9]林凌,李剛,丁茹,李小霞.新型單片機接口器件與技術[M].西安:西安電子科技大學出版社,2005.[10]劉紅玲,秦敬輝.X5043/X5045及其應用[J].彭城職業(yè)大學學報.2003,18〔2〕:18-22.[11]潘永雄.新編單片機原理與應用[M].西安:西安電子科技大學出版社,2003.[12]孫育才,王榮興,孫化芳.,新型AT89S52系列單片機及其應用.北京:清華大學出版社,2005..[13]周慈航.單片機應用程序設計技術[M].北京:北京航空航天大學出版社,2002[14]韓志軍,沈晉源,王振波.單片機應用系統(tǒng)設計——入門向?qū)c設計實例接[M].北京:機械工業(yè)出版社,2005.[15]閆勝利,王朝瑞.基于DS18B20的溫度控制系統(tǒng)設計[J].長春工程學院學報[J].2002,3〔4〕:55-59.[16]DallasSemiconductorDataBook.DallasSemiconductorCorp.2000.[17][18]TexasInstrumentsIncorporated.TLC548C,TLC548I,TLC549C,TLC549I8-BITANALOG-TO-DIGITALCONVERTERSWITHSERIALCONTROL[19]GyugyiL,OttoRA,PutmanTH.PrinciplesandApplicationsofStatic,Thristor-controlledShuntCompensators[J].IEEETrans.onPowerApparatusandSystem,1978,97(5):1935~1945.[20]D.Abowd,B.Brumitt,S.Shafer.TheEverywhereDisplaysProjector:ADevicetoCreateUbiquitousGraphicalInterfaces.LectureNotesinComputerScience.附錄A總體電路圖附錄B外文文獻及譯文1、DS18B20FEATURES1.Unique1-Wireinterfacerequiresonlyoneportpinforcommunication,Requiresnoexternalcomponents2.Eachdevicehasaunique64-bitserialcodestoredinanonboardROM3.Canbepoweredfromdataline.Powersupplyrangeis3.0Vto5.5V4.Measurestemperaturesfrom-55℃to+125℃,士0.5℃accuracyfrom5.Thermometerresolutionisuser-selectablefrom9to12bits6.Convertstemperatureto12-bitdigitalwordin750ms(max.)7.Alarmsearchcommandidentifiesandaddressesdeviceswhosetemperatureisoutsideofprogrammedlimits(temperaturealarmcondition)8.Availablein8-pinSOIC,and3-binTO-92packages2、DS18B20BLOCKDIAGRAMFigure1showsablockdiagramoftheDS18B20,The64-biteROMstoresthedevice'suniqueserialcode.Thescratchpadmemorycontainsthe2-bytetemperatureegisterthatstoresthedigitaloutputfromthetemperaturesensor.Inaddition,thescratchpadprovidesaccesstothe1-byteupperandloweralarmtriggerregisters(THandTL),andthe1-byteconfigurationregister.Theconfigurationregisterallowstheusertosettheresolutionofthetemperature-to-digitalconversionto9,10,11,or12bits.TheTH,TLandconfigurationregistersarenonvolatile(EEPROM),sotheywillretaindatawhenthedeviceispowereddown.MEMORYCONTROLLOGICMEMORYCONTROLLOGIC64-BITEROM64-BITEROMAND1-WirePORTTEMPERATURESENSORDQTEMPERATURESENSORSCRATCHPADSCRATCHPADVD1ALARMHIGHTRIGGER(TH)REGISTER(EEPROM)ALARMHIGHTRIGGER(TH)REGISTER(EEPROM)VD28-BITECRCGENERATORPOWERSUPPLYSENSE8-BITECRCGENERATORPOWERSUPPLYSENSEALARM LOWTRIGGER(TL)REGISTER(EEPROM)VDDALARM LOWTRIGGER(TL)REGISTER(EEPROM)CONFIGURATIONREGISTER(EEPROM)CONFIGURATIONREGISTER(EEPROM)Figure1Figure1blockdiagramoftheDS18B203、DS18B20ROMCOMMANDS(1)SEARCHROM[0F0H]Whenasystemisinitiallypoweredup,themastermustidentifytheROMcodesofallslavedevicesonthebus,whichallowsthemastertodeterminethenumberofslavesandtheirdevicetypes.ThemasterlearnstheROMcodesthroughaprocessofeliminationthatrequiresthemastertoperformaSearchROMcycleasmanytimesasnecessarytoidentifyalloftheslave、s64-bitROMdevices.(2)READROM[33H]Thiscommandcanonlybeusedwhenthereisoneslaveonthebus.Itallowsthebusmastertoreadtheslave’s64一bitROMcodewithoutusingtheSearchROMprocedure.Ifthiscommandisusedwhenthereismorethanoneslavepresentonthebus,adatacollisionwilloccurwhenalltheslavesattempttorespondatthesametime.(3)MATCHROM[55H]ThematchROMcommandfollowedbya64一bitROMcodesequenceallowsthebusmastertoaddressaspecificDS18B20onamultidroporsingle一dropbus.OnlytheDS18B20thatexactlymatchesthe64一bitROMcodesequencewillrespondtothefunctioncommandissuedbythemaster;allotherslavesonthebuswillwaitforaresetpulse.(4)SKIPROM[0CCH]ThemastercanusethiscommandtoaddressalldevicesonthebussimultaneouslywithoutsendingoutanyROMcodeinformation.NotethattheReadScratchpadcommandcanfollowtheSkiPROMcommandonlyifthereisasingleslavedeviceonthebus.Inthiscasetimeissavedbyallowingthemastertoreadfromtheslavewithoutsendingthedevice’s64一bitROMcode.ASkiPROMcommandfollowedbyaReadScratchpadcommandwillcauseadatacollisiononthebusifthereismorethanoneslavesincemultipledeviceswillattempttotransmitdatasimultaneouslv.(5)ALARMSEARCH[0ECH]TheoperationofthiscommandisidenticaltotheoperationoftheSearchROMcommandexceptthatonlyslaveswithasetalarmflagwillrespond.ThiscommandallowsthemasterdevicetodetermineifanyDS18B20sexperiencedanalarmconditionduringthemostrecenttemperatureconversion.RefertotheOPERATION—ALARMSIGNAINGsectionforanexplanationofalarmflagoperation.(6)CONVERTT[44H]Thiscommandinitiatesasingletemperatureconversion.Followingtheconversion,theresultingthermaldataisstoredinthe2一bytetemperatureregisterinthescratchpadmemoryandtheDS18B20returnstoitslow一poweridlestate.Ifthedeviceisbeingusedinparasitepowermode,within10usafterthiscommandisissuedthemastermustenableastrongpulluponthel一WirebusforthedurationoftheconversionasdescribedinthePOWERINGTHEDS18B20section.IftheDS18B20ispoweredbyanexternalsupply,themastercanissuereadtimeslotsaftertheConvertTcommandandtheDS18B20willrespondbytransmittinga0whilethetemperatureconversionisinProgressanda1whentheconversionisdone.Inparasitepowermodethisnotificationtechniquecannotbeusedsincethebus1ispulledhighbythestrongpullupduringtheconversion·(7)WRITESCRATCHPAD[4EH]Thiscommandallowsthemastertowrite3bytesofdatatotheDS18B20’sscratchpad.ThefirstdatabyteiswrittenintotheTHregister,thesecondbyteiswrittenintotheTLregister,andthethirdbyteiswrittenintotheconfigurationregister.Datamustbetransmittedleastsignificantbitfirst.Allthreebytesmustbewrittenbeforethemasterissuesareset,orthedatamaybecorrupted.(8)READSCRATCHPAD[0BEH]Thiscommandallowsthemastertoreadthecontentsofthescratchpad.Thedatatransferstartswiththeleastsignificantbitofbyte0andcontinuesthroughthescratchpaduntilthe9byte(byte8一CRC)isread.Themastermayissuearesettoterminatereadingatanytimeifonlypartofthescratchpaddataisneeded.(9)COPYSCRATCHPAD[48H]ThiscommandcopiesthecontentsofthescratchpadTH,TLandconfigurationregisterstoEEPROM.Ifthedeviceisbeingusedinparasitepowermode,within10us(max)afterthiscommandisissuedthemastermustenableastrongpulluponthe1-Wirebusforatleastl0msasdescribedinthePOWERINGTHEDS18B20section-(10)RECALLE2[B8H]Thiscommandrecallsthealarmtriggervalues(THandTL)andconfigurationdatafromEEPROM,respectively,inthescratchpadmemory.ThemasterdevicecanissuereadtimeslotsfollowingtheRecallE2commandandtheDS18B20willindicatethestatusoft
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房協(xié)議購房
- 分家協(xié)議范本2025
- 2024版二手房房屋買賣合同協(xié)議15篇
- 工作領域2 新居住項目產(chǎn)品與價格策70課件講解
- 2023年酒店、廚房設備用品項目融資計劃書
- 2023年消化系統(tǒng)用藥項目融資計劃書
- 2023年全自動金屬帶鋸床超精密加工機床項目融資計劃書
- 【虎嘯】2024年虎嘯年度洞察報告-3C家電行業(yè)
- 機械制圖考試題+答案
- 廣東省茂名市高州市2023-2024學年八年級上學期期末考試數(shù)學試卷(含答案)
- 牙科車針完整
- 多元回歸分析論文
- JGT388-2012 風機過濾器機組
- 傳感器原理與應用智慧樹知到課后章節(jié)答案2023年下山東大學(威海)
- 交安工程專項施工方案
- 部編人教版五年級上冊語文 第19課 父愛之舟 說課稿
- 硅酸鹽水泥的原料及配料計算課件
- (完整版)一年級最大能填幾最小能填幾
- 養(yǎng)老院工作人員保密協(xié)議書
- 無人生還-讀書分享課件
- 壯族的服飾 壯族服飾特點
評論
0/150
提交評論