基于單片機的雙路溫控裝置論文_第1頁
基于單片機的雙路溫控裝置論文_第2頁
基于單片機的雙路溫控裝置論文_第3頁
基于單片機的雙路溫控裝置論文_第4頁
基于單片機的雙路溫控裝置論文_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1 緒論本文系統地介紹了基于DS18B20的雙路溫度測控系統的組成、設計方案、電路原理、程序設計以及系統仿真過程。DS18B20雙路溫度控制系統是以AT89C52單片機作為控制核心,智能溫度傳感器DS18B20,時鐘芯片DS1302和存儲器24C32為控制對象,用LM032L液晶顯示,運用C語言實現系統的各種功能。設計完成了讀DS18B20的ROM序列號電路和雙路溫度選擇檢測及分屏顯示電路。借助仿真工具Proteus和單片機編程軟件Keil實現了系統軟、硬件的交互仿真,并結合液晶顯示器LM032L、DS18B20、DS1302、24C32等進行了調試,實現了課題設計目的。單片機系統通過配置顯示

2、模塊,可以實時顯示雙路溫度和時間日期,通過鍵盤調出存儲在24C32A的時間及與其對應的當時的溫度信息,該設計可為溫度用戶提供實時可靠的采集及控制系統,實現溫度和通風的控制,并有高溫報警功能。1.1 課題背景及意義近年來,溫度測控領域發展迅速,并隨著數字技術的發展,溫度的測控芯片也相應的登上了歷史的舞臺,能夠在工業、農業等各個領域中得到廣泛使用。在人類的生活環境中,溫度扮演了極其重要的角色。無論你生活在哪里,無論從事什么工作,無時無刻不在與溫度打著交道。現代社會隨著電子技術的發展,特別是隨著大規模集成電路的出現,給我們的生活帶來了根本性的變化,如果說微型計算機的出現使現代的科學研究得到了質的飛躍

3、,那么可編程控制器的出現則給現代工業監測控制領域帶來了一次新的技術革命。在現代社會中,溫度控制不僅僅應用在工廠生產方面,其作用也體現到了各個方方面面。本課題主要涉及傳感器技術、單片機系統以及LCD這三方面的應用,下面就這三方面的概念、發展和應用分別進行介紹1。21世紀科學技術的發展日新月異,科技的不斷進步帶動了測量技術的發展,現代控制設備的性能和結構也發生了巨大的變化,我們已經進入了飛速發展的信息時代,測控技術也成為當今科技的主流之一,被廣泛地應用于生產、生活的各個領域。對于本次設計,其目的在于: (1)本課題綜合了現代測控、電子信息、計算機技術專業領域方方面面的知識,具有綜合性、科學性、代表

4、性,可全面檢驗和促進學生的理論素養和工作能力。(2)本課題的研究可以使學生更好地掌握基于單片機應用系統的分析與設計方法,培養創新意識、協作精神和理論聯系實際的學風,提高電子產品研發素質、增強針對實際應用進行控制系統設計制作的能力。(3)掌握一個顯示屏和一個溫度傳感器的原理、性能、使用特點和方法,利用單片機對系統進行編程。1.2 溫度傳感器國內外現狀及水平傳感器屬于信息技術前沿的尖端產品,尤其是溫度傳感器被廣泛用于工業生產究和生活領域,數量高居各種傳感器之首。溫度傳感器的發展大致經歷了一下三個階段:傳統的分離式溫度傳感器(含敏感元件)、模擬集成溫度傳感器/控制器和數字溫度傳感器。目前,國際上新型

5、溫度傳感器正由模擬式向數字式、由集成化向智能化、網絡化的方向發展,同時具有抑制串模干擾能力強、分辨力高、線性度好、成本低等優點。數字式溫度傳感器就是能把溫度物理量,通過溫度敏感元件和相應電路轉換成方便計算機、PLC、智能儀表等數據采集設備直接讀取得數字量的傳感器。數字式溫度傳感器的接口形式有RS232數據格式接口;RS485數據格式接口、一總線數據格式接口、CAN總線數據格式接口、ZIGBEE數據格式接口、TCP/IP數據格式接口等。在信息化數字化程度越來越高的今天,擔當信息處理與交換重任的機房是整個信息網絡工程的數據傳輸中心、數據處理中心和數據交換中心2。為保證機房設備正常運行及工作人員有一

