基于.-51單片機的溫度報警器_第1頁
基于.-51單片機的溫度報警器_第2頁
基于.-51單片機的溫度報警器_第3頁
基于.-51單片機的溫度報警器_第4頁
基于.-51單片機的溫度報警器_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...基于51單片機的溫度報警器摘要如今火災頻頻發(fā)生,比方電氣線路短路、過載、接觸電阻過大等引發(fā)高溫火災;靜電產(chǎn)生高溫火災;雷電等強電侵入導致高溫火災;最主要是機房內(nèi)電腦、空調(diào)等用電設備長時間工作,導致設備老化,空調(diào)發(fā)生故障,而不能降溫;因此機房內(nèi)所屬的電子產(chǎn)品發(fā)熱快,在短時間內(nèi)機房溫度升高超出設備正常溫度,導致系統(tǒng)癱瘓或產(chǎn)生火災,這時溫度報警系統(tǒng)就會發(fā)揮應有的功能了。因此本課程設計將利用單片機STC89S52設計了一種數(shù)字溫度計,它由單片機、DS18B20傳感器以及數(shù)碼管等部件組成,本溫度計屬于多功能溫度計,功能較強,可以設置上下限報警溫度,且測量準確、誤差小。當測量溫度超過設定的溫度上下限時,啟動蜂鳴器和指示燈報警。這種溫度報警器構(gòu)造簡單,可操作性強,應用廣泛。工作時,溫度測量范圍為5-38oC。當前環(huán)境溫度假設超過設定的高溫臨界溫度,由單片機發(fā)出報警信號,從而防止帶來的不必要的損失。關(guān)鍵詞:STC89C52;DS18B20;數(shù)碼管ABSTRACTNowfirehappenfrequently,suchaselectricalwiringshortcircuit,overload,largecontactresistance,hightemperaturefire;Electrostaticgenerationhightemperaturefire;Andsoonhighvoltagecausedbylightningintrudedintotheleadtohightemperaturefire;Themainelectricalequipmentsuchascomputers,airconditioningisthetelecomroomtoworklonghours,causetheequipmentaging,themalfunctionoftheairconditioningnotcooling;Electronicproductheatfaster,sotheroombelongtoroomtemperatureinashorttimemorethananormaltemperature,causingthesystemtocrashortoproducefire,whenthetemperaturealarmsystemwillplaytheirfunctions.ThereforethiscoursewillusethemicrocontrollerSTC89S52designadigitalthermometer,itiscomposedofsinglechip,DS18B20sensorsanddigitaltubeparts,thisbelongstothemultifunctionalthermometerthermometer,strongfunction.Whenmeasuringtemperaturemorethansetthetemperatureoftheupperandlowerlimit,startthebuzzerandlightalarm.Thistemperaturealarmhassimplestructure,strongoperability,wideapplication.Atwork,temperaturemeasurementrangeis5-38DHSC.Ifthecurrentenvironmenttemperaturemorethansethighcriticaltemperature,sendoutalarmsignalbysingle-chipmicrocomputer,topreventunnecessaryloss.Keywords:AT89C52D,S18B20,Digitaltube目錄第一章設計背景及要求-1-1.1設計意義-1-1.2設計要求-2-1.2.1根本功能-2-1.2.2擴展功能-2-1.3總體設計方案-2-1.3.1數(shù)字溫度計設計方案論證-2-1.3.2單片機的選擇-3-1.3.3溫度傳感器的選擇-4-1.3.4顯示模塊選擇-8-第二章系統(tǒng)硬件電路設計-10-2.1系統(tǒng)整體電路圖-11-2.2單片機最小系統(tǒng)-11-2.3溫度傳感器系統(tǒng)-12-2.4報警電路設計-14-2.5顯示電路設計-15-2.6電源電路設計-15-第三章.系統(tǒng)軟件設計-16-3.1主程序-16-3.2讀出溫度子程序-17-3.3溫度轉(zhuǎn)換命令子程序-17-3.4計算溫度子程序-18-3.5鍵盤掃描流程圖-19-第四章測試與結(jié)果分析-20-4.1仿真軟件介紹-20-4.2仿真結(jié)果-22-4.2.1用Keil進展程序編譯-22-4.2.2在Proteus中仿真-22-4.3創(chuàng)新設計-25-總結(jié)與致謝-26-參考文獻-28-附錄-30-附錄一分組表-30-附錄二程序代碼-30-附錄三實物圖-37-第一章設計背景及要求1.1設計意義溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機械、石油等工業(yè)中,具有舉足重輕的作用。對于不同場所、不同工藝、所需溫度上下范圍不同、精度不同,則采用的測溫元件、測溫方法以及對溫度的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同,因而,對溫度的測控方法多種多樣。隨著電子技術(shù)和微型計算機的迅速開展,微機測量和控制技術(shù)也得到了迅速的開展和廣泛的應用[1]。利用微機對溫度進展測控的技術(shù),也便隨之而生,并得到日益開展和完善,越來越顯示出其優(yōu)越性。隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它給人帶來的方便也是不可否認的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為工作、科研、生活、提供更好的更方便的設施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向開展[2]。本次設計是用單片機對溫度進展實時檢測與控制,此次所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比擬準確的場所或科研實驗室使用,該設計控制器使用單片機STC89C52,測溫傳感器使用DS18B20,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準確到達設計要求。本溫度計屬于多功能溫度計,功能較強,可以設置上下限報警溫度,且測量準確、誤差小。當測量溫度超過設定的溫度上下限時,啟動蜂鳴器和指示燈報警。1.2設計要求1.2.1根本功能1.根本溫度范圍0℃-99℃;2.精度誤差小于0.5℃;3.數(shù)碼直讀顯示。1.2.2擴展功能1.實現(xiàn)聲光報警;2.可以任意設定溫度的上下限報警功能。1.3總體設計方案1.3.1數(shù)字溫度計設計方案論證1.方案一由于本設計是測溫電路,根據(jù)設計要求可以使用熱敏電阻之類的感溫器件利用其感溫效應,然后將隨被測溫度變化的電壓或電流采集過來,經(jīng)過A/D轉(zhuǎn)換后,將數(shù)據(jù)傳輸?shù)絾纹瑱C進展數(shù)據(jù)的處理,然后在顯示電路上顯示,這樣就可以將被測溫度顯示出來,這種設計需要用到A/D轉(zhuǎn)換電路,感溫電路比擬麻煩。2.方案二在單片機電路設計中,大多都是使用傳感器,這是非常容易想到利用數(shù)字溫度傳感器,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進展轉(zhuǎn)換,然后傳輸給單片機進展數(shù)據(jù)處理,就可以滿足設計要求。從以上兩種方案,很容易看出,采用方案二,電路設計比擬簡潔,軟件設計也比擬簡單,故采用方案二。3.總體設計框圖溫度計電路設計總體設計方框圖如圖1.1所示,控制器采用單片機STC89C52,溫度傳感器采用DS18B20,用4位LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。STC89C52STC89C52單片機晶振電路模塊復位電路模塊溫度傳感器數(shù)碼顯示模塊報警模塊按鍵模塊圖1.1總體設計方框圖1.3.2單片機的選擇1.方案一:選擇Microchip公司的PIC系列單片機作為世界上最為頂尖的單片機研發(fā)與生產(chǎn)企業(yè),微芯公司設計的PIC系列單片機一度風行全球,其優(yōu)秀的性能和卓越的品質(zhì)受到了許多人的青睞,其優(yōu)點毋庸贅述。但是,高知名度的缺點也顯而易見,價格昂貴,性價比不高是其軟肋[3]。2.方案二:選擇德州儀器的MSP430系列單片機MSP430單片機是一個16位的、具有精簡指令集的混合型單片機,它具有極低的功耗、豐富的片內(nèi)外設和方便靈活的開發(fā)手段。但是,由于MSP430單片機系列價格較高,比擬適合于較為復雜的應用系統(tǒng)[4]。3.方案三:選擇Atmel公司的STC89C52單片機。STC89C52單片機是一個低功耗,高性能CMOS8位單片機,片內(nèi)含8KBytesISP(In-systemprogrammable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳構(gòu)造,芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器,在功能強大的微型計算機的STC89C52單芯片上,擁有靈巧的8位CPU,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案[5]。STC89C52引腳構(gòu)造圖如圖1.2。STC89C52實物圖如圖1.3。圖1.2AT89S52構(gòu)造圖圖1.3STC89C52實物圖基于以上三個方案的分析,我們選擇STC89C52單片機。1.3.3溫度傳感器的選擇1.DS18B20的介紹溫度傳感器的種類眾多,在高精度、高可靠性的場合時DALLAS〔達拉斯〕公司生產(chǎn)的DS18B20溫度傳感器很不錯的。超小的體積,超低的硬件開消,抗干擾能力強,精度高,附加功能強,使得DS18B20更受歡送?!?〕DS18B20的主要特征1〕全數(shù)字溫度轉(zhuǎn)換及輸出;2〕最高12位分辨率,精度可達土0.5攝氏度;3〕12位分辨率時的最大工作周期為750毫秒;4〕可選擇寄生工作方式;5〕檢測溫度范圍為–55°C~+125°C;6〕內(nèi)置EPROM,限溫報警功能。用戶可定義報警設置;7〕64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機掛接;8〕多樣封裝形式,適應不同硬件系統(tǒng);9〕獨特的單線接口僅需要一個端口引腳進展通信;10〕多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;11〕無須外部器件;12〕可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;13〕零待機功耗;DS18B20有64位ROM的構(gòu)造,開場8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進展通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限[6]。另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進展。操作協(xié)議為:初始化DS18B20〔發(fā)復位脈沖〕→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。DS18B20芯片封裝構(gòu)造如圖1.4。圖1.4DS18B20芯片封裝構(gòu)造DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部構(gòu)造框圖如圖1.5所示。I/OCI/OC64位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置存放器8位CRC發(fā)生器Vcc圖1.5DS18B20內(nèi)部構(gòu)造框DS18B20工作原理:DS18B20的溫度檢測與數(shù)字數(shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個局部,即溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解DS18B20的內(nèi)部存儲器資源。DS18B20共有三種形態(tài)的存儲器資源。它們分別是:ROM只讀存儲器,用于存放DS18B20ID編碼,其前8位是單線系列編碼〔DS18B20的編碼是19H〕,后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼〔冗余校驗〕。數(shù)據(jù)在出產(chǎn)時設置不由用戶更改。DS18B20共64位ROM。RAM數(shù)據(jù)暫存器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后喪失,DS18B20共9個字節(jié)RAM,每個字節(jié)為8位。第1、2個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個字節(jié)是用戶EPROM〔常用于溫度報警值儲存〕的鏡像。在上電復位時其值將被刷新。第5個字節(jié)則是用戶第3個EPROM的鏡像。第6、7、8個字節(jié)為計數(shù)存放器,是為了讓用戶得到更高的溫度分辨率而設計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8個字節(jié)的CRC碼。EPROM非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),DS18B20共3位EPROM,并在RAM都存在鏡像,以方便用戶操作[7]。DS18B20工作時存放器中的分辨率轉(zhuǎn)換為相應精度的溫度數(shù)值。該字節(jié)各位的定義如圖1.6所示。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設置分辨率。溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置存放器保存保存保存CRCTMR1R011111圖1.6DS18B20字節(jié)定義1.3.4顯示模塊選擇數(shù)碼管如圖1.7是一種半導體發(fā)光器件,其根本單元是發(fā)光二極管。圖1.7數(shù)碼管圖1.數(shù)碼管的分類數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元〔多一個小數(shù)點顯示〕;按能顯示多少個“8〞可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮[8]。如圖1.8。圖1.8八段數(shù)碼管實物圖2.數(shù)碼管驅(qū)動原理數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,在有些時候需要做一個簡單的顯示系統(tǒng)。那么在單片機I/O資源夠用的情況下可以直接用單片機的I/O口驅(qū)動數(shù)碼管,也可以根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類?!?〕靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進展驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進展驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個STC89C51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅(qū)動器進展驅(qū)動,增加了硬件電路的復雜性[8]。〔2〕動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到一樣的字形碼,但終究是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制翻開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮[9]。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2mS,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低[10]。靜態(tài)驅(qū)動方式簡單不容易出錯,如果電路設計適宜,也能夠用較少的線完成多個數(shù)碼管的驅(qū)動。但是動態(tài)驅(qū)動方式省單片機的資源,如今已經(jīng)有很多這樣成熟的基于動態(tài)掃描的芯片。所以能滿足本文顯示設計要求,采用LG3641BHLED數(shù)碼管做為顯示電路,數(shù)碼管顯示電路采用4位共陽LED數(shù)碼管從P14,P15,P16,P17串口輸出段碼。第二章系統(tǒng)硬件電路設計2.1系統(tǒng)整體電路圖該系統(tǒng)電路主要包括:單片機最小系統(tǒng)、DS18B20溫度傳感器系統(tǒng)、報警系統(tǒng)、數(shù)碼管顯示模塊電路及電源接口和數(shù)據(jù)下載接口等電路,如圖2.1所示。圖2.1中有三個獨立式按鍵可以分別調(diào)整溫度計的上下限報警設置,圖中蜂鳴器可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出報警鳴叫聲音,同時數(shù)碼管將沒有被測溫度值顯示,這時可以調(diào)整報警上下限,從而測出被測的溫度值。圖2.1中的按健復位電路是上電復位加手動復位,使用比擬方便,在程序跑飛時,可以手動復位,這樣就不用在重起單片機電源,就可以實現(xiàn)復位。圖2.1系統(tǒng)整體電路圖2.2單片機最小系統(tǒng)最小系統(tǒng)包括晶振電路、復位電路、按鍵設置局部,STC89C52單片機最小系統(tǒng)的電路如圖2.2,單片機STC89C52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要[11],很適合便攜手持式產(chǎn)品的設計使用系統(tǒng)可用二節(jié)電池供電。圖2.2單片機最小系統(tǒng)電路2.3溫度傳感器系統(tǒng)DS18B20溫度傳感器電路,如圖2.3。圖2.3DS18B20溫度傳感器系統(tǒng)DS18B20采用單線進展數(shù)據(jù)傳輸,外接一個4.7K上拉電阻與單片機的P10口相連進展數(shù)據(jù)的雙向傳輸[12]。2.3.1DS18B20的測溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門翻開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進展計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度存放器中,計數(shù)器1和溫度存放器被預置在-55℃所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進展減法計數(shù),當減法計數(shù)器1的預置值減到0時,溫度存放器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開場對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進展計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停頓溫度存放器的累加,此時溫度存放器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關(guān)閉就重復上述過程,直到溫度存放器值大于被測溫度值[13]。由表1-1可見,DS18B20溫度轉(zhuǎn)換的時間比擬長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存RAM的第6、7、8字節(jié)保存未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當符號位S=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表1-2是一局部溫度值對應的二進制溫度數(shù)據(jù)[14]。表1-1DS18B20溫度轉(zhuǎn)換時間表R1R0分辨率/位溫度最大轉(zhuǎn)向時間/ms00993.750110187.510113751112750DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比擬。假設T>TH或T<TL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進展報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼〔CRC〕。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比擬,以判斷主機收到的ROM數(shù)據(jù)是否正確。表1-2一局部溫度對應值表溫度/℃二進制表示十六進制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100000191H+10.125000000001010000100A2H+0.500000000000000100008H000000000000010000000H-0.51111111111110000FFF8H-10.1251111111101011110FF5EH-25.06251111111001101111FE6FH-551111110010010000FC90H2.4報警電路設計報警電路中加一PNP三極管驅(qū)動,基極接單片機P11口,當端口變成低電平時,驅(qū)動三極管會導通,VCC電壓加載到蜂鳴器使其發(fā)聲、報警發(fā)光二極管亮,如圖2.4。圖2.4報警電路2.5顯示電路設計如圖2.5,采用LG3641BHLED數(shù)碼管顯示電路采用4位共陽LED數(shù)碼管從P14,P15,P16,P17串口輸出段碼。用PNP三極管進展驅(qū)動,當相應的端口變成低電平時,驅(qū)動相應的三極管會導通,驅(qū)動三極管給數(shù)碼管相應的位供電,這時只要P0口送出數(shù)字的顯示代碼,數(shù)碼管就能正常顯示數(shù)字。圖2.5數(shù)碼管顯示電路2.6電源電路設計此次選用的是串聯(lián)起來的4節(jié)1.5V的5號電池,從經(jīng)濟的角度考慮的,干電池比擬廉價,但其還有缺乏之處,干電池存儲的是電量。隨著電量的消耗,它的供電電壓就會不斷的下降,所有需要使用一個穩(wěn)壓器,來保證電源供給的是標準的5V電壓。4節(jié)1.5V串聯(lián)起來產(chǎn)生的和電壓最大是6V,而本文的STC89C52單片機工作電壓的范圍是4V-5.5V,在該系統(tǒng)中我們使用的電壓是5V。這時我們可以用LM7805穩(wěn)壓器來產(chǎn)生穩(wěn)定的5V電壓[15]。穩(wěn)壓電路如以下列圖2.6所示:圖2.6LM7805穩(wěn)壓電路在該電路中,C12是極性電容,起到穩(wěn)壓的作用,而C2是非極性電容,它起的作用是濾除輸出電壓中不是直流的成分,即濾波。LM7805穩(wěn)壓芯片的穩(wěn)壓壓差為2V左右,在實際使用中容易出現(xiàn)電壓過低的狀態(tài),此時提供的電源達不到系統(tǒng)的電源要求,會出現(xiàn)程序跑飛的現(xiàn)象,而另一款LM2904的穩(wěn)壓壓差可以到達40mV,效果比LM7805好很多,但考慮到經(jīng)濟原因就采用LM7805,只要在穩(wěn)壓前端提供較大的電源供給即可。第三章.系統(tǒng)軟件設計3.1主程序主程序的主要功能是負責讀出并處理DS18B20的測量的當前溫度值,溫度的實時顯示,并根據(jù)設置的上下限判斷是否報警。系統(tǒng)開場運行時,溫度傳感器測量并計算溫度值通過P1.0口傳輸進單片機里進展處理,經(jīng)過處理后的數(shù)據(jù)再通過P0口傳輸?shù)綌?shù)碼管進展顯示。3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進展CRC校驗,校驗有錯時不進展溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.1示。圖3.1讀溫度流程圖3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開場命令,當采用12位分辨率時轉(zhuǎn)換時間約為750mS,在本程序設計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成[16]。溫度轉(zhuǎn)換命令子程序流程圖如圖3.2所示圖3.2溫度轉(zhuǎn)換流程圖3.4計算溫度子程序計算溫度子程序?qū)AM中讀取值進展BCD碼的轉(zhuǎn)換運算,并進展溫度值正負的判定,其程序流程圖如圖3.3所示。圖3.3計算溫度流程圖3.5鍵盤掃描流程圖如圖3.4。開場開場ENTER_FLAG為1是否有UP按下DISPLAY顯示退出子程序(RET)返回主程序ENTER子程序Flag=1DOWN子程序否是是否否是否是是ENTER按鍵是否按下是否有ENTER按下是否有DOWN按下UP子程序圖3.4按鍵掃描流程圖第四章測試與結(jié)果分析4.1仿真軟件介紹本次仿真用了Proteus(海神)軟件,Proteus的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)[17]。1.該軟件的特點〔1〕全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢?!?〕具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、1C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等?!?〕目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片?!?〕支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大,可仿真51、AVR、PIC。Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機存放器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節(jié)的矛盾和現(xiàn)象[18]。2.程序編譯用Keil軟件,KeilC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能表達高級語言的優(yōu)勢。4.2仿真結(jié)果4.2.1用Keil進展程序編譯運用keil軟件編譯C語言程序,其結(jié)果如以下列圖4.1和圖4.2所示,在結(jié)果欄顯示“yyp〞—0Error(s),0warning(s).說明此程序在軟件編譯上無語法等錯誤。將此程序生成*.hex文件調(diào)入硬件中用Proteus進展調(diào)試仿真。圖4.1Keil編譯C語言程序圖4.2Keil編譯C語言程序4.2.2在Proteus中仿真將生成的yyp.hex文件調(diào)入Proteus電路圖的單片機中,點擊圖左下角的開場鍵運行,程序的開場界面如圖4.3,數(shù)碼管顯示“〞。圖4.3仿真程序初始化程序初始化后通過調(diào)節(jié)DS18B20溫度傳感器的數(shù)值,數(shù)碼管會顯示相應的數(shù)值,例如10℃,其結(jié)果如圖4.4所示。圖4.4仿真程序正常運行結(jié)果在設置系統(tǒng)報警溫度上下限時,按下按鍵S1,數(shù)碼管會顯示“H38C〞〔系統(tǒng)默認上限為38℃〕,此時進入溫度上限設置模式,可通過調(diào)節(jié)S2和S3分別增加和減小數(shù)碼管上顯示的數(shù)字,例如設置上限為39℃,如圖4.5所示。接著再次按下鍵S1,數(shù)碼管會顯示“L05C〞〔系統(tǒng)默認下限為5℃〕,此時進入溫度下限設置模式,可通過調(diào)節(jié)S2和S3分別增加和減小數(shù)碼管上顯示的數(shù)字,例如設置下限為5℃,如圖4.6所示。圖4.5仿真設置最高溫度報警線圖4.6仿真設置溫度報警最低線當溫度超過設置的上下限時,系統(tǒng)會進展聲光報警,蜂鳴器會發(fā)出“滴……滴……滴〞蜂鳴聲,同時LED燈會閃爍。當系統(tǒng)未檢測的到DS18B20溫度傳感器或運行錯誤時,數(shù)碼管會顯示錯誤的數(shù)字“8.8.8.8〞,如圖4.7所示。圖4.7仿真程序出錯4.3創(chuàng)新設計在本次設計的根基上我們創(chuàng)新了另一個溫度報警器電路。其主要功能是:當溫度超過上限溫度時紅色發(fā)光二極管發(fā)光并報警,當溫度低于下限溫度時黃色發(fā)光二極管發(fā)光并開場報警。仿真電路如圖4.8。圖4.8創(chuàng)新的溫度報警器電路圖總結(jié)與致謝通過本次課程設計,我學到了很多東西,同時在做的過程中也發(fā)現(xiàn)很多的問題,從最初的課題選擇到對相關(guān)課題資料的搜集與摘選,再到自己課程設計報告內(nèi)容思路的設計、編寫以致最后階段的修改與完善。在這一過程中,我對我們大學前三年所學習的相關(guān)電子知識又有了更深一層的學習和理解,讓我對自己所學的又有了更深的掌握。雖然以前還做過這樣的設計但這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比擬好,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只學習理論有些東西而不結(jié)合實踐是很難理解的,更談不上掌握。從這次的課程設計中,我真正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次課程設計中的最大收獲。在此過程中,我也要感謝對我一直悉心指導和幫助的指導教師——許教師。正是在他不厭其煩的指導和對我們的啟發(fā)中,讓我對我的課程設計思路逐漸清晰明朗,每當在我課程設計中遇到困難時就會充滿希望,總能迎刃而解,總之非常感謝他這段時間對我們的鼓勵和指導。參考文獻[1]李朝青.單片機原理及接口技術(shù)〔簡明修訂版〕[M].杭州:北京航空航天大學出版社,1998[2]李廣弟.單片機根基[M].北京:北京航空航天大學出版社,1994[3]江力.單片機原理與應用技術(shù)[M].清華大學出版社.2006[4]蔡美琴,等.MCS一51系列單片機系統(tǒng)及其應用[M].北京:高等教育出版社,1999[5]王樹勛.MCS一51單片微型計算機原理與開發(fā)[M].北京:機械工業(yè)出版社,1995[6]何希才.傳感器及其應用電路[M].北京:電子工業(yè)出版社,2001[7]劉迎春、葉湘濱.傳感器原理設計與應用(第三版)[M].長沙:國防科技大學出版社,1997[8]靳達.單片機應用系統(tǒng)開發(fā)實例導航[M].北京:人民郵電出版社,2003[9]潘新民,王燕芳.微型計算機實用系統(tǒng)設計[M].北京:人民郵電出版社,1992[10]胡漢才.單片機原理及接口技術(shù)[M].北京:清華大學出版社,1996[11]何力民.MCS一51系列單片機應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,1993[12]江曉安.等數(shù)字電子技術(shù)[M].編著.西安電子科技大學出版社.1993[13]閻石.數(shù)字電子技術(shù)根基〔第三版〕[M].北京:高等教育出版社,1989附錄附錄一分組表硬件電路談寧賈煥禎軟件電路張穎韓麗娜編寫程序李晶楊彥平調(diào)試楊彥平毛蕓蕓附錄二程序代碼#include<AT89X52.h>#include"DS18B20.h"#defineuintunsignedint#defineucharunsignedchar//宏定義#defineSETP3_1//定義調(diào)整鍵#defineDECP3_2//定義減少鍵#defineADDP3_3//定義增加鍵#defineBEEPP3_7//定義蜂鳴器bitshanshuo_st;//閃爍間隔標志bitbeep_st;//蜂鳴器間隔標志sbitDIAN=P2^7;//小數(shù)點ucharx=0;//計數(shù)器signedcharm;//溫度值全局變量ucharn;//溫度值全局變量ucharset_st=0;//狀態(tài)標志signedcharshangxian=38;//上限報警溫度,默認值為38signedcharxiaxian=5;//下限報警溫度,默認值為5ucharcodeLEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};/*****延時子程序*****/voidDelay(uintnum){while(--num);}/*****初始化定時器0*****/voidInitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0;//50ms〔晶振12M〕}/*****定時器0中斷服務程序*****/voidtimer0(void)interrupt1{TH0=0x3c;TL0=0xb0;x++;}/*****外部中斷0服務程序*****/voidint0(void)interrupt0{EX0=0;//關(guān)外部中斷0if(DEC==0&&set_st==1){shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}elseif(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中斷1服務程序*****/voidint1(void)interrupt2{EX1=0;//關(guān)外部中斷1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}elseif(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****讀取溫度*****/voidcheck_wendu(void){uinta,b,c;c=ReadTemperature()-5;//獲取溫度值并減去DS18B20的溫漂誤差a=c/100;//計算得到十位數(shù)字b=c/10-a*10;//計算得到個位數(shù)字m=c/10;//計算得到整數(shù)位n=c-a*100-b*10;//計算得到小數(shù)位if(m<0){m=0;n=0;}//設置溫度顯示上限if(m>99){m=99;n=9;}//設置溫度顯示上限}/*****顯示開機初始化等待畫面*****/Disp_init(){P2=0xbf;//顯示-P1=0xf7;Delay(200);P1=0xfb;Delay(200);P1=0xfd;Delay(200);P1=0xfe;Delay(200);P1=0xff;//關(guān)閉顯示}/*****顯示溫度子程序*****/Disp_Temperature()//顯示溫度{P2=0xc6//顯示CP1=0xf7;Delay(300);P2=LEDData[n];//顯示個位P1=0xfb;Delay(300);P2=LEDData[m%10];//顯示十位DIAN=0;//顯示小數(shù)點P1=0xfd;Delay(300);P2=LEDData[m/10];//顯示百位P1=0xfe;Delay(300);P1=0xff;//關(guān)閉顯示}/*****顯示報警溫度子程序*****/Disp_alarm(ucharbaojing){P2=0xc6;//顯示CP1=0xf7;Delay(200);P2=LEDData[baojing%10];//顯示十位P1=0xfb;Delay(200);P2=LEDData[baojing/10];//顯示百位P1=0xfd;Delay(200);if(set_st==1)P2=0x89;elseif(set_st==2)P2=0xc7;//上限H、下限L標示P1=0xfe;Delay(200);P1=0xff;//關(guān)閉顯示}/*****報警子程序*****/voidAlarm(){if(x>=10){beep_st=~beep_st;x=0;}if((m>=shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))BEEP=0;elseBEEP=1;}/*****主函數(shù)*****/voidmain(void){uintz;InitTimer();//初始化定時器EA=1;//全局中斷開關(guān)TR0=1;ET0=1;//開啟定時器0IT0=1;IT1=1;check_wendu();check_wendu();for(z=0;z<300;z++){Disp_init();}while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0;//關(guān)閉外部中斷0EX1=0;//關(guān)閉外部中斷1check_wendu();Disp_Temperature();Alarm();//報警檢測}elseif(set_st==1){BEEP=1;//關(guān)閉蜂鳴器EX0=1;//開啟外部中斷0EX1=1;//開啟外部中斷1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st){Disp_alarm(shangxian)

溫馨提示

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

評論

0/150

提交評論