家用電熱水器控制系統(tǒng)設(shè)計_第1頁
家用電熱水器控制系統(tǒng)設(shè)計_第2頁
家用電熱水器控制系統(tǒng)設(shè)計_第3頁
家用電熱水器控制系統(tǒng)設(shè)計_第4頁
家用電熱水器控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄摘要IABSTRACTII第1章 引言1第2章 系統(tǒng)功能需求分析與設(shè)計方案選擇32.1 系統(tǒng)功能需求分析32.2 方案選擇32.3 本章小結(jié)6第3章 硬件系統(tǒng)設(shè)計73.1 電源電路73.2 單片機最小系統(tǒng)說明83.3 溫度檢測電路93.4 人機交互電路103.4.1 鍵盤接口電路103.4.2 顯示電路103.5 紅外一體接收模塊133.6 報警電路133.7本章小結(jié)13第4章 軟件系統(tǒng)設(shè)計154.1 主程序流程圖154.2 液晶顯示程序設(shè)計15寫操作時序圖154.2.2 初始化程序164.2.3 向LCD1602發(fā)送數(shù)據(jù)程序設(shè)計174.3按鍵掃描程序設(shè)計174.4溫度控制程序設(shè)計18初始

2、化DS18B2018讀取DS18B20當前溫度194.5控制程序策略設(shè)計194.6本章小結(jié)21第5章 仿真與調(diào)試22第6章 總結(jié)26致謝28參考文獻30附錄1摘要本設(shè)計完成了基于單片機控制的家用電熱水器控制系統(tǒng)的設(shè)計。系統(tǒng)選STC89C51單片機作為控制器,利用DS18B20數(shù)字溫度傳感器實時檢測當前水溫,以串行通行的方式反饋給單片機搭建了硬件平臺;利用C語言完成溫度控制系統(tǒng)軟件開發(fā);借助protuse平臺進行了模擬仿真,仿真結(jié)果表明:該系統(tǒng)實行方案簡單易行,可以實現(xiàn)檢測水溫、加熱、紅外遙控等功能。關(guān)鍵詞:STC89C51,DS18B20,紅外遙控ABSTRACTThis design fin

3、ishes designing of the household electric water heater control system based on the control of single-chip microcomputer. In this system, STC89C51 single-chip microcomputer is used as controller and DS18B20 digital temperature sensor is used to conduct field test of current water temperature. It also

4、 uses the way of serial and passage to give feedback to single-chip microcomputer to set up hardware platform. Besides, C Programming Language is used to develop temperature control system software. It also uses the protuse platform to conduct simulation. The simulation result shows that this system

5、 is simple and feasible of this execution program and it also achieves the function of detecting water temperature, heating and infrared remote control and so on. Keywords: STC89C51, DS18B20, infrared remote control第1章 引言隨著科學(xué)技術(shù)的發(fā)展,城鎮(zhèn)居民家庭多數(shù)以更加安全方便的電熱水器代替了燃氣熱水器;從前風光無限的燃氣熱水器因污染原因和安全問題逐漸退出了我們的視線;新興的太陽能熱

6、水器雖然受到安裝條件和天氣原因的限制,但其安全、節(jié)約、環(huán)保的特性廣受消費者青睞,發(fā)展態(tài)勢迅猛。電熱水器相較于燃氣熱水器和太陽能熱水器的優(yōu)點:便于安裝,不受外部天氣的影響,不受樓層和供水管道的限制,加熱速度快也更加有安全保障,正是因為這些優(yōu)點大部分家庭選擇電熱水器。由于技術(shù)在不斷的發(fā)展,對各種嵌入式設(shè)備的要求也越來越高了,與此同時熱水器的智能化發(fā)展也非常迅速。人們已經(jīng)不能滿足傳統(tǒng)熱水器非智能的操作方式,再這樣的背景下,本次設(shè)計將要設(shè)計一款智能化的熱水器設(shè)備。通過熱水器智能的調(diào)控可以完成自動斷電的安全功能,同時設(shè)置的有紅外遙控的功能,可以滿足用戶的遙感的要求??旖莘奖悖谷藗兿丛r能放心享受,安全

7、便捷,其性能滿足人們對現(xiàn)代生活快節(jié)奏的需求。STC89C51的內(nèi)部資源非常豐富,而且功能強大。STC89C51集成以下功能STC89C52最后一個字符“1”代表了該存儲芯片的Flash容量大小為4k字節(jié)。同時它內(nèi)部集成256字節(jié)片內(nèi)RAM,RAM主要用于程序變量的存儲,256字節(jié)可以適用于小型的程序運行。32個數(shù)據(jù)I/O 接口,這些接口在用于普通功能時用來完成數(shù)據(jù)通信。這些I/O口有的還有復(fù)用功能,這在后面會介紹到。1個看門狗定時器,起到監(jiān)測程序運行狀況的作用。2 個數(shù)據(jù)指針,一個堆棧指針,一個程序PC指針。三個16位定時器,大部分要配合中斷來實現(xiàn)定時功能,主要作用是計時的。三個16位計數(shù)器,

8、用于監(jiān)測脈沖跳變次數(shù)或者其他計數(shù)。6個中斷源,中斷在單片機的內(nèi)部資源中占有很重要的部分,有了中斷程序可以高效率的執(zhí)行。全雙工串行口,通過串口來和其他主機通信,起到通訊作用。1借助于STC89C51單片機的強大功能,來控制真?zhèn)€系統(tǒng)的協(xié)調(diào)運行,STC89C51單片機作為此次系統(tǒng)的控制芯片,通過圍連接顯示模塊以、數(shù)據(jù)輸入模塊,紅外線傳輸模塊以及報警電路完成此次的系統(tǒng)設(shè)計。本設(shè)計第一章主要描述了加熱電熱水器控制系統(tǒng)的應(yīng)用背景、目的和意義;第二章是控制系統(tǒng)的需求分析和設(shè)計方案的選擇,主要包括控制器方面的選擇;第三章介紹了控制系統(tǒng)硬件電路的設(shè)計;第四章主介紹了控制系統(tǒng)軟件方面的設(shè)計;第五章進行了控制系統(tǒng)的

