




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上摘 要 近年來隨著計算機在社會領域的滲透, 單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結(jié)構,以及具體應用對象特點的軟件結(jié)合,以作完善。 本文從硬件和軟件兩方面來講述溫度自動控制過程,在控制過程中主要應用AT89C51、ADC0809、LED顯示器、LM324比較器,而主要是通過 DS18B20數(shù)字溫度傳感器采集環(huán)境溫度,以單片機為核心控制部件,并通過四位數(shù)碼管顯示實時溫度的一種數(shù)字溫度計。 系統(tǒng)的過程則是:首先,通過設置按鍵,設
2、定恒溫運行時的溫度值,并且用數(shù)碼管顯示這個溫度值.然后,在運行過程中將采樣的溫度模擬量送入A/D轉(zhuǎn)換器中進行模擬-數(shù)字轉(zhuǎn)換,再將轉(zhuǎn)換后的數(shù)字量用數(shù)碼管進行顯示。 關鍵詞:單片機系統(tǒng);傳感器;數(shù)據(jù)采集;模數(shù)轉(zhuǎn)換器;溫度專心-專注-專業(yè)目 錄第1章 緒 論1.1課題的背景及其意義 二十一世紀是科技高速發(fā)展的信息時代,電子技術、微型單片機技術的應用更是空前廣泛,伴隨著科學技術和生產(chǎn)的不斷發(fā)展,需要對各種參數(shù)進行溫度測量。因此溫度一詞在生產(chǎn)生活之中出現(xiàn)的頻率日益增多,與之相對應的,溫度控制和測量也成為了生活生產(chǎn)中頻繁使用的詞語,同時它們在各行各業(yè)中也發(fā)揮著重要的作用。如在日趨發(fā)達的工業(yè)之中,利用測量與
3、控制溫度來保證生產(chǎn)的正常運行。在農(nóng)業(yè)中,用于保證蔬菜大棚的恒溫保產(chǎn)等。 溫度是表征物體冷熱程度的物理量,溫度測量則是工農(nóng)業(yè)生產(chǎn)過程中一個很重要而普遍的參數(shù)。溫度的測量及控制對保證產(chǎn)品質(zhì)量、提高生產(chǎn)效率、節(jié)約能源、生產(chǎn)安全、促進國民經(jīng)濟的發(fā)展起到非常重要的作用。由于溫度測量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。而且隨著科學技術和生產(chǎn)的不斷發(fā)展,溫度傳感器的種類還是在不斷增加豐富來滿足生產(chǎn)生活中的需要。 在單片機溫度測量系統(tǒng)中的關鍵是測量溫度、控制溫度和保持溫度,溫度測量是工業(yè)對象中主要的被控參數(shù)之一。因此,單片機溫度測量則是對溫度進行有效的測量,并且能夠在工業(yè)生產(chǎn)中得到了廣泛的應用,尤
4、其在電力工程、化工生產(chǎn)、機械制造、冶金工業(yè)等重要工業(yè)領域中,擔負著重要的測量任務。在日常生活中,也可廣泛實用于地熱、空調(diào)器、電加熱器等各種家庭室溫測量及工業(yè)設備溫度測量場合。但溫度是一個模擬量,如果采用適當?shù)募夹g和元件,將模擬的溫度量轉(zhuǎn)化為數(shù)字量雖不困難,但電路較復雜,成本較高。1.2課題研究的內(nèi)容及要求本文所要研究的課題是基于單片機溫度控制系統(tǒng)的設計與實現(xiàn),主要是介紹了對溫度的顯示、控制及報警,實現(xiàn)了溫度的實時顯示及控制。溫度控制部分,提出了用DS18S20、MSC-51單片機及LED的硬件電路完成對溫度的實時檢測及顯示,利用DS18S20與單片機連接由軟件與硬件電路配合來實現(xiàn)對加熱電阻絲的
5、實時控制及超出設定的上下限溫度的報警系統(tǒng)。而爐內(nèi)溫度控制部分,采用一套PID閉環(huán)負反饋控制系統(tǒng),由DS18S20檢測爐內(nèi)溫度,用中值濾波的方法取一個值存入程序存取器內(nèi)部一個單元作為最后檢測信號,并在LED中顯示。控制器是用MSC-51單片機,用PID算法對檢測信號和設定值的差值進行調(diào)節(jié)后輸出控制信號給執(zhí)行機構,去調(diào)節(jié)電阻爐的加熱功率,從而控制爐內(nèi)溫度。它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優(yōu)點,特別適合于構成多點的溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微機處理,而且每片DS18S20都有唯一的產(chǎn)品號,可以一并存入其ROM中,以便在構成大型溫度測控系統(tǒng)時在單線上掛接任
6、意多個DS18S20芯片。從DS18S20讀出或?qū)懭隓S18S20信息僅需要一根口線,其讀寫及其溫度變換功率來源于數(shù)據(jù)總線,該總線本身也可以向所掛接的DS18S20供電,而且不需要額外電源。同時DS18S20能提供九位溫度讀數(shù),它無需任何外圍硬件即可方便地構成溫度檢測系統(tǒng)。而且利用本次的設計主要實現(xiàn)溫度測試,溫度顯示,溫度門限設定,超過設定的門限值時自動啟動報警功能。而且還要以單片機為主機,使溫度傳感器通過一根口線與單片機相連接,再加上溫度控制部分和人機對話部分來共同實現(xiàn)溫度的監(jiān)測與控制。1.3課題的研究方案 溫度控制系統(tǒng)是比較常見和典型的過程控制系統(tǒng)。溫度是工業(yè)生產(chǎn)過程中重要的被控參數(shù)之一,
7、當今計算機控制技術在這方面的應用,已使溫度控制系統(tǒng)達到自動化、智能化,比過去單純采用電子線路進行PID調(diào)節(jié)的控制效果要好得多,可控性方面也有了很大的提高。 溫度是一個非線性的對象,具有大慣性的特點,在低溫段慣性較大,在高溫段慣性 較小。對于這種溫控對象,一般認為其具有以下的傳遞函數(shù)形式: (1-1)方案(見圖1.2)圖1.2 方案圖 本方案采用89C51單片機系統(tǒng)來實現(xiàn)。單片機軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種控制算法和邏輯控制。單片機系統(tǒng)可以用數(shù)碼管來顯示溫度的實際值,能用鍵盤輸入設定值。本方案選用了AT89C51芯片,不需要外擴展存儲器,可使系統(tǒng)整體結(jié)構更為簡單。 本方案是采用以
8、單片機為控制核心的控制系統(tǒng),尤其對溫度控制,可達到模擬控制所達不到的效果,并且實現(xiàn)顯示和鍵盤設定功能,大大提高了系統(tǒng)的智能化。也使得系統(tǒng)所測得結(jié)果的精度大大提高。第2章 設計理論基礎2.1單片機的發(fā)展概況 1970年微型計算機研制成功之后,隨之即出現(xiàn)了單片機(即單片微型計算機) 美國Intel公司1971年生產(chǎn)的4位單片機4004和1972年生產(chǎn)的雛形8位單片機8008,這也算是單片機的第一次公眾亮相。 1976年Intel公司首先推出能稱為單片機的MCS-48系列單片微型計算機。它以體積小、功能全、價格低等特點,贏得了廣泛的應用,同時一些與單片機有關公司都爭相推出各自的單片機。 1978年下
9、半年Motorola公司推出M6800系列單片機,Zilog公司相繼推出Z8單片機系列。1980年Intel公司在MCS-48系列基礎上又推出高性能的MCS-51系列單片機。這類單片機均帶有串行I/O口,定時器/計數(shù)器為16位,片內(nèi)存儲容量(RAM,ROM)都相應增大,并有優(yōu)先級中斷處理功能,單片機的功能、尋址范圍都比早期的擴大了,它們是當時單片機應用的主流產(chǎn)品。 1982年Mostek公司和Intel公司先后又推出了性能更高的16位單片機MK68200和MCS-96系列,NS公司和NEC公司也分別在原有8位單片機的基礎上推出了16位單片機HPC16040和PD783××系
10、列。 1987年Intel公司又宣布了性能比8096高兩倍的CMOS型80C196,1988年推出帶EPROM的87C196單片機。由于16位單片機推出的時間較遲、價格昂貴、開發(fā)設備有限等多種原因,至今還未得到廣泛應用。而8位單片機已能滿足大部分應用的需要,因此,在推出16位單片機的同時,高性能的新型8位單片機也不斷問世。 縱觀這短短的20年,經(jīng)歷了4次更新?lián)Q代,單片機正朝著集成化、多功能、多選擇、高速度、低功耗、擴大存儲容量和加強I/O功能及結(jié)構兼容的方向發(fā)展 新一代的80C51系列單片機除了上述的結(jié)構特性外,其最主要的技特點是向外部口電路擴展,以實現(xiàn)微控制器(microcontroller
11、)完善的控制功能為己任。這一系列單片機為外部提供了相當完善的總線結(jié)構,為系統(tǒng)的擴展和配置打下了良好的基礎。由于80C51系列單片機所具有的一系列優(yōu)越的特點,獲得廣泛使用指日可待。下面我們就來重點介紹一下本畢業(yè)論文討論的系統(tǒng)所用的AT89C51系列單片機。2.2 AT89C51系列單片機介紹2.2.1 AT89C51系列基本組成及特性 AT89C51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。而在眾多的51系列單片機中,要算 ATMEL
12、公司的AT89C51更實用,也是一種高效微控制器,因為它不但和8051指令、管腳完全兼容,而且其片內(nèi)的4K程序存儲器是FLASH工藝的,這種工藝的存儲器,用戶可以用電的方式達到瞬間擦除、改寫。而這種單片機對開發(fā)設備的要求很低,開發(fā)時間也大大縮短。 AT89C51基本功能描述如下:AT89C51是一種低損耗、高性能、CMOS八位微處理器,而且在其片種還有4k字節(jié)的在線可重復編程快擦快寫程序存儲器,能重復寫入/擦除1000次,數(shù)據(jù)保存時間為十年。它與MCS-51系列單片機在指令系統(tǒng)和引腳上完全兼容,不僅可完全代替MCS-51系列單片機,而且能使系統(tǒng)具有許多MCS-51系列產(chǎn)品沒有的功能。AT89C
13、51可構成真正的單片機最小應用系統(tǒng),縮小系統(tǒng)體積, 增加系統(tǒng)的可靠性,降低了系統(tǒng)成本。只要程序長度小于4k, 四個I/O口全部提供給用戶??捎?V電壓編程,而且寫入時間僅10毫秒, 僅為8751/87C51 的擦除時間的百分之一,與8751/87C51的12V電壓擦寫相比, 不易損壞器件, 沒有兩種電源的要求,改寫時不拔下芯片,適合許多嵌入式控制領域。AT89C51 芯片提供三級程序存儲器鎖定加密, 提供了方便靈活而可靠的硬加密手段, 能完全保證程序或系統(tǒng)不被仿制。另外,AT89C51 還具有MCS-51系列單片機的所有優(yōu)點。128×8 位內(nèi)部RAM, 32 位雙向輸入輸出線, 兩個
14、十六位定時器/計時器, 5個中斷源, 兩級中斷優(yōu)先級, 一個全雙工異步串行口及時鐘發(fā)生器等。AT89C51有間歇、掉電兩種工作模式。間歇模式是由軟件來設置的, 當外圍器件仍然處于工作狀態(tài)時, CPU可根據(jù)工作情況適時地進入睡眠狀態(tài), 內(nèi)部RAM和所有特殊的寄存器值將保持不變。這種狀態(tài)可被任何一個中斷所終止或通過硬件復位。掉電模式是VCC電壓低于電源下限, 當振蕩器停止振動時, CPU 停止執(zhí)行指令。該芯片內(nèi)RAM和特殊功能寄存器值保持不變, 一直到掉電模式被終止。只有VCC電壓恢復到正常工作范圍而且在振蕩器穩(wěn)定振蕩后,通過硬件復位、掉電模式可被終止。2.2.2 AT89C51系列單片機的功能單
15、元1并行I/O接口: 單片機芯片內(nèi)有一項主要功能就是并行I/O口。51系列共有4個8位的并行I/O口,分別記作P0、P1、P2、P3每個口都包含一個鎖存器,一個輸出驅(qū)動器和輸入緩沖器。實際上,它們已被歸入專用寄存器之列,并且具有字節(jié)尋址和位尋址功能。在訪問片外擴展存儲器時,低八位地址和數(shù)據(jù)由P0口分時傳送,高八位地址由P2口傳送。2定時器/計數(shù)器 定時器/計數(shù)器(timer/counter)是單片機中的重要部件,其工作方式靈活、編程簡單,使用它對減輕CPU的負擔和簡化外圍電路都大有好處。 C51系列包含有兩個16位的可編程定時器/計數(shù)器分別稱為定時器/計數(shù)器T0和定時器/計數(shù)器T1;在C51部
16、分產(chǎn)品中,還包含有一個用做看門狗的8位定時器。定時器/計數(shù)器的核心是一個加1計數(shù)引腳上施加器,其基本功能是加1功能。在單片機的定時器T0或T1中,有一個定時器發(fā)生由0到1的跳變時,計數(shù)器增1,即為計數(shù)功能;在單片機內(nèi)部對機器周期或其分頻進行計數(shù),從而得到定時,這就是定時功能。在單片機中,定時功能和計數(shù)功能的設定和控制都是通過軟件來進行的。 定時器/計數(shù)器內(nèi)部結(jié)構及其原理:由定時器0、定時器1、定時器方式寄存器TMOD和定時器控制寄存器TCON組成。當定時器/計數(shù)器設置為定時工作方式時,計數(shù)器對內(nèi)部機器周期計數(shù),每過一個機器周期,計數(shù)器加1,直至計滿溢出。定時器的定時時間與系統(tǒng)的振蕩頻率緊密相關
17、,因為C51系列單片機的一個機器周期由12個振蕩脈沖組成,所以,計數(shù)頻率fc=fosc/12。如果單片機系統(tǒng)采用12MHz晶振,則計數(shù)周期為: (2-2) 這是最短的定時周期,適當選擇定時器的初值可獲取各種定時時間。 當定時器/計數(shù)器設置為計數(shù)工作方式時,計數(shù)器對來自輸入引腳T0(P3.4)和T1(P3.5)的外部信號計數(shù),外部脈沖的下降沿將觸發(fā)計數(shù)。在每個機器周期的S5P2期間采樣引腳輸入電平,若前一個機器周期采樣值為1,后一個機器周期采樣值為0,則計數(shù)器加1。新的計數(shù)值是在檢測到輸入引腳電平發(fā)生1到0的負跳變后,于下一個機器周期的S3P1期間裝入計數(shù)器中的,可見,檢測一個由1到0的負跳變需
18、要兩個機器周期,所以最高檢測頻率為振蕩頻率的1/24。計數(shù)器對外部輸入信號的占空比沒有特別的限制,但必須保證輸入信號的高電平與低電平的持續(xù)時間在一個機器周期以上。3芯片擦除 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦除操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM、定時器、計數(shù)器、串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其
19、他芯片功能,直到下一個硬件復位為止。4中斷系統(tǒng) 中斷系統(tǒng)是單片機的重要組成部分。實時控制、故障自動處理、單片機與外圍設備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)大大提高了系統(tǒng)的效率。 C51系統(tǒng)有關中斷的寄存器有4個,分別為中斷源寄存器TCON和SCON、中斷允許控制寄存器IE和中斷優(yōu)先級控制寄存器IP;中斷源有5個,分別為外部中斷0請求INT0、外部中斷1請求INT1、定時器0溢出中斷請求TF0、定時器1溢出中斷請求TF1和串行中斷請求R1或T1。5個中斷源的排列順序由中斷優(yōu)先級控制寄存器IP和順序查詢邏輯電路共同決定,5個中斷源分別對應5個固定的中斷入口地址。中斷的特點是分時操作,實時處理和
20、故障處理。簡單介紹一下本次設計所需的單片機芯片AT89C51的中斷系統(tǒng)中要用到的中斷類型。(1) 外部中斷源 AT89C51有INT0和INT1兩條外部中斷請求輸入線,用于輸入兩個外部中斷源的中斷請求信號,并允許外部中斷源以低電平或負邊沿兩種中斷觸發(fā)方式來輸入中斷請求信號。AT89C51究竟工作于哪種中斷觸發(fā)方式,可由用戶對定時器控制寄存器TCON中IT0和IT1位狀態(tài)的設定來選取。AT89C51在每個機器周期的S5P2時對INT0、線上中斷請求信號進行一次檢測,檢測方式和中斷觸發(fā)方式的選取有關。若AT89C51設定為電平觸發(fā)方式(IT0=0或IT1=0),則CPU檢測到INT0、INT1上低
21、電平時就可認定其上中斷請求有效;若設定為邊沿觸發(fā)方式(IT0=1或IT1=1),則CPU需要兩次檢測INT0、INT1線上電平方能確定其上中斷請求是否有效,即前一次檢測為高電平和后一次檢測為低電平時中斷請求才有效。(2) 定時器溢出中斷源 定時器溢出中斷由AT89C51內(nèi)部定時器分的中斷源產(chǎn)生,故它們屬于內(nèi)部中斷。AT89C51內(nèi)部有兩個16位定時器/計數(shù)器,受內(nèi)部定時脈沖(主脈沖經(jīng)12分頻后)或T0/T1引腳上輸入的外部定時脈沖計數(shù)。定時器T0/T1在定時脈沖作用下從全“1”變成全“0”時可以自動向CPU提出溢出中斷請求,以表明定時器T0或T1的定時時間已到。 (3) 串行口中斷源 串行口中
22、斷由AT89C51內(nèi)部串行口的中斷源產(chǎn)生,也是一種內(nèi)部中斷。串行口中斷分為串行口發(fā)送中斷和串行口接收中斷兩種。在串行口進行發(fā)送/接收數(shù)據(jù)時,每當串行口發(fā)送/接收完一組串行數(shù)據(jù)時串行口電路自動使串行口控制寄存器SCON中的RI或TI中斷標志位置位,并自動向CPU發(fā)出串行口中斷請求,CPU響應串行口中斷后便立即轉(zhuǎn)入串行口中斷服務程序執(zhí)行。因此,只要在串行口中斷服務程序中安排一段對SCON中RI和TI中斷標志位狀態(tài)的判斷程序,便可區(qū)分串行口發(fā)生了接收中斷請求還是發(fā)送中斷請求。(4) 中斷標志 AT89C51在S5P2時檢測(或接收)外部(內(nèi)部)中斷源發(fā)來的中斷請求信號后先使相應中斷標志位置位,然后便
23、在下個機器周期檢測這些中斷標志位狀態(tài),以決定是否響應該中斷。2.3 ADC0809模數(shù)轉(zhuǎn)換器 ADC0809是位A/D轉(zhuǎn)換芯片,它是采用逐次逼近的方法完成A/D轉(zhuǎn)換的。ADC0809由單+5V電源供電;片內(nèi)帶有鎖存功能的8路模擬多路開關,可對8路05V的輸入模擬電壓分時進行轉(zhuǎn)換,完成一次轉(zhuǎn)換約需100µS;片內(nèi)具有多路開關的地址譯碼器和鎖存器、高阻抗斬波器、穩(wěn)定的比較器,256電阻T型網(wǎng)絡和樹狀電子開關以及逐次逼近寄存器。 ADC0809是引腳雙列直插式封裝,引腳及其功能(圖2-2):1D7D0:8位數(shù)字量輸出引腳。2IN0IN7:8路模擬量輸入引腳。3VCC:+5V工作電壓。4GN
24、D:接地。5REF(+):參考電壓正端。6REF(-):參考電壓負端。7START:A/D轉(zhuǎn)換啟動信號輸入端。8A、B、C:地址輸入端。9ALE:地址鎖存允許信號輸入端。10EOC:轉(zhuǎn)換結(jié)束信號輸出引腳,開始轉(zhuǎn)換時為低電平,當轉(zhuǎn)換結(jié)束時為高電平。11OE: 輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。12CLK:時鐘信號輸入端,譯碼后可選通IN0IN7八個通道中的一個進行轉(zhuǎn)換。圖2.3 ADC0809的管腳圖2.4移位寄存器74LS164 移位寄存器74LS164的引腳如圖2.4所示:圖2.4移位寄存器74LS164引腳圖74LS164為串行輸入、并行輸出移位寄存器,其引腳功能如下:A、B 串
25、行輸入端;Q0Q7 并行輸出端; 清除端,低電平有效;CLK 時鐘脈沖輸入端,上升沿有效。 多片74LS164串聯(lián),能實現(xiàn)多位LED靜態(tài)顯示。每擴展一片164就可增加一位顯示。MR接+5V,不清除。2.5數(shù)碼顯示管LED圖2.5數(shù)碼顯示管LED引腳圖 LED顯示器是單片機應用系統(tǒng)中常見的輸出器件,而在單片機的應用上也是被廣泛運用的。如果需要顯示的內(nèi)容只有數(shù)碼和某些字母,使用LED數(shù)碼管是一種較好的選擇。LED數(shù)碼管顯示清晰、成本低廉、配置靈活,與單片機接口簡單易行。 LED數(shù)碼管作為顯示字段的數(shù)碼型顯示器件,它是由若干個發(fā)光二極管組成的。當發(fā)光二極管導通時,相應的一個點或一個筆畫發(fā)亮,控制不同
26、組合的二極管導通,就能顯示出各種字符,常用的LED數(shù)碼管有7段和“米”字段之分。這種顯示器有共陽極和共陰極兩種。共陰極LED顯示器的發(fā)光二極管的陰極連在一起,通常此共陰極接地。當某個發(fā)光二極管的陽極為高電平時,發(fā)光二極管點亮,相應的段被顯示。同樣,共陽極LED顯示器的發(fā)光二極管的陽極接在一起,通常此共陽極接正電壓,當某個發(fā)光二極管的陰極接低電平時,發(fā)光二極管被點亮,相應的段被顯示。本次設計所用的LED數(shù)碼管顯示器為共陽極。 LED數(shù)碼管的使用與發(fā)光二極管相同,根據(jù)材料不同正向壓降一般為1.52V,額定電流為10MA,最大電流為40MA。靜態(tài)顯示時取10MA為宜,動態(tài)掃描顯示可加大脈沖電流,但一
27、般不超過40MA。2.6數(shù)字溫度計DS18S20 在傳統(tǒng)的模擬信號遠距離的溫度測量系統(tǒng)中,需要很好的解決引線誤差補償問題、多點切換誤差問題和放大電路零點漂移誤差問題等技術。另外考慮到一般的測量現(xiàn)場的電磁環(huán)境非常的惡劣,各種干擾信號較強,模擬信號很容易受到干擾而產(chǎn)生測量誤差,影響測量精度。因此,在溫度測量系統(tǒng)中,采用抗干擾能力較強的新型數(shù)字溫度傳感器是解決這些問題的最有效的方案。在實際的溫度測量過程中被廣泛應用,同時也取得了良好的測量效果。DS18S20數(shù)字溫度計的主要特性:1DS18S20的適應電壓范圍更寬,其范圍為:3.0-5.5V,而且它能夠直接由數(shù)據(jù)線獲取電源(寄生電源),無需外部工作電
28、源。2DS18S20提供了9位攝氏溫度測量,具有非易失性、上下觸發(fā)門限用戶可編程的報警功能。3DS18S20通過1-Wire®總線與中央微處理器通信,僅需要單根數(shù)據(jù)線(或地線)。同時,在使用過程中,它不需要任何的外圍的元件,全部的傳感元件和轉(zhuǎn)換電路集成在形狀如一只三極管的集成電路內(nèi)。4DS18S20具有-55°C至+125°C的工作溫度范圍,在-10°C至+85°C溫度范圍內(nèi)精度為±0.5°C。5每片DS18S20具有唯一的64位序列碼,這些碼允許多片DS18S20在同一條1-Wire總線上工作,因而,可方便地使用單個微處理
29、器控制分布在大范圍內(nèi)的多片DS18S20器件。6DS18S20的測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時還可以傳送給CRC校驗碼,它具有極強的抗干擾糾錯的能力。7DS18S20具有負載特性,當電源極性接反時,芯片不會因發(fā)熱而燒毀,但是不能正常的工作。根據(jù)以上這些特性而從中受益的應用包括:HVAC環(huán)境控制、室內(nèi),設備或者機器內(nèi)部的溫度監(jiān)測系統(tǒng)、過程監(jiān)控和控制系統(tǒng)。第3章 電路設計本設計采用按鍵作為輸入控制,通過溫度多采樣單元采集溫度信息,經(jīng)過LM324放大器放大及ADC0809數(shù)模轉(zhuǎn)換器將其轉(zhuǎn)換,由主機AT89C51進行處理并將實際溫度值和設定溫度值分別顯示在共陽極數(shù)碼
30、顯示管LED上。 溫度傳感器DS18B20 將模擬溫度值經(jīng)過DS18B20 處理后轉(zhuǎn)換為數(shù)字值,然后送到單片機中進行數(shù)據(jù)處理,單片機將處理后的數(shù)據(jù)通過數(shù)碼管顯示出來,同時判斷測得的溫度和設置報警的溫度限進行比較,超過限度則通過發(fā)光二極管發(fā)光報警。 3.1系統(tǒng)整體電路 圖3.1系統(tǒng)電路 第4章 軟件設計4.1 系統(tǒng)的主程序設計 整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、
31、顯示、通訊等。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義。主程序流程見圖4.1。 圖 4.1 主程序流程圖 4.2 DS18B20初始化 DS18B20初始化流程圖見圖4.2。 圖4.2 DS18B20 初始化流程圖 初始化子程序: void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay(8); /稍做延時 DQ=0; /單片機將DQ拉低 Delay(80); /精確延時,大于480us DQ=1; /拉高總線 Delay(14); x=DQ; /稍做延時后,如果x=0則初始
32、化成功,x=1則初始化失敗 Delay(20);/*讀一個字節(jié)*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for (i=8;i>0;i-) DQ=0; / 給脈沖信號 dat>>=1; DQ=1; / 給脈沖信號 if(DQ) dat|=0x80; Delay(4); return(dat);/*寫一個字節(jié)*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ=0;
33、 DQ=dat&0x01; Delay(5); DQ=1; dat>>=1; void Tmpchange(void) /發(fā)送溫度轉(zhuǎn)換命令 Init_DS18B20(); WriteOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0x44); /啟動溫度轉(zhuǎn)換4.3 DS18B20溫度傳感器與單片機的接口電路 當DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。傳感器與單片機接口如圖4.3所示:圖4.3 DS18B20與單片機的接口電路 溫度讀取子程序:unsigned int ReadTe
34、mperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Tmpchange(); Init_DS18B20(); WriteOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0xBE); /讀取溫度寄存器 a=ReadOneChar(); /讀低8位 b=ReadOneChar(); /讀高8位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*100+0.5; /放大10倍輸出并四舍五入 return(t);4.4
35、數(shù)碼管顯示與單片機對接 如圖4.4所示。用AT89C51的P0口作為數(shù)據(jù)端口,P2.2-P2.4分別作數(shù)碼管位選口。P0口接上上拉電阻。 圖4.4 數(shù)碼管與AT89C51對接 顯示子程序: Disp_Temperature() /顯示溫度 uint a,b,c,d,e; e=ReadTemperature(); /獲取溫度值 a=e/1000; /計算得到十位數(shù)字 b=e/100-a*10; /計算得到個位數(shù)字 d=e%10; /計算得到小數(shù)點后兩位 c=(e%100)/10; /計算得到小數(shù)點后一位 m=e/100; if(m>=shangxian)LING1=0; LING2=1;Y
36、SQ=0;else if( m<xiaxian)LING1=1;LING2=0;YSQ=0; else LING2=0;LING1=0;YSQ=1; p26=1;p24=0;p22=2;p20=1; P0 =LEDDatad; /顯示小數(shù)點后兩位 p26=0;p24=1;p22=1;p20=1; Delay(300);p26=1;p24=1;p22=1;p20=1; P0 =LEDDatac; /顯示小數(shù)點后一位p26=1;p24=0;p22=1;p20=1; Delay(300);p26=1;p24=1;p22=1;p20=1; P0 =LEDDatab; /顯示個位dp=1;p26=
37、1;p24=1;p22=0;p20=1; Delay(300);p26=1;p24=1;p22=1;p20=1; P0 =LEDDataa; /顯示十位p26=1;p24=1;p22=1;p20=0; Delay(300);p26=1;p24=1;p22=1;p20=1; /關閉顯示Delay(300);disptiaozheng() uchar f,g,j,k; f=shangxian/10; g=shangxian%10; j=xiaxian/10; k=xiaxian%10; if(SET=1) P0 =LEDDatag; dp=1; /顯示上限溫度個位 else P0 =LEDData
38、k; dp=1; p26=1;p24=1;p22=0;p20=1; Delay(200);p26=1;p24=1;p22=1;p20=1; if(SET=1) P0 =0xCE; /顯示h else if(f=0) P0=0x00; /不顯示下限溫度十位 else P0 =0x1A; /顯示下限溫度十位 p26=0;p24=1;p22=1;p20=1; Delay(200);p26=1;p24=1;p22=1;p20=1; /關閉顯示if(SET=1) P0 =LEDDataf; /顯示上限溫度十位 else if(f=0) P0=0x00; /不顯示下限溫度十位 else P0 =LEDDa
39、taj; /顯示下限溫度十位 p26=1;p24=1;p22=1;p20=0; Delay(200);p26=1;p24=1;p22=1;p20=1; /關閉顯示 Delay(1000); 第5章 系統(tǒng)調(diào)試 單片機應用系統(tǒng)樣機組裝好以后,便可進入系統(tǒng)的在線(聯(lián)仿真器)調(diào)試,其主要任務是排除樣機硬件故障,并完善其硬件結(jié)構,試運行所設計的程序,排除程序錯誤,優(yōu)化程序結(jié)構,使系統(tǒng)達到期望的功能,進而固化軟件,使其產(chǎn)品化。5.1硬件調(diào)試單片機應用系統(tǒng)的硬件和軟件調(diào)試是交叉進行的,但通常是先排除樣機中明顯的硬件故障,尤其是電源故障,才能安全地和仿真器相連,進行綜合調(diào)試。5.1.1硬件電路故障及解決方法1
40、錯線、開路、短路:由于設計錯誤和加工過程中的工藝性錯誤所造成的錯線、開路、短路等故障。解決方法:在畫原理圖時仔細檢查、校正即可解決。2元器件損壞:由于對元器件使用要求的不熟悉及制作調(diào)試過程中操作不當致使器件損壞。 解決方法:在設計過程中要明確各元器件的工作條件,嚴格按照制作要求進行操作,損壞的元器件要及時更換,以免損壞其他元件或影響電路功能的實現(xiàn)。3電源故障:設計中存在電源故障,即上電后將造成元器件損壞、無法正常供電,電路不能正常工作。電源的故障包括:電壓值不符和設計要求,電源引出線和插座不對應,各檔電源之間的短路,變壓器功率不足,內(nèi)阻大,負載能力差等。 解決方法:電源必須單獨調(diào)試好以后才能加
41、到系統(tǒng)的各個部件中。本設計中就出現(xiàn)電源故障經(jīng)過一個穩(wěn)壓電路才使其正常工作。5.1.2硬件調(diào)試方法 在樣機加電之前,首先用萬用表等工具,根據(jù)硬件電器原理圖和裝配圖仔細檢查樣機線路的正確性,并核對元器件的型號、規(guī)格和安裝是否符合要求。應特別注意電源的走線,防止電源之間的短路和極性錯誤,并重點檢查擴展系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互間的短路或與其它信號線的短路。第二步是加電后檢查各個插件上引腳的電位,仔細測量各點電位是否正常,尤其應注意單片機插座上的各點電位,若有高壓,聯(lián)機時將會損壞仿真器。第三步是在不加電情況下,除單片機以外,插上所有的元器件,最后用仿真適配器將樣機的單片機插座
42、和仿真器的仿真接口相連,為聯(lián)機調(diào)試做準備。 5.2軟件調(diào)試5.2.1軟件電路故障及解決方法設計軟件部分出現(xiàn)這種錯誤的現(xiàn)象:1當以斷點或連續(xù)方式運行時,目標系統(tǒng)沒有按規(guī)定的功能進行操作或什么結(jié)果也沒有,這是由于程序轉(zhuǎn)移到意外之處或在某處死循環(huán)所造成的。 解決方法:這類錯誤的原因是程序中轉(zhuǎn)移地址計算錯誤、堆棧溢出、工作寄存器沖突等。在采用實時多任務操作系統(tǒng)時,錯誤可能在操作系統(tǒng)中,沒有完成正確的任務調(diào)度操作,也可能在高優(yōu)先級任務程序中,該任務不釋放處理器,使CPU在該任務中死循環(huán)。通過對錯誤程序的修改使其實現(xiàn)預期的功能。2不響應中斷 CPU不響應中斷或不響應某一個中斷這種錯誤的現(xiàn)象是連續(xù)運行時不執(zhí)
43、行中斷任務程序的規(guī)定操作,當斷點設在中斷入口或中斷服務程序中時碰不到斷點。 錯誤的原因有:中斷控制寄存器(IE,IP)的初值設置不正確,使CPU沒有開放中斷或不許某個中斷源請求;或者對片內(nèi)的定時器、串行口等特殊功能寄存器和擴展的I/O口編程有錯誤,造成中斷沒有被激活;或者某一中斷服務程序不是以RETI指令作為返回主程序的指令,CPU雖已返回到主程序但內(nèi)部中斷狀態(tài)寄存器沒有被清除,從而不響應中斷;或由于外部中斷源的硬件故障使外部中斷請求無效。解決方法:修改中斷控制寄存器(IE,IP)的初值設置。5.2.2軟件調(diào)試方法 軟件調(diào)試所使用的方法有:計算程序的調(diào)試方法、I/O處理程序的調(diào)試法、綜合調(diào)試法
44、等。1計算程序的調(diào)試方法 計算程序的錯誤是一種靜態(tài)的固定的錯誤,因此主要用單拍或斷點運行方式來調(diào)試。根據(jù)計算程序的功能,事先準備好一組測試數(shù)據(jù)。調(diào)試時,用防真器的寫命令,將數(shù)據(jù)寫入計算程序的參數(shù)緩沖單元,然后從計算程序開始運行到結(jié)束,運行的結(jié)果和正確數(shù)據(jù)比較,如果對有的測試數(shù)據(jù)進行測試,都沒有發(fā)生錯誤,則該計算程序調(diào)試成功;如果發(fā)現(xiàn)結(jié)果不正確,改用單步運行方式,即可檢查出錯誤所在。計算程序的修改視錯誤性質(zhì)而定。若是算法錯誤,那是根本性錯誤,應重新設計該程序;若是局部的指令有錯,修改即可。如果用于測試的數(shù)據(jù)沒有全部覆蓋實際計算的原始數(shù)據(jù)的類型,調(diào)試沒有發(fā)現(xiàn)錯誤可能在系統(tǒng)運行過程中暴露出來。2I/
45、O處理程序的調(diào)試 對于A/D轉(zhuǎn)換一類的I/O處理程序是實時處理程序,因此一般用全速斷點運行方式或連續(xù)運行方式進行調(diào)試。3綜合調(diào)試 在完成了各個模塊程序(或各個任務程序)的調(diào)試工作以后,便可進行系統(tǒng)的綜合調(diào)試。綜合調(diào)試一般采用全速斷點運行方式,這個階段的主要工作社排除系統(tǒng)中遺留的錯誤以提高系統(tǒng)的動態(tài)性能和精度。在綜合調(diào)試的最后階段,應在目標系統(tǒng)的晶振頻率工作,使系統(tǒng)全速運行目標程序,實現(xiàn)了預定功能技術指標后,便可將軟件固化,然后在運行固化的目標程序,成功后目標系統(tǒng)便可脫機運行。一般情況下,這樣一個應用系統(tǒng)就算研制成功了。 附錄程序:#include <reg51.h> #define
46、 uint unsigned int#define uchar unsigned char /宏定義sbit p26=P24;sbit p24=P23;sbit p22=P22;sbit dp=P05;sbit p20=P21;sbit DQ=P20; /定義DS18B20總線I/Osbit SET=P17; /定義選擇報調(diào)整警溫度上限和下限(1為上限,0為下限)/*P3.2和P3.3為調(diào)整溫度報警增加鍵和減少鍵*/sbit LING1=P11; /定義響鈴sbit LING2=P10;sbit YSQ=P12;signed char m; /溫度值全局變量bit sign=0; /外部中斷狀
47、態(tài)標志signed char shangxian=34; /上限報警溫度,默認值為34signed char xiaxian=29; /下限報警溫度,默認值為29uchar code LEDData= 0X5F,0X44,0X9d,0XD5,0XC6,0XD3,0XDB,0X45,0XDF,0XD7;/*延時子程序*/void Delay(uint i) while( i- );/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay(8); /稍做延時 DQ=0; /單片機將DQ拉低 Delay(80); /精確
48、延時,大于480us DQ=1; /拉高總線 Delay(14); x=DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 Delay(20);/*讀一個字節(jié)*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for (i=8;i>0;i-) DQ=0; / 給脈沖信號 dat>>=1; DQ=1; / 給脈沖信號 if(DQ) dat|=0x80; Delay(4); return(dat);/*寫一個字節(jié)*/void WriteOneChar(unsigned c
49、har dat) unsigned char i=0; for (i=8; i>0; i-) DQ=0; DQ=dat&0x01; Delay(5); DQ=1; dat>>=1; void Tmpchange(void) /發(fā)送溫度轉(zhuǎn)換命令 Init_DS18B20(); WriteOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0x44); /啟動溫度轉(zhuǎn)換/*讀取溫度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned
50、int t=0; float tt=0; Tmpchange(); Init_DS18B20(); WriteOneChar(0xCC); /跳過讀序號列號的操作 WriteOneChar(0xBE); /讀取溫度寄存器 a=ReadOneChar(); /讀低8位 b=ReadOneChar(); /讀高8位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*100+0.5; /放大10倍輸出并四舍五入 return(t);/*顯示開機初始化等待畫面*/Disp_init() P0 = 0xFF; /顯示p26=0;p24=0;p22=0;p20=0;Delay(1000);/*顯示溫度子程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 納稅評估工作總結(jié)13篇
- 老年科護理課件教學
- 老年護理就業(yè)前景
- 老年中醫(yī)課件
- 企業(yè)并購中的稅收影響分析與優(yōu)化方案合同
- 廠房股權轉(zhuǎn)讓與產(chǎn)業(yè)升級改造項目合作協(xié)議
- 成都市房管局監(jiān)證下的住宅產(chǎn)權交易合同
- 保險責任界定不清風險合同
- 倉庫安全管理員安全生產(chǎn)責任及安全管理培訓合同
- 老人與健康課件
- 小學語文部編版二年級上冊 第三單元 口語交際:做手工(練習)
- 淺談舞龍舞獅游戲在幼兒園中的傳承 論文
- 廣西華盾報廢車船回收有限公司年回收拆解10000輛汽車項目環(huán)評報告
- 影視視聽視聽語言課件
- 2023電力建設工程監(jiān)理月報范本
- 活性污泥法PPT參考課件
- 語文六年級下冊口語交際辯論20張
- (全)變電站全壽命周期管理建議
- 2022年福建華僑大學研究生院招聘行政人員筆試備考試題及答案解析
- 上市公司市值管理研究-以貴州百靈為例-畢業(yè)論文
- 熱烈歡迎領導蒞臨指導ppt模板
評論
0/150
提交評論