6、個良好的工作環境,對機房溫度的監測是必不可少的,合理正常的溫度環境是機房設備正常運行的重要保障。溫度監測除用于機房監測外,還可以廣泛應用于其他方面,如生物制藥、無菌室、潔凈廠房、電信銀行、圖書館、檔案館、文物館、智能樓宇等各行各業需要溫度監測的場所和領域。伴隨著我國經濟的高速發展,國內在科技和生產各領域都取得了飛速的發展和進步,發展以溫度傳感器為載體的溫度測量技術具有重大意義3。1.3 課題設計任務(1)本設計要求系統測量雙路的溫度同時顯示時間及日期,測量精度1測量范圍為-55100。采用液晶顯示溫度值,顯示格式為:第一行顯示兩個溫度的整數部分,溫度符號顯示;第二行顯示時間數據,數據不斷刷新。

7、(2)本設計溫度控制作用:當溫度超過上限時系統自動通風,當溫度超過下限時加熱裝置加熱,當溫度超過報警溫度時蜂鳴器自動響,設計中用綠燈亮表示通風,用紅燈亮表示正在加熱。(3)本設計要求系統仿真,程序調試使用的是Keil軟件,仿真用的是ISIS仿真軟件。本設計的難點主要是軟件方面,其中軟件開發的難點在于DS18B20的序列號讀出和液晶溫度符號的顯示以及溫度的精度顯示如何實現,如果DS18B20的序列號讀出不正確,將無法正確的匹配和讀出的溫度值;溫度符號的顯示需要對LM032L的CGROM進行讀寫。溫度顯示的精度的實現需要編程人員對程序熟悉。要完成這個課題要做以下幾點工作:(1)熟悉單片機系統包括外

8、圍電路,單片機的引腳定義及作用,知道各引腳的使用方法。熟悉各個硬件的原理及功能,并知道怎么和單片機連接,比如DS18B20、24C32和DS1302。(2)由于設計要求仿真,必須學會軟件編程和仿真調試,熟練使用Keil軟件,Keil軟件是目前最流行開發MCS-51系列單片機的軟件。并且必須在Proteus中完成仿真,完成電路圖的連接,加載程序最后仿真出結果。單片機選用市場上常見的美國ATMEL公司的AT89C52作為控制元件,溫度傳感器選用DS18B20數字溫度傳感器,它的輸入/輸山采用數字量,以單總線技術,接收單片機發送的命令,根據DSl8B20內部的協議進行相應的處理,將轉換的溫度以串口發

9、送給單片機。主機按照通信協議用一個I/O口模擬DS18B20的時序,發送命令(初始化命令、ROM命令、RAM命令)給DS18B20,轉換完成之后讀取溫度值,在內部進行相應的數值處理,用液晶顯示屏LM032L顯示各點的溫度,液晶顯示雙路的實時溫度值和時間日期顯示,從而實現了對雙路溫度的實時監控。考慮到DS18B20溫度傳感器已廣泛地應用在單片機電路設計中,可以很容易直接讀取被測溫度值,電路簡單,精度高,軟硬件都易實現,而且使用單片機的接口便于系統的再擴展,滿足設計要求。2 總體方案論證本章從系統方案等一些方面來進行論證。使用單片機作為控制核心,采用兩個溫度傳感器對雙路溫度進行檢測,以液晶顯示屏顯

10、示檢測溫度,通過4×4矩陣鍵盤模塊選擇時間對與其對應的溫度進行顯示。設計完成了雙路溫度測量及顯示,時間的顯示,以及自動溫度控制和報警,并存儲溫度信息。總體方案如圖2.1所示。AT89C52時鐘電路DS18B20存儲器繼電器1繼電器2鍵盤電路報警電路DS18B20溫度調節裝置通風裝置圖2.1 總體方案2.1 設計方案論證溫度監控系統可以根據采用的溫度傳感器的不同進行如下分類。(1)熱敏電阻以溫度變化導致阻值的變化為工作原理的熱敏電阻,因其具有成本低、體積小、簡單、可靠、響應速度快、容易使用等特點。熱敏電阻的電阻溫度系數較高,室溫通常也較高,因此其自身發熱較小,信號調節較為簡單。但熱敏電

11、阻也存在缺點,如互換性差、溫度與輸出阻值之間呈非線性關系。(2)數字式溫度傳感器數字式溫度傳感器的種類也不少,但用于測控系統的溫度傳感器主要是Dallas的DS18X20系列溫度傳感器,其溫度檢測范圍為-55125,檢測精度為±0.5。DS18X20采用1-WireTM接口,封裝形式有PR-35和SSOP-16兩種,測控系統中采用的是PR-35封裝。DS18X20采用9個位表示測溫點的溫度值,每個DS18X20內部都設置有一個單一的序列號,因此可以使多個DS18X20共存于同一根數據傳輸線上。DS18X20內部分為4個部分:64位序列號;保存臨時數據的8字節片內RAM;保存永久數據的