9、仿真和測試;第六章主要是對該系統(tǒng)存在的問題以及解決的方案進行總結(jié)。第2章 系統(tǒng)功能需求分析與控制方案選擇根據(jù)預(yù)想所要達到的控制要求有:(1)用LCD1602液晶顯示水溫、設(shè)置上下限和定時時間。(2)水溫檢測顯示范圍為0099,精度為±1。(3)溫度設(shè)置區(qū)間為0度到99度,系統(tǒng)不斷檢測當前水溫,如果水溫高于用戶設(shè)定的數(shù)值,則系統(tǒng)自動斷電,不在加熱。如果水溫低于用戶設(shè)定的數(shù)值,則系統(tǒng)不會斷電,繼續(xù)加熱。(4)設(shè)置4個程序按鍵。分別為設(shè)置按鍵、加鍵、減鍵、確定鍵。(5)可以紅外遙控,通過紅外一體接收探頭接收遙控器信號,執(zhí)行與主板按鍵同等功能。由此可以確定兩種方案進行比較選擇。2.1 系統(tǒng)功

10、能需求分析在此次的系統(tǒng)設(shè)計中主要是通過溫度傳感器測得的數(shù)據(jù),通過和單片機的連接引腳完成數(shù)據(jù)的傳輸。單片機通過采集到數(shù)據(jù)進行溫度值的判斷,來控制加熱器的運行狀態(tài)。系統(tǒng)中的數(shù)據(jù)顯示使用的是LCD1602液晶顯示屏,來顯示實時溫度的數(shù)值。報警指示燈(黃):當熱水器出現(xiàn)異常情況時,該指示燈被點亮。系統(tǒng)在通電之后,單片機內(nèi)部的PC指針指向程序運行的區(qū)域,首先開始的是溫度傳感器的初始化,在完成溫度初始化任務(wù)之后,系統(tǒng)就處于檢測判斷狀態(tài)。檢測按鍵的發(fā)生以及溫度是否超出設(shè)定區(qū)域。首先進行溫度數(shù)值的判斷,接著繼續(xù)檢測溫度按鍵,若無按鍵,則接著上一步的執(zhí)行(以新的設(shè)定值開始工作)。若有按鍵,則重新設(shè)定溫度范圍,如

11、此循環(huán)。2.2 方案選擇方案一:以STC89C51單片機為控制中心的智能電熱水器。主控模塊在整個系統(tǒng)中是最中心的部分,承擔著統(tǒng)籌的作用,需要檢測鍵盤等各種參數(shù),以及驅(qū)動數(shù)碼管的顯示。2在本次設(shè)計中我選用了51系列單片機中的STC89C51單片機作為系統(tǒng)的主控芯片。因為單片機功能強大,應(yīng)用廣,從小的電子產(chǎn)品到大的工業(yè)控制都有很廣泛的應(yīng)用。STC89C系列單片機兼容性很好。除了單片機內(nèi)部擴展資源不同之外,其余資源都相同。比如說52類型的單片機比51類型的單片機E2PROM擴大了2倍,以及內(nèi)部隨機數(shù)存儲器RAM增大些之外,其余功能全部一樣。也就是說STC89S系列單片機基礎(chǔ)功能都具備,并且引腳位置,

12、中斷地址,以及定時器方式都是一樣的,唯一不同的是擴展的功能。由于單片機在不同場合控制的復(fù)雜度不一樣,所以對單片機內(nèi)部資源配置也不同。以便于適應(yīng)于多種場合使用,而且選擇合適的單片機型號,可以節(jié)約成本。當然,資源豐富的單片機價格也要稍貴一些。 此類單片機以EEPROM電可檫除和Flash技術(shù)為主導(dǎo)的存儲器單片機以FLASH作為存儲器的好處很明顯,F(xiàn)lash可擦出次數(shù)多,一般很少因為擦除程序超出擦除Flash次數(shù)而損害單片機的。單片機的存儲器除了可以存儲程序,還可以運行程序,但是不能存儲程序中的某些變量。這樣可以加快程序的執(zhí)行速度,提高單片機的效率。STC89系列的單片機具有以下特性:(1)單片機引

13、出的多個I/O口,使數(shù)據(jù)交換更加方便。(2)采用靜態(tài)時鐘模式。單片機外部連接晶振電路,通過晶振里面的震蕩電路給單片機提供時鐘脈沖。時鐘脈沖為單片機的程序執(zhí)行提供了時鐘節(jié)拍,在一個時鐘節(jié)拍下,單片機的PC指針取一個指令執(zhí)行,從而完成程序的順序執(zhí)行。(3)可以應(yīng)用于較小系統(tǒng)設(shè)計,或者定制用于專用的系統(tǒng)控制器,對需要控制的系統(tǒng)提供一種便捷的處理方法。(4)通過定時器和計數(shù)器,可以設(shè)置時間間隔和記錄電壓變化次數(shù)。(5)可以使用匯編語言設(shè)計的程序,其執(zhí)行的效率更加高效。以達到節(jié)約單片機內(nèi)部寶貴的資源為目的。(6)單片機的品種多,可以選用不同內(nèi)部資源部處理器,達到節(jié)約成本的目的。下面具體介紹STC89C5

