版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本科畢業(yè)論文,設(shè)計提目:單片機室內(nèi)溫度自動控制系統(tǒng)的設(shè)計SCM indoor temperature automatic control system design,學(xué) 院(部):班 級:姓 名:指 導(dǎo) 老 師:,2012年6月1日,基于單片機室內(nèi)溫度自動控制系統(tǒng)的設(shè)計,1. 摘要 在人們的日常生活及生產(chǎn)過程中,經(jīng)常要用到溫度的檢測和控制,在新世紀科
2、學(xué)技術(shù)得到了空前的發(fā)展,科學(xué)技術(shù)有力推動了社會生產(chǎn)力的發(fā)展和社會信息化程度提高,同時也是現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。通過畢業(yè)設(shè)計學(xué)習(xí)和研究新技術(shù)具有實際意義。不僅可以學(xué)好專業(yè)知識,還可以增強動手能力。 溫度控制系統(tǒng)廣泛應(yīng)用于社會生活的各個領(lǐng)域 ,如家電、汽車、材料、電力電子等 ,常用的控制電路根據(jù)應(yīng)用場合和所要求的性能指標有所不同 , 在工業(yè)企業(yè)中,如何提高溫度控制對象的運行性能一直以來都是控
3、制人員和現(xiàn)場技術(shù)人員努力解決的問題。這類控制對象慣性大,滯后現(xiàn)象嚴重,存在很多不確定的因素,難以建立精確的數(shù)學(xué)模型,從而導(dǎo)致控制系統(tǒng)性能不佳,甚至出現(xiàn)控制不穩(wěn)定、失控現(xiàn)象。傳統(tǒng)的繼電器調(diào)溫電路簡單實用 ,但由于繼電器動作頻繁 ,可能會因觸點不良而影響正常工作。控制領(lǐng)域還大量采用傳統(tǒng)的PID控制方式,但PID控制對象的模型難以建立,并且當(dāng)擾動因素不明確時,參數(shù)調(diào)整不便仍是普遍存在的問題。而采用數(shù)字溫度傳感器DS18B20,因其內(nèi)部集成了A
4、/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡單,而且減少了溫度測量轉(zhuǎn)換時的精度損失,使得測量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個引腳即可與單片機進行通信,大大減少了接線的麻煩,使得單片機更加具有擴展性。由于DS18B20芯片的小型化,更加可以通過單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實用性。更能串接多個數(shù)字溫度傳感器DS18B20進行范圍的溫度檢測。,關(guān)鍵詞:AT89S51單
5、片機 DS18B20溫度芯片 溫度控制 串口通訊,2.設(shè)計要求 設(shè)計基于單片機的室內(nèi)溫度自動控制系統(tǒng),用于控制溫度,具體要求如下: 1.溫度連續(xù)可調(diào),范圍為0℃-40℃ 2.超調(diào)量σ%≤20% 3.溫度誤差≤±0.5℃3.工作原理 溫度傳感器 DS18B20 從設(shè)備環(huán)境的不同位置采集溫度,單片機 AT89S51 獲取采集的溫度值,經(jīng)
6、處理后得到當(dāng)前環(huán)境中一個比較穩(wěn)定的溫度值,再根據(jù)當(dāng)前設(shè)定的溫度上下限值,通過加熱和降溫對當(dāng)前溫度進行調(diào)整。當(dāng)采集的溫度經(jīng)處理后超過設(shè)定溫度的上限時,單片機通過三極管驅(qū)動繼電器開啟降溫設(shè)備 (壓縮制冷器) ,當(dāng)采集的溫度經(jīng)處理后低于設(shè)定溫度的下時 , 單片機通過三極管驅(qū)動繼電器開啟升溫設(shè)備 (加熱器) 。 當(dāng)由于環(huán)境溫度變化太劇烈或由于加熱或降溫設(shè)備出現(xiàn)故障,或者溫度傳感頭出現(xiàn)故障導(dǎo)致在一段時間內(nèi)不能將環(huán)境溫度調(diào)整到規(guī)定的溫度限內(nèi)
7、的時候,單片機通過三極管驅(qū)動揚聲器發(fā)出警笛聲。 系統(tǒng)中將通過串口通訊連接PC機存儲溫度變化時的歷史據(jù),以便觀察以后整個溫度控制過程及監(jiān)控溫度變化的全過程。,,PC機,,,MAX232電平轉(zhuǎn)換芯片 片,,,AT89S518BIT CPU,,,數(shù)據(jù)顯示,超溫報警,鍵盤電路,DS18B20 溫度芯片數(shù)據(jù)傳輸,輸入電源,繼電器1,繼電器2,加熱器,壓縮制冷器,,,,,,,,工作原理圖,4.方案設(shè)計,1.溫度測量方案
8、 DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,它具有微型化、低功耗、高性能抗干擾能力、強易配處理器等優(yōu)點,特別適合用于構(gòu)成多點溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(按9位二進制數(shù)字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片,它具有三引腳TO-92小體積封裝形式,溫度測量范圍-55~+125℃,可編程為9~12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數(shù)字量
9、方式串行輸出,其工作電源既可在遠端引入,業(yè)可采用寄生電源方式產(chǎn)生,多個DS18B20可以并聯(lián)到三根或者兩根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。從而可以看出DS18B20可以非常方便的被用于遠距離多點溫度檢測系統(tǒng)。 綜上,在本系統(tǒng)中我采用溫度芯片DS18B20測量溫度。該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,且此元件線形較好。在0—100攝氏度
10、時,最大線形偏差小于1攝氏度。該芯片直接向單片機傳輸數(shù)字信號,便于單片機處理及控制。,溫度芯片DS18B20,2.主控制部分方案 AT89S51 是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8k Bytes ISP(in-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集
11、成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAR,), 32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。
12、 此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。 由于系統(tǒng)控制方案簡單 ,數(shù)據(jù)量也不大 ,考慮到電路的簡單和成本等因素 ,因此在本設(shè)計中選用 A T
13、MEL 公司的 A T89S51單片機作為主控芯片。主控模塊采用單片機最小系統(tǒng)是由于 A T89S51芯片內(nèi)含有4 KB的 E2PROM ,無需外擴存儲器 ,電路簡單可靠 ,其時鐘頻率為 0~24 MHz ,并且價格低廉 ,批量價在 10元以內(nèi)。 其主要功能特性: 兼容MCS-51指令系統(tǒng) 4k可反復(fù)擦寫(>1000次)ISP Flash ROM 32個雙向I/
14、O口 4.5-5.5V工作電 2個16位可編程定時/計數(shù)器 時鐘頻率0-33MHz 全雙工UART串行中斷口線 128x8 bit內(nèi)部RAM 2個外部中斷源 低功耗空閑和省電模式 中斷喚醒省電模式 3級加密位 看門狗(WD
15、T)電路 軟件設(shè)置空閑和省電功能 靈活的ISP字節(jié)和分頁編程 雙數(shù)據(jù)寄存器指針 可以看出AT89S51提供以下標準功能:4K字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,看門狗(WDT),兩個數(shù)據(jù)指針,兩個16位定時器/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘。同時,,AT89S51可降至0Hz的靜態(tài)邏輯操作
16、,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式何在RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直接到一個硬件復(fù)位。 AT89S51引角功能說明 Vcc:電源電壓 GND:地 P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口,作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作
17、為高阻抗輸入端口。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,
18、因為內(nèi)部存在上拉電阻,某個引腳被外部信號校驗期間,P1接收低8位地址。下表為P1口第二功能。,P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行:MOVX @Ri 指令)時,P2口線上的內(nèi)(也即特殊功能寄存
19、器,在整個訪問期間不改變。Flash 編程或校驗時,P2也接收高位地址和其它控制信號。),RST:復(fù)位輸入。當(dāng)振蕩工作時,RST引腳出現(xiàn)兩個機器周期上高電平將使單片機復(fù)位。WDT益出將使該引腳輸出高電平,設(shè)置SFR AUXR 的 DISRTO 位(地址8EH)可打開或關(guān)閉該功能。DISRTO 位缺省為RESET輸出高電平打開狀態(tài)。 ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖
20、存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出的正脈沖信號,因此它可對外輸出時鐘或用于定時目地,要注意的是:第當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位禁位后,只有一條MOVX 和MOVC指令A(yù)LE才會被激活。此外,該引腳伎被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。 PSEN:程序儲存允
21、許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,高有兩次有效的PSEN信號。EA/VPP:外部訪問允許。欲使CPU公訪問外部程序存儲器(地址0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中
22、的指令。Flash存儲器編程時,該引腳加上+12V的編程電壓Vpp。 XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 AT89S51單片機內(nèi)部構(gòu)造及功能: 特殊功能寄存器:特殊功能寄存器的片內(nèi)空間分存如下圖3-2所示。這些地址并沒有全部占用,沒有占用的地址不可使用,讀這些地址將得到一個隨意的數(shù)值。而寫這些地址單元將不能得到預(yù)期的結(jié)果。
23、 中斷寄存器:各中斷允許控制位于IE寄存器,5個中斷源的中斷優(yōu)先級控制位于IP寄存器。圖4-2為AUXR輔助寄存器。,AUXR輔助寄存器,雙時鐘指針寄存器:為方便地訪問內(nèi)部和外部數(shù)據(jù)存儲器,提供了兩個16位數(shù)據(jù)指針寄存儲器:PD0位于SFR區(qū)塊中的地址82H、83H和DP1位于地址84H、85H,當(dāng)SFR中的位DPS=0時選擇DP0,而DPS=1時選擇DP1。在使用前初始化DPS。,,雙時鐘指針寄存器,電源空閑標志:
24、電源空閑標志(POF)在特殊功能寄存儲器SFR中PCON的第4位(PCON.4),電源打開時POF置“1”,它可由軟件設(shè)置睡眠狀態(tài)并不為復(fù)位所影響。 存儲器結(jié)構(gòu):MCS-51單片機內(nèi)核采用程序存儲器和數(shù)據(jù)存儲器空間分開的結(jié)構(gòu),均具有64KB外部程序和數(shù)據(jù)的尋址空間。 程序存儲器:如果EA引腳接地(GND),全部程序均執(zhí)行外部存儲器。在AT89S51,假如接至Vcc(電源+),程序首先執(zhí)行從地址0000H-0
25、FFFH(4KB)內(nèi)部程序存儲器,再執(zhí)行地址為1000H-FFFFH(60KB)的外部程序存儲器。 數(shù)據(jù)存儲器:在AT89S51的具有128字節(jié)的內(nèi)部RAM,這128字節(jié)可利用直接或間接尋址方式訪問,堆棧操作可利用間接尋址方式進行,128字節(jié)均可設(shè)置為堆棧區(qū)空間。 看門狗定時器(WDT):WDT是為了解決CPU程序運行時可能進入混亂或死循環(huán)而設(shè)置,它由一個14bit計數(shù)器和看狗復(fù)位SFR(WDTRST)構(gòu)成
26、。外部復(fù)位時,WDT默認為關(guān)閉狀態(tài),要打開WDT,必按順序?qū)?1H和0E1H寫到WDTRST寄存器,當(dāng)啟動了WDT,它會隨晶體振蕩器在每個機器周期計數(shù),除硬件復(fù)位或WDT溢出復(fù)位外沒有其它方法關(guān)閉WDT,當(dāng)WDT溢出,將使RST引腳輸出高電平的復(fù)位脈沖。引腳圖詳見下圖:,AT89S51單片機引腳圖,5 各單元的設(shè)計,1.鍵盤單元 單片機應(yīng)用系統(tǒng)中除了復(fù)位按鍵有專門的復(fù)位電路,以及專一的復(fù)位功能外,其它的按鍵或鍵盤都是以開關(guān)
27、狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)。 鍵開關(guān)狀態(tài)的可靠輸入 :為了去抖動我采用軟件方法,它是在檢測到有鍵按下時,執(zhí)行一個10ms的延時程序后,再確認該鍵電平是否仍保持閉合狀態(tài)電平,如保持閉合狀態(tài)電平則確認為真正鍵按下狀態(tài),從而消除了抖動影響 在這種行列式矩陣鍵盤非編碼鍵盤的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。當(dāng)確認有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方
28、法:一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉(zhuǎn)法。 對照圖示的4*4鍵盤,說明線反轉(zhuǎn)法工作原理。首先辨別鍵盤中有無鍵按下,有單片機I/O口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。方法是:向行線輸出全掃描字00H,把全部列線置為低電平,然后將列線的電平狀態(tài)讀入累加器A中。如果有按鍵按下,總會有一根行線電平被拉至低電平從而使行線不全為1。判斷鍵盤中哪一個鍵被按下是通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實現(xiàn)的。方
29、法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列;如果不全為1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點上的那個鍵。鍵盤共有16個按鍵,用于方便設(shè)定溫度。,0,9,…,數(shù)字按鍵,輸入數(shù)字0----9,確認,設(shè)置的確認,修改設(shè)置溫度時進行確認,清除,設(shè)置的清除,修改設(shè)置溫度時進行刪除,開啟,開啟電源,關(guān)閉,關(guān)閉電源,F1,顯示及設(shè)置轉(zhuǎn)換到溫度點1,按此按鍵后,顯示預(yù)設(shè)置溫度的數(shù)碼管閃爍,F2,顯
30、示及設(shè)置轉(zhuǎn)換到溫度點2,按此按鍵后,顯示預(yù)設(shè)置溫度的數(shù)碼管閃爍,2.溫度控制及超溫和超溫警報單元,,當(dāng)采集的溫度經(jīng)處理后超過規(guī)定溫度上限時,單片機通過 P1.4 輸出控制信號驅(qū)動三極管 D1 ,使繼電器 K1 開啟降溫設(shè)備 ( 壓縮制冷設(shè)備) :當(dāng)采集的溫度經(jīng)處理后低于設(shè)定溫度下限時,單片機通過 P1.5 輸出控制信號驅(qū)動三極管 D2 ,使繼電器 K2 開啟升溫設(shè)備 ( 加熱器1) 當(dāng)由于環(huán)境溫度變化太劇烈或由于加熱或降溫設(shè)備
31、出現(xiàn)故障,或者溫度傳感頭出現(xiàn)故障導(dǎo)致在一段時間內(nèi)不能將環(huán)境溫度調(diào)整到規(guī)定的溫度限內(nèi)的時候,單片機通過三極管驅(qū)動揚聲器發(fā)出警笛聲。具體電路連接如下圖 所示 :,具體電路連接圖,3.溫度測試單元,采用溫度芯片DS18B20。使用集成芯片,能夠有效的減小外界的干擾,提高測量的精度,簡化電路的結(jié)構(gòu) 。,4.溫度控制器件電路,單片機通過三極管控制繼電器的通斷,最后達到控制電熱器的目的。當(dāng)溫度未達到要求時,單片機發(fā)送高電平信號使三極管飽和
32、導(dǎo)通,繼電器使電源與電熱器接通,電熱器加熱。溫度慢慢升高。當(dāng)溫度上升到預(yù)定溫度時,單片機發(fā)送低電平信號三極管進入截止狀態(tài),繼電器的彈片打到另一側(cè),使電熱器與電源斷開,電熱器停止加熱。繼電器電路中有一個三極管8050的保護電路,即將一個二極管反向接到三機管的兩端。連接方法如下圖所示,單片機控制信號,其原理是:當(dāng)繼電器突然斷電時,繼電器產(chǎn)生很大的反向電流。二極管的作用是將反向電流分流,使流過三級管8050的電流比較小,達到保護
33、三極管8050的作用。,5.七段數(shù)碼管顯示單元,本部分電路主要使用七段數(shù)碼管和移位寄存器芯片74LS164。單片機通過I2C總線將要顯示的數(shù)據(jù)信號傳送到移位寄存器芯片74LS164寄存,再由移位寄存器控制數(shù)碼管的顯示,從而實現(xiàn)移位寄存點亮數(shù)碼管顯示。由于單片機的時鐘頻率達到12M,移位寄存器的移位速度相當(dāng)快,所以我們根本看不到數(shù)據(jù)是一位一位傳輸?shù)?。從人類視覺的角度上看,就仿佛是全部數(shù)碼管同時顯示的一樣。具體見實際連線圖如下圖。
34、,當(dāng)清除端(CLEAR)為低電平時,輸出端(QA-QH)均為低電平。 串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng) A、B 任意一個為低電平,則禁止新數(shù)據(jù)輸入,在時鐘端(CLOCK)脈沖上升沿作用下 Q0 為電平。當(dāng) A、B 有一個為高電平,則另一個就允許輸入數(shù)據(jù),并在 CLOCK 上升沿作用下決定 Q0 的狀態(tài),邏輯封裝圖如上圖。引出端符號:CLOCK 時鐘輸入端;CLEAR 同步清除輸入端(低電平有效);A,B 串行數(shù)據(jù)輸入端;
35、QA-QH 輸出端。真值表如下表:,實際連線圖,6.接口通訊單元 max232資料簡介: 該產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標準的芯片。由于電腦串口rs232電平是-10v +10v,而一般的單片機應(yīng)用系統(tǒng)的信號電壓是ttl電平0 +5v,max232就是用來進行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA
36、/EIA-232-F標準,每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。主要特點 :1、單5V電源工作2、 LinBiCMOSTM工藝技術(shù)3、 兩個驅(qū)動器及兩個接收器4、 ±30V輸入電平5、低電源電流:典型值是8mA6、符合甚至優(yōu)于ANSI標準 EIA/TIA-232-E及ITU推薦標準V.287、ES
37、D保護大于MIL-STD-883(方 法3015)標準的2000V,51單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我采用了專用芯片MAX232進行轉(zhuǎn)換,雖然也可以用幾個三極管進行模擬轉(zhuǎn)換,但是還是用專用芯片更簡單可靠。 在本設(shè)計中采用了三線制連接串口,也就是說和電
38、腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機的11腳連接,第9腳和單片機的10腳連接,第15腳和單片機的20腳連接,串口通訊具體如下圖:,通訊接口連線圖,6 .電源輸入部分,控制系統(tǒng)主控制部分電源需要用5V直流電源供電,其電路如下圖所示,把頻率為50Hz、有效值為220V的單相交流電壓轉(zhuǎn)換為幅值穩(wěn)定的5V直
39、流電壓。其主要原理是把單相交流電經(jīng)過電源變壓器、整流電路、濾波電路、穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電壓。,由于輸入電壓為電網(wǎng)電壓,一般情況下所需直流電壓的數(shù)值和電網(wǎng)電壓的有效值相差較大,因而電源變壓器的作用顯現(xiàn)出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉(zhuǎn)換成直流電壓。由于經(jīng)整流電路整流后的電壓含有較大的交流分量,會影響到負載電路的正常工作。需通過低通濾波電路濾波,使輸出電壓平滑。穩(wěn)壓電路的功能是使輸出直流電壓基本不受電網(wǎng)
40、電壓波動和負載電阻變化的影響,從而獲得穩(wěn)定性足夠高的直流電壓。本電路使用集成穩(wěn)壓芯片7805解決了電源穩(wěn)壓問題。,7 程序設(shè)計,電源部分連線圖,7.1 程序結(jié)構(gòu)分析,主程序調(diào)用了5個子程序,分別是數(shù)碼管顯示程序、鍵盤掃描及按鍵處理程序、溫度信號處理程序、繼電器控制程序、單片機與PC機串口通訊程序。鍵盤掃描電路及按鍵處理程序:實現(xiàn)鍵盤的輸入按鍵的識別及進入相應(yīng)的程序。溫度信號處理程序:對溫度芯片送過來的數(shù)據(jù)進行處理,進行判斷和顯示。
41、數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。繼電器控制程序:控制繼電器動作串口通訊程序:實現(xiàn)PC機與單片機通訊,將溫度數(shù)據(jù)傳送給PC機。,程序結(jié)構(gòu)圖,7.2主程序,,程序開始的時候先設(shè)置初始化,然后就控制數(shù)碼管顯示當(dāng)前溫度。接著就判斷F1、F2按鍵是否被按下。按下F1進入溫度控制點1的程序、按下F2進入溫度控制點2的程序。程序控制設(shè)置溫度的兩個數(shù)碼管閃爍的,此時鍵盤輸入有效。有按鍵按下的時候進入按鍵處理程序。按下“確定”按
42、鍵后,程序進入判斷程序和繼電器控制程序。繼電器動作后,程序回到顯示當(dāng)前程序,并開始循環(huán)。 7.3 程序代碼(詳見附錄 程序清單) 8. 測設(shè)分析 1、測試環(huán)境 環(huán)境溫度28攝氏度,室內(nèi)面積20平方米 測試儀器:數(shù)字萬用表,溫度計0----100攝氏度 2、測試方法 使系統(tǒng)運行,采用溫度計同時測量室內(nèi)度變化情況,得出系統(tǒng) 測量的溫度。 3、測試結(jié)果 設(shè)定溫度由0攝氏
43、度到40攝氏度 標定溫差<=1攝氏度 調(diào)節(jié)時間 15s(具體視現(xiàn)場情況) 靜態(tài)誤差<=0.5攝氏度 最大超調(diào)量1攝氏度 4、通過測試分析,對于實際室內(nèi)的溫度控制,可以再提出以下 2 點方法 : Ⅰ增加傳感器個數(shù),對各個溫度傳感器采集的數(shù)據(jù)進行求算術(shù)平均,可得到較為準確的溫度值。 Ⅱ?qū)嶋H室內(nèi)的溫度控制,可采用功率較大的電爐,并且通過風(fēng)扇對箱內(nèi)溫度進行充分攪和,降溫設(shè)備可采用空氣壓縮機
44、等制冷設(shè)備。 5、通過實驗測試和分析,發(fā)現(xiàn)雖然傳感器的溫度采集精度最高可得到 0.06 ℃,但測試得到的數(shù)據(jù)最小間隔為 0.03 ℃ 。通過分析,當(dāng)對浮點數(shù)求平均處理時,遇到同一時刻兩個傳感頭采集的溫度相差不大,使 0.06 ℃ 時求出平均溫度變?yōu)?0.03 ℃ 為了解該數(shù)據(jù)是否真實,可采用一個高精度的數(shù)字溫度計測試,發(fā)現(xiàn)讀出的值與其基本一致,由此推斷如果在同一,時間增加采集溫度的個數(shù),則可以進一步提高溫度的精度。謝辭
45、 本論文是在我的指導(dǎo)老師密切關(guān)心和悉心指導(dǎo)下完成的。老師在課題開題期間和論文寫作的過程中給予了我許多指導(dǎo),導(dǎo)師總是以認真負責(zé)、一絲不茍的工作態(tài)度閱讀并修改文章中不足的地方,他優(yōu)良的作風(fēng)和嚴謹治學(xué)的態(tài)度深深影響著我,至此,向恩師致以最真摯的感謝和最崇高的敬意! 同時我要感謝我的同學(xué),特別是我的室友們,正是他們在這幾年里陪我一起成長,一起學(xué)習(xí),才讓我有了今天的成績。他們在平時的學(xué)習(xí)和生活中他們給予了我無私的關(guān)懷和幫助,
46、在此表示我最誠摯的謝意。,程序清單,主程序: ORG 0000H ;DS18B20.ASM DS18SL EQU 41H ;用于保存讀出溫度的低8位 DS18SH EQU 40H ;用于保存讀出溫度的高8位DS18FIG EQU 8H ;是否檢測到DS18B20標志位A_BIT1 EQU 31H ;數(shù)碼管個位數(shù)存
47、放內(nèi)存位置B_BIT1 EQU 32H ;數(shù)碼管十位數(shù)存放內(nèi)存位置D_BIT1 EQU 35H ;數(shù)碼管百位數(shù)存放內(nèi)存位置DS18CD1 EQU 42H ;DS18CD1-DS18CD8暫存64位ROMDS18CD2 EQU 43H ;從低到高DS18CD3 EQU 44HDS18CD4 EQU 45H D
48、S18CD5 EQU 46HDS18CD6 EQU 47HDS18CD7 EQU 48HDS18CD8 EQU 49HDS1864B EQU 4AHDS18ADS EQU 4BHDS18DQ EQU P1.0 ;30H,31H,32H,33H: X 個位 十位 XMOD7: MOV SP,#60HLCALL GET_TEMPER ;調(diào)用讀溫度子程序LCALL
49、READCODEAJMP MOD7 INIT_1820: ;DS18B20初始化 SETB DS18DQ CLR DS18DQ ;延時,500US低MC MOV R7,#250 DJNZ R7,$ MOV R7,#150 DJNZ R7,$ SETB DS18DQ
50、 ;釋放總線 LCALL DELAY60US ;15-60US的等待時間 MOV R6,#4 SETDSDQ:,LCALL DELAY60USJNB DS18DQ,SETDSDQFH ;60-240US內(nèi)是否有返回信號,為0跳DJNZ R6,SETDSDQMOV R7,#250DJNZ R7,$CLR DS18FIGRETSETDSDQFH:
51、SETB DS18FIGMOV R7,#250 DJNZ R7,$MOV R7,#100DJNZ R7,$RET; 數(shù)據(jù)處理程序: TEMP0: INC AAJMP TEMP1TEMPCOV: MOV A,DS18SL ;數(shù)據(jù)處理子程序 TEMPCOVMOV B,#16DIV ABJB B.3,TEMP0TEMP1: MOV 34H,A ;將DS18SL的高四位右移四位,存入
52、34H中(溫度值)MOV A,B ;將DS18SL的低四位X10/16得小數(shù)后一位數(shù).MOV B,#10MUL ABMOV B,#16DIV ABMOV 30H,A ;將小數(shù)后一位數(shù).存入30H中MOV A,DS18SH ;DS18SH中存放高8位數(shù),權(quán)重16,MOV B,#16MUL ABADD A,34H ;34H中存入溫度值的整數(shù)部分MOV B,#10 DIV ABMOV 31H,B ;個位存入31H中
53、MOV B,#10 ;DIV AB ;MOV 32H,B ;十位存入32H中MOV B,#10 ;DIV AB ;MOV 35H,B ;百位存入33H中MOV A,DS18SHMOV 33H,#10H ;JB ACC.7,EXIT7MOV 33H,#00HEXIT7: RET GET_TEMPER: ;讀出轉(zhuǎn)換后的溫度值,并顯示SETB DS18DQLCALL INIT_1820 ;先復(fù)位DS18B20
54、JB DS18FIG,TSS2RET ;判斷DS1820是否存在?若DS18B20不存在則返TSS2: MOV DS18ADS,#0DS18JX:LCALL DS18CODPMOV A,DS18ADSADD A,#9MOV DS18ADS,ACJNE A,#63,DS18JXRETDS18CODP:LCALL MRCOVT ;轉(zhuǎn)換指定的DS18B20的溫度LCALL MRRDTEDP ;顯示溫度,RETTEM
55、P:LCALL INIT_1820JB DS18FIG,NEXT4RETNEXT4:MOV DS18ADS,#9MOV A,#0CCH ;SKIP ROMLCALL WRITE_1820MOV A,#44H ;溫度轉(zhuǎn)換命令LCALL WRITE_1820LCALL DELAY1SLCALL MRRDTEDPRET;寫DS18B20的子程序(有具體的時序要求)WRITE_1820:
56、0; ;寫DS18B20MOV R5,#8DS18JXWE:SETB DS18DQ ;初始化CLR DS18DQCLR DS18DQMOV R7,#5DJNZ R7,$ ;拉低15US內(nèi),寫入數(shù)據(jù)CLR CRRC AMOV DS18DQ,CLCALL DELAY60US ;持續(xù)60USSETB DS18DQ ;寫完一個位DJNZ R5,DS18JXWE
57、RETREAD_1820_CODE: ;讀取CODE 64位 MOV R4,#8 ;讀8次數(shù) MOV R1,#DS18CD1 ;低位地址存在R1 DS18JXRD3:,MOV R5,#8 ;8位數(shù)據(jù)DS18JXRD2:SETB DS18DQ CLR DS18DQ ;
58、前兩句完成初始化NOPNOP ;延時至少1USSETB DS18DQ ;上升沿,并在,15US內(nèi)讀數(shù)MOV R7,#5DJNZ R7,$MOV C,DS18DQRRC ALCALL DELAY60US ;讀時序,最少60USDJNZ R5,DS18JXRD2MOV @R1,AINC R1DJNZ R4,DS18JXRD3SETB
59、 DS18DQRET;讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù)READ_18200:MOV R4,#2 ;讀兩次數(shù)MOV R1,#DS18SL ;低位地址存在R1DS18JXRD1:MOV R5,#8 ;8位數(shù)據(jù)DS18JXRD:SETB DS18DQ CLR DS18DQ ;前
60、兩句完成初始化NOPNOP ;延時至少1USSETB DS18DQ ;上升沿,并在,15US內(nèi)讀數(shù)MOV R7,#5DJNZ R7,$ MOV C,DS18DQRRC ALCALL DELAY60US ;讀時序,最少60US,DJNZ R5,DS18JXRDMOV @R1,ADEC R1DJNZ R4,DS18JXRD1SET
61、B DS18DQRETREAD_1820_1: ;讀取1位SETB DS18DQCLR DS18DQCLR DS18DQCLR DS18DQSETB DS18DQMOV R7,#5DJNZ R7,$JB DS18DQ,WEFHLCALL DELAY10MSWEFH:LCALL DELAY60USRETREADCODE: ;讀取64位RO
62、M,并顯示出來SETB DS18DQLCALL INIT_1820JB DS18FIG,NEXTRETNEXT:MOV A,#33HLCALL WRITE_1820LCALL READ_1820_CODELCALL DISPLAYCD RETDS1864SEN: ;送出64個位的數(shù)據(jù)MOV R4,#8MOV DPTR,#DS18TAB,DS1864SEN1:MOV A,
63、DS1864BMOVC A,@A+DPTRLCALL WRITE_1820INC DS1864BDJNZ R4,DS1864SEN1RETMATCHROM:LCALL INIT_1820MOV A,#55H ;MARCH ROMLCALL WRITE_1820MOV DS1864B,DS18ADSLCALL DS1864SENRETMRCOVT: ;匹配ROM并發(fā)出溫度轉(zhuǎn)換命
64、令LCALL MATCHROMMOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令LCALL WRITE_1820LCALL DELAY1SRETMRRDTEDP: ;匹配ROM并顯示轉(zhuǎn)換溫度LCALL INIT_1820LCALL MATCHROMMOV A,#0BEH ;發(fā)出讀取命令 LCALL WRITE_1820LCALL READ_18200LCALL TEMPCOVLCALL DISPL
65、AY ;調(diào)用數(shù)碼管顯示子程序RET鍵盤子程序 START:NOP ;程序開始 LCALL CH_KEY ;檢查鍵盤 AJMP START ;返回,CH_KEY:LCALL KS ;檢查有沒有按鍵按下 JNZ LK1 AJMP CH_KEY LK1:LCALL T12MS
66、 ACALL KS JNZ LK2 RET LK2:NOP LCALL SBIE ;按鍵識別子程序 MOV BUFF, A ;送緩沖區(qū)以識別是數(shù)字鍵還是功能鍵? LCALL CH_KF ;判斷按鍵功能。 JB FLAG1 ,KEY_FUN ;標志為1,則為功能鍵超溫報警程序: DIV:
67、;MOV R2,#08H;1kz持續(xù)時間 DIV1:MOV R3,#0FAH DIV2:CPL P3.3;輸出1khz方波 LCALL D5ms;調(diào)用延時程序1 DJNZR3,DLV2;持續(xù)1秒 DJNZ R2,DIV1
68、160;MOV R2,#10H;2khz持續(xù)時間 DIV3:MOV R3,#0FAH DI4:CPL P3.3;輸出2khz方波 LCALL D25ms;調(diào)用延時程序2 DJNZ R3,DIV4 DJNZ R2,DIV3
69、SIMP DIV;反復(fù)循環(huán) D5MS:MOV R7,#0FFH;延時子程序1 LOOP:NOP NOP DJNZ R7,LOOP RET,D25MS:MOVR6,#0FFH;延時子程序2 LIN:DJNZ R6,LIN RET繼電器控
70、制程序:START1:MOV SP,#60HJD: CPL P2.6 ;P2.6取反
71、60;LCALL DELAY ;延時 NOP SJMP JDDELAY:
72、60;MOV R0,#0AH ;延時子程序(1秒)DELAY33: MOV R1,#00HDELAY44: MOV R2,#0B2H &
73、#160; DJNZ R2,$ DJNZ R1,DELAY44 DJNZ
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機溫度自動控制系統(tǒng)外文文獻
- 溫度自動控制畢業(yè)設(shè)計--基于51單片機的溫度自動控制系統(tǒng)設(shè)計研究
- 溫度自動控制畢業(yè)設(shè)計--基于51單片機的溫度自動控制系統(tǒng)設(shè)計研究
- 基于單片機的溫度自動控制系統(tǒng)的課程設(shè)計
- 基于單片機的溫室自動控制系統(tǒng)設(shè)計
- 基于avr單片機水溫自動控制系統(tǒng)設(shè)計
- 基于單片機的溫室自動控制系統(tǒng)
- 基于avr單片機水溫自動控制系統(tǒng)
- 基于單片機自動控制系統(tǒng)調(diào)度方法
- 基于單片機的染色自動控制系統(tǒng)設(shè)計.pdf
- 基于單片機的溫室溫度自動控制系統(tǒng)畢業(yè)論文
- 設(shè)計之基于單片機的溫室大棚自動控制系統(tǒng)
- 基于單片機的溫室溫度自動控制系統(tǒng)畢業(yè)論文
- 基于單片機的溫室溫度自動控制系統(tǒng)(畢業(yè)論文)
- 集成電路課程設(shè)計---基于單片機的溫度自動控制系統(tǒng)的設(shè)計
- 基于單片機的魚用投餌機自動控制系統(tǒng)的設(shè)計
- 基于單片機的節(jié)水灌溉自動控制系統(tǒng)設(shè)計開題報告
- 基于單片機的室內(nèi)溫度控制系統(tǒng)設(shè)計
- 基于單片機的節(jié)水灌溉自動控制系統(tǒng)設(shè)計開題報告
- 基于單片機的水塔水位自動控制系統(tǒng)的設(shè)計【開題報告】
評論
0/150
提交評論