12、2字節EEPROM;溫度傳感器4。采用數字式溫度傳感器的測控系統的結構與采用熱敏電阻的測控系統的結構大致相同,只是用測控單元替代了智能分機、擴充接線器替代了溫度分線器。測控單元與智能分機的區別在于沒有使用將溫度信號數字化的A/D轉換電路,取而代之的是1-WireTM總線與上層通信總線之間的通信轉換電路,如果系統選用了數字式溫度傳感器則測控單元將完全由數字電路組成,而智能分機是由數字電路和模擬電路兩部分構成的,這將使測控單元電路的設計更為容易。采用DS18X20溫度傳感器的測控系統的測溫電纜與熱敏電阻測溫電纜大不相同,該測溫電纜最多只需3根導線即可連接多個DS18X20溫度傳感器。最為簡潔的結構

13、是利用DS18X20可以通過數據線供電的特點,在測溫電纜中只放置兩根平行的細鋼絲繩即可連接多個DS18X20溫度傳感器,這樣不僅使測溫電纜的制造簡便、制造成本下降,而且提高了測溫電纜的抗拉強度、便于溫度傳感器的更換。正是這些特點使得采用DS18X20溫度傳感器的測控系統更適用于復雜的多點測溫的應用環境,可以解決在不需重新安裝測溫電纜的情況下更換測溫電纜內部的溫度傳感器以及改變溫度傳感器相對位置。由于這種溫度傳感器的性價比高出熱敏電阻許多,所以DS18X20溫度傳感器測控系統在應用時比熱敏電阻測控系統更具有性能價格比的優勢5。(3)光纖傳感器光纖溫度傳感器是近幾年發展的新技術,也是工業中用的最多

14、的光纖傳感器之一。目前研究的光纖溫度傳感器主要有輻射式溫度傳感器、半導體吸收式溫度傳感器、光纖熱色傳感器等。光纖溫度傳感器的精度更高,但成本太貴。2.2 方案設計方案一:該方案由單片機、模擬溫度傳感器AD590、運算放大器、A/D轉換器、LCD顯示電路、集成功率放大器、報警器組成。該方案采用模擬溫度傳感器AD590作為測溫元件,傳感器測量的溫度變化轉換成電流的變化,再通過電路轉換成電壓的變化,使用運算放大器交給信號進行適當的放大,最后通過模數轉換器將模擬信號轉換成數據信號,傳給單片機,單片機將溫度值進行處理之后用LCD顯示,當溫度值超過設定值時開始報警。方案二:該方案使用了AT89C52單片機

15、作為控制核心,以智能溫度傳感器DS18B20為溫度測量元件,采用2個溫度傳感器對雙路溫度進行檢測,通過鍵盤模塊對所需要調出的時間進行設置,并通過設定報警溫度,超過其溫度值就報警。顯示電路采用LM032L模塊,使用單片機直接驅動蜂鳴器構成報警電路。方案一采用模擬溫度傳感器,轉換結果需要經過運算放大器傳給處理器。它控制雖然簡單,但電路復雜,不容易實現對多點溫度測量和監控。由于采用了多個分立元件和模數轉換器,容易出現誤差,測量結果不是很準確,因此本方案并不可取。方案二采用智能溫度傳感器DS18B20,它直接輸入數字量,精度高,電路簡單,只需要模擬DS18B20的讀寫時序,根據DS18B20的協議讀取

16、轉換的溫度。此方案雖然程序設計復雜一些,但硬件電路簡單,并且在課題外對DS18B20,字符型液晶顯示有所了解,曾經在網上看過此類程序設計,而且我們已經使用開發工具Keil用C語言對系統進行了程序設計,用仿真軟件Proteus對系統進行了仿真,達到了預期的效果。由此可見,此方案的可行性,體現了技術的先進性,經濟上也沒有任何問題。另外,因為DS18B20單線通信功能是分時完成的,它有非常嚴格的時隙概念,因此讀寫時序就很重要了。系統對DS18B20的各種操作必須按照協議進行。操作協議為:首先開始初始化DS18B20(發復位脈沖),接著發ROM功能指令,再發存儲器操作指令,最后處理數據。各種操作的時序