14、1芯片的參數(shù):STC89C51是一個8位微控制器,芯片內(nèi)部已經(jīng)集成4K字節(jié)存儲區(qū)域的Flash,可以直接運行程序。STC89S51采用的是51系列的內(nèi)核它與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。單片機的P0口。如果要改變P0口的輸出電平值時,要在在單片機的相應(yīng)寄存器里寫入數(shù)據(jù)1時,單片機就會把相對應(yīng)的端口輸出高電平。如果在相應(yīng)的寄存器里面寫入0,單片機就會在相對應(yīng)的端口輸出定電平。比如在P0的寄存器地址上寫入P0=0x01,則P0.1口位置就會輸出高電平;如果P0=0x00,則P0口位置就會輸出低電平。同理,外部線路提供低電壓則可以通過該引腳讀出低電壓,單片機內(nèi)部對該位的寄存器就會被寫入0。由

15、于P0口輸出電流較小,所以需要上拉電阻來提供驅(qū)動電流。單片機的P1口。P1口外部不用設(shè)置上拉電阻,P1口的能夠提供20MA的驅(qū)動電流,所以可以直接對P1口的寄存器寫值。P1口一般沒有復(fù)用接口,在STC其他的單片機中有P1口的復(fù)用引腳,用來設(shè)置定時器PWM波的輸出,或者單片機內(nèi)部AD電壓值的采集端口。在本次心率計的設(shè)計中,并沒有用到PWM的功能,所以選擇的芯片為傳統(tǒng)的51內(nèi)核單片機。在沒有復(fù)用功能的單片機引腳,只有引腳的高電平和低電平輸入輸出功能,以及對單片機引腳的電壓值讀取功能。功能類似于P0口,如果要控制P1口的電平輸出值,就要對P1口的地址寄存器寫入數(shù)據(jù)。P2口可以作為普通I/O功能也可以

16、用作第二功能。當P2口作為普通I/O口輸入輸出時,同P0、P1口一樣,只是對該位的引腳輸出高電平和低電平的操作。當P2口作為第二功能使用時,P2口作為外部存儲區(qū)域的高八位地址線。當單片機的內(nèi)部存儲區(qū)的容量不夠時,就要采取外部連接存儲芯片的辦法來擴充單片機的存儲容量。3由于單片機的程序存儲區(qū)域可以直接運行程序,單片機的內(nèi)部可以直接尋址找到程序所在的地址,在連接單片機外部外部存儲芯片時,要和芯片的讀取地址相對應(yīng),所以外部存儲的連接位置是不可改變的,從而確定P2作為復(fù)用引腳的地址位置。通過對P2口地址的訪問,可以讀取外部存儲芯片中的數(shù)據(jù),也可以對相應(yīng)的地址為寫入數(shù)據(jù)。外部連接的存儲芯片的大小可以選擇

17、,通常選用的標準是根據(jù)程序的大小來決定的。P3口是一個可復(fù)用的端口。P3口的第一功能是作為數(shù)據(jù)的輸入輸出,通過對P3口的地址寫入數(shù)據(jù),從而控制高低電平的變化。當單片機設(shè)置了第二功能是,單片機的第一功能就不再工作,兩種模式只能選用其中的一種。另外P3口還可以設(shè)置第二功能。STC89C51單片機內(nèi)部集成了6個中斷。中斷的作用是使程序更高效的執(zhí)行,其中兩個外部中斷通過外部引腳進行觸發(fā),提供感知外部的電壓變化進入中斷。定時器一共有3個中斷,這些中斷是單片機的內(nèi)部中斷,根據(jù)設(shè)置相關(guān)的寄存器來觸發(fā)定時器中斷。4中斷的相應(yīng)與設(shè)置的相應(yīng)中斷標志位有關(guān),一旦中斷響應(yīng),就立即進入用戶寫的中斷程序中。另外一個是串口

18、中斷,來檢測串口接收或者發(fā)送數(shù)據(jù)的。串口對于單片機來說是一個與外界通訊的接口。有了串口,可以完成單片機對PC的通訊,或者單片機對單片機的通訊。通過串口傳輸數(shù)據(jù),完成對單片機的控制任務(wù)。通過上面所述,可以知道STC89C51單片機具有結(jié)構(gòu)簡單、控制能力強、可靠性高、體積小、價格低等優(yōu)點。下圖為以STC89C51單片機為控制芯片的系統(tǒng)連接圖:方案二:PIC16C72單片機為控制器件的智能電熱水器。PIC16C72是一款8位芯片。它的片內(nèi)資源要比51單片機豐富,它的片機集成A/D轉(zhuǎn)換器,片內(nèi)有大容量的程序存儲器以及數(shù)據(jù)存儲區(qū)。但是它的成本比較貴。通過上面的綜合考慮,這次設(shè)計硬件電路時,并不需要處理器

19、片內(nèi)豐富的資源,這次寫入的程序較小,普通的51單片機就足以應(yīng)付這次的系統(tǒng)設(shè)計,但考慮到成本控制和軟硬件實現(xiàn)難度,采用方案一的控制系統(tǒng)設(shè)計比較方便快捷,可以進一步提高電熱水器的智能作用,能夠保證持續(xù)的熱水供應(yīng),并可以滿足人們?nèi)粘I畹男枰?,提高了人們生活的質(zhì)量。2.3 本章小結(jié)本章主要對此次設(shè)計的家用電熱水器控制系統(tǒng)的控制器方案選擇上做了決定,最終決定使用結(jié)構(gòu)簡單、控制能力強、可靠性高、體積小、價格低的STC89C51單片機作為控制器。第3章 硬件系統(tǒng)設(shè)計本章節(jié)的硬件設(shè)計主要是系統(tǒng)電源的設(shè)計以及為控制芯片的外圍電路設(shè)計。下面首先介紹系統(tǒng)電源電路的設(shè)計:3.1 電源電路下圖為系統(tǒng)電源的設(shè)計流程圖:

