




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
參考資料參考資料.參考資料參考資料.基于單片機的智能溫度控制系統(tǒng)畢業(yè)設計緒論在工業(yè)生產中,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數。其中,溫度控制也越來越重要。在工業(yè)生產的很多領域中,人們都需要對各類加熱爐、熱處理爐、反應爐和鍋爐中的溫度進行檢測和控制。采用單片機對溫度進行控制不僅具有控制方便、簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術指標,從而能夠大大的提高產品的質量和數量。因此,單片機對溫度的控制問題是一個工業(yè)生產中經常會遇到的控制問題。溫度控制器的發(fā)展狀況溫度是表征物體冷熱程度的物理量,是工業(yè)生產和日常生活中經常測量的物理量,也是人類研究最早測量方法最多的物理量之一。因而溫度檢測儀應用領域之廣,使用數量之多,一直高居各類測量儀之首。近百年來,溫度傳感器的發(fā)展大致經歷了以下三個階段:傳統(tǒng)的分立式溫度傳感器(含敏感元件);模擬集成溫度傳感器/控制器;智能溫度傳感器(即數字溫度傳感器)。a)分立式溫度傳感器傳統(tǒng)的熱電偶、熱電阻、熱敏電阻及半導體溫度傳感器,均屬于分立式溫度傳感器,傳感器本身就是一個完整的、獨立的感溫元件。此類傳感器通常要配溫度變送器,以獲得標準的模擬量(電壓或電流)輸出信號。b)模擬集成溫度傳感器集成傳感器是采用硅半導體集成工藝而制成的,因此亦稱硅傳感器或單片集成傳感器??赏瓿蓽囟葴y量及模擬信號輸出功能的專用IC,它屬于一種簡單的集成溫度傳感器,適合遠距離測量、控溫,不需要進行非線性校準,典型產品有AD590AD592等。c)模擬集成溫度控制器模擬集成溫度控制器主要包括溫控開關、可編程溫度控制器,典型產品有 LM56AD2210楙口MAX6509d)智能溫度傳感器智能溫度傳感器(亦稱數字溫度傳感器)是在20世紀90年代中期問世的。智能溫度傳感器是微電子技術、計算機技術和自動測試技術的結晶,它也是集成溫度傳感器領域中最具活力和發(fā)展前途的一種新產品。目前,國際上許多著名的集成電路生產廠已經開發(fā)出上百種智能溫度傳感器產品。課題研究必要性隨著電子技術和微型計算機的迅速發(fā)展,微機測量和控制技術得到了迅速的發(fā)展和廣泛的應用。單片機具有處理能強、運行速度快、功耗低等優(yōu)點,應用在溫度測量與控制方面,控制簡單方便,測量圍廣,精度較高。溫度是工業(yè)生產中常見并且十分重要的參數之一,特別是在冶金、石油、食品、印染等工廠中。由于不同的工藝所需的溫度變化曲線各不相同,而現有的溫度控制儀大多只能進行恒溫控制。因此許多生產過程中加熱、保溫、降溫以及自然降溫等操作都是由人工操作的,這就不可避免地產生各種誤差,進而影響產品質量,個別采用的溫度自動控制系統(tǒng)由于造價較高、操作復雜等原因又限制了在中小企業(yè)的應用,因此研究和開發(fā)一種實用的溫度控制系統(tǒng)成為當務之急。在工業(yè)生產過程中需要實時測量控制溫度,尤其是在高危生產行業(yè),如花炮生產,煤礦行業(yè)等。但依靠人工檢測控制既浪費時間,物力,人力,又有一定的危險性,且數據也不準確,因此研究自動的溫度測量控制方法和裝置具有重要的意義。現代控制系統(tǒng)相對傳統(tǒng)控制系統(tǒng)的優(yōu)勢傳統(tǒng)的控制系統(tǒng)主要由測量電路和控制電路組成,所具備的功能較少,也比較弱,而且結構很復雜。計算機技術的迅速發(fā)展,使得傳統(tǒng)的控制系統(tǒng)發(fā)生了根本性的變革,即采用微機作為控制系統(tǒng)的核心,代替?zhèn)鹘y(tǒng)的控制系統(tǒng)的傳統(tǒng)的電子線路,從而成為新一代的微機化控制系統(tǒng)。將微機技術引入控制系統(tǒng)中,不僅可以解決傳統(tǒng)控制系統(tǒng)不能解決的問題,而且還能簡化電路、增加或增強功能、提高控制精度和可靠性,顯著增強測控系統(tǒng)的自動化、智能化程度,而且可以縮短系統(tǒng)研制周期、降低成本、易于升級和維護。因此,現代控制系統(tǒng)設計,特別是高精度、高性能的控制系統(tǒng),目前已很少不采用計算機技術的了。計算機技術的引入,可以為控制系統(tǒng)帶來以下一些新特點和新功能:a)自動調零功能在每次采樣前對傳感器的輸出值自動清零,從而大大降低因控制系統(tǒng)漂移變化造成的誤差。b)數字濾波功能利用已算機軟件對測量數據進行處理,可以抑制各種干擾和脈沖信號。c)數據處理功能利用計算機技術可以實現傳統(tǒng)儀器無法實現的各種復雜的處理和運算功能。d)復雜控制規(guī)律利用計算機技術不僅可以實現經典的 PID控制,還可以實現各種復雜的控制規(guī)律,例如,自適應控制、模糊控制等。e)自我診斷功能采用計算機技術后,可對控制系統(tǒng)進行監(jiān)測,一旦發(fā)現故障則立即進行報警,并可顯示故障部位或可能的故障原因,對排除故障的方法進行提示。微機化的控制系統(tǒng)是以微機為核心、測量控制一體化的系統(tǒng),這種系統(tǒng)對被控對象的控制是依據對被控對象的測量結果決定的。課題設計特點和應用領域課題采用的是單總線數字溫度傳感器DS18B20可直接將溫度轉換值以16位數字碼的方式用行輸出:將溫度轉化為數字編碼只需1秒左右。而且它具有獨特單線接口方式,即與微處理器接口時僅需占用1個I/O口;支持多節(jié)點;測溫時無需任何外部元件,可以通過數據線直接供電,具有超低功耗工作方式。測溫圍為一55c?+125C,測溫度精度可達到0.0625C。由于傳送的是串行放大器和A/D轉換器可以統(tǒng)統(tǒng)被省卻,因而這種測溫方式大大提高了各種溫度測控系統(tǒng)的可靠性,降低了成本,縮小了體積。具測溫系統(tǒng)結構簡單,硬件少,成本低,測溫精度高,轉換速度快,實用性高,應用圍廣泛,市場前景好,經濟效益可觀。系統(tǒng)可以應用于溫度要求在一55C?+125.9C之間的任何領域。比如:鐵路,糧庫,水果,蔬菜存儲倉庫的溫度控制,以及多路溫度測控儀,各種養(yǎng)殖場的溫度控制監(jiān)測。由于本系統(tǒng)的測溫精度可達0.0625C,因而對于溫度要求特別嚴格的環(huán)境來說,本系統(tǒng)是一個較為理想的監(jiān)控系統(tǒng)。智能溫度控制器的課題主要容課題的任務是應用單片機及DS18B2W總線器件設計一套溫度檢測系統(tǒng),實現對溫度的測量及顯示,并通過按鍵人為設定溫度上下限!而且在溫度超上限價或下限量有控制功能,系統(tǒng)以高性能/價格比的89S52為核心,完成對數據的分析、處理、顯示、溫度上下限設置、超限自動控制,采用單線數字溫度傳感器DS18B2度完成對溫度的采樣和轉換。由于課題是完成對溫度的實時監(jiān)測,因而系統(tǒng)的核心部分就是如何實現溫度采集。系統(tǒng)采用的是美國 DALLAS公司繼DS1820之后推出的一種改進型智能溫度傳感器DS18B2球完成這一任務的。DS18B2山傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度并且可根據實際要去通過簡單的編程實現 9-12位的數字值讀數方式,可分別在93.75ms和750ms完成9位和12位的數字量,并且從DS18B201出的信息或寫入DS18B20的信息僅從一根口線,溫度變換功率來源于數據總線,總線本身可以為所接的DS180B20供電,而無需外電源。DS18B20R在嚴格的時序控制下才能進行正常操作。對DS18B20勺操作包括初始化操作、讀/寫時間片。總線上的所有操作均從初始化開始,初始化或對 RAMROMS作。主CPU!過“時間片”來寫入或讀出DS18B20H勺數據。1S括說,主CP必過單線接口訪問DS18B20勺工作流程為:對DS18B20a行初始化一ROMS作命令一存儲器(包括RAM和EERAM1作命令一數據處理。主CPUtROMM乍完畢,即發(fā)出控制操作命令,使DS18B20完成溫度測量并將測量結果存入高速暫存器中,然后單片機可讀出此溫度轉換值,并隨之進行數據處理、送顯示等操作。2智能溫度控制系統(tǒng)基本構成及工作原理系統(tǒng)的硬件構成課題設計的硬件部分由89S52單片機、DS18B2074LS1474LS273鎖存器以及若干電容、7個發(fā)光二極管、4只數碼管、5個按鍵、11.0592MHZ晶振組成。(結構如圖2.1)圖2.1系統(tǒng)設計結構圖以下對各組成部件功能進行簡單介紹:89S52單片機用于溫度的采集,數據處理,存儲溫度上下限和超溫控制。DS18B201單總線數字溫度傳感器,輸出方式為串行單線輸出,主要作用是把溫度值以數字形式輸出和存儲轉換精度控制字。第三章將作出詳細介紹,此處不做過多贅述。74LS02或非門,用于選擇鎖存器(與寫信號或非)。74LS14施密特觸發(fā)器,用于鍵盤消抖。74LS273鎖存器。用鎖存顯示位、段碼以及指示信號。按鍵用于輸入和查看溫度上下限,使單片機復位,每隔2小時發(fā)送0.5秒的啟動電機的正脈沖。晶振是為單片機提供工作脈沖。數碼管用于顯示溫度值。發(fā)光二極管用于上下限溢出報警,溫度超限報警及控制,設置上 /下限指示,正常工作指示。各功能對應的指示燈設置如表2.1:表2.1指示燈設置功能 第幾燈點亮顯示溫度第1燈0x02顯示卜限溫度1、20x03設下限溫度標志位2、70x41設下限溫賢十位2、60x21設下限溫度個位2、50x11設下限溫度十分位2、40x09顯示上限溫度1、30x06設上限溫度標志位3、70x44設上限溫賢十位3、60x24設上限溫度個位3、50x14設上限溫度十分位3、40x0C低療卜限溫度1、2、4、5、6、70x7B高于上限溫度1、3、4、5、6、70x7E系統(tǒng)的軟件構成課題原計劃用匯編語言完成。后來決定使用C語音編寫程序,系統(tǒng)的軟件由溫度數據采集、數據處理、溫度顯示及按鍵處理等部分組成。 89S52完成的功能主要是數據處理、數據分析、控制計算、進制轉換、數據顯示、按鍵處理以及電機控制等。溫度采樣和轉換部分由DS18B20fB完成。系統(tǒng)的工作原理首先,由溫度傳感器DS18B20寸溫度進行采樣和轉換,將測量結果送給單片機,單片機將輸入的溫度值進行數據處理,并將溫度值與設定的溫度值上下限進行比較。根據比較結果進行相應的處理。若溫度超限則報警指示燈亮,以便進行及時處理。系統(tǒng)原理框圖如圖2.2所示:圖2.2系統(tǒng)原理圖3智能溫度控制系統(tǒng)硬件設計本章是論文核心部分,主要介紹基于單片機的溫度控制系統(tǒng)硬件總體設計,按照設計方案,整個溫控系統(tǒng)硬件主要包括以下單元:按鍵輸入,溫度采集、處理,溫度超限報警,定時發(fā)出脈沖等。溫度控制的核心為溫度的采集和處理,系統(tǒng)選用特別適用于編程及數據處理的MS-51單片機89S52,并通過89S52實現對其他各組成部分的編程控制下面是核心原件的介紹:數字溫度傳感器DS18B20羊述DS18B20簡介DS18B2雋美國DALLA芥導體公司生產的可組網數字式溫度傳感器,在其部使用了在板(ON-B0ARD專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路。與其它溫度傳感器相比,DS18B2CM有以下特性:參考資料參考資料.a)獨特的單線接口方式:DS18B20f微處理器連接時僅需要一條口線即可實現微處理器與DS18B20勺雙向通訊。b)在使用中不需要任何外圍元件。c)可用數據線供電,電壓圍:+3.0V?+5.5V。d)測溫圍:-55C?+125C。固有測溫分辨率為0.1C。e)通過編程可實現9?12位的數字讀數方式。f)用戶可自設定非易失性的報警上下限值。g)支持多點組網功能,多個DS18B2M以并聯在惟一的三線上,實現多點測溫3.1.2DS18B20的引腳名稱及作用外形如圖3.1所示。其體積只有DS1820的一半,引腳定義相同。DQ:數據輸入輸出引腳VDD可接電源,也可接地。因為每只DS18B20rB可以設置成兩種供電方式。采用數據總線方式時VD呢地,可以節(jié)省一根傳輸線,但完成溫度測量的時間較長;采用外部供電方式則接5V,多用一根導線,但測量速度較快。m3
?
二總
(CUSm3
?
二總
(CUS一I.=GND|DQIVgaIDALLAS£K=圖3.1DS18B20外觀DS18B20的部結構它主要由4部分組成:64位ROM溫度傳感器、非易失性的溫度報警觸發(fā)器TH和TL、高速暫存器。64位ROMS于存儲DS18B26列號,其首字節(jié)固定為28H,表示產品類型碼,后6個字節(jié)是每個器件的編碼,最后1個字節(jié)是CRCK驗碼。溫度報警觸發(fā)器TH和TL存儲用戶通過軟件寫入的報警上下極限。高速暫存器由 9個字節(jié)組成,其中有2個字節(jié)RAMI元用來存放溫度值,前1個字節(jié)為溫度值的補碼低8位,后1個字節(jié)為字符號位和溫度值的補碼高3位。具部結構框圖如圖3.2所示:高溫觸發(fā)器TH高溫觸發(fā)器TH圖3.2DS18B20部結構框圖DS18B20的測溫原理DS18B2CW量溫度采用了特有的溫度測量技術,其溫度測量電路如圖 3.3所示圖3.3DS18B20測溫結構圖圖3.3中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時, DS18B2?對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55C所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55C所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器 1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數, 如此循環(huán)直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20勺測溫原理。另外,由于DS18B2M線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)一發(fā)ROMft能命令一發(fā)存儲器操作命令一處理數據。DS18B20的轉換精度控制字及分辨率設置設置轉換精度控制字格式如表3.1所示表3.1轉換精度控制字格式MSBLSB0R1 R0111 1 1分辨率設置如表3.2表3.2分辨率設置R1R0分辨率(位)最大轉換時間(ms)00993.750110187.510113751112750由表可見,設定的分辨率越高,所需要的溫度數據轉換時間越長。因此,在實際應用中需要在分辨率與轉換時間二者之間權衡考慮。在芯片出廠時R1和R0被配置為“1”,即工作在12位模式下。當DS18B208收到溫度轉換命令(44H)開啟后,開始啟動轉換,轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在暫存RAM勺第0,1字節(jié)。在執(zhí)行讀暫存RAMT令后,可將這兩個字節(jié)的溫度值通過單線總線傳給CPU高位字節(jié)中符號代表溫度值為正還是負值。DS18B20的溫度數字關系參考資料.參考資料參考資料.參考資料參考資料.用12位精度測出的溫度值用16位二進制補碼形式表示,如表3.3所示:表3.3DS18B20存儲器映像圖232221202-12-22-32-4MSB LSBSSSSS262524MSB LSB圖中S為符號位,S=1,溫度為負值;S=0,溫度為正值。DS18B2M12位精度測出的數字量(用16位二進制補碼形式表示)如表3.4所示:表3.4部分溫度與對應的數字溫度輸出之間的對應關系+125000001111101000007D0+8500000101010100000550+25.062500000001100100010191+10.125000000001010001000A2+0.500000000000010000008000000000000000000000-0.51111111111111000FFF8-10.1251111111101011110FF5E-25.06251111111001101111FE6F-551111110010010000FC90DS18B20的存結構圖DS18B20勺存儲器包括SRAMff儲器和非易失的EEPROM儲器,EEPROM于存放觸發(fā)報警上限值存儲器(T口和觸發(fā)報警下限存儲器(TL)。當DS18B20在使用過程中并未使用報警功能時,TH和TL可作為普通用途的存儲器單元使用。DS18B20勺存儲組織結構如表3.5所示。表3.5DS18B20部存儲器組織結構圖便箋存儲器(期間上電默認值) EEPRO臍儲器0 溫度數字量低位字節(jié)(50H)無溫度數字量高位字節(jié)(05H)TH/用戶寄存器字節(jié)1 TH/用戶寄存器字節(jié)1TL/用戶寄存器字節(jié)2 TL/用戶寄存器字節(jié)2
4545678保留(FFH保留(0CH無保留(10H)CRCDS18B20的操作命令DS18B2Q1一種可編程的數字溫度傳感器,它的工作是靠計算機給它發(fā)控制命令進行的,DS18B20ft計算機在工作過程中的協(xié)議主要有:初始化、 ROMfr儲器操作命令、RAM?儲器操作命令。分別說明如下:a)初始化單總線上的所有處理均從初始化開始。初始化過程是主機通過向作為從機 DS18B20芯片發(fā)一個有時間寬度要求的初始化脈沖實現的。初始化完成后,才可進行讀寫操作。b)對ROM勺5種操作命令一旦主CPU僉測到從屬器件的存在,就可以發(fā)出ROMS作命令。所有ROMS作命令均為8位(二進制)字長。主CPK以發(fā)出ROMH乍命令有以下五種:1)讀ROMT令(READROM勺定代碼33H)。該命令允許主CPUS取DS18B20H勺8位產品系列編碼,48位序列號以及8位的CRC該命令適用于總線上接一片DS18B20的情況。當總線上掛有多片DS18B20寸禁止使用該命令,否則多片DS18B20W時發(fā)送數據,必然會導致互相沖突。2)符合ROMT令(MATCROM約定代碼55H)。主CPUS發(fā)出“符合"ROMT令后,接著發(fā)出64位的ROMK據序列,從而使主CP區(qū)現對單線總^線上特定DS18B20勺尋址。只有與ROMf列嚴格相符的DS18B20才能對后續(xù)的存儲器操作命令作出響應。所有與64位ROMf列不相符的DS18B20等等待復位脈沖。該命令對于總線上掛有單個、或多個器件的情況均適用。3)搜索ROMT令(SEARCHR。M勺定代碼F0H)。搜索RO嘛令允許主CPUS用一種“消除法”(ELMINATION來識別總線上所有DS18B20勺64位RO端碼,即完成整個系統(tǒng)的初始化工作。為以后對各個單線器件作好準備。該部分也是對DS18B2明片進行軟件編程的重點和難點。4)跳過RO嘛令(SKIPROM約定彳t碼為CCH。在單線總線系統(tǒng)中,該命令使主CPU^必提供64位ROM?碼就能訪問各片DS18B20該命令主要用于向所有的DS18B20同時發(fā)出溫度轉換命令,從而大大節(jié)省訪問各個器件的時間。但有一點必須注意,主CPU如果在發(fā)出SKIPROM命令之后,又發(fā)出了讀存儲器命令,那么由于多片 DS18B20R]時向總線上提供數據且在漏極開路狀態(tài)下產生“線與”的結果,此時讀出的數據已經沒有實際意義了。5)報警搜索命令(ALARAMSEARCH"約定代碼ECH。該命令的流程與搜索ROM命令的流程相同。僅在最后一次溫度測量出現報警的情況下。 DS18B20t對該命令做出響應。報警的條件定義為溫度超過上限(T>TH,或者低于下限(T<TL)。上電時,DS18B20預置報警條件為設定狀態(tài),直到首次溫度測量結果既不超過上限 TH,也不低于TL時,報警信號才被解除。c)存儲器操作命令存儲器操作命令共有6條,具體如下:1)溫度轉換命令(CONVERT)T{44H}0令DS18B203行溫度轉換。如果住CPUft該命令之后為讀時序,如果DS18B20E忙于進行溫度*$換,即讀得“0”;當溫度轉換完成時,DS18B20M返回“1"。假如有寄生電源給DS18B2CB電,主CPUft發(fā)出該命令后立即將單線總線拉成高電平,并且保持500ms時間,以便在溫度轉換期間給DS18B2提供所需要的電源。2)讀暫存存儲器(READSCRATCHPA{BEH}。該命令為讀暫存存儲器9個字節(jié)的容。從字節(jié)0開始讀,直至讀到字節(jié)8。主CPUT以在讀暫存存儲器期間發(fā)出一個復位脈沖來終止讀操作。3)寫暫存存儲器(WRITESCRATCHPAD4EH}。主CPU^&DS18B20勺2個字節(jié)數據就分別寫入觸發(fā)寄存器TH和觸發(fā)寄存器TL中,順序是先寫TH,到寫TLo主CPU&可以在寫暫存存儲器期間發(fā)出一個復位脈沖來終止寫操作。4)復制暫存存儲器{COPYSCRATCHPAD}{48H眩命令把觸發(fā)寄存器中的THTL字節(jié)分別復制到EERAM勺THTL的字節(jié)上。若主CPU發(fā)出命令后又進行讀操作,只要DS18B20正忙于復制,主CPUB讀“0”;當復制工作完成后,DS18B2CR返回“1”。如果是寄生電源供電,主CPUS發(fā)出該命令后就把單線總線拉到高電平,并保持 10ms5)重新調出EERAMRECALLEERAM[B8H}。該命令是把存儲器在E2RA始度觸發(fā)器THTL的數據重新調入暫存器的THTL字節(jié)。每次DS18B2葉電時也自動進行這種操作,因此,只要器件接通電源,暫存存儲器的 THTL中已經有效的數據供使用。若主CPUE發(fā)出該命令之后又進行讀操作,只要DS18B20E忙于進行調出,主CPlM讀得“0”(表示“忙碌”);完成調出操作后DS18B2C?返回“1”(表示“操作完畢”)。6)讀電源(REAEPOWERUPPLY{B4H}。此項命令發(fā)送給DS18B2必后,對主CPU發(fā)出的每條讀命令,DS18B2CB向主CPI?供電源方式信號“0”(表示由寄生電源供電)或者“1”(表示由外部電源供電)。DS18B20的工作時序主機使用時間隙來讀寫DS18B20勺數據位和寫命令字的位。a)初始化主機總線T0時刻發(fā)送復位脈沖(最短為480us的低電平信號),接著在T1時刻釋放總線并進入接受狀態(tài),DS18B2照檢驗到總線的上升沿之后,等待15us?60us,接著在T2時刻發(fā)出存在脈沖(60us?240us),如圖3.4所示。b)寫時間隙當主機總線在T0時刻從高拉至低電平時,就產生寫時間隙,如圖3-5(a,b),從T0時刻開始15us之應將所需寫的位送到總線上,DS18B20ftT0后15us?60us問對總線采樣。若為低電平,則寫入的是0,如圖3.5(a);若為高電平,則寫入的位是1,見圖3.5(b)0連續(xù)寫2位時間間隙應大于1us0>60us>1us15us15-45us參考資料15us15-45us參考資料參考資料參考資料.參考資料參考資料.>60us>1us圖3.5 (b)寫1時序C)讀時間隙如圖3.6,總線T0時刻從高拉至低電平時,總線只需保持低電平1uso之后在T1時刻將總線拉高,產生讀時間隙,讀時間隙在T1時刻和T2時刻前有效。T2距T0為15us,也就是說,T2時刻前主機必需完成讀位,并在T0后的60us?120us釋放總線。圖3.6圖3.6讀時序89S52P1.0+5V4.7K89S52P1.0+5V4.7KDS18B20與單片機的硬件接口因為DS18B201單線接口器件,因此它與單片機硬件接口十分簡單,只需占用單片機的一個雙向的I/O口,其接口電路見圖3.7。在此采用外部電源供電,占用89S52的P1.0口。DS18B20
npt0-
GND VDD— oDQ外接+5V圖3.7單片機接口電路DS18B20使用中注意事項DS18B23然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應用中也應注意以下幾方面的問題:a)較小的硬件開銷需要相對復雜的軟件進行補償,由于 DS1820與微處理器間采用串行數據傳送,因此,在對DS1820進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在使用PL/M、C等高級語言進行系統(tǒng)程序設計時,對DS1820操作部分最好采用匯編語言實現。b)在DS1820的有關資料中均未提及單總線上所掛DS1820數量問題,容易使人誤認為可以掛任意多個DS1820在實際應用中并非如此。當單總線上所掛 DS1820g過8個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統(tǒng)設計時要加以注意。c)連接DS1820的總線電纜是有長度限制的。試驗中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數據將發(fā)生錯誤。當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m當采用每米絞合次數更多的雙絞線帶屏蔽電纜時, 正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產生畸變造成的。因此,在用DS1820tt行長距離測溫系統(tǒng)設計時要充分考慮總線分布電容和阻抗匹配問題。d)在DS1820測溫程序設計中,向DS1820發(fā)出溫度轉換命令后,程序總要等待DS1820勺返回信號,一旦某個DS182哦觸不好或斷線,當程序讀該DS1820寸,將沒有返回信號,程序進入死循環(huán)。這一點在進行 DS1820硬件連接和軟件設計時也要給予一定的重視。3.2MCS-51系列單片機簡介MCS-51系列單片機MCS-51系列單片機研制于1980年,由Intel公司所開發(fā),具結構是8048的延伸,改進了8048的缺點,其ROMRAM?可擴充至64KB也增添了如乘(MUL、除(DIV)、減(SUBB、比較(CJNE、棧入(PUSH、棧出(POP、16位數據指針、布爾代數運算等指令,以及串行通信能力和5個中斷源。8052有6個中斷源。MCS-51系列單片機特點如下:(1)專為控制應用所設計的八位CPU;(2)具有布爾代數的運算能力;(3)32條雙項且可被獨立尋址的I\O口;(4)芯片有128字節(jié)可供存儲數據的RAM(8052:256字節(jié));(5)部有兩組16位定時器(8052有3個);(6)具有全多工傳輸信號UART(7)5參考資料.參考資料參考資料.參考資料參考資料.個中斷源,且具有兩級(高/低)優(yōu)先權順序的中斷結構;(8)芯片有4KB(8KB/8052)的程序存儲器(ROM;(9)芯片有時鐘(CLOCK振蕩器電路;(10)程序存儲器可擴展至64KB(ROM;(11)數據存儲器可擴展至64KB(RAMI。MCS-51系列單片機引腳介紹a)時鐘電路引腳MCS-51單片機的時鐘可以由部方式和外部方式產生, XTAL1(19腳)和XTAL2(18腳)即為單片機的兩個時鐘引腳。1)時鐘引腳8051單片機片有振蕩電路,只需在XTAL1和XTAL2間外接石英晶體和電容組成的并聯振蕩電路(晶振器),晶體可以在固有頻率1.2?12MHz的晶振器之間任選晶體,電容可以在20?60pF的電容之間任選,通常選擇30pF的瓷片電容。在單片機控制的數字顯示溫度計電路設計的這個部分,就是采用時鐘引腳,其中晶振器為6MHz兩個電容均為30pF。2)外時鐘方式,XTAL1接地,XTAL2接外部振蕩器。由于XTAL2端的電平不是TTL電平,故接一個上拉電阻。外部振蕩器的頻率應低于 12MHzb)制信號引腳,包括RST/VpdALE/PROG、PSENkEA^/Vppb下面分別對其進行介紹:RST/Vpd(9腳):復位信號/備用電源引腳 當輸入的復位信號延續(xù)2個機器周期以上,高電平即為有效,用以完成單片機的復位操作。復位后影響片特殊功能寄存器的狀態(tài),但不影響片RA瞰態(tài)。同一引腳的Vpd是備用電源輸入端(Vpd?+5V備用電源)。在Vcc斷電時,為保證RAW的信息不丟失,可使此引腳完成掉電保護功能。ALE/PROG(30腳);地址鎖存允許信號/編程脈沖輸入端在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來,以實現低位地址和數據的分時傳送。此外由于ALE1以1/6晶振頻率的固定頻率輸出的正脈沖,因此可作為外邊時鐘或外部定時脈沖使用。 對片帶有4kbyteEPROMj8751編寫固化程序時,PROG作為編程脈沖輸入端。PSEWE(29弓唧):外邊程序存儲器讀選通信號為低電平有效, 8051在訪問片外程序存儲器時,此引腳端輸出負脈沖作為讀片外程序存儲器的選通信號,以實現外部ROM1元的讀操彳要檢查8051上電平后CP能否正常到程序存儲器中讀取指令碼,可以用示波器觀察引腳PSENE有無脈沖輸出,若有說明正常。EA非/Vpp(31腳):部和外部程序存儲器選擇信號 當引腳接高電平時,CP6訪問片4kbyte的EPROM/R。帥行部程序存儲器中的指令,但在程序計數器計數超過OFFFH(即地址大于4kbyte時),將自動轉向執(zhí)行片外大于4kbyte程序存儲器的程序。若E&E引腳接低電平時,CP熾訪問外部程序存儲器,而不管片是否有程序存儲器。對于8031單片機(片無ROM需外擴EPROM故必須將E/ME弓唧接地。在對EPROM寫固化程序時,需對此引腳施加21V勺編程電壓。I/O(輸入/輸出)接口引腳1)并行I/O接口的特點MCS-51有4個8位并行I/O接口P0?P3,他們都是雙向端口,可以進行輸入或者輸出操作,每個口都有口鎖存器和口驅動器兩部分組成。止匕外,它還有一個全雙工串行通信口。這4個端口為MCS-5右外圍器件或外圍設備進行信息(數據、地址、控制信號)交換提供了多功能的輸入/輸出通道,也為MCS-5擴展外部功能、構成應用系統(tǒng)提供了必要的條件。它們的特點如下: a、4個并行I/O接口都是雙向的。P0口為漏極開路,P1、P2、P3口均具有部上拉電阻,它們有時被稱為準雙向口。 b、4個并行口的32條I/O接口線都可以獨立地用于輸入或輸出操作。 c、當4個并行口的I/O接口線有作輸入操作時,必須對該口的鎖存器進行寫1操作,以保證從I/O接口線輸入數據的正確性,這也是4個并行接口有時被稱為“準”雙向的含義。I/O接口電路功能匯總MCS-51單片機部屬單總線結構,因此使系統(tǒng)在結構上增加了靈活性。通過總線,用戶可根據應用需要進行多功能的系統(tǒng)擴展,構成用戶的實際應用系統(tǒng)。MCS-5保列中的8031單片機,因其部在結構上無程序存儲器,所以它的應用系統(tǒng)必定為一個擴展的系統(tǒng)。因此, MCS-514M個并行I/O接口中的PRP1、P2、P3口基本上都具備有這兩項功能:a、P0口:P0口是一個多功能口除可以作為通用的輸入/輸出口外,還具備用于系統(tǒng)擴展的第二功能。在MCS-5的進行系統(tǒng)擴展時,它作為地址/數據總線口。通過外接地址鎖存器, MCS-5的部單總線可從P0口被擴展成8位的數據總線和16位地址總^線的低8位。在實際應用中,P0口先送出外部存儲器16位地址中的低8位至地址鎖存器鎖存,然后再由P0口進行8位數據的輸入或輸出;b、P1口:P1口作為通用I/O接口,它的每一位都可以別編程為通用I/O接口線;c、P2口:P2口也是一個多功能口,與P0口相似,它除可被用作I/O接口外,在進行系統(tǒng)擴展時,還可以輸16位地址總線中的高8位,和P0口共同構成16位的地址總線。當然,在P0口和P2口用作地址/數據總線時,它們都不能再作為通用I/O接口;d、P3口:P3口也是一個多功能口,除可以作為通用I/O接口外,還具有多種控制功能,為通用I/O接口時和MCS-5其他具有控制功能的輸入/輸出引線在一起,共同形成MCS-51勺控制總線。P3口在作為第二功能(控制功能)使用時,它的每一位功能定義如表3.8所示。表3.8P3口各引腳定義P3.0RXD串行數據接收P3.1TXD串行數據發(fā)送P3.2INT0外部數據0申請P3.3INT1外部數據1申請P3.4T0定時器/計數器0輸入P3.5T1定時器/計數器1輸入P3.6WR外部RAMW選通P3.7RD外部RAM賣選通一個信號引腳,既是第一功能又是第二功能,在使用時也不會引起混亂和造成錯誤,理由如下:a、對于各種型號的芯片,其功能的第一功能信號是相同的,所不同的只在引腳的的第二功能信號上;b、對于9、30和31各個引腳,由于第一功能信號與第二功能信號是單片機在不同工作方式下的信號,因此不會發(fā)生使用上的矛盾; c、P3口線的情況卻有所不同,它的第二功能信號都是單片機的重要控制信號。因此在實際使用時,總是先按需要優(yōu)先選用它的二功能,剩下不用的才作為口線使用。MCS-51單片機的復位方式和復位電路1)復位操作:復位是單片機的初始化操作,其主要功能是把PC0始化為0000H使單片機從0000Hl元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或者操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復位鍵以重新啟動。 a、復位操作還對單片機的個別引腳信號有影響,例如把AL手口PSENE信號變?yōu)闊o效狀態(tài),即ALE=0PSEN=1b、復位信號及其產生RST^I腳是復位信號的輸入端,復位信號是高電平有效,其有效時間持續(xù)24個振蕩脈沖周期(即2個機器周期)以上,若使用頻率為6MHz勺晶振,則復位信號持續(xù)時間應超過4us才能完成復位操作。整個復位電路包括芯片外兩部分。外部電路產生的復位信號(RST送施密特觸發(fā)器,再由片復位電路在每個機器周期的S5寸刻對施密特觸發(fā)器的輸出進行采樣。然后才得到部復位操作所需要的信號。3.3顯示溫度值的LED顯示器接口簡介LED顯示器是單片機應用系統(tǒng)中常用的廉價輸出設備。它是由若干個發(fā)光二極管組成的,當發(fā)光二極管導通時,相應一個筆畫劃發(fā)光,控制某段發(fā)光二極管導通,就能顯示出某個數碼或字符。在靜態(tài)顯示系統(tǒng)中,每位顯示器都應有各自的鎖存器、譯碼器(若采用軟件譯碼,譯碼器可省去)與驅動器,用以鎖存各自待顯示數字的 BC則或字段碼。因此,靜態(tài)顯示系統(tǒng)在每一次顯示輸出后能夠保持顯示不變,僅在待顯示數字需要改變時,才更新具數字顯示鎖存器中的容。這種顯示占用CPU勺時間少,顯示穩(wěn)定可靠。缺點是,當顯示的位數較多時,占用的I/O口較多。在動態(tài)顯示的系統(tǒng)中,CPU!定時地對每位LED顯示器進行掃描,每位LED顯示器分時輪流工作,每次只能使一位LED顯示,但由于人的視覺暫留現象,仍感覺所有的LED顯示器都在同時顯示。這種顯示的優(yōu)點是使用硬件少,占用I/O口少。缺點是占用CPU時間長,只要不執(zhí)行顯示程序,就立刻停止顯示。但隨著大規(guī)模集成電路的發(fā)展,目前已有能自動對顯示器進行掃描的專用顯示芯片,使電路既簡單又占用 CPU寸間。在我們所設計的溫度計中數碼管顯示就是利用的動態(tài)顯示。4智能溫度控制系統(tǒng)軟件設計課題的程序用KeilC51語言編寫,由于使用了C語言,寄存器的分配、不同的存儲器的尋址及數據類型等細節(jié)可由編譯器管理,尤其是數學運算不必人工干預,大大縮短了變成與調試的時間,提高了效率,降低了編成難度,使編程更加簡便。系統(tǒng)的控制軟件可分為主程序,DS18B20!信程序,按鍵程序等模塊。主程序可分為系統(tǒng)的初始化,自檢子程序,溫度顯示子程序三部分。溫度顯示子程序完成溫度采集,溫度值的BCD專換,調顯示子程序,超溫報警和控制。DS18B20!信程序主要由DS18B20初始化程序,DS18B20文字節(jié)程序,DS18B2叫字節(jié)程序組成。按鍵程序主要完成溫度上、下限的設置和顯示,在單片機控制下每2小時發(fā)送0.5秒的啟動電機的正脈沖。本系統(tǒng)有五個按鍵,依次是:復位鍵、K1鍵、K2鍵、K3鍵、K4鍵。按鍵程序主要包括INT1中斷子程序、定時器T0中斷子程序、INT1中斷子程序、定時器T1中斷子程序、定時器T2子程序。其中,復位鍵部分放入主程序中,作為主程序的一部分。 K4鍵功能:每2小時發(fā)送0.5秒的啟動電機的正脈沖。下面是主程序和各個子程序的流程圖。參考資料.參考資料參考資料.參考資料參考資料.4.1主程序流程圖系統(tǒng)完成的是對周圍溫度進行檢測,采用 DS18B20專感器。當溫度超過設定溫度圍時,進行報引入單片機控制是實現系統(tǒng)智能化很重要的一個部分,采用單片機可以實現程序控制和監(jiān)視的功能。系統(tǒng)采用89S52和DS18B20勺連接進行實時控制和數據處理。軟件編程負責設置溫度上、下限,然后讓系統(tǒng)根據設置的程序完成控制功能。主程時,進行報序流程圖如圖4.1所示。圖4.1圖4.1主程序流程圖2子程序流程圖及程序容DS18B20初始化子程序流程圖DS18B2在初始化序列期間,總線控制器拉低總線并保持480us以發(fā)出(TX)一個復位脈沖,然后釋放總線,進入接收狀態(tài)(RX。單總線由5Kh拉電阻拉到高電平。當DS18B20探測到I/O引腳上的上升沿后,等待15?60us,然后發(fā)出一個由60?240us低電平信號構成的存在脈沖。完成對DS18B2的初始化操作,在每次測溫前必須對其進行初始化,否則系統(tǒng)無法正常運行。所以這個步驟很重要。 DS18B2初始化子程序流程如圖4.2所示。圖4.2DS18B20初始化子程序流程圖voidRST18B20(void)/*DS18B20 初始化子程序*/{DQ=0;delay(15);DQ=1;delay(2);do{}while(DQ==1);}}參考資料參考資料.}}參考資料參考資料.do{}while(DQ==0);4.2.3DS18B204.2.3DS18B20讀字節(jié)子程序參考資料參考資料.參考資料參考資料.DS18B20寫字節(jié)子程序DS18B2%字節(jié)由兩種寫時序組成:寫1時序和寫0時序??偩€控制器通過寫1時序寫邏輯1到DS18B20寫0時序寫邏輯0到DS18B20所有寫時序必'須最少持續(xù)60us,包括兩個寫周期之間至少1us的恢復時間。當總線控制器把數據線從邏輯高電平拉到低電平的時候,寫時序開始總線控制器要生產一個寫時序,必須把數據線拉到低電平然后釋放,在寫時序開始后的15u郵放總線。當總線被釋放的時候,5K勺上拉電阻將拉高總線。總控制器要生成一個寫0時序,必須把數據線拉到低電平并持續(xù)保持(至少60us)??偩€控制器初始化寫時序后,DS18B2猊一個15us到60us的時間對I/O線采樣。如果線上是高電平,就是寫1。如果線上是低電平,就是寫0。DS18B201字節(jié)程序流程圖如圖4.3所小。圖4.3DS18B20寫字節(jié)流程圖voidwrite_zi(ucharwr)/* 向DS18B20W字節(jié)子程序*/{uchari;for(i=0;i<8;i++){DQ=0;_nop_();DQ=wr&0x01;delay(5);DQ=1;wr>>=1;}}總線控制器發(fā)起讀時序時,DS18B2颯被用來傳輸數據給控制器。因此,總線控制器在發(fā)出讀暫存器指令[BEh]或讀電源模式指令[B4h]后必須立刻開始讀時序,DS18B20T以提供請求信息。除此之外,總線控制器在發(fā)出發(fā)送溫度轉換指令 [44h]或召回EEPROM指令[B8h]之后讀時序,所有讀時序必須最少60us,包括兩個讀周期間至少1us的恢復時問。當總線控制器把數據線從高電平拉到低電平時,讀時序開始,數據線必須至少保持1us,然后總線被釋放。在總線控制器發(fā)出讀時序后, DS18B2通過拉高或拉低總線上來傳輸1或0。當傳輸邏輯0結束后,總線將被釋放,通過上拉電阻回到上升沿狀態(tài)。從DS18B20J出的數據在讀時序的下降沿出現后15us有效。因此,總線控制器在讀時序開始后必須停止把I/O腳驅動為低電平15us,以讀取I/O腳狀態(tài)。DS18B2像字節(jié)子程序如圖4.4所示。圖4.4DS18B20讀字節(jié)子程序/*從DS18B20/*從DS18B20賣出字節(jié)子程序*/{uchari,u=0;for(i=0;i<8;i++){DQ=0;u>>=1;DQ=1;if(DQ==1)u|=0x80;delay(4);}return(u);)4.2.4 溫度顯示子程序溫度顯示子程序主要完成溫度的讀出和顯示的功能。當溫度為零下是顯示為“一”號;當溫度為零上時消隱。當測定溫度低于設定溫度下限值時,第1、2、4、5、6、7個發(fā)光二極管點亮;當測定溫度高于設定溫度上限值時,第1、3、4、5、6、7個發(fā)光二極管亮。起到報警作用。溫度顯示子程序流程圖如圖4.5所示。圖圖4.5 溫度顯示子程序參考資料參考資料.圖圖4.5 溫度顯示子程序參考資料參考資料.floatWL=-10.0,WH=30.0;voidshowT(void){ucharidatatem[4];floatwd=0;intm;for(;;){/*WH/*/*wdwd=cewen();if(wd<0){wd=-wd;tem[0]=16;}elsetem[0]=17;tem[1]=wd/10;m=wd*10;tem[2]=m%100/10;tem[3]=m%10;display(tem+3);deng=0x02;if(wd<=WL)/*/*/*/*/*deng=0x7B;/*if(wd>=WH)deng=0x7E;、WL8于存儲上、下限溫度*/溫度顯示子程序*/為采集的溫度值*/判斷溫度是否為正*/溫度為負值,數碼管第1位顯示負號*/溫度為正值,數碼管第1位不顯示*/將溫度值各位分離出來*/顯示溫度,第1個發(fā)光二極管亮*/低于溫度下限,第1、2、4、5、6、7個發(fā)光二極管亮*//*高于溫度上限,第1、3、4、5、6、7個發(fā)光二極管亮*/4.2.54.2.5溫度采集子程序流程圖參考資料參考資料.4.2.54.2.5溫度采集子程序流程圖參考資料參考資料.溫度采集子程序流程溫度采集子程序流程程序在采集溫度時,測量兩次取平均值,已達到精確的目的。圖如圖4.6所示參考資料參考資料.參考資料參考資料.floatcewen(void){ucharam,bm;intwendz=0,i;floatduzhi=0;for(i=0;i<2;i++)/* 采集溫度子程序*//*am,bm 分別是從DS18B80賣取的溫度低8位和高8位值*//*wemdz 是單次溫度采集值*//* 采集兩次溫度值*/RST18B20(); /*DS18B20 初始化*/write_zi(0xCC);write_zi(0x44);RST18B20();write_zi(0xCC);write_zi(0xBE);/* 跳過DS18B2Q>tROM*//* 進行溫度轉換*//*DS18B2Q 暫存器值*/am=read_zi();bm=read_zi();wendz=bm;wendz<<=8;wendz|=am;duzhi+=wendz;}duzhi/=2; /*duzhi*=Q.Q625;/*duzhi+=Q.Q5; /*return(duzhi);}取兩次采集溫度平均值*/將采集溫度值轉換為十進制數*/將采集溫度值四舍五入,精確到Q.1*/顯小子程序顯示子程序是對數碼管進行逐位掃描,顯示先從顯示緩沖區(qū)取出要顯示的數據,再根據該數據從table表中取出相應的段碼完成顯示。顯示子程序流程圖如圖 4.7所示圖4.7顯不'子程序voiddisplay0(ucha門data*p) /* 不顯示數碼管左起第4位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];參考資料.參考資料參考資料.參考資料參考資料.if(sel!=0xfe)wei=sel;delay(210);wei=0xff;P--;sel=~sel;sel=sel<<1;}}voiddisplay1(ucha門data*p) /* 不顯示數碼管左起第3位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfd)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}}voiddisplay2(ucharidata*p) /* 不顯示數碼管左起第2位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfb)wei=sel;delay(210);wei=0xff;
p--;sel=~sel;sel=sel<<1;}}voiddisplay3(ucha門data*p)/* 不顯示數碼管第1位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xf7)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}*/}*/voiddisplayQ(ucha門data*p)/* 數碼管小數點全顯示,用于自檢子程序{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table1[*p];wei=sel;delay(100);wei=0xff;p--;sel=~sel;sel=sel<<1;}}4.2.6 4.2.6 按鍵子程序流程圖參考資料參考資料.4.2.6 4.2.6 按鍵子程序流程圖參考資料參考資料.程序利用K1,K2K3三個按鍵設定溫度上、下限值。按鍵子程序流程圖如圖4.8所示K1鍵第一次按下圖4.8 K1鍵第一次按下圖4.8 按鍵子程序流程圖顯示溫度上限參考資料參考資料.參考資料參考資料.為K2為K2鍵的按鍵次數,k,d為溫度下限、上限I標志位*/為下限、上限溫度處理的中間變量*/用于存放上、下限溫度分離后的各位數值和標志位*/開啟定時器T0中斷*/鍵第1次按下*/inta,b; /*a,b,wl.whTOC\o"1-5"\h\zfloatwl,wh;ucharidatadis_buf[4]; /*TR0=1; /*delay(500);if(INT1==0) /*K1對下限溫度進行分離處理*/對下限溫度進行分離處理*/顯示下限溫度,第1顯示下限溫度,第1、2個發(fā)光二極管亮*/鍵按下*/{if(dx==0){while(dx==0);wl=WL;if(wl<0.0){dis_buf[0]=16;wl=-wl;k=1;}else{dis_buf[0]=17;k=0;}a=wl*10;b=WH*10;dis_buf[1]=a/100;dis_buf[2]=(a%100)/10;dis_buf[3]=(a%100)%10;for(;;)/*K3鍵按下*//*K3鍵按下*/switch(n) /* 設置下限溫度各位的數值*/{case 0:if(dis_buf[3]<9){dis_buf[3]++;break;} else{dis_buf[3]=0;break;}case 1:if(dis_buf[2]<9){dis_buf[2]++;break;} else{dis_buf[2]=0;break;}case 2:if(dis_buf[1]<5){dis_buf[1]++;break;} else{dis_buf[1]=0;break;}case 3:if(m==0) {dis_buf[0]=17;m++;k=0;break;} else{dis_buf[0]=16;m=0;k=1;break;}}}}if(TF0) /* 每隔100ms顯示一次下限溫度*/{j++;if(j==2){display(dis_buf+3);j=0;}TH0=-(50000/256);TL0=-(50000%256);TF0=0;}elseswitch(n){case0:display0(dis_buf+3);deng=0x09;break;/*K2鍵按第1次,第4位數碼管不顯示*/case1:display1(dis_buf+3);deng=0x11;break;/*K2 鍵按第2次,第3位數碼管不顯示*/case2:display2(dis_buf+3);deng=0x21;break;/*K2 鍵按第3次,第2位數碼管不顯示*/case3:display3(dis_buf+3);deng=0x41;break;/*K2 鍵按第4次,第1位數碼管不顯示*/}if(dx==0){if(dx==0){while(dx==0);if(n<4)n++;}}if(n==4) /*K2鍵按第5次,將設置的溫度值存入上、下溫度變量*/{if(k==0)a=dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100;if(k==1)a=-(dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100);n=0;if(b>(a+5)) /*如果設置的溫度下限值低于上限值 0.5C以上,則存儲設置的值*/{WL=a;WL/=10;WH=b;WH/=10;}break;}}}}if(INT1==0) /*K1for(;;){while(INT1==0);wh=WH; /*if(wh<0){dis_buf[0]=16;wh=-wh;}elsedis_buf[0]=17;b=wh*10;dis_buf[1]=b/100;dis_buf[2]=(b%100)/10;dis_buf[3]=(b%100)%10;display(dis_buf+3);/*鍵第2次按下*/對上限溫度進行分離處理*/顯示上限溫度,第1、3個數碼管亮*/deng=0x06;if(dx==0)/*K2鍵按下*/{if(dx==0){while(dx==0);wh=WH;if(wh<0){dis_buf[0]=16;wh=-wh;d=1;}else{dis_buf[0]=17;d=0;}a=WL*10;b=wh*10;dis_buf[1]=b/100;dis_buf[2]=(b%100)/10;dis_buf[3]=(b%100)%10;for(;;){if(ds==0){if(ds==0)
{while(ds==0);switch(n){case{dis_buf[3]=0;break;}case{dis_buf[2]=0;break;}case{dis_buf[1]=0;break;}/*K3 鍵按下*//* 設置上限溫度各位數值*/0:if(dis_buf[3]<9){dis_buf[3]++;break;}1:if(dis_buf[2]<9){dis_buf[2]++;break;}2:if(dis_buf[1]<5){dis_buf[1]++;break;}elseelseelseelse每隔else每隔100ms顯示一次上限溫度*/case 3:if(m==0){dis_buf[0]=16;m=0;d=1;break;}}}}if(TF0) /*{j++;if(j==2){display(dis_buf+3);j=0;}TH0=-(50000/256);{dis_buf[0]=17;m++;d=0;break;}TL0=-(50000%256);TF0=0;}elseswitch(n){case0:display0(dis_buf+3);deng=0x0C;break;/*K2 鍵按第1次,第4位數碼管不顯示*/case1:display1(dis_buf+3);deng=0x14;break;/*K2 鍵按第2次,第3位數碼管不顯示*/case2:display2(dis_buf+3);deng=0x24;break;/*K2 鍵按第3次,第2位數碼管不顯示*/case3:display3(dis_buf+3);deng=0x44;break;/*K2 鍵按第4次,第1位數碼管不顯示*/}if(dx==0){if(dx==0){while(dx==0);if(n<4)n++;}}if(n==4) /*K2 鍵按第5次,存儲設置的數值*/{if(d==0)b=dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100;if(d==1)b=-(dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100);n=0;if(b>(a+5)) /* 如果設置的溫度上限值高于下限值 0.5C以上,則存儲設置的值*/{WL=a;WL/=10;WH=b;WH/=10;}break;}}}}tiao=1;圖4.9 圖4.9 發(fā)送脈沖子程序流程圖參考資料.圖4.9 圖4.9 發(fā)送脈沖子程序流程圖參考資料.if(INT1==0){if(INT1==0)break;}}while(INT1==0);if(tiao==1)break;})發(fā)送脈沖子程序流程圖發(fā)送脈沖程序設置在K4鍵按下后每兩個小時開啟電機0.5s,已達到加熱的目的。發(fā)送脈沖子程序流程圖如圖參考資料參考資料.參考資料參考資料.#include<intrins.h>#include<absacc.h>#include<reg52.h>#definedengXBYTE[0x7FFF]intcoun=0,con=0;/*coun和con分別是定時器T2和T1的中斷次數計數變量*/voidT1_zd(void)interrupt3using0/*{con++;if(con==10) /*{con=0;TR1=0; /*deng=0x01;}TH1=(65536-50000)/256;TL1=(65536-50000)%256;}voidT2_zd(void)interrupt5using0/*{coun++;TF2=0;if(coun==200000) /*{coun=0;deng=0x02;TR1=1; /*}}定時器T1中斷子程序*/定時0.5秒到*/關閉定時器T1*/定時器T2中斷子程序*/定時2小時到*/啟動定時器T1*/voidint1_zd(void)interrupt2using0/*{TR2=1; /*ET2=1;ET1=1;}外部中斷INT1*/啟動定時器T2*/main(){T2CON=0x00;TH2=(65536-36000)/256;TL2=(65536-36000)%256;TMOD=0X10;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IT1=1; /* 設INT1為跳變沿觸發(fā)中斷*/EX1=1;EA=1;deng=0x40;while(1){};5智能溫度控制系統(tǒng)可靠性和精度分析傳統(tǒng)的A/D轉換器大多采用積分式或逐次比較式轉換技術,其噪聲容限低,抑制混疊噪聲及量化噪聲的能力比較差。課題采用了高性能的2—A式 A/D轉換器,它能以很高的采樣速率和很低的采樣分辨力將模擬信號轉換成數字信號,再利用過采樣、噪聲整形和數字濾波技術,來提高有效分辨力。2-A式 A/D轉換器不僅能濾除量化噪聲,而且對外圍元件的精度要求低;由于采用了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論