17、圖與DS18B20相同。根據DS18B20的電氣特性,我們可以采取以下方法使用DS18B20進行雙路測溫。單端口單總線的雙路測溫法:所有的DS18B20相互并聯后其數據線連接到微處理器的某個I/O端口線上,其顯著的特點是只占用微處理器的一個端口。因為每個DS18B20內部均有且只有一個唯一的64位序列號,在系統安裝工作之前先將主機與DS18B20逐個掛接,分別讀出其序列號并存儲在主機的EEPORM中,微處理器根據序列號就可以對同一條總線上的2支DS18B20進行識別與控制,分別讀取它們的溫度。DS18B20與單片機的連接如圖2.2所示。MCUP2.6T1DS18B20T2DS18B20圖2.2

18、 DS18B20與單片機的連接單片機選用市場上常見的美國ATMEL公司的AT89C52作為控制元件,溫度傳感器選用DS18B20數字溫度傳感器,它的輸入/輸山采用數字量,以單總線技術,接收單片機發送的命令,根據DS18B20內部的協議進行相應的處理,將轉換的溫度以串口發送給單片機。主機按照通信協議用一個I/O口模擬DS18B20的時序,發送命令包括初始化命令、ROM命令、RAM命令給DS18B20,轉換完成之后讀取溫度值,在內部進行相應的數值處理,用液晶顯示屏LM032L顯示雙路的溫度,液晶顯示完雙路測量溫度,時間,以及自動溫度控制和報警,并存儲溫度信息。考慮到DS18B20溫度傳感器已廣泛地

19、應用于單片機系統設計中,可以很簡單直接讀取被測溫度值,電路相對簡單,精度高,軟硬件都容易實現,而且使用單片機的接口便于系統的再擴展,滿足了設計要求。由以上兩種方案,很容易就可以看出,采用方案二,電路比較簡單,費用較低,可靠性高,軟件的設計也比較簡單。DS18B20的測溫原理:低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,其中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定

20、,每次測量前,首先將-55所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。其中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的

21、測溫原理6。3 硬件電路設計硬件電路分為三部分:信號采集電路,控制電路和顯示電路。3.1 單片機系統簡介 單片機系統設計AT89C52是一種帶8K字節閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory),其低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器的制造技術制造,與工業標準MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C52是一種高效的微控制器,為很多嵌入式控制系統提供了一種靈活性高并且價廉的方案7。AT

22、89C52管腳說明如下:VCC:供電電壓。     GND:接地。P0口:P0口作為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,定義為高阻輸入。P0能用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。     P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下

23、拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。      P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫1時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址1時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程

24、和校驗時接收高八位地址信號和控制信號。     P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入1后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C52的一些特殊功能口如下所示: P3.0口管腳的備選功能:RXD(串行輸入口); P3.1口管腳的備選功能:TXD(串行輸出口); P3.2口管腳的備選功能:INT0(外部中斷0); P3.3口管腳的備選功能:INT1(外部中斷1); P3.4口管腳的備選功能:T0(記時

25、器0外部輸入); P3.5口管腳的備選功能:T1(記時器1外部輸入); P3.6口管腳的備選功能:WR(外部數據存儲器寫選通); P3.7口管腳的備選功能:RD(外部數據存儲器讀選通)。 P3口同時為閃爍編程和編程校驗接收一些控制信號。3.2 DS18B20溫度傳感器和單片機接口技術3.2.1 DSl8B20簡介及原理DS18B20簡介:DS18B20溫度傳感器是美國DALLAS半導體公司繼DS18B20之后最新推出的只用改進型智能溫度傳感器。DS18B20采用3腳PR35封裝或8SOIC封裝,其內部結構框圖如3.1所示。存儲器和控制器緩存存儲器8位CRC生成器溫度靈敏元件低溫觸發器TL高溫觸

26、發器TH配置寄存器64位ROM單線接口電源檢測圖3.1 DS18B20的內部結構圖與傳統的熱敏電阻相比,它能夠直接讀出被測溫度并且可根據要求通過簡單的編程實現9位12位的數字直讀方式。可以分別存93.75ms和750ms內完成9位和12位的數字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于DS18B20數據總線,總線本身也可以向所掛接DS18B20供電,而無需額外電源。因而使用可使系統結構趨簡單,可靠性高。它在測溫精度,轉換時時間,傳輸距離,分辨率幾方面較DS1820有了很大的改進,給用戶帶來了更加方便的使用和更令人滿意的效果。D

27、S18B20其內部結構主要有4部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。DS18B20的管腳排列如圖3.2所示。底視引腳排列 圖3.2 DS18B20的管腳DS18B20的引腳說明如下:GND :地。 DQ :數據I/O。 VDD :電源。 NC :空腳。Proteus中的DS18B20如圖3.3所示。圖3.3 Proteus中的DS18B2064位激光ROM開始8位是產品類型的編號,接著是每個器件的惟一的序號共有48位,最后8位是前56位的CRC校驗碼,這也是多個DS18B20可以采用一線進行通信的原因。64位激光ROM的結構組成如下所示:8位CR