20、系統(tǒng)供電電壓各部分簡介:(1)對電壓降壓由于市電的電壓值較高,單片機不能直接使用,所以在進行電壓處理之前應(yīng)先進行電壓的降壓操作。(2)整流濾波電路電壓進過變壓器的電壓轉(zhuǎn)化之后電壓值雖然穩(wěn)定在5V左右,但是輸出的是交流電。需要把交流電轉(zhuǎn)變?yōu)橹绷麟?,這一步就需要設(shè)計整流濾波電路。(3)穩(wěn)壓電路當電流經(jīng)過整流濾波之后電壓并不穩(wěn)定,單片機需要一個穩(wěn)定的電源這是的電源對單片機的系統(tǒng)穩(wěn)定性不利。所以需要通過一個穩(wěn)壓芯片把電壓穩(wěn)定下拉。5本次設(shè)計采用的芯片是7805。通過這個芯片可以控制電壓的穩(wěn)定輸出。下圖為穩(wěn)壓芯片的電路連接圖:圖3.2 可調(diào)穩(wěn)壓電路原理圖圖3.3 7805三端穩(wěn)壓電源電路需要特別注意的是

21、,單片機需要輸入較為穩(wěn)定的電壓波形,雖然穩(wěn)壓器7805輸出電壓波形比較穩(wěn)定,但是為了保證系統(tǒng)的穩(wěn)定性,防止突發(fā)事件的產(chǎn)生,需要在其輸入端與輸出端加濾波電容,濾除不需要波形,防止燒壞系統(tǒng)器件,保證系統(tǒng)穩(wěn)定運行。3.2 單片機最小系統(tǒng)說明下面主要介紹單片機最小系統(tǒng)的兩個外圍電路:時鐘電路:晶振電路是單片機程序運行的基礎(chǔ),晶振振動頻率決定單片機的程序執(zhí)行速率。晶振作為單片機的時鐘節(jié)拍。有兩種時鐘產(chǎn)生方式,一種成為內(nèi)部時鐘,另一種稱為外部時鐘。為了使單片機的功耗消耗較小,本系統(tǒng)使用的是外部時鐘電路。片機內(nèi)部集成了一個震蕩電路,在X1和X2引腳連接晶振,并且在晶振的兩端加上電容,給單片機上電,就可以完成

22、單片機晶振起振,本系統(tǒng)選擇的晶振是12MHZ。復(fù)位電路:復(fù)位電路,負責單片機的程序復(fù)位。當程序運行到某個內(nèi)存區(qū)域時,使用者不愿意程序繼續(xù)執(zhí)行下去,選擇復(fù)位引腳,使程序恢復(fù)到0地址存儲區(qū)域執(zhí)行。當復(fù)位電路中的按鍵按下時,會給兩個電容充電,使RST引腳的電壓升高時間長達單片機的一個時鐘周期,就可以完成單片機程序的復(fù)位。圖3.4 單片機最小系統(tǒng)3.3 溫度檢測電路溫度傳感器DS18B20體積特別小,硬件開銷相對較低,測量精度比較高,而且抗干擾能力特別強。DS18B20是全數(shù)字溫度轉(zhuǎn)換及輸出,單總線數(shù)據(jù)通信,最高能達到12位分辨率,檢測的溫度范圍大,是開發(fā)有關(guān)溫度產(chǎn)品的極佳選擇。6其主要功能特性如下:

23、(1)獨特的1-Wire總線接口僅需要一個管腳來通信。(2)具有多路采集的能力使得對于分布式溫度的采集和應(yīng)用更加簡便。(3)無需其他外部器件。(4)能夠通過數(shù)據(jù)線進行供電,供電范圍為3.0V至5.5V。(5)待機時無損耗。(6)可測量溫度的范圍為:-55至+125(-67至+257)。(7)溫度以9 位數(shù)字量讀出(8)如果測量溫度的范圍超過-10至85之外時,具有+-0.5的精度。(9)使用者用于對溫度報警功能的設(shè)置。(10)使用者設(shè)置警報溫度的溫度值,用于報警功能。DS18B20芯片內(nèi)部有一個測量溫度的傳感器,它是溫度傳輸?shù)幕A(chǔ);一個存儲芯片的固有信息的ROM區(qū);用于存儲芯片的ID等信息;一

24、個RAM存儲區(qū),用于芯片的溫度數(shù)據(jù)以及一些寄存器數(shù)值的存放;還有一個警報電路。其工作原理為:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在-55所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補償

25、和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。 溫度傳感器接單片機時只需要用到一個I/O口,連接單片機的I/O口時沒有特殊的要求,當芯片連接單片機時,單片機通過單總線協(xié)議,從這一個I/O口里讀取或者寫入數(shù)據(jù)。但是不管是哪種方法,I/O口都要接上4.7k左右的上拉電阻。下圖為溫度傳感器的電路連接圖:圖3.5 測溫模塊3.4 人機交互電路3.4.1 鍵盤接口電路按鍵的設(shè)計常用的有兩種,一個按鍵連接一個I/O,這是獨立按鍵,另一種是矩陣排布。各有優(yōu)點,首先,獨立按鍵可以直接連接到中斷引腳。這樣設(shè)置好單片機的相應(yīng)中斷位,就可以用按鍵來觸發(fā)中斷。這樣做的好處是:程序可以很快的去執(zhí)行所需要的功

