溫度控制系統課程設計_第1頁
溫度控制系統課程設計_第2頁
溫度控制系統課程設計_第3頁
溫度控制系統課程設計_第4頁
溫度控制系統課程設計_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

整理為word格式整理為word格式整理為word格式前言溫度是一種最基本的環境參數,日常生活和工農業生產中經常要檢測溫度。傳統的方式是采用熱電偶或熱電阻,但是由于模擬溫度傳感器輸出為模擬信號,必須經過AD轉換環節獲得數字信號后才能與單片機等微處理器接口,使得硬件電路結構復雜,制作成本較高。近年來,美國DALLAS公司生產的DSI18B20為代表的新型單總線數字式溫度傳感器以其突出優點廣泛使用于倉儲管理、工農業生產制造、氣象觀測、科學研究以及日常生活中。隨著科學技術的不斷進步與發展,溫度傳感器的種類日益繁多,數字溫度傳感器更因適用于各種微處理器接口組成的自動溫度控制系統具有可以克服模擬傳感器與微處理器接口時需要信號調理電路和A/D轉換器的弊端等優點,被廣泛應用于工業控制、電子測溫計、醫療儀器等各種溫度控制系統中。其中,比較有代表性的數字溫度傳感器有DS1820、MAX6575、DS1722、MAX6635等。智能溫度傳感器(亦稱數字溫度傳感器)是在20世紀90年代中期問世的。它是微電子技術、計算機技術和自動測試技術(ATE_)的結晶。目前,國際上已開發出多種智能溫度傳感器系列產品。智能溫度傳感器內部包含溫度傳感器、A/D傳感器、信號處理器、存儲器(或寄存器)和接口電路。有的產品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器能輸出溫度數據及相關的溫度控制量,適配各種微控制器(MCU),并且可通過軟件來實現測試功能,即智能化取決于軟件的開發水平。為了準確獲取現場的溫度和方便現場控制,本系統采用了軟硬件結合的方式進行設計,利用LED數碼管顯示溫度,利用DS18B20檢測當前的溫度值,通過和設定的參數進行比較,若實測溫度高于設定溫度,則通過555定時器產生頻率可變的報警信號,若實測溫度低于設定溫度,則加熱電路自動啟動,到達設定溫度后停止。在軟件部分,主要是設計系統的控制流程和實現過程,以及各個芯片的底層驅動設計已達到所要求的功能。在近端與遠端通信過程中,采用串行MAX232標準,實現PC機與單片機間的數據傳輸。整理為word格式整理為word格式整理為word格式目錄前言 1目錄 21.總體方案設計 31.1系統的工作原理 31.2系統的方案比較 41.3系統方案的確定 41.3.1單片機芯片的選擇 41.3.2顯示模塊的選擇 51.3.3數據采集系統的選擇 51.3.4復位電路 61.3.5通信接口電路的選擇 71.3.6電路設計最終方案 72系統硬件設計 82.1系統硬件概述 82.2AT89S52最小系統模塊設計 82.3振蕩源和復位電路設計 112.3.1復位電路 112.3.2振蕩源電路 122.4顯示模塊設計 122.5串行接口模塊設計 142.6溫度采集模塊設計 152.7報警電路設計 172.8加熱電路設計 183.系統軟件設計 193.1主程序流程圖 193.2外部中斷的應用 203.3延時程序的處理 214.心得體會 22參考文獻 23附錄1:程序 24附錄2:英文資料翻譯 30整理為word格式整理為word格式整理為word格式1.總體方案設計隨著電子產業的高速化發展,電子產品的集成化程度也越來越高,智能化的產品也日漸增多,溫度測控系統也從傳統化的產品向智能化的產品方向發展。本次課程設計中,我設計的就是一個溫度控制系統,其設計思想是利用單片機作為主要的控制器件,LED數碼管做為電路的顯示部分,外加報警電路和自動加熱電路,當溫度低于設定值20度時,加熱器加熱。加熱到20度時,加熱器自動停止加熱。當溫度高于設定值25度時,報警電路報警。從而實現自動控制溫度在20到25度之間。1.1系統的工作原理在溫控系統中,需要將溫度的變化轉化為對應的電信號的變化,選用AT89S52單片機為中央處理器,通過溫度傳感器對空氣進行溫度采集,將采集到的溫度信號傳輸給單片機,再由單片機控制顯示器,并比較采集溫度與設定溫度是否一致,然后驅動電機加熱或降溫循環對空氣進行處理,從而模擬實現空調控制單元的工作情況。工作流程說明如下:開始,先接通電源,LED就自動顯示出當前溫度。當溫度值低于設定值20度時,加熱器加熱。加熱到20度時,加熱器自動停止加熱。當溫度高于設定值25度時,報警電路報警。系統的主要技術指標如下:測溫范圍:-10℃~+100℃;溫度分辨率:正負0.5℃.系統的原理框架圖,如圖1所示。單片機單片機顯示器報警電路加熱電路溫度傳感器PC機整理為word格式整理為word格式整理為word格式圖1系統原理框圖1.2系統的方案比較在日常生活中,測量溫度的方案有很多,智能溫度測控系統的設計方法也不勝枚舉。有工業級別的溫度控制系統,有商業的溫度控制系統以及民用的溫度控制系統。由于身邊的條件以及元器件的限制,在這里選擇設計民用的智能溫度控制系統。方案一:以熱電偶作為溫度傳感器,AD模數轉換,LED作為顯示器,采用矩陣鍵盤,用AT89C51作為主控芯片。在該方案中,熱電偶的測量范圍廣,而且精度也很好,其靈敏度也很高,但是其價格高,還需要增加相應的外圍電路,給硬件電路的設計帶來了一定的困難,該溫度傳感器實用于工業級別的溫度控制,而本系統是民用級別的,測量的范圍也不高;AD模數轉換的轉換速率和分辨率也會給測量的溫度值帶來一定的影響;LED顯示,則過于傳統化,價格也較貴,其顯示的位數很有限,若要增加功能,會給設計帶來很大的困難。方案二:以DS18B20作為溫度傳感器,LED數碼管作為顯示屏,用AT89S52作為主控芯片。在該方案中,溫度傳感器DS18B20在日常生活中應用很廣泛,器價格較之熱電偶也很便宜,測量的精度也能達到民用的要求,其集成化的程度更高,不需要外圍的處理電路。即可將模擬信號轉換為電信號;LED數碼顯示屏讀數方便,而且比較清晰;主控芯片采用AT89S52的兼容的電平兼容性更好,可利用的資源也更多。1.3系統方案的確定1.3.1單片機芯片的選擇在單片機控制中,常用的ATMEL公司單片機種類有AT89C51、AT89C52、AT89S51、AT89S52,都兼容MCS-51單片機。對于AT89C51,是一種帶4K字節閃存可編程可擦除只讀存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,128×8位內部RAM,32可編程I/O線,兩個16位定時器/計數器,5個中斷源等主要特性。相比而言,AT89C52有8K的ROM,256B的RAM,還增加一個定時器/計數器2,自然價格比C51略高。而相對而言,S系列的單片機具有在線編程下載(ISP)功能和看門狗,而且運行的速度的最高頻率達到33MHZ,使得運行速度更快,自然價格比C系列的要高2元左右。但是當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,S系列的不需要對芯片多次拔插,節省了調試的時間。整理為word格式整理為word格式整理為word格式綜合考慮以上種種因素,由于考慮到產品的成本,在同樣能完成我們所要求的功能時,自然會選擇容易操作和擴展的AT89S52,這樣更容易把產品推向市場。但是在實驗室的的調試中,我們依然可以用AT89C51,這樣就方便了我們的硬件調試,同樣降低了開發產品的成本。1.3.2顯示模塊的選擇常見的文字、圖像顯示屏主要有LED(LightEmittingDiode)顯示屏,LCD(LiquidCrystalDisplay),LED點陣數碼管顯示。LED顯示器與LCD顯示器相比,LED在亮度、功耗、可視角度和刷新速率等方面,都更具優勢。LED與LCD的功耗比大約為10:1,而且更高的刷新速率使得LED在視頻方面有更好的性能表現,能提供寬達160°的視角,可以顯示各種文字、數字、彩色圖像及動畫信息,也可以播放電視、錄像、VCD、DVD等彩色視頻信號,多幅顯示屏還可以進行聯網播出。因此本次顯示模塊設計中選用LED數碼顯示管。1.3.3數據采集系統的選擇本課程設計要求對溫度進行測量,待測量一般不能直接被轉換成數字量,通常要進行放大、特性補償、濾波等環節的預處理。被測信號往往因為幅值較小,而且可能還含有多余的高頻分量等原因,不能直接送給A/D轉換器,需對其進行必要的處理,即信號調理。如對信號進行放大、衰減、濾波等。為減少電路的繁復,故本測控系統數據采集系統中采用集成溫度采集元件與A/D轉換元件配合使用。硬件選擇為DS18B20數字溫度傳感器。數據采集方式有順序控制數據采集和程序控制數據采集。方案一:順序控制數據采集,顧名思義,它是對各路被采集參數,按時間順序依次輪流采樣。系統的性能完全由硬件設備決定。在每次的采集過程中,所采集參數的數目、采樣點數、采樣速率、采樣精度都固定不變。若要改變這些指標,需改變接線或更換設備方能實現。方案二:程序控制數據采集,由硬件和軟件兩部分組成。,據不同的采集需要,在程序存儲器中,存放若干種信號采集程序,選擇相應的采集程序進行采集工作,還可通過編新的程序,以滿足不同采樣任務的要求。由于順序控制數據采集方式缺乏通用性和靈活性,所以本設計中選用程序控制數據采集方式。整理為word格式整理為word格式整理為word格式1.3.4復位電路1.復位電路單片機在開機時都需要復位,以便中央處理器CPU以及其他功能部件都處于一個確定的初始狀態,并從這個狀態開始工作。AT89S51的RST引腳是復位信號的輸入端。復位電平是高電平有效,持續時間要有24個時鐘周期以上。本系統中單片機時鐘頻率為12MHz則復位脈沖至少應為2us。方案一:上電復位電路上電瞬間,RST端的的電位與Vcc相同,隨著電容的逐步充電,充電電流減小,RST電位逐漸下降。上電復位所需的最短時間是振蕩器建立時間加上二個機器周期,在這段時間里,振蕩建立時間不超過10ms。復位電路的典型參數為:C取10uF,R取8.2k,故時間常數=RC=10108.210=82ms以滿足要求。方案二:外部復位電路按下開關時,電源通過電阻對外接電容進行充電,使RES端為高電平,復位按鈕松開后,電容通過下拉電阻放電,逐漸使RET端恢復低電平。方案三:上電外部復位電路典型的上電外部復位電路是既具有上電復位又具有外部復位電路,上電瞬間,C與Rx構成充電電路,RST引腳出現正脈沖,只要RST保持足夠的高電平,就能使單片機復位。一般取C=22uF,R=200,Rx=1k,此時=2210110=22ms當按下按鈕,RST出現5=4.2V時,使單片機復位。本設計采用方案三。2.振蕩源在AT89S52內部有一個用于構成振蕩器的高增益反相放大器。引腳XTAL1(19)、XTAL2(18)分別是此放大器的輸入端和輸出端。方案一:內部方式整理為word格式整理為word格式整理為word格式與作為反饋元件的片外晶體或陶瓷諧振器一起組成一個自激振蕩器。方案二:外部方式外部振蕩器信號的接法與芯片類型有關。CMOS工藝的MCU其XTAL1端接外部時鐘信號,XTAL2端可懸空。HMOS工藝的MCU則XTAL2端接外部時鐘信號,XTAL1端須接地。本設計采用方案一。1.3.5通信接口電路的選擇1.傳輸方式的選擇串行通信有同步和異步兩種工作方式。方案一:同步方式要求發送與接受保持嚴格同步,由于串行傳輸逐位按順序進行,為了約定數據是由哪一位開始傳輸,需設定同步字符。此方式傳輸速度快,但硬件復雜。方案二:異步方式,規定了數據傳輸格式,每個數據均以相同的幀格式傳送,每幀信息由起始位、數據位、奇偶效驗位和停止位組成。幀與幀間用高電平分隔開,但每幀均需附加位,降低了傳輸效率。異步通信依靠起始位、停止位保持通信同步。對硬件的要求低,實現起來比較簡單、靈活,適用于數據的隨機發送/接收,一般適用于50~9600bps的低速串行通信。2.電平轉換芯片選擇RS-232規定的電平和一般微處理器的邏輯電平不一致,必須進行電平轉換。方案一:采用MCl488和MCl489芯片的轉換接口MCl488和MCl489芯片為早期的RS-232至TTL邏輯電平的轉換芯片,需要±12V電壓,并且功耗較大,不適合用于低功耗的系統。方案二:采用MAX232芯片的轉換接口MAX232是MAXIM公司的產品,包含兩路驅動器和接收器的RS-232轉換芯片。芯片內部有一個電壓轉換器,可以把輸入的+5V電壓轉換為RS-232接口所需的±10V電壓,尤其適用于沒有±12V的單電源系統。由于RS-232信號電平與MSC-51型單片機信號電平(TTL電平)不一致,因此在本次設計中選用MAX232芯片。1.3.6電路設計最終方案整理為word格式整理為word格式整理為word格式綜上各方案所述,對此次作品的方案選定:采用AT89S52作為主控制系統;LED數碼顯示器作為顯示,DS18B20用來采集溫度信息,附帶加熱電路和報警電路,采用MAX232芯片的串行接口電路,以及單向橋式直流穩壓電路構成的電源。2系統硬件設計2.1系統硬件概述本電路是由AT89S52單片機為控制核心,具有可編程功能,低功耗,能在3V超低壓工作;單線集成溫度傳感器獨特的單線接口只需1個接口引腳即可通信,多點能力使分布式溫度檢測應用得以簡化,不需要外部元件,可用數據線供電,不需備份電源;溫度顯示部份由LED數碼顯示屏顯示;報警電路采用555產生變化的頻率,在通過功率放大器驅動蜂鳴器;加熱電路采用電機驅動。2.2AT89S52最小系統模塊設計AT89S52是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含4kbytes的可反復擦寫的只讀程序存儲()和28btes的隨存數存(M,件采用ML公司高度非失存技產,兼標準M51指系,內通用8位央理()和lash存單功強大89片可您提供許多高性價比的應用場合,可靈活應用于各種控制領域。圖2-1AT89S52管腳圖整理為word格式整理為word格式整理為word格式主要性能參數:·與M51產品指令系統完全兼容·4k字節可重擦寫lash閃速存儲器·1000次擦寫周期·全靜態操作:0-24Mz·三級加密程序存儲器·128×8字節內部M·32個可編程/O口線·2個16位定時/計數器·6個中斷源·可編程串行T通道·低功耗空閑和掉電模式功能特性概述:89提供下準能4k字節lsh速儲,128字內部M,32個/O口線兩個16位時數器一個5兩中結構個雙串通口內蕩及鐘路同時89可降至0z的靜輯作支兩軟可的電作。閑式停止U的工但允許,時計,行信中斷系統繼續工作。掉電方式保存M中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。引腳功能說明:·cc:電源電壓·G:地·0是組8極路向/O口,即址數總復口作輸口時每能收電流的方式驅動8個L邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在問部據儲或序儲時這口分轉(低8數總復訪期激部上拉電阻。在ash編程時,0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。整理為word格式整理為word格式整理為word格式·1口:1一帶部拉阻的8雙向/O口,1的出沖可動吸或出)4個L邏輯門路端“1通內的拉阻端拉高平時作入口作入使時為部在電阻,某個引腳被外部信號拉低時會輸出一個電流(。ash編程和程序校驗期間,1接收低8位地址。·2口:2一帶內上電的8位向/O口,2的輸緩級驅吸或出)4個L邏輯電路對口“過部上電把口到電平此可輸口輸口用時因內存拉電阻,某個引腳被外部信號拉低時會輸出一個電流(在問部序儲器或16位址外數存(執行M@R指時2口出高8地數據在問8地的部據儲(執行M@I指),2線的容也殊能存()區中2寄存器的內容,在整個訪問期間不改變。lash編程或校驗時,2亦接收高位地址和其它控制信號。·P3口:3口一帶內上電的8雙向/O口。3輸緩級驅(收輸電)4個邏門路。對3寫“1時它被部拉阻并作輸端。輸端,外拉低的3將用上拉電阻輸出電流(,3口除了作為一般的/O口線外,更重要的用途是它的第二功能,如下表所示:端口引腳第二功能3.0(串行輸入口)3.1(串行輸出口)3.2————0(外中斷0)3.3——1(外中斷1)3.40(定時/計數器0外部輸入)整理為word格式整理為word格式整理為word格式3.51(定時/計數器1外部輸入)3.6———(外部數據存儲器寫選通)3.7———D(外部數據存儲器讀選通)表1P3口第二功能3口還接收一些用于lash閃速存儲器編程和程序校驗的控制信號。·:復位輸入。當振蕩器工作時,T引腳出現兩個機器周期以上高電平將使單片機復位。/:當問部序儲或據儲時(地址存許出沖于存址的低8位字節即不問部儲,E仍以時鐘蕩的/6輸固的脈信,此可外出鐘用定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個E脈沖。如必,通對殊能存(區的8H單的O置,禁止E操作該置后只有一條MX和MC令E才會被活此,引會微拉,片執外程時應設置E無效。/外訪允許欲使U訪外程存(地址為000—A端必須持電接地。需注意的是:如果加密位1被編程,復位時內部會鎖存A端狀態。如A端為高電平(接C端,U則執行內部程序存儲器中的指令。lash存儲器編程時,該引腳加上12V的編程允許電源pp,當然這必須是該器件是使用12V編程電壓pp。·X1:振蕩器反相放大器的及內部時鐘發生器的輸入端。·X2:振蕩器反相放大器的輸出端。2.3振蕩源和復位電路設計2.3.1復位電路單片機的復位是靠外部電路實現的。無論是HMOS還是CHMOS型,在振蕩器正運行的情況下,RST引腳保持二個機器周期以上時間的高電平,系統復位。在RST端出現高電平的第二個周期,執行內部復位,以后每個周期復位一次,直至RST端變低。本文采用上電外部復位電路,如圖2-整理為word格式整理為word格式整理為word格式4所示,相關參數為典型值。圖2-2復位電路2.3.2振蕩源電路內部方式時鐘電路如圖2-5所示。外接晶體以及電容、構成并聯諧振電路,接在放大器的反饋回路中,內部振蕩器產生自激振蕩,一般晶振可在2~12MHz之間任選。對外接電容值雖然沒有嚴格的要求,但電容的大小多少會影響振蕩頻率的高低、振蕩器的穩定性、起振的快速性和溫度的穩定性。外接晶體時,和通常選30pF左右;外接陶瓷諧振器時,和的典型值為47pF。圖2-3振蕩電路整理為word格式整理為word格式整理為word格式2.4顯示模塊設計本次設計中顯示模塊部分選擇的是LED數碼顯示屏。液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、易于實現全彩色顯示的特點,目前已經被廣泛應用在便攜式電腦、數字攝像機、PDA移動通信工具等眾多領域。發光二極管(LightEmittingDiode,LED)是一種由某些特殊的半導體材料制作成的PN結。當正向偏置時,由大量的電子—空穴復合,LED釋放出熱量而發光。LED的正向工作壓降一般為1.2-2.6V,發光工作電流為5-20mA,發光強度基本上與正向電流成正比。LED顯示器由發光二極管構成,具有工作電壓低、體積小、壽命長(約10萬小時)、響應速度快(小于1us),顏色豐富(紅、黃、綠等)等特點,是只能儀器最常用的顯示器。LED顯示器分為斷碼式顯示器和點陣式顯示器。1.斷碼式LED顯示器由數個LED組成一個陣列,并封裝于一個標準尺寸的管殼內,就形成了LED數碼字符顯示器。這類顯示器的結構主要有:有7個LED(加上一個小數點為8個LED)構成的“日”字形7段(或8段)數碼顯示器;由12個LED構成的“田”字形數碼顯示器;由16個LED構成的“米”字形數碼顯示器。LED顯示器的顯示方式有靜態顯示和動態顯示之分。(1)靜態顯示方式是指顯示器在顯示某一字符時,相應段的發光二極管恒定導通或截止,使顯示字符的字段連續發光。在靜態方式中,每位數碼管都應有各自的驅動器件。為了便于程序控制,在選擇LED驅動器件時,往往選擇帶鎖存功能的器件,用以鎖存各自待顯示數碼。因此,靜態顯示系統在每一次輸出后能夠保持不變,僅在待顯示數碼需要改變時,才更新其數字顯示器中鎖存的內容。這種顯示方式的優點是亮度高,控制程序簡單,顯示穩定可靠;缺點是功耗大,當顯示的位數較多時,占用的I/O端口較多,此時可以采用動態顯示方式。(2)動態顯示方式:實用于顯示位數較多的情況。所有位的段選線并聯起來,由一個8位I/O端口控制,而各位的共陽極或共陰極分別由相應的I/O端口控制,形各位的輪流選通,即LED顯示部分輪流工作,每次只能使一個器件顯示1-5ms。由于人的視覺暫留現象和發光二極管的余暉效應,人眼扔感覺所有的器件都在同時顯示,獲得穩定的視覺效果。此種顯示方式的優點是占用I/O端口少,隨著高亮度LED數碼管的出現,動態顯示同樣可以打到很好的顯示效果。整理為word格式整理為word格式整理為word格式動態顯示方式的實現有程序控制掃描和定時中斷掃描兩種。程序控制掃描方式要占用許多CPU時間,在計算機的任務較重時,將影響CPU的工作效率,所以在實際應用中常采用定時中斷掃描方式。這種方式是每隔一定時間讓一位數碼管顯示,假設有8位數碼管,則顯示掃描周期為8ms。2.點陣式LED顯示器:8段LED顯示器顯示的數碼和符號比較簡單,顯示更多種類且字符逼真的字符則比較困難。點陣式LED顯示器是以點陣格式進行顯示的,其優點是顯示的符號比較逼真,更易識別,不足之處是接口電路以及控制程序比較復雜。點陣式顯示器一般有4x7、5x7、7x9點陣等形式。最常用的是5x7點陣,它由35個發光二極管組成5列x7行的矩陣。用多個點陣式LED顯示器可以組成大屏幕LED顯示屏,用來顯示漢字、圖形和表格,而且能產生各種動畫效果。這是新聞媒介和廣告宣傳的有力工具,其應用也越來越普遍。在本次設計中使用的是點段式動態顯示LED數碼管顯示器。2.5串行接口模塊設計AT89S52有一個全雙工的串行口,所以單片機和PC之間可以方便地進行串口通訊。進行串行通信時要滿足一定的條件,如PC的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉換電路,這里用專用芯片MAX232進行轉換,用專用芯片更簡單可靠。MAX232如圖2-10所示。它包含兩路接收器和驅動器,內部有一個電源電壓變換器,可以把輸入的+5V電壓變換位RS-232輸出電平所需的+10V電壓。所以,用該芯片接口的串行通信只需單一的+5V電源就可以了。其應用性更強。上半部電容、、、及,是電源變換部分。實際應用中,器件對電源噪聲很敏感。因此,對地需要加去耦電容,其值為1.0uF。電容、、、取同樣數值的電解電容,以提高抗干擾能力。整理為word格式整理為word格式整理為word格式圖2-4MAX232引腳圖串口通信的硬件連接采用三線制連接串口,就是說和PC的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對本設計來說已經足夠了,MAX232的第11腳和單片機的11號引腳連接,第12腳和單片機的10腳連接,第15腳和單片機的20腳連接。MAX232的第14腳和PC機串口的2號引腳連接,第13腳和PC機串口的3號引腳連接,第15腳和PC機串口的5號引腳連接。通信接口電路如圖6所示。圖2-5通信接口電路通信接口電路在本次設計中起到的作用是把溫度值傳送到單片機上,最后在顯示器上進行顯示。2.6溫度采集模塊設計整理為word格式整理為word格式整理為word格式采用數字式溫度傳感器DS18B20,它是數字式溫度傳感器,具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數據線進行數據傳輸,使用P1.5與DS18B20的DQ口連接加一個上拉電阻,VCC接電源,GND接地。接口電路,如圖7所示。圖2-6溫度采集模塊接口電路各管腳功能:DQ為數字信號輸入/輸出端;GND為電源地;VCC為外接供電電源輸入端(在寄生電源接線方式時接地)。高速暫存器:高速暫存存儲器由9個字節組成,其分配如表-6所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第0和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,數據格式如表1所示。對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變為原碼,再計算十進制值。第九個字節是冗余檢驗字節。高速暫存器地址分布,如表4所示。表2高速暫存器地址分布:根據DS18B20的通訊協議,主機(單片機)控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位操作,復位成功后發送一條ROM指整理為word格式整理為word格式整理為word格式令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然后釋放,當DS18B20收到信號后等待16~60微秒左右,后發出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。ROM指令介紹:主要有5條指令,如下表3所示。表3ROM指令表RAM指令:主要有4條指令,涉及到溫度的轉換到存儲的一個簡單過程。表4RAM指令表整理為word格式整理為word格式整理為word格式2.7報警電路設計報警電路主要由555定時器、功率放大器、蜂鳴器以及一些相應的原件構成,當溫度高于設定值時,報警電路報警在該設計中報警電路是不可缺少的。由于設計的是實時檢測系統的溫度,作為恒溫控制的。當溫度高于設定值時,555定時器工作于多諧振蕩器狀態,產生可變的頻率,由于555定時器不能直接驅動蜂鳴器,故由555定時器輸出的信號,需要功率放大來驅動蜂鳴器。接口電路設計,如圖9所示。圖2-7報警電路模塊設計2.8加熱電路設計加熱電路設計,是電路的主要功能部分,作為整個電路的執行部分,當測量溫度高于設定值時,并在液晶顯示屏上顯示制冷符號“—“;當測量溫度低于設定值時,電機正轉加熱,并且在液晶顯示屏上顯示加熱符號“+”。由于電機需要高電壓控制,因此在設計中有一個光電耦合電路,起到低電壓控制高電壓的作用。其與單片機的接口電路,如圖10所示。整理為word格式整理為word格式整理為word格式圖2-8加熱電路模塊設計圖中LED作為電機運行的指示燈,當電機運行時,燈亮。便于電路的檢修。注意加熱電路與單片機的接口部分不能直接相連,因為兩者的電平不兼容,需要加一個反相緩沖器。3.系統軟件設計3.1主程序流程圖由于本課程設計主要針對作為數據采集與控制的單片機系統而非PC機,故軟件編程為單片機系統編程。系統采用模塊化編程,將各部分功能分別實現,主要的功能子程序有:溫度采集、LED顯示。主程序流程圖如圖10所示。整理為word格式整理為word格式整理為word格式開始開始初始化調用溫度采集子程序調用LCD顯示子程序判斷溫控標志位圖3-1主程序流程圖3.2外部中斷的應用溫度傳感器所測得的信號經過電路處理后產生了中斷信號,作為單片機的外部終斷源,中斷處理過程分為四個部分:中斷請求、中斷響應、中斷服務、中斷返回。CPU執行程序時,在每一個指令周期的最后一個T周期都要檢查是否有中斷請求,如果沒有中斷請求程序將執行后面的程序。在本系統的程序中,啟動計時器后,外部中斷必須在運算程序執行之前,所以需要加一個等待中斷請求的延時程序。在中斷響應階段,CPU會判斷多個中斷請求的優先級,中斷優先級的設置由中斷優先級管理寄存器IP。如果幾個中斷請求的IP均為0或者1,則將有內部查詢確定優先級。本設計已經用到定時器T0中斷,而外部中斷的作用就是為了停止計時器工作,提取時間T。所以可以選用比T0中斷優先級高的外部中斷0,這樣可以暫停定時器中斷,并把定時器T0關閉,又因為查詢順序在T0之前所以不必對IP進行設置。本程序中,當溫度低于20℃時,產生中斷。由P3.3口控制加熱器加熱。加熱到20℃后停止加熱。對中斷的設置為外部中斷1開啟;當溫度高于25℃時,產生中斷,由P3.2口控制報警電路報警。這些設置可以通過對寄存器IE進行總體設置。根據電路設計外部中斷的觸發方式下降沿觸發與低電平出發均可,故采用下降沿觸發,即IE=0x83。整理為word格式整理為word格式整理為word格式3.3延時程序的處理延時時間約為18ms的延時程序。C語言程序:voiddelay18ms(void){

unsignedchari,j;

for(i=90;i>0;i--)

for(j=98;j>0;j--)

}該程序采用for語句的嵌套式循環設計,利用累減賦值的執行時間實現程序上的延遲。但是分析具體的延時時間轉換成匯編語言分析會更加清楚明了。產生的匯編程序如下:

MOV

R6,#TIME1//TIME1為i的16進制數值

LOOP2: MOV

R5,#TIME2//TIME2為j的16進制數值

LOOP1:DJNZ

R5,LOOP1

DJNZ

R6,LOOP2

RET

整理為word格式整理為word格式整理為word格式4.心得體會在這次課程設計中,我們運用到了以前所學的專業課知識,雖然過去從未獨立應用過它們,但在學習的過程中帶著問題去學我發現效率很高,這是我做這次課程設計的又一收獲。后,要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內部結構有一個系統的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養成注釋程序的好習慣,一個程序的完美與否不僅僅是實現功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設計課程過程中遇到問題是很正常的,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設計結束了,但是從中學到的知識會讓我受益終身。發現、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。設計過程,好比是我們人類成長的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。我們通過查閱大量有關資料,并在小組中互相討論,交流經驗和自學,若遇到實在搞不明白的問題就會及時請教老師,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。通過這次課程設計我也發現了自身存在的不足之處,雖然感覺理論上已經掌握,但在運用到實踐的過程中仍有意想不到的困惑,經過一番努力才得以解決。這也激發了我今后努力學習的興趣,我想這將對我以后的學習產生積極的影響。通過這次設計,我懂得了學習的重要性,了解到理論知識與實踐相結合的重要意義,學會了堅持、耐心和努力,這將為自己今后的學習和工作做出了最好的榜樣。我覺得作為一名測控專業的學生,單片機的課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對于這門課懂的并不多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個多禮拜的“學習”,在小組同學的幫助和講解下,漸漸對這門課逐漸產生了些許的興趣,自己開始主動學習并逐步從基礎慢慢開始弄懂它。我認為這個收獲應該說是相當大的。覺得課程設計反映的是一個從理論到實際應用的過程,但是更遠一點可以聯系到以后畢業之后從學校轉到踏上社會的一個過程。整理為word格式整理為word格式整理為word格式本次課程設計能夠順利完成,離不開黎水平老師的指點和幫助,在此表示十分感謝。參考文獻[1]OperationalAmplifiersdata.sheet.intersil,1997[2]LM567datasheet.intersil,1997[3]康華光.電子技術基礎模擬部分(第五版).高等教育出版社.2006.[4]康華光.電子技術基礎數字部分(第五版).高等教育出版社.2006.[5]趙建領,薛園園.51單片機開發與應用技術詳解.電子工業出版社.2009.[6]史建芳.智能儀器設計基礎.電子工業出版社.2009.[7]李廣弟,朱月秀,王秀山.單片機基礎(修訂本).2002.[8]譚浩強.C語言程序設計(第三版).清華大學出版社.2005.[9]張國雄.測控電路.機械工業出版社.2002[10]李剛.現代測控電路.高等教育出版社.2004.[11]趙茂泰.智能儀器原理及應用.電子工業出版社.1999整理為word格式整理為word格式整理為word格式附錄1:程序#include<reg52.h>//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#include<math.h>#include<stdio.h>#include<INTRINS.H>#defineucharunsignedchar#defineuintunsignedint;/******************************************************************//*定義端口*//******************************************************************/sbitseg1=P2^0;sbitseg2=P2^1;sbitseg3=P2^2;sbitDQ=P1^3;//ds18b20端口sfrdataled=0x80;//顯示數據端口/******************************************************************//*全局變量*//******************************************************************/uinttemp;ucharflag_get,count,num,minute,second;ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段數碼管段碼表共陰ucharstr[6];/******************************************************************//*函數聲明*//******************************************************************/voiddelay1(ucharMS);unsignedintReadTemperature(void);voidInit_DS18B20(void);unsignedcharReadOneChar(void);voidWriteOneChar(unsignedchardat);voiddelay(unsignedinti);voidUARTinit(void){SCON=0x50; /*SCON:模式1,8-bitUART,使能接收*/TMOD|=0x20;/*TMOD:timer1,mode2,8-bitreload*/整理為word格式整理為word格式整理為word格式TH1=0xFD;/*TH1:reloadvaluefor9600baud@11.0592MHz*/TR1=1;/*TR1:timer1run*///EA=1;/*打開總中斷*///ES=1; TI=1;}/******************************************************************//*主函數*//******************************************************************/main(){unsignedintTempH,TempL;TMOD|=0x01;//定時器設置TH0=0xef;TL0=0xf0;IE=0x82;TR0=1;UARTinit();P2=0x00;count=0;while(1){str[5]=0x39;//顯示C符號str[1]=tab[TempH/100];//百位溫度str[2]=tab[(TempH%100)/10];//十位溫度str[3]=tab[(TempH%100)%10]|0x80;//個位溫度str[4]=tab[TempL];//帶小數點if(flag_get==1)//定時讀取當前溫度{temp=ReadTemperature();if(temp&0x8000){str[0]=0x40;//負號標志temp=~temp;//取反加1 temp+=1; }elsestr[0]=0;TempH=temp>>4;TempL=temp&0x0F;TempL=TempL*6/10;//小數近似處理printf("%d.%d\n",TempH,TempL);整理為word格式整理為word格式整理為word格式flag_get=0;}}}/******************************************************************//*定時器中斷*//******************************************************************/voidtim(void)interrupt1using1//中斷,用于數碼管掃描和溫度檢測間隔{TH0=0xef;//定時器重裝值TL0=0xf0;num++;if(num==200){num=0; flag_get=1;//標志位有效second++;if(second>=60){second=0;minute++;}}count++;if(count==1){P2=0;dataled=str[0];}//數碼管掃描if(count==2){P2=1;dataled=str[1];}if(count==3){P2=2;dataled=str[2];}if(count==4){P2=3;dataled=str[3];}if(count==5){P2=4;dataled=str[4];}if(count==6){P2=5;dataled=str[5];count=0;}整理為word格式整理為word格式整理為word格式}/******************************************************************//*延時函數*//******************************************************************/voiddelay(unsignedinti)//延時函數{while(i--);}/******************************************************************//*初始化*//******************************************************************/voidInit_DS18B20(void){unsignedcharx=0;DQ=1;//DQ復位delay(8);//稍做延時DQ=0;//單片機將DQ拉低delay(80);//精確延時大于480usDQ=1;//拉高總線delay(10);x=DQ;//稍做延時后如果x=0則初始化成功x=1則初始化失敗delay(5);}/******************************************************************//*讀一個字節*//******************************************************************/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//給脈沖信號dat>>=1;DQ=1;//給脈沖信號if(DQ)dat|=0x80;delay(5);}return(dat);}/******************************************************************//*寫一個字節*//******************************************************************/整理為word格式整理為word格式整理為word格式voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}delay(5);}/******************************************************************//*讀取溫度*//******************************************************************/unsignedintReadTemperature(void){unsignedchara=0;unsignedintb=0;unsignedintt=0;Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0x44);//啟動溫度轉換delay(200);Init_DS18B20();WriteOneChar(0xCC);//跳過讀序號列號的操作WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度a=ReadOneChar();//低位b=ReadOneChar();//高位b<<=8;t=a+b;return(t);}通信串行接口電路程序:HIGHEQU31HLOWEQU30HORG1000HSTART:MOVHIGH,#00MOVLOW,#00;轉換結果單元清除CLRP1.6CLRP1.7;A/D轉換JNBP1.5,$;待轉換結束SETBP1.6;SCLK上升沿整理為word格式整理為word格式整理為word格式MOVR7,#12;置循環初值12LP:CPLP1.6;發SCLK脈沖JNBP1.6,LP;等待SCLK變高MOVC,P1.5;將數據取到CMOVA,LOWRLCAMOVLOW,AMOVA,HIGHRLCAMOVHIGH,A;將取到的數據位逐位移入結果保存單元DJNZR7,LPSETBP1.7;結束RETEND整理為word格式整理為word格式整理為word格式附錄2:英文資料翻譯MicrocomputerSystemsElectronicsystemsareusedforhandinginformationinthemostgeneralsense;thisinformationmaybetelephoneconversation,instrumentreadoracompany’saccounts,butineachcasethesamemaintypeofoperationareinvolved:theprocessing,storageandtransmissionofinformation.inconventionalelectronicdesigntheseoperationsarecombinedatthefunctionlevel;forexampleacounter,whetherelectronicormechanical,storesthecurrentandincrementsitbyoneasrequired.Asystemsuchasanelectronicclockwhichemployscountershasitsstorageandprocessingcapabilitiesspreadthroughoutthesystembecauseeachcounterisabletostoreandprocessnumbers.Presentdaymicroprocessorbasedsystemsdepartfromthisconventionalapproachbyseparatingthethreefunctionsofprocessing,storage,andtransmissionintodifferentsectionofthesystem.ThispartitioningintothreemainfunctionswasdevisedbyVonNeumannduringthe1940s,andwasnotconceivedespeciallyformicrocomputers.Almosteverycomputerevermadehasbeendesignedwiththisstructure,anddespitetheenormousrangeintheirphysicalforms,theyhaveallbeenofessentiallythesamebasicdesign.Inamicroprocessorbasedsystemtheprocessingwillbeperformedinthemicroprocessoritself.Thestoragewillbebymeansofmemorycircuitsandthecommunicationofinformationintoandoutofthesystemwillbebymeansofspecialinput/output(I/O)circuits.Itwouldbeimpossibletoidentifyaparticularpieceofhardwarewhichperformedthecountinginamicroprocessorbasedclockbecausethetimewouldbestoredinthememoryandincrementedatregularintervalsbutthemicroprocessor.However,thesoftwarewhichdefinedthesystem’sbehaviorwouldcontainsectionsthatperformedascounters.Theapparentlyratherabstractapproachtothearchitectureofthemicroprocessoranditsassociatedcircuitsallowsittobeveryflexibleinuse,整理為word格式整理為word格式整理為word格式sincethesystemisdefinedalmostentirelysoftware.Thedesignprocessislargelyoneofsoftwareengineering,andthesimilarproblemsofconstructionandmaintenancewhichoccurinconventionalengineeringareencounteredwhenproducingsoftware.Thefigure1.1illustrateshowthesethreesectionswithinamicrocomputerareconnectedintermsofthecommunicationofinformationwithinthemachine.Thesystemiscontrolledbythemicroprocessorwhichsupervisesthetransferofinformationbetweenitselfandthememoryandinput/outputsections.Theexternalconnectionsrelatetotherest(thatis,thenon-computerpart)oftheengineeringsystem.Fig.1.1ThreeSectionsofaTypicalMicrocomputerAlthoughonlyonestoragesectionhasbeenshowninthediagram,inpracticetwodistincttypesofmemoryRAMandROMareused.Ineachcase,theword‘memory’isratherinappropriatesinceacomputersmemoryismorelikeafilingcabinetinconcept;informationisstoredinasetofnumbered‘boxes’anditisreferencedbytheserialnumberofthe‘box’inquestion.MicrocomputersuseRAM(RandomAccessMemory)intowhichdatacanbewrittenandfromwhichdatacanbereadagainwhenneeded.Thisdatacanbereadbackfromthememoryinanysequencedesired,andnotnecessarilythesameorderinwhichitwaswritten,hencetheexpression‘random’accessmemory.AnothertypeofROM(ReadOnlyMemory)isusedto整理為word格式整理為word格式整理為word格式holdfixedpatternsofinformationwhichcannotbeaffectedbythemicroprocessor;thesepatternsarenotlostwhenpowerisremovedandarenormallyusedtoholdtheprogramwhichdefinesthebehaviorofamicroprocessorbasedsystem.ROMscanbereadlikeRAMs,butunlikeRAMstheycannotbeusedtostorevariableinformation.SomeROMshavetheirdatapatternsputinduringmanufacture,whileothersareprogrammablebytheuserbymeansofspecialequipmentandarecalledprogrammableROMs.ThewidelyusedprogrammableROMsareerasablebymeansofspecialultravioletlampsandarereferredtoasEPROMs,shortforErasableProgrammableReadOnlyMemories.Othernewtypesofdevicecanbeerasedelectricallywithouttheneedforultravioletlight,whicharecalledElectricallyErasableProgrammableReadOnlyMemories,EEPROMs.Themicroprocessorprocessesdataunderthecontroloftheprogram,controllingtheflowofinformationtoandfrommemoryandinput/outputdevices.Someinput/outputdevicesaregeneral-purposetypeswhileothersaredesignedforcontrollingspecialhardwaresuchasdiscdrivesorcontrollinginformationtransmission

溫馨提示

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

評論

0/150

提交評論