28、C編號;48位序列號;8位產品系列編碼。當DS18B20在接收到溫度轉換命令后,開始啟動轉換。轉換完成后的值就以16位帶符號擴展到二進制補碼形式儲存在高速暫存存儲器的第l,2字節。單片機通過單線接口讀到該數據,讀取時低位在前面,高位在后,數據的格式以0.0625/LSB形式表示。對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變換為原碼,再計算十進制值。部分溫度轉換如表3.1所示。 表3.1 部分溫度轉換值溫度輸入(2進制)輸出(16進制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06

29、250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1111 0101 1110EE6FH-551110 1110 0110 1111FE90H在DS18B20完成溫度變換之后,溫度值與貯存TH和TL內的觸發值相比較因為這些寄存器僅僅是8位,所以0.5位在比較時被忽略。TH或TL的最高有

30、較位直接對應于16位溫度奇存器的符號位。如果溫度測量的結果高于TH或者低于TL,那么器件內報警標志將置位。每次溫度測量更新此標志。只要報警標志置位,DS18B20將對報警搜索命令做出響應。這允許并聯連接許多DS18B20,同時進行溫度測量。如果某處溫度超過極限,那么可以識別出正在報警的器件并立即將其讀出而不必讀出非報警的器件8。3.2.2 DS18B20與單片機接口電路如圖3.4所示,為單片機與DS18B20的接口電路。DS18B20只有三個引腳,一個接地,一個接電源,一個數字輸入輸出引腳接單片機的P2.6口。+5V+5V 圖3.4 DS18B20與單片機接口電路 DS18B20雖然具有測溫系

31、統簡單,測溫精度高、連接方便、占用I/O 口線少等優點,但實際應用中也應注意以下2個問題:(1)在實際使用中發現,應使電源電壓保持在5V左右,如果電壓過低,會使測得的溫度與實際溫度出現偏高現象,使溫度輸出定格在85。(2)連接DS18B20的總線電纜長度是有限制的。當采用普通信號電纜傳輸長度又超過50m時,讀取的測溫數據容易發生錯誤,當采用雙絞線帶屏蔽電纜作為總線電纜時,正常通訊距離可達150m,當采用每米膠合次數更多的雙絞線帶屏蔽電纜時,正常通訊距離可以進一步加長。這種情況主要由總線分布電容使信號波形產生畸變造成的。因此,進行長距離測量時要充分考慮總線分布電容及阻抗匹配問題。3.3 液晶顯示

32、器和單片機接口技術3.3.1 LM032L顯示器簡介LM032L字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣LCD,目前常用16×1,16×2,20×2和40×2行等的模塊。顯示字符時,由于LM032L內帶字符發生器的控制器,可以讓控制器工作在文本方式,根據在LCD上開始顯示的行列號及每行的列數找出顯示RAM對應的地址,設立光標,在此送上該字符對應的代碼即可。3.3.2 LM032L的基本參數及引腳功能LM032L分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如圖3

33、.5所示。 圖3.5 LM032L結構圖LM032L主要技術參數: 容量:20×2個字符。芯片工作電壓:4.5V5.5V。工作電流:2.0mA(5.0V)。模塊最佳工作電壓:5.0V。字符尺寸:2.95 mm×4.35 mm (W×H)。引腳功能說明:LM032L采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3.2所示。 表3.2 引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數據2VDD電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號1

34、4D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生鬼影,使用時可以通過一個10k的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平

35、時,液晶模塊執行命令。第714腳:D0D7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。 控制指令說明LM032L液晶模塊內部的控制器共有11條控制指令,如表3.3所示。表3.3 控制命令表指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標返回000000001*置輸入模式00000001I/DS顯示開/關控制0000001DCB光標或字符移位000001S/CR/L*置功能00001DLNF*置字符發生存貯器地址0001字符發生存貯器地址置數據存貯器地址001顯示數據存貯器地址讀忙標志或地址01BF計數器地址寫數到CGRAM或DDRAM10要寫的數據

36、內容從CGRAM或DDRAM讀數11讀出的數據內容LM032L液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。 指令3:光標和顯示模式設置。I/D:光標移動方向,高電平右移,低電平左移。S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示。C:控制光標的開與關,高電平表示有光標,低電平表示無光標。B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標

37、或顯示移位。S/C:高電平時移動顯示的文字,低電平時移動光標。 指令6:功能設置命令。DL:高電平時為4位總線,低電平時為8位總線。N:低電平時為單行顯示,高電平時雙行顯示。F: 低電平時顯示5×7的點陣字符,高電平時顯示5×10的點陣字符。 指令7:字符發生器RAM地址設置。 指令8:DDRAM地址設置。 指令9:讀忙信號和光標地址。BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。 指令10:寫數據。 指令11:讀數據9。 LM032L與單片機接口電路本系統的顯示部分采用LM032L字符顯示模塊,與采用數碼管相比,硬件連接和軟件調試上都

38、由優勢。只要把要顯示的內容放進液晶模塊的顯示存儲器里面就可以直觀的顯示出指定的內容,操作方便。系統顯示電路由單片機AT89C52、字符液晶顯示器LM032L和1k×8的排組構成。單片機實現對LCD命令和顯示數據的讀寫控制功能,P1口作數據口,與LM032L的D0D7相接,在P1口與D0D7數據線之間分別接8個上拉電阻,以確保電路能夠正常顯示。AT89C52的P1口作為LCD的控制線,P2.0P2.2分別接LM032L的RS、RW和E端;LM032L的其它三個控制端V和V、V分別接電源和地。系統顯示電路組成如圖3.6所示。LCDU1R1+5V圖3.6 LM032L與單片機的連接3.4

39、時鐘芯片DS1302簡介DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節靜態RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號和RAM數據。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小于31天時可以自動調整,且具有閏年補償功能。工作電壓寬達2.5 V5.5V。采用雙電源供電(主電源和備用電源),可設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。DS1302用于數據記錄,特別是對某些具有特殊意義的數據點的記錄上,能實現數據與出現該數據的時間同時記錄,因此廣泛應用于測量系統中。DS1302的引腳如圖

40、3.7所示。圖3.7 DS1302的引腳DS1302各引腳的功能為: Vcc1:主電源;Vcc2:備份電源。當Vcc2>Vcc1+0.2V時,由Vcc2向DS1302供電,當Vcc2< Vcc1時,由Vcc1向DS1302供電。 SCLK:串行時鐘,輸入,控制數據的輸入與輸出。 I/O:三線接口時的雙向數據線。RST:輸入信號,在讀、寫數據期間,必須為高。該引腳有兩個功能:第一,RST開始控制字訪問移位寄存器的控制邏輯;其次,RST提供結束單字節或多字節數據傳輸的方法。DS1302與單片機的連接如圖3.8所示。C2C1X1B1U23V+5V圖3.8 DS1302與單片機的連接DS1

41、302的工作原理:DS1302工作時為了對任何數據傳送進行初始化,需要將復位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數據在時鐘(SCLK)的上升沿串行輸入,前8位指定訪問地址,命令字裝入移位寄存器后,在之后的時鐘周期,讀操作時輸出數據,寫操作時輸出數據。時鐘脈沖的個數在單字節方式下為8+8(8位地址+8位數據),在多字節方式下為8加最多可達248的數據10。DS1302內部的RAM分為兩類,一類是單個RAM單元,共31個,每個單元為一個8位的字節,其命令控制字為COHFDH,其中奇數為讀操作,偶數為寫操作;再一類為突發方式下的RAM,此方式下可一次性讀寫所有的RAM的31個

42、字節,命令控制字為FEH(寫)、FFH(讀)11。 我們現在已經知道了控制寄存器和RAM的邏輯地址,接著就需要知道如何通過外部接口來訪問這些資源。單片機是通過簡單的同步串行通訊與DS1302通訊的,每次通訊都必須由單片機發起,無論是讀還是寫操作,單片機都必須先向DS1302寫入一個命令幀,這個幀的格式如表1所示,最高位BIT7固定為1,BIT6決定操作是針對RAM還是時鐘寄存器,接著的5個BIT是RAM或時鐘寄存器在DS1302的內部地址,最后一個BIT表示這次操作是讀操作抑或是寫操作。 物理上,DS1302的通訊接口由3個口線組成,即RST,SCLK,I/O。其中RST從低電平變成高電平啟動

43、一次數據傳輸過程,SCLK是時鐘線,I/O是數據線。具體的讀寫時序參考時序圖,但是請注意,無論是哪種同步通訊類型的串行接口,都是對時鐘信號敏感的,而且一般數據寫入有效是在上升沿,讀出有效是在下降沿(DS1302正是如此的,但是在芯片手冊里沒有明確說明),如果不是特別確定,則把程序設計成這樣:平時SCLK保持低電平,在時鐘變動前設置數據,在時鐘變動后讀取數據,即數據操作總是在SCLK保持為低電平的時候,相鄰的操作之間間隔有一個上升沿和一個下降沿12。DS1302的命令字結構如圖3.9所示。圖3.9 DS1302的命令字結構3.5 24C32簡介概述:24C32是一個32K位串行CMOS E2PR

44、OM 內部含有4096個字節,每字節為8位,其先進CMOS技術實質上減少了器件的功耗,24C32有一個32字節頁寫緩沖器,該器件通過 I2C 總線接口進行操作。以下是對各個管腳的名稱簡單描述13。 A0 ,A1 ,A2:器件地址選擇。 SDA:串行數據/地址。 SCK:串行時鐘。 WP:寫保護。 Vcc:1.8V6.0V 工作電壓。 Vss:地。 24C32的引腳圖如圖3.10所示。圖3.10 24C32的引腳圖以下是對各個管腳的功能簡單描述:SCK:串行時鐘。 24C32串行時鐘輸入管腳用于產生器件所有數據發送或接收的時鐘,這是一個輸入管腳。 SDA:串行數據/地址。 雙向串行數據/地址管腳

45、用于器件所有數據的發送或接收,SDA是一個開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進行線或Wire-OR。 A0 ,A1 ,A2:器件地址輸入端。 這些管腳為硬連線或者不連接,在硬件上與24C16兼容,對于單總線系統最多可尋址8個,24C32器件參閱器件尋址,當這些引腳沒有連接時其默認值為0。 WP:寫保護。 當WP腳連接到Vcc所有內存變成寫保護,只能讀,當WP引腳連接到Vss或懸空,允許器件進行讀/寫操作。 I2C總線協議的描述及定義如下: (1) 只有在總線空閑時才允許啟動數據傳送。 (2) 在數據傳送過程中當時鐘線為高電平時,數據線必須保持穩定狀態,不允許有跳變。時鐘線為高電平時

46、,數據線的任何電平變化將被看作總線的起始或停止信號。 起始信號:時鐘線保持高電平期間,數據線電平從高到低的跳變作為I2C總線的起始信號。停止信號:時鐘線保持高電平期間,數據線電平從低到高的跳變作為I2C總線的停止信號14。  24C32與單片機連接如圖3.11所示。圖3.11 24C32與單片機連接3.6 鍵盤電路設計根據本設計需要,本系統采用4×4鍵盤實現對功能和數字鍵的設定。自定義鍵盤定義如下:0到9之間的10個數字鍵定義為普通的數字鍵,×鍵定義為時間調整打開鍵,即按×鍵進入時間調整設定。÷鍵定義為時間位切換鍵,并且按年、月、日、

47、時、分、秒,依次向右移位,比如當對年調整結束要對月進行調整時,按一下÷鍵就對月開始調整,再按一下÷鍵則對日進行調整,依此類推。+鍵定義為時間調整結束后,顯示當前時間記錄下的兩個溫度值。=鍵定義為返回到原來的狀態,即時間和兩個溫度值同時顯示的狀態。鍵盤與單片機接口電路如圖3.12所示。RPU7圖3.12 鍵盤與單片機接口電路3.7 報警電路設計本系統采用單片機與蜂鳴器相連來顯示當前系統所處的狀態來報警。P3.5口與蜂鳴器相連,在P3.5與蜂鳴器中間接一個5.1k的電阻起到防止電流過大,進而保護器件的作用。報警電路說明:當DS18B20所測得的溫度超過報警上限時,這里即超過50

48、,蜂鳴器報警,否則蜂鳴器不報警。報警電路如圖3.13所示。LSQ3R2+5V圖3.13 報警電路3.8 控制部分硬件電路中單片機起控制作用,它相當于人的大腦;DS18B20進行溫度采集,把采集到的室內溫度送到單片機中,單片機進行判斷,根據判斷的結果控制相應引腳輸出高電平或低電平,從而控制繼電器線圈中能否有電流經過,達到控制電風扇轉動或停止的目的,繼電器用來實現對電風扇和加熱裝置的自動控制。在系統中,單片機通過檢測DS18B20采集的溫度來作出相應處理,當溫度高于某一設定值時,P3.0輸出低電平,繼電器線圈得電,其對應常開觸點閉合,電風扇電路導通,電風扇轉動;當溫度低于設定溫度值時,單片機P3.

49、0引腳輸出高電平,繼電器線圈中沒有電流通過,常開觸點保持斷開,電風扇電路不通電,電風扇不能運行,從而實現了電風扇的自動起停。為了仿真的便利考慮,本設計用LED綠燈表示風扇,LED綠燈亮表示風扇通電轉動,LED綠燈不亮表示風扇電路不通電,風扇不能運行。單片機控制的通風電路如圖3.14所示。D2RL2D4R6Q2R5+5V+12V圖3.14 單片機控制的通風電路同樣當溫度低于某一設定值時,P3.1輸出低電平,繼電器線圈得電,其對應常開觸點閉合,加熱電路通電,開始工作加熱。當溫度高于設定溫度值時,單片機P3.1引腳輸出高電平,繼電器線圈中沒有電流通過,常開觸點保持斷開,加熱電路沒通電,加熱電路不工作

50、。同樣處于便利考慮,用LED紅燈表示加熱電路。單片機控制的加熱電路如圖3.15所示。RL1D1D3R4Q1R3+5V+12V圖3.15 單片機控制的加熱電路4 系統軟件設計這部分主要對主程序和各子程序做介紹。4.1 讀DS18B20的序列號程序中主要對DS18B20的初始化子程序,然后讀出DS18B20的64位序列號存入到40H47H中,然后將40H內容送入P0口,顯示出40H中的二進制數,記錄下來后分別把41H47H的內容送入P0口顯示并記錄。2個DS18B20的序列號分別為:(1)28H 30H C5H B8H 00H 00H 00H 8EH(2)28H 31H C5H B8H 00H 0

51、0H 00H B9H4.2 主程序設計系統主流程圖如圖4.1所示,整個軟件包括溫度采集和數據傳輸兩個主要部分組成。主要完成LCD、中斷、DS1302和DS18B20的初始化,并對測溫精度設置。初始化鍵盤顯示掃描鍵處理開始有鍵?采樣時間到?采集及顯示YYNN結束圖4.1 系統主程序流程圖 4.3 DS18B20子程序的設計先對DS18B20初始化,再進行DS18B20的匹配操作,然后跳過所有的DS18B20,對所有的DS18B20進行溫度轉換,延時1s,初始化DS18B20,此后發出匹配命令,寫入64位的ROM序列號,總線上只有與此序列號相同的DS18B20才會作出反應,選中次DS18B20,然

52、后對該DS18B20進行讀操作,把溫度值存放在指定的兩個地址中,接下來寫入第二個DS18B20的序列號,把其溫度值發在指定的地址。DS18B20 子程序流程圖如圖4.2所示。開始初始化發跳過ROM命令發讀取溫度命令輸入校驗碼匹配?轉換溫度顯示YN圖4.2 DS18B20 子程序流程圖DS18B20子程序:sbit ds=P26;/傳感器IO口uchar code num1=0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e;uchar code num2=0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9;void jisuan(int

53、i) /數據計算函數 int a,b,c,k; uchar x; if(wdxz=0)x=0;if(wdxz=1)x=8;if(i<0) i=(i)+1;a=(i%1000)%100)%10);b=(i+a)/10)%100)%10);c=(i+a+b*10)/100)%10);k=10; elsea=(i%1000)%100)%10);b=(i-a)/10)%100)%10);c=(i-a-b*10)/100)%10);k=(i-a-b*10-c*100)/1000; show(k,0+x); show(c,1+x);show(b,2+x); show(12,3+x);show(a,4

54、+x); void yaoqiu1()/傳感器設置,讀取溫度值 uchar i;reset();delays(200); fasong(0x55);if(wdxz=0) for(i=0;i<8;i+) fasong(num1i); if(wdxz=1) for(i=0;i<8;i+) fasong(num2i); fasong(0xbe); int zhi() /對獲取值進行處理 發送至計算函數 unsigned char i,j;int k,f,c,d; yaoqiu1();i=dedao();j=dedao(); f=j;f<<=8;f|=i;k=f;k=k*0.6

55、25; jisuan(k); if(wdxz=0)wdxz=1;else wdxz=0; return(k); 4.4 24C32子程序的設計 I2C驅動,從地址A0,輸入存地址高八位,輸入存地址低八位,寫入數據。從地址A1,輸入讀取地址高八位,讀取地址第八位,輸出數據。24C32子程序流程圖如圖4.3所示。I2C驅動輸入數據開始輸出數據圖4.3 24C32子程序流程圖24C32子程序:sbit sda=P36;sbit scl=P37;uchar readbyte() /讀取一個字節uchar i,dat;for(i=0;i<8;i+) scl=1;dat<<=1;if(sda=1)dat|=0x01;scl=0;return dat;void sendbyte(uchar dat) /發送一個字節

溫馨提示

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

評論

0/150

提交評論