26、能,對按鍵的相應(yīng)速度很快??梢赃_到按下按鍵就可以觸發(fā)相應(yīng)的事件。另外獨立按鍵可以減少程序負擔,不用掃描相應(yīng)的位置,這樣可以加快程序的執(zhí)行,相對來說,對程序的編寫難度也會有所下降。如果使用矩陣連接鍵盤的方法,它的好處是節(jié)約微控制器的I/O資源。比如說25個按鍵可以連接5個接口就可以。用程序的掃描辦法,是可以實現(xiàn)的。比如說用到的按鍵數(shù)量較少,當然選用獨立按鍵的辦法,這樣可以減少程序復(fù)雜度,也不會浪費單片機的I/O資源。7當然如果按鍵較多,那就必須使用矩陣按鍵要不然,單片機只能連接幾個按鍵,而其他外設(shè)就連接不上。按鍵的使用也需要注意。因為現(xiàn)在用的大多數(shù)按鍵用的是輕觸按鍵。當按下之后按鍵兩端的電路接通

27、。當松開之后,按鍵的兩端電路斷開。這樣就會產(chǎn)生一個抖動現(xiàn)象。因為單片機采集速度較快,當按下按鍵到按鍵彈起這段時間內(nèi)可能會產(chǎn)生多次跳動。對數(shù)據(jù)采集產(chǎn)生不可預(yù)估的變動。這要通過程序做相應(yīng)的延時來消除機械抖動。在本次設(shè)計中所使用的是四個獨立的按鍵,接口電路如下圖所示:圖3.6 鍵盤電路3.4.2 顯示電路本次設(shè)計的顯示模塊使用的是LCD1602,下面介紹這款液晶顯示器以及接口電路。(1)顯示原理介紹1602顯示屏可以顯示16×2個單元,每個單元有8×8=64的點組成。其中8為Y坐標的點數(shù),8為X坐標的點數(shù),根據(jù)點數(shù)的亮滅組成相應(yīng)的圖形。把需要點亮的點數(shù)寫入顯示屏內(nèi)部寄存器中,顯示

28、器自動在屏幕上打印出預(yù)想的圖像。(2)字符的顯示用LCD顯示一個字符時,字符顯示對應(yīng)一個顯示單元,因為一個字符由8×8點陣組成的圖形,所以可以顯示相應(yīng)簡單的字符。如果想要在顯示屏上顯示一個字符就要在相應(yīng)的點上寫1,這樣對應(yīng)的點就點亮,根據(jù)點的排列,就顯示出了字符。比較方便的是控制器里面自帶有字符存儲器,寫字符時,可以直接讀取這些字符的存儲位置,就可以得到相應(yīng)的字符顯示。字符存儲器里面存儲了160個字符,字符種類豐富,可以顯示一些簡單的界面。(3)漢字的顯示漢字的顯示要用到電腦上面的取模軟件,先對漢字取模(就是對各個點的顯示,形成一些編碼,復(fù)制到程序的存儲數(shù)據(jù)區(qū)),之后把用取模軟件得到

29、的數(shù)據(jù)寫到LCD的CGRAM中,讀取相應(yīng)的位置,就可以在屏幕上打印出所需要的漢字。LCD1602顯示屏內(nèi)部集成了地址命令,這些地址命令控制顯示字符圖像的位置。通過寫命令寫入地址,就可以在顯示屏的地址的位置寫入數(shù)據(jù),8把數(shù)據(jù)寫入CGRAM,就可以在液晶顯示字符圖像。在對液晶顯示屏寫數(shù)據(jù)和寫命令之前,要先對液晶顯示屏進行初始化,初始化是通過命令表查得想要初始化的功能來設(shè)置的。初始化操作包括液晶的顯示位置、光標是否打、屏幕是否左右移動、是否指針每讀一位自動加一、是否清屏等等命令。圖3.7 單片機與LCD1602的應(yīng)用電路LCD1602液晶顯示器廠家已經(jīng)在CGRAM存儲器里面固化好160個字符的圖形。

30、如圖2-13所示,看以看出存儲的字符有09的數(shù)字、26個大小寫英文字母、以及一些特殊字符。觀察下圖不難發(fā)現(xiàn),字符的位置都有一個相對的編碼,這個編碼就是寫入液晶顯示屏的數(shù)據(jù)數(shù)值。比如大寫的英文字母“O”的代碼是01001111(二進制),液晶顯示屏就會把對應(yīng)地址中的字符打印到屏幕上,就可以看到字母“O”。下表為LCD1602的引腳功能圖以及和單片機的接口電路圖:表3-1 引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15

31、BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:表3-2 指令說明序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從顯示模塊寄存器讀值11得到讀出的數(shù)值3.5 紅

32、外一體接收模塊發(fā)送的遠程控制功能指令代碼通常使用多一些二進制串行代碼及其編碼規(guī)則:脈沖頭,代碼系統(tǒng),數(shù)據(jù)代碼、數(shù)據(jù)補充和結(jié)束。第一個脈沖作為一幀命令的起始位置,系統(tǒng)代碼是用來區(qū)分不同類型的電氣設(shè)備,數(shù)據(jù)代碼是用來完成命令的功能。一個是數(shù)據(jù)根據(jù)數(shù)據(jù)代碼逆向代碼。9紅外線的一束光的長度是固定的。而一束紅外光里面有包含著豐富的信息,通過對這些信息的判斷,可以分析出發(fā)送方要發(fā)送的信號。紅外通訊的0和1通過不同的編碼來表示。紅外采集電路如圖:圖3.8 遙控接收模塊3.6 報警電路當單片機檢測到溫度傳感器輸入的溫度值大于當前系統(tǒng)設(shè)置的溫度值時,在蜂鳴器的連接引腳輸出一個高電平,這是蜂鳴器發(fā)聲,反之,蜂鳴器

