基于單片機得溫度控制器說明書.doc_第1頁
基于單片機得溫度控制器說明書.doc_第2頁
基于單片機得溫度控制器說明書.doc_第3頁
基于單片機得溫度控制器說明書.doc_第4頁
基于單片機得溫度控制器說明書.doc_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

江蘇建筑職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書目 錄引言1第一章 系統(tǒng)方案論證21.1 方案設(shè)計21.2方案的對比論證2第二章 系統(tǒng)硬件電路的設(shè)計42.1電路總體原理框圖42.2單片機的選擇52.3單片機得管腳說明62.4單片機的時鐘電路82.5復(fù)位電路及其復(fù)位狀態(tài)92.5.1 復(fù)位電路92.5.2 復(fù)位狀態(tài)102.6.溫度采集電路的設(shè)計112.6.1 DS18B20特點介紹122.7鍵盤接口電路的設(shè)計132.8顯示接口和報警電路的設(shè)計152.9通信接口電路設(shè)計182.9.1 max232原理182.9.2 MAX232與單片機的接口電路18第三章 軟件系統(tǒng)的設(shè)計203.1 主程序模塊213.2溫度報警模塊213.3參考程序383.4設(shè)計方案分析383.4.1優(yōu)點383.4.2缺點38第四章 硬、軟件抗干擾技術(shù)394.1 硬件抗干擾技術(shù)394.1.1接地技術(shù)394.1.2屏蔽系統(tǒng)404.1.3隔離技術(shù)414.1.4濾波技術(shù)414.1.5 抑制反電勢干擾技術(shù)414.2 軟件抗干擾技術(shù)424.2.1 消除數(shù)據(jù)采集的干擾424.2.2保持正??刂茽顟B(tài)42第五章 結(jié)論與前景分析46參考文獻(xiàn)47致謝48附錄49引 言隨著生產(chǎn)生活的需要,自動化控制越來越起到至關(guān)重要的作用。溫度控制是工業(yè)生產(chǎn)過程中很普遍的過程控制,人們需要對各種加熱爐,熱處理爐,反應(yīng)爐等鍋爐中溫度進(jìn)行測量與控制。特別是冶金,化工、建材、食品、機械、石油等工業(yè)中,具有舉足輕重的作用,其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計一種較為理想的溫度控制系統(tǒng)是非常有價值的,工業(yè)生產(chǎn)中溫度控制具有單向性、時滯性、大慣性和時變性的特征,同時要實現(xiàn)溫度控制的快速性和準(zhǔn)確性,對于對于提高產(chǎn)品質(zhì)量具有很重要的意義。對于不同的場所、不同的工藝、不同的產(chǎn)品所需要的溫度范圍不同、精度也不同,則采用的溫度測量元件以及溫度測量方法和控制方法都有所不同;產(chǎn)品工藝不同、溫度控制的精度不同、時效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同。因此對溫度的控制方法要多種多樣。隨著電子技術(shù)和微型計算的迅速發(fā)展,微機測量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用。利用微機對溫度進(jìn)行測控的技術(shù)也隨之而產(chǎn)生?,F(xiàn)有的溫度傳感器大多為(熱電偶)體積大,應(yīng)用復(fù)雜,多為模擬信號,已經(jīng)不在適合現(xiàn)代工業(yè)的靈活性要求了。本設(shè)計是基于單片機的溫度控制系統(tǒng),為閉環(huán)系統(tǒng),工作的可靠性高、精度高。本設(shè)計主要圍繞單片機進(jìn)行設(shè)計,從實際應(yīng)用出發(fā),選取了體積小、精度相對較高的數(shù)字式溫度傳感器件DS18B20作為溫度采集裝置,以單片機89C51作為主控芯片,1602作為顯示輸出,實現(xiàn)了對溫度的實時測量,當(dāng)溫度超出設(shè)定范圍系統(tǒng)將會自動調(diào)節(jié)加熱或者降溫系統(tǒng),從而實現(xiàn)了實時恒溫控制。第一章 系統(tǒng)方案論證關(guān)于溫度的檢測問題,通常是通過溫度敏感元件(熱敏電阻)通過模數(shù)轉(zhuǎn)換器(A/D),將模擬量轉(zhuǎn)換成數(shù)字量,利用此種方法無法可靠的保證采樣的精度,所以我們選擇DS18B20直接從溫度信號得到數(shù)字信號,大大提高了采樣的精準(zhǔn)度。1.1 方案設(shè)計溫度的控制方法多種多樣,諸如PLC控制,模擬PID調(diào)節(jié)和數(shù)字PID調(diào)節(jié)等等。從經(jīng)濟(jì)性和操作的可行性,本設(shè)計選擇單片機控制與PLC控制進(jìn)行對比選擇。方案一:利用單片機實現(xiàn)溫度控制此方案以89S51單片機為CPU進(jìn)行控制,系統(tǒng)主要包括現(xiàn)場溫度采集(DS18B20)、實時溫度顯示(LCD1602)、報警電路提示、核心(89S51)單片機。DS18B20直接采集數(shù)據(jù)并以數(shù)字的形式傳到處理器,處理器會檢查現(xiàn)場溫度并將其與用戶設(shè)定的溫度進(jìn)行比對,采取相應(yīng)的措施(LED發(fā)光二極管閃爍),以提示用戶溫度和所需溫度不同,需采取相應(yīng)的措施,直至溫度達(dá)到設(shè)定的范圍內(nèi),LED發(fā)光二極管不再閃爍,從而實現(xiàn)溫度的控制。方案二:利用PLC實現(xiàn)溫度控制利用PLC實現(xiàn)恒溫控制,采用PLC控制實現(xiàn)電熱絲加熱全通、間斷導(dǎo)通和全斷加熱的自控方式,來保持溫度的恒定。智能型電偶溫度表將置于被測對象中,熱電偶的傳感信號與恒定溫度的給定電壓進(jìn)行比較,生成溫差,自適應(yīng)恒溫控制電路根據(jù)差值大小控制電路的通斷。1.2方案的對比論證 方案一采用單片機實現(xiàn)溫度調(diào)節(jié),成本低,而且具有較高的可靠性,對于系統(tǒng)動態(tài)性能與穩(wěn)定要求不是很高的場合非常的合適,采用DS18B20作為溫度傳感器,直接得到數(shù)字信號,通過單片機對偏差進(jìn)行運算,若溫度不在所調(diào)節(jié)的溫度范圍之內(nèi)會以單燈閃爍的形式提醒用戶,用戶采取措施達(dá)到控制溫度目的。方案二采用PLC進(jìn)行控制,PLC的成本比單片機高出太多,而且還要提供良好的工作環(huán)境,對周邊設(shè)備的要求也很高。綜合各種因素,本設(shè)計將采用單片機來實現(xiàn)恒溫控制。第二章 系統(tǒng)硬件電路的設(shè)計2.1電路總體原理框圖溫度傳感器AT89S51通信部分LCD顯示按鍵設(shè)置電源部分聲光報警本系統(tǒng)以89S51為核心,系統(tǒng)啟動,首先通過DS18B20檢測溫度,將信號傳至單片機,在LCD 1602上顯示,并且將其數(shù)值與設(shè)定值進(jìn)行比對,溫度高于設(shè)定值或者溫度低于設(shè)定值的時候,單片機會輸出信號使報警指示燈閃爍,從而提醒用戶溫度異常采取措施 使溫度上升或者下降到用戶所調(diào)節(jié)的范圍之內(nèi),達(dá)到溫度的控制。2.2單片機的選擇AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)Flash存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,片內(nèi)時鐘振蕩器。 此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式。AT89S51在空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式。功能有所提升加了.89S51相對于89C51增加了新功能包括: 1. ISP在線編程功能,這個功能的優(yōu)勢在于改寫單片機存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離.是一個強大易用的功能. 2.最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度. 3.具有雙工UART串行通道. 4.內(nèi)部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路. 5. 雙數(shù)據(jù)指示器. 6.電源關(guān)閉標(biāo)識. 7. 全新的加密算法,這使得對于89S51的解密變?yōu)椴豢赡?程序的保密性大大加強,這樣就可以有效的保護(hù)知識產(chǎn)權(quán)不被侵犯. 8. 兼容性方面:向下完全兼容51全部字系列產(chǎn)品.比如8051,89C51等等早期MCS-51兼容產(chǎn)品。89S51單片機性能穩(wěn)定,價格便宜,能夠滿足恒溫控制的需求,還可以裝載用戶程序,所以本設(shè)計選用該單片機。2.3單片機得管腳說明VCC: 供電電壓。GND: 接地。P0口: P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:各口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反 向振蕩器的輸出。2.4單片機的時鐘電路MCS-51系列單片機內(nèi)部的振蕩電路是一個高增益反向放大器,引線XTAL1和XTAL2分別是放大器的輸入端和輸出端。單片機內(nèi)部雖然有振蕩電路,單要形成時鐘,外部還需附加電路,本設(shè)計采用內(nèi)部時鐘方式,即利用內(nèi)部的振蕩電路在XTAL1和XTAL2引線上外接定時原件,內(nèi)部振蕩電路便產(chǎn)生自己振蕩,用示波器可以觀察到XTAL2輸出的時鐘信號,最常用的是在XTAL1和XTAL2之間連接晶體振蕩器與電容構(gòu)成穩(wěn)定的自激振蕩器,晶體可在1.2-12MHz之間選擇。MCS-51單片機在通常應(yīng)用情況下,使用振蕩頻率為6MHz的石英晶體,而12MHz頻率的晶體通常是在高速下載串行通信情況下才使用。對電容值無嚴(yán)格要求,但他的取值范圍對振蕩頻率輸出的穩(wěn)定、大小及振蕩電路振速有少許影響,C1、C2可在20-40pF之間選取,一般取30pF,電路圖如下圖:2.5復(fù)位電路及其復(fù)位狀態(tài)MCS-51單片機是高電平復(fù)位,所以先看給單片機加5V電源(上電)啟動時的情況:這時電容充電相當(dāng)于短路,你可以認(rèn)為RST上的電壓就是VCC,這是單片機就是復(fù)位狀態(tài)。隨著時間推移電容兩端電壓升高,即造成RST上的電壓降低,當(dāng)?shù)椭灵撝惦妷簳r,即完成復(fù)位過程。如果按下SW,的確就是按鈕把C短路了,這時電容放電,兩端電壓都是VCC,即RST引腳電壓為VCC,如果超過規(guī)定的復(fù)位時間,單片機就復(fù)位了。當(dāng)按鈕彈起后,RST引腳的電壓為0,單片機處于運行狀態(tài)。51單片機復(fù)位要求是:RST上加高電平時間大于2個機器周期,你用的12MHz晶振,所以一個機器周期就是1us,要復(fù)位就加2us的高電平即可。2.5.1 復(fù)位電路MCS-51單片機通常采用自動復(fù)位和按鍵復(fù)位兩種方式,設(shè)計采用的的復(fù)位電路如下圖,上電后電容充電,按下復(fù)位按鈕后,電容放電保證RST端保持10ms以上的高電平,這樣就能夠使單片機有效的復(fù)位。復(fù)位電路2.5.2 復(fù)位狀態(tài) 復(fù)位電路的作用是使單片機實行位操作,復(fù)位主要操作是把PC初始化為0000H,使單片機從程序存儲器的0000H單元開始執(zhí)行程序。程序存儲器的0003H單元即MCS-51單片機的外部中斷0的中斷處理程序的入口地址留出的0000H00002H三個單元地址,僅能夠放置一條轉(zhuǎn)移指令,因此,MCS-51單片機的主程序的第一條指令通常情況下是一條轉(zhuǎn)移指令。出PC之外,復(fù)位還對其他一些特殊功能的寄存器也有影響,他們的復(fù)位狀態(tài)如下表所示。利用他們的復(fù)位狀態(tài),可以減少應(yīng)該用程序中的初始化編程,如表所示,SP=07H,P0-P4的鎖存器均為FFH外,其他所有的寄存器均為0。單片機的復(fù)位狀態(tài)不影響片內(nèi)RAM的狀態(tài)。寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMOD00HACC00HTCON00HPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0P3FFHTH100HIP 0xx00000BSCON00HIE0xx00000BPCON0xx00000B2.6溫度采集電路的設(shè)計選擇溫度傳感器,首先應(yīng)該考慮溫度傳感器的測量精度和測量范圍,精度符合使用要球,所以我們直接選擇數(shù)字,避免在收到模擬信號后再將其轉(zhuǎn)化成數(shù)字信號,那樣會擴(kuò)大測量誤差,影響精確度。DS18B20包含一個10位AD轉(zhuǎn)換器,是一個以0.25的分辨力將溫度數(shù)字化的溫度傳感器,測量范圍是-55攝氏度到125攝氏度,考慮其精確度與范圍故選擇DS18B20為測量元件。DS18B20內(nèi)部結(jié)構(gòu)圖低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(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ù)值即為所測溫度。2.6.1 DS18B20特點介紹(1)獨特的單線接口方式,與單片機通信只需一個引腳,DS18B20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)可用數(shù)據(jù)線供電,電壓范圍:+3.0+5.5 V。 (4)測溫范圍為-55 +125 。在-10+85范圍內(nèi)誤差為0.5 。 (5)通過編程可實現(xiàn)912位的數(shù)字讀數(shù)方式。 (6)用戶可自設(shè)定非易失性的報警上下限值。 (7)支持多點組網(wǎng)功能,通過識別芯片各自唯一的產(chǎn)品序列號從而實現(xiàn)單線多掛接,多個DS18B20可以并聯(lián)在唯一的線上,簡化了分布式溫度檢測的應(yīng)用,實現(xiàn)多點測溫。 (8)負(fù)壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。(9)告警尋找命令可以識別和尋址那些溫度超出預(yù)設(shè)告警界限的器DS18B20的內(nèi)部測溫電路框圖2.7鍵盤接口電路的設(shè)計本設(shè)計的鍵盤采用獨立式鍵盤,獨立式按鍵是指用IO口線構(gòu)成的單個按鍵電路,每個獨立式按鍵單獨占有一根IO口線,每根IO口線上按鍵的工作狀態(tài)不會影響其他IO口線的工作狀態(tài),即一個按鍵對應(yīng)著個端口輸入,每一個按鍵都有一個按鍵電路來判斷其是否按下。 上拉電阻確保按鍵松開時,IO口線有確定的高電平。當(dāng)IO口線內(nèi)部有上接電阻時,外電路可以不配置上拉電阻,本設(shè)計采用采用查詢方式讀取按鍵,獨立式按鍵電路如圖所按鍵功能按 鍵 鍵 名 功 能RESET復(fù)位鍵使系統(tǒng)復(fù)位S1位選/設(shè)置鍵確定S2加一鍵溫度上下線加一S3減一鍵溫度上下線減一2.8顯示接口和報警電路的設(shè)計TC1602是字符型液晶顯示模塊是一類專門用于顯示字母。數(shù)字。符號等的點陣型液晶顯示模塊,它是由若干個57或511等點陣字符組成。每一個點陣字符位都可以顯示一個字符,點陣字符位之間的一個點距的間隔起字符間距和行距的作用。目前市面上常用的有16字1行。16字2行。20字2行和40字2行等字符模型,這些LCD雖然顯示的字?jǐn)?shù)各不相同,但是都具有相同的輸入輸出界面。本文介紹的TC1602是一種16字2行的字符型液晶顯示模塊,其接口引腳的說明如下:編號符號引腳說明編號符號引腳1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3VL液晶顯示偏壓信號11D4Data I/O4RS數(shù)據(jù)/命令選擇端12D5Data I/O5R/W讀/寫選擇端13D6Data I/O6E使能信號14D7Data I/O7D0Data I/O15BLA背光源正極8D1Data I/O16BLK背光源負(fù)極各引腳作用如下:1腳VSS:接地;2腳Vdd:接5V電源;3腳VO:對比度調(diào)整端,LCD驅(qū)動電壓范圍為VddVO。當(dāng)VO接地時,對比度最強;4腳RS:寄存器選擇端,RS為0時,選擇命令寄存器IR;RS為1時,選擇數(shù)據(jù)寄存器DR;5腳:讀寫控制端,為1時,選擇讀出;為0時,則選擇寫入;6腳Enable:使能控制端,Enable為1時,使能;Enable為0,禁止;7腳14腳D0D7:數(shù)據(jù)總線;15腳LED:背景光源,接5V;16腳LED:背景光源,接地。顯示接口電路的設(shè)計 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3-7是1602的內(nèi)部顯示地址。1602的內(nèi)部顯示地址在本系統(tǒng)中我設(shè)計了越線報警裝置,控制目標(biāo)溫度范圍。當(dāng)設(shè)定的目標(biāo)溫度線達(dá)到時,需用聲音的形式提醒使用者,此時報警器開始發(fā)出報警聲。在本系統(tǒng)中,當(dāng)溫度高于或者低于設(shè)置的溫度時報警指示燈閃爍。當(dāng)單片機P1.1輸出高電平時,二極管導(dǎo)通,報警燈閃爍報警。P1.1為低電平時二極管關(guān)斷,報警燈不工作。電源指示燈和報警指示燈電路2.9通信接口電路設(shè)計2.9.1max232原理MAX232芯片是專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的接口電使用+5v單電源供電。內(nèi)部結(jié)構(gòu)基本可分三個部分:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳DNG、16腳VCC(+5v)。2.9.2 MAX232與單片機的接口電路一般常用的電平轉(zhuǎn)換器件有MAX232、MC1488、MC1489及等,但MC1488、MC1489需要12V電源,這對于8051單片機系統(tǒng)是非常不便的,其中我所選用的是雙路RS-232收發(fā)器MAX232,它需要+5V電源。本系統(tǒng)采用的是PHILIPS系列的單片機,它本身具有串口通信的功能。MCU與PC機進(jìn)行通訊,由于PC機的邏輯電平與MCU 的邏輯電平完全不一樣。PC機的邏輯電平:-(315)V為邏輯1,+(315)V為邏輯0。而本系統(tǒng)采用的STC系列的單片機的邏輯電平:邏輯“1”為+5V,邏輯“0”為0V。為了達(dá)到電平的匹配,采用了MAX232電平轉(zhuǎn)換芯片。在MAX232電平轉(zhuǎn)換芯片的外圍使用了4個電容作為電荷泵升壓及電壓反轉(zhuǎn)部分電路,產(chǎn)生V+、V-電源供電平轉(zhuǎn)換使用。理論上還需要在VCC上接一個104的電容作為對地的去耦電容,而在本系統(tǒng)中直接采用了5個104的電容就能夠完成電平轉(zhuǎn)換的功能。如圖13所示圖13 MAX232電平轉(zhuǎn)換圖MAX232產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS-232標(biāo)準(zhǔn)的芯片。并且可以完全兼容目前市場上使用的RS-232接口芯片該器件,它包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。 MAX232產(chǎn)品的特性有:(1)滿足或超過TIA/EIA-232-F 規(guī)范要求,符合ITU v.28標(biāo)準(zhǔn)。(2)單5-V電源供電和4個1.0uF充電泵電容。(3)包含2個驅(qū)動器和2個接收器。(4)低工作電流典型值為8mA。(5)2000-V ESD保護(hù)。 RS232接口芯片MAX232與單片機的接口電路設(shè)計第三章 軟件系統(tǒng)的設(shè)計系統(tǒng)的軟件由三大模塊組成:主程序模塊、功能實現(xiàn)模塊和運算模塊。3.1 主程序模塊主程序主要完成各部件的初始化和實現(xiàn)各功能子程序的調(diào)用,以及實際測量中各個功能模塊的協(xié)調(diào),單片機通過循環(huán)對外部溫度進(jìn)行實時顯示,以便能對數(shù)字按鍵進(jìn)行相應(yīng)處理。主程序流程圖如下:3.2溫度報警模塊 本模塊主要是通過LED燈的閃爍來報警,以提醒用戶溫度異常,采取相應(yīng)的措施降溫或者升溫,報警模塊流程圖如報警子程序溫度是否在設(shè)定值之外是否允許報警返回開啟報警燈報警模塊流程圖3.3參考程序/* 實驗名稱: DS18B20溫度傳感器+LCD+報警 實現(xiàn)說明:DS18B20采集的溫度范圍是-55+125度,有三個按鍵來設(shè)置其上線溫度TH和下限溫度值TL xuanze鍵來選擇設(shè)置TH還是TL; up鍵每按一次TH或TL加1; down鍵每按一次TH或TL減1;實驗現(xiàn)象:當(dāng)DS18B20測得的溫度值=上限溫度值(TH)或者=下限溫度值(TL)時,發(fā)光二極管亮,報警; */#include#include #include#define uint unsigned int#define uchar unsigned char#define LCD P0sbit LED=P34;/位定義報警顯示燈sbit xuanze=P22;/位定義選擇按鍵sbit up=P21;/位定義極限加sbit down=P20;/位定義極限減int th=10,tl=2,thh=0,tll=0;/初始上限值和下限值uchar i,num=0;/定義變量/* 延時函數(shù)*/void delay(uint z) uint x,y; for (x=z;x0;x-) for(y=110;y0;y-);/* LCD部分*/sbit rs=P25;sbit rw=P26;sbit E=P27;uchar tmp5=Temp:;uchar tmp6=C;uchar code tab1=TH:;uchar code tab2=TL:;write_com(uchar com)/LCD寫地址函數(shù) rs=0; rw=0; E=1; LCD=com; delay(5); E=0; write_data(uchar dat)/LCD寫數(shù)據(jù)函數(shù) rs=1; rw=0; E=1; LCD=dat; delay(5); E=0;init_lcd()/LCD初始化函數(shù) write_com(0x38);/16*2顯示,5*7點陣,8位數(shù)據(jù) write_com(0x0c);/設(shè)置為顯示開,關(guān)光標(biāo),不閃爍 write_com(0x06);/寫操作后,AC自動加1 write_com(0x01); /LCD清屏 write_com(0x80+0x01);/LCD第一行第二個位置起顯示TH: for(i=0;i3;i+) write_data(tab1i); write_com(0x80+9);/LCD第一行第10個位置起顯示TL: for(i=0;i3;i+) write_data(tab2i); write_com(0x80+0X40+0x00);/LCD第二行開始出顯示Temp: for(i=0;i5;i+) write_data(tmp5i); write_com(0x80+0X40+10);/顯示溫度的單位 for(i=0;i0;i-)/循環(huán)8次 DQ=0;/總線拉低 DQ=cmd&0x01;/將發(fā)送字節(jié)的最低位送到總線 delay1(5);/延時(30us),等待DS18B20取走總線數(shù)據(jù) DQ=1;/總線拉高 cmd=1;/將待發(fā)送的字節(jié)右移后,繼續(xù)發(fā)送 uchar readdat()/DS18B20的讀字節(jié)函數(shù) uchar i=0;/定義位循環(huán)變量 uchar temp=0;/定義暫存變量 for(i=8;i0;i-)/循環(huán)8次 DQ=0;/總線為低電平 temp=1;/暫存變量右移 DQ=1;/總線拉高,執(zhí)行如下的讀操作 if(DQ)/如果DS18B20輸出高電平 temp|=0x80;/將暫存變量的最高位置1 delay1(4);/延時一段時間 return temp;/程序結(jié)束后,將暫存變量返回調(diào)用程序/* 按鍵設(shè)置上線溫度和下限溫度值函數(shù) */void key() / key0=0; if(xuanze=0)/如果選擇鍵按下delay(10);/延時消抖if(xuanze=0)/如果按鍵還處于按下狀態(tài) num+;/次數(shù)加1 while(!xuanze);/等待按鍵抬起if(num=1)/如果按下選擇鍵的次數(shù)為1 TR0=0;/關(guān)閉中斷 write_com(0x80+0x00+5);/光標(biāo)移到第一行第七個位置 write_com(0x0f);/設(shè)置為顯示開,開光標(biāo),閃爍 if(num=2)/如果按下選擇鍵的次數(shù)為2 write_com(0x80+0x00+13);/光標(biāo)移到第一行第十五個位置if(num=3)/如果按下選擇鍵的次數(shù)為3 num=0;/次數(shù)清零 write_com(0x0c);/設(shè)置為顯示開,關(guān)光標(biāo),不閃爍 TR0=1;/開中斷 if(num!=0)/在選擇鍵按下時 if(up=0)/如果極限加按鍵按下 delay(10);/延時消抖 if(up=0)/如果極限加按鍵仍處于按下狀態(tài) while(!up);/等待按鍵抬起 if(num=1)/如果選擇鍵按了一次 th+;/上線值加1 if(th=0)/如果上線值為正thh=0;/計數(shù)清零 write_com(0x80+0x00+4); write_data(+);/顯示正號 write_com(0x80+0x00+5); write_data(th/10+0x30);/顯示上限溫度值的十位 write_data(th%10+0x30);/顯示上限溫度值的個位 if(th=0)/如果下限溫度值為正 tll=0;/計數(shù)清零 write_com(0x80+0x00+12); / 顯示正號 write_data(+);/ write_com(0x80+0x00+13); write_data(tl/10+0x30);/顯示下限溫度值的十位 write_data(tl%10+0x30);/顯示下限溫度值的個位 if(tl=0)/如果上限溫度值為正 write_com(0x80+0x00+4); /顯示正號write_data(+);write_com(0x80+0x00+5); write_data(th/10+0x30);/顯示上限溫度值的十位write_data(th%10+0x30);/顯示上限溫度值的個位if(th=0)/如果下限溫度值為正 write_com(0x80+0x00+12); write_data(+);/顯示正號 write_com(0x80+0x00+13); write_data(tl/10+0x30);/顯示下限溫度值的十位 write_data(tl%10+0x30);/顯示下限溫度值的個位if(tl=th)|(test=上限溫度值(TH)或255)/如果低8位有進(jìn)位,則高8位加1 readdate1+;/ test0=readdate0;/低8位值賦予test0 test1=readdate1;/高8位值賦予test1 test=(readdate1*256)+readdate0)/16;/取出整數(shù)部分溫度值 test0=(test0|0x0f)/16;/取出小數(shù)部分溫度值 reset();/復(fù)位DS18B20writecmd(0xcc);/向DS18B20發(fā)送跳過ROM搜索命令 writecmd(0x44);/啟動下次溫度測量/

溫馨提示

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

評論

0/150

提交評論