33、不發(fā)聲。圖3.9 蜂鳴器驅(qū)動電路3.7本章小結(jié)本章主要對系統(tǒng)的應(yīng)用電路進行介紹,主要說明了系統(tǒng)電源電路,處理器的外圍電路,加熱電路,以及聲音提示電路和溫度采集電路等部分,電源電路為系統(tǒng)提供+12和的電源,人機交互電路負責單片機和外界的信息交流;溫度控制電路實現(xiàn)控制水溫;聲音提示電路負責熱水器在非安全狀態(tài)下工作時發(fā)出聲響提示用戶。硬件設(shè)計部分主要是完成以上電路的設(shè)計,包括各個電路的理論分析以及各個電路與單片機的連接等等。第4章 軟件系統(tǒng)設(shè)計單片機資源分配如表所示,列出了本系統(tǒng)使用STC89C51單片機的所有I/O口資源,包括了人機交互模塊,溫度檢測模塊以及聲音提示模塊等。表4-1 I/O口資源分

34、配表編號模塊名稱系統(tǒng)I/O口資源占用表接口功能定義51單片機接口1人機交互模塊液晶顯示模塊P0.0P0.7、P1.1、P1.2按鍵掃描P1.4P1.72溫度控制模塊溫度傳感器P2.2加熱電磁閥P1.03紅外接收模塊紅外接收頭P3.34聲音提示模塊蜂鳴器控制線P2.64.1 主程序流程圖本系統(tǒng)采用STC89C51單片機為核心控制器對整個系統(tǒng)進行控制,其控制過程如下:首先通過人機交互模塊設(shè)定系統(tǒng)的控制策略,然后通過溫度檢測模塊檢測水箱中的溫度,同時通過溫度控制模控制系統(tǒng)的加熱模塊工作。并將熱水器中的溫度值實時的顯示到顯示屏上。10系統(tǒng)的主程序主要完成的是對各全局變量進行定義,對時鐘與時間的初始化,

35、調(diào)用子函數(shù)的功能,流程圖如圖4.1所示。4.2 液晶顯示程序設(shè)計通過閱讀LCD1602的芯片手冊可以得知,液晶屏:LCD1602的顯示模式一般設(shè)置為16×2顯示,8位數(shù)據(jù)接口顯示狀態(tài);光標顯示可按實際需求和個人偏好設(shè)定。寫操作時序圖圖4.2是LCD1602寫操作時序圖,分析可知LCD1602液晶的流程如下:LCD1602顯示屏內(nèi)部集成了地址命令,這些地址命令控制顯示字符圖像的位置。通過寫命令寫入地址,就可以在顯示屏的地址的位置寫入數(shù)據(jù),把數(shù)據(jù)寫入CGRAM,就可以在液晶顯示字符圖像。圖4.1 xxx主程序流程圖圖4.2 寫操作時序圖4.2.2 初始化程序LCD1602初始化包括初始化

36、以下寄存器:顯示模式寄存器、光標設(shè)置寄存器和移屏寄存器。顯示模式寄存器通常設(shè)置16×2顯示;光標設(shè)置可以設(shè)置是光標顯示或者是光標不顯示方式;整屏移動可以設(shè)置整屏移動或者不移動。LCD1602初始化程序流程圖如圖所示:圖4.3 LCD1602初始化程序流程圖4.2.3 向LCD1602發(fā)送數(shù)據(jù)程序設(shè)計通過上面的子程序調(diào)用,可以向LCD1602內(nèi)部輸入一個8位的地址,之后在調(diào)用一個寫入數(shù)據(jù)的子函數(shù),就可以完成在對應(yīng)地址上寫入一個字符。4.3按鍵掃描程序設(shè)計考慮到用戶在進行按鍵操作時,按下及松開的瞬間都容易產(chǎn)生抖動現(xiàn)象,造成單次按鍵操作時按鍵端口電平多次跳變。采取按下按鍵延時判斷或者中斷法

37、都可以克服按鍵的抖動與窄脈沖的干擾影響,采取硬件措施加以克服需要增加額外的元件,本設(shè)計采用軟件措施完成去抖動和防干擾處理。11本設(shè)計采用定時中斷掃描的方式進行按鍵檢測,通過單片機的定時中斷,每隔10ms掃描一次按鍵端口狀態(tài),按鍵檢測過程中無需一直監(jiān)視按鍵端口或執(zhí)行額外的延時程序,節(jié)省了單片機的CPU資源和中斷資源。按鍵掃描程序流程圖如圖所示。圖4.4 按鍵掃描程序流程圖4.4溫度控制程序設(shè)計溫度傳感器的信號傳輸,使用的是單總線的產(chǎn)生方法,通過芯片手冊介紹的時序以及延時間隔,可以完成溫度數(shù)據(jù)的采集。初始化DS18B20首先要進行DS18B20芯片的初始化,通過芯片的初始化,可以設(shè)置本次需要傳輸溫

38、度的精度,以及溫度值的轉(zhuǎn)換的速度。下圖為芯片的初始化時序圖:圖4.5 DS18B20初始化時序圖圖4.6 DS18B20初始化流程圖讀取DS18B20當前溫度硬件電路連接好以后,只需要按照下面過程操作即可讀出溫度數(shù)據(jù)。本設(shè)計中只對一個DS18B20進行控制。12本次選取的溫度精度為11位,由于該芯片內(nèi)部的存儲器是八位的,所以需要分兩次讀取溫度的數(shù)據(jù)。通過溫度的一位運算,最終輸出準確的溫度值。溫度轉(zhuǎn)換流程圖如圖4.7所示。4.5控制程序策略設(shè)計整個熱水氣的控制系統(tǒng)主要分為三步來執(zhí)行單片機內(nèi)部的程序,首先利用溫度傳感器來采集外界的溫度數(shù)值,接著通過單片機的程序判斷是否達到溫度的臨界值,通過判斷的結(jié)

39、果來執(zhí)行對熱水器的加熱裝置的控制。這個三個步驟不斷重復(fù),使整個系統(tǒng)實現(xiàn)所需的控制目標。圖4.7 讀取DS18B20溫度流程圖下面介紹各個按鍵的功能:“功能鍵”用于切換數(shù)值項的可調(diào)狀態(tài)。第一次按下定時器變?yōu)榭烧{(diào),再次按下溫度上限變?yōu)榭烧{(diào),再次按下溫度下限變?yōu)榭烧{(diào)。此為一個循環(huán),直至“確認鍵”按下,保存當前設(shè)置,跳出菜單。“加鍵”和“減鍵”用來調(diào)整設(shè)定的時間和溫度。當前狀態(tài)為可調(diào)狀態(tài)時每按一次“加鍵”和“減鍵”,被設(shè)置的數(shù)據(jù)值遞增或遞減。調(diào)整溫度值時以1為調(diào)整單位,調(diào)整時間時以1分鐘為調(diào)整單位?!按_定鍵”用于推出當前的可調(diào)狀態(tài),保存當前設(shè)定數(shù)值并運行程序。4.6本章小結(jié)本章根據(jù)電路原理圖進行軟件設(shè)

40、計,對各個子程序進行了相關(guān)的原理分析。其中,詳細的介紹了控制策略程序、液晶顯示屏LCD1602操作程序和讀取DS18B20溫度值程序。這樣整個系統(tǒng)的設(shè)計部分就完成了。第5章 仿真與調(diào)試Proteus產(chǎn)品系列包含了革命性的VSM技術(shù),用戶可以對基于微控制器的設(shè)計連同所有的周圍電子器件一起仿真,用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計進行交互仿真。ISIS提供給用戶圖形外觀包括線寬、填充類型、字符等的全部控制,使用戶能夠生成如雜志上看到一樣精美的原理圖,遠勝過CAD軟件繪制出的稀薄的線條。畫完圖可以以圖形文件輸出,或者拷貝到剪切板以便其他文件使用。13這就

41、使得ISIS成為制作技術(shù)文件,學(xué)術(shù)論文,項目報告的理想工具,也是PCB設(shè)計的一個出色的前端,其畫圖的外形由風格模板定義。根據(jù)硬件設(shè)計和軟件編程,可以在Proteus軟件上進行仿真,模擬實際運行結(jié)果,下圖為仿真電路圖:圖5.1 仿真電路調(diào)試流程如下:按鍵上電復(fù)位水溫檢測數(shù)碼管顯示下載程序運行。程序調(diào)試分為三個部分:按鍵調(diào)試,指示燈顯示調(diào)試,及數(shù)碼管顯示調(diào)試。在具體仿真的過程中,按鍵調(diào)試時,應(yīng)注意按鍵的次序,首先是溫度+鍵,然后測試溫度-鍵,否則有時會出現(xiàn)數(shù)碼管顯示延時現(xiàn)象,這種情況主要跟程序設(shè)計有關(guān)。基于編程方面有些薄弱的情況,應(yīng)該嚴格按照按鍵次序進行調(diào)試。指示燈調(diào)試時,有時會出現(xiàn)指示燈無顯示或

42、者不明顯、亮度不夠的情況,這是由于指示燈電壓過低造成的,應(yīng)盡量避免。數(shù)碼管顯示時,只要前兩個步驟進行順利,數(shù)碼管就可以正常顯示。由于本設(shè)計采用獨立式按鍵,主程序調(diào)試結(jié)束后,各部分運行正常,能夠顯示水溫結(jié)果。另外,本次設(shè)計采用的溫度檢測模塊,檢測精度不高,有時會出現(xiàn)溫度跳躍式顯示,比如:有時此時刻溫度顯示為39攝氏度,下一時刻會顯示46攝氏度。此種情況出現(xiàn)的原因是由于溫度檢測模塊的內(nèi)阻過熱,導(dǎo)致檢測結(jié)果不夠準時和準確。這是硬件方面的問題,暫時還沒有找到可替換的模塊,所以無法解決,但不影響整體的效果。按此流程對系統(tǒng)在不同的溫度條件下工作情況進行測試。本設(shè)計的控制要求使熱水器內(nèi)部水溫保持在用戶所需要

43、的溫度范圍內(nèi),仿真設(shè)置溫度范圍為29攝氏度到35攝氏度,當前溫度低于29攝氏度時,加熱電路工作,水溫升高直至35攝氏度,此時加熱電路停止工作;當環(huán)境溫度再次低于29攝氏度時再次加熱直至35攝氏度,循環(huán)往復(fù)使溫度保持在29攝氏度到35攝氏度之間。設(shè)置當前溫度設(shè)置為20攝氏度,低于溫度下限29攝氏度,此時報警電路工作,發(fā)出報警聲音,繼電器閉合,工作指示燈亮起,加熱電路工作。圖5.2 低于下限溫度運行狀況設(shè)置當前溫度為32攝氏度,在29攝氏度到35攝氏度范圍之間,此時報警電路不工作,加熱電路不工作。圖5.3 上下限溫度間運行狀況設(shè)置當前溫度為40攝氏度,高于溫度上限35攝氏度,此時報警電路工作,發(fā)出

44、報警聲音,加熱電路不工作。圖5.4 高于上限溫度運行狀況仿真結(jié)果顯示,熱水器在溫度低于溫度下限時報警加熱;溫度高于溫度上限時報警不加熱;溫度在溫度上下限之間時不報警不加熱;熱水器在各種溫度條件下工作正常,達到設(shè)計要求。第6章 總結(jié)踉踉蹌蹌地忙碌了兩個月,畢業(yè)設(shè)計課題也終將告一段落。電熱水器也基本達到預(yù)期的功能。但由于能力和時間的關(guān)系,總是覺得有很多不盡如人意的地方,譬如功能不全、外觀粗糙、做工簡陋、安全性能較低等問題。但做一件事情,不必過于在乎最終的結(jié)果,可貴的是過程中的收獲。在進行此次畢業(yè)設(shè)計中,通過多次去圖書館進行查閱對各方面的知識有了一定的了解,比如單片機之間紅外通信傳輸、溫度采集和處理

45、;在制作過程中,通過對元件放置位置選擇、連線選擇和萬用板焊接,動手制作的能力大大提升。通過對單片機的學(xué)習(xí)和使用,知道了以后發(fā)展的方向和道路,只有真正的去動手操作才能把課堂學(xué)習(xí)到的理論知識去熟練的運用和提高,為以后的工作和學(xué)習(xí)打下堅實的基礎(chǔ),才能更進一步。也希望以后的學(xué)習(xí)工作中可以做的更好,能夠彌補這次畢業(yè)設(shè)計中所發(fā)現(xiàn)的,不能熟練運用學(xué)習(xí)到的理論知識,思考問題過于片面,動手制作能力有待提高等問題,這也是畢業(yè)設(shè)計的初衷,發(fā)現(xiàn)自己的不足并提高自己的能力,成為一個各方面全面發(fā)展,對社會有貢獻的人。致謝感謝老師從選題到最終完成對我進行的幫助,老師細致嚴謹、一絲不茍的作風一直是我學(xué)習(xí)的榜樣;循循善誘的教導(dǎo)

46、和不拘一格的思路給予我無盡的啟迪。這篇論文的每個細節(jié)和每個數(shù)據(jù),都離不開老師細心指導(dǎo)。同時也要感謝室友們對我的幫助,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文順利的完成在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的老師、同學(xué)、朋友給了我?guī)椭椭С?,在這里接受我誠摯的謝意。參考文獻1 吳國經(jīng)單片機應(yīng)用技術(shù)M.北京:中國電力出版社,2004:102 張振榮MCS-51單片機原理及實用技術(shù)M北京:人民郵電出版社2000:10-13.3 沈紅衛(wèi)基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn)M北京:電子工業(yè)出版社2005:30-35.4 肖洪兵跟我學(xué)用單片機M

47、北京:北京航空航天大學(xué)出版社2002:100-103.5 樓然苗51系列單片機設(shè)計實例M北京:北京航空航天大學(xué)出版社2003:50-60.6 李光飛單片機課程設(shè)計實例指導(dǎo)M北京:北京航空航天大學(xué)出版社2004:14-177 張豐電子開發(fā)論壇EB/OL8 徐惠民、安德寧單片微型計算機原理接口與應(yīng)用M北京:北京郵電大學(xué)出版社1996:80-889 夏繼強單片機實驗與實踐教程M北京:北京航空航天大學(xué)出版社2001:71-7610 何立民單片機高級教程M北京:北京航空航天大學(xué)出版社2001:51-5911 張友德,涂時亮,陳章龍MC68HC08系列單片機原理與應(yīng)用M上海:復(fù)旦大學(xué)出版社2001:16-

48、1813 劉筱明電腦電熱水器繼電器非正常狀態(tài)下的保護措施D廣東順德萬和電器有限公司. 199914 李建事陳剛. 家用電器單片機控制系統(tǒng)的制作與檢修M. 上海:上海交通大學(xué)出版社1998:22-3015 楊寧. 單片機與控制技術(shù)M. 北京:北京航空航天大學(xué)出版社2005:33-3616 付家才單片機控制工程實踐技術(shù)M北京:化學(xué)工業(yè)出版社2004:42-45附錄控制系統(tǒng)總電路圖:源程序清單:程序頭函數(shù)#include <reg52.h>/顯示函數(shù)#include <display.h>/宏定義#define uint unsigned int #define uchar

49、unsigned char/管腳聲明sbit jdq= P10;/繼電器sbit Feng = P26; /蜂鳴器/按鍵sbit Key1=P14; /設(shè)置sbit Key2=P15; /加sbit Key3=P16; /減sbit Key4=P17; /確定sbit DQ=P22; /定義DS18B20總線I/Osigned char w,bj,bjx,bjd; /溫度值全局變量uint c;/溫度值全局變量bit bdata flag=0,flag_BJ,flag_off=1;/時間計算#define Imax 14000 /此處為晶振為11.0592時的取值, #define Imin

50、8000 /如用其它頻率的晶振時,#define Inum1 1450 /要改變相應(yīng)的取值。#define Inum2 700 #define Inum3 3000 /解碼變量unsigned char Im4=0x00,0x00,0x00,0x00;/全局變量uchar f;unsigned long m,Tc;unsigned char IrOK;/設(shè)置變量uchar xx=29;/下限uchar sx=35;/上限int ds=0;uchar Mode=0;void delay(uint z)uint i,j;for(i=0;i<z;i+)for(j=0;j<121;j+);

51、/*延時子程序*/void Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復(fù)位 Delay_DS18B20(8); /稍做延時 DQ = 0; /單片機將DQ拉低 Delay_DS18B20(80); /精確延時,大于480us DQ = 1; /拉高總線 Delay_DS18B20(14); x = DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 Delay_DS18B20(20);/*讀一個字節(jié)*/unsigne

52、d 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_DS18B20(4); return(dat);/*寫一個字節(jié)*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat>>=1; /*讀取溫度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); /跳過讀序號列號

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論