基于DS18B20的數字溫度監控系統的Proteus設計_第1頁
基于DS18B20的數字溫度監控系統的Proteus設計_第2頁
基于DS18B20的數字溫度監控系統的Proteus設計_第3頁
基于DS18B20的數字溫度監控系統的Proteus設計_第4頁
基于DS18B20的數字溫度監控系統的Proteus設計_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

xx交通大學本科設計(論文)-37-基于DS18B20的數字溫度監控系統的Proteus設計學院:電子信息與電氣工程學院設計任務書題目基于DS18B20的數字溫度監控系統Proteus設計一、設計的目的1.將理論知識運用于實踐當中,掌握模擬電路設計的基本方法、基本步驟以及基本要求。在實踐中了解電子器件的功能與作用。2.學會信號發生器的設計方法,完成要求的性能和指標。3.鍛煉、提高在電子設計中發現問題、分析問題、解決問題的能力。二、設計的內容及要求1.測量溫度值精度為±1℃;2.系統允許的誤差范圍為1℃以內;3.系統可由用戶預設溫度值,測溫范圍為-55℃~+125℃;4.通過DS18B20傳感器和系統連接,能實時準確檢測到現場溫度;5.把現場實時檢測到的溫度通過LCD1602液晶顯示出來;6.報警溫度設定和報警:根據需要可以設置報警溫度,并且當達到報警溫度時會發出報警提示;三、指導教師評語四、成績指導教師(簽章)年月日目錄摘要 -4-1.緒論 -5-1.1 課題研究背景 -5-1.2 課題內容及要求 -5-2.溫度測控方案論證 -7-2.1熱敏電阻測溫 -7-2.2數字溫度傳感器測溫 -7-3.系統方案概述 -8-4.硬件部分 -9-4.1單片機最小系統設計 -9-4.1.1AT89C52單片機簡介 -9-4.1.2晶振電路 -13-4.1.3復位電路 -14-4.1.4排阻電路 -14-4.2DS18B20溫度傳感器 -15-4.2.1DS18B20簡介 -15-4.2.2DS18B20內部結構 -17-4.2.3DS18B20電路 -21-4.3LCD1602液晶顯示電路 -22-4.4按鍵模塊 -24-4.5報警模塊 -26-4.5.1蜂鳴器報警模塊 -26-4.5.2LED報警模塊 -27-5.軟件部分 -28-5.1軟件開發平臺 -28-5.2主程序設計 -28-5.3DS18B20程序設計 -29-5.3.1初始化 -29-5.3.2ROM操作命令 -30-5.3.3數據處理 -31-5.3.4程序流程圖 -32-5.4LCD1602程序流程圖設計 -32-5.5報警模塊程序設計 -33-6.仿真與測試 -34-6.1仿真設計平臺 -34-6.2仿真結果分析 -35-結論 -36-致謝 -37-摘要在日常生活及工業生產過程中,經常要用到溫度的檢測及控制,溫度是生產過程和科學實驗中普遍而且重要的物理參數之一。在生產過程中,為了高效地進行生產,必須對它的主要參數,如溫度、壓力、流量等進行有效的控制。溫度控制在生產過程中占有相當大的比例。溫度測量是溫度控制的基礎,技術已經比較成熟。傳統的測溫元件有熱電偶和二電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,這些方法相對比較復雜,需要比較多的外部硬件支持。本文采用一種改進型溫度傳感器DS18B20作為檢測元件,溫度范圍為-55~125oC,最高分辨率可達0.0625oC。DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。系統采用DS18B20作為溫度監測元件,測量范圍-55℃-~+125℃,使用LCD1602液晶模塊顯示測取的溫度值,通過按鍵設置溫度報警上下限。若當前獲取的溫度不在設定溫度上下限范圍內時,蜂鳴器報警,LED燈點亮,指示當前報警信息。關鍵詞:AT89C52;溫度監測;DS18B20;LCD1602;溫度上下限緒論課題研究背景隨著社會的發展特別是工業的發展,人民生活的改善,安全問題變得更加重要。目前,在許多情況下,都需要對環境的溫度進行限定,其中包括人的生活工作環境、儀器設備的工作環境以及動植物的生長環境等。如果環境溫度超過或者低于限制值,必定對所處環境的人或設備造成影響,甚至給個人和社會造成巨大的損失。因此,在某些特定環境內使用溫度報警器來對溫度進行實時監控并做到超溫報警,而使用單片微型計算機實時控制溫度報警系統則是其中的一種重要方式。目的是了解了單片機微型計算機實時控制的溫度測量報警系統的歷史與現狀,根據現實生活的需要以及已掌握的理論知識,制定出單片微型計算機實時控制的溫度報警系統硬件、軟件的設計方案,把溫度傳感器這個單獨的器件,配以一些其他電路,讓它實現探測溫度、顯示溫度、并且超高溫、低溫報警,并進行調試驗證方案的可行性,最終完成設計。課題內容及要求本設計主要介紹了用單片機和數字溫度傳感器DS18B20相結合的方法來實現溫度的采集與監控,以單片機AT89C52芯片為核心,輔以溫度傳感器DS18B20、LCD1602液晶顯示模塊、按鍵設置模塊以及報警模塊,構成了一個多功能單片機數字溫度監控系統。該裝置適用于人民的日常生活和工、農業生產的溫度測量與報警,實現對溫度的監測。其主要研究內容包括兩方面,一是對系統硬件部分的設計,包括溫度采集、LCD顯示、按鍵設置和LED、蜂鳴器報警;二是對系統軟件部分的設計,應用C語言實現溫度的采集與顯示。通過利用數字溫度傳感器DS18B20進行設計,能夠滿足實時監控溫度的要求。通過對本課題的設計能夠熟悉數字溫度監控系統的工作原理及過程,了解各功能器件(單片機、DS18B20、LCD1602)的基本原理與應用,掌握各部分電路的硬件連線與程序編寫,最終完成對數字溫度監控系統的總體設計。其具體的要求如下:1、根據設計要求,選用AT89C52單片機為核心器件;2、溫度檢測器件采用DS18B20數字式溫度傳感器,利用單總線式連接方式與單片機的串行接口P2.3引腳相連;3、顯示電路采用LCD1602顯示器接P0口并行顯示溫度值;4、按鍵電路采用獨立按鍵模式,用于設置溫度報警的上下限值;5、報警電路由LED指示燈和蜂鳴器組成,當測取的溫度值不在設定上下限值內,報警電路工作;溫度測控方案論證2.1熱敏電阻測溫由于本設計實現的是測溫電路,首先我們可以使用熱敏電阻之類的器件,利用其感溫效應,將其隨被測溫度變化的電壓或電流值采集過來,進行A/D轉換后,就可以用單片機進行數據的處理,通過顯示電路就可以將被測溫度的數值顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。因此,我們引出數字溫度傳感器測溫。2.2數字溫度傳感器測溫采用數字式溫度傳感器DS18B20測溫,此傳感器采用單根信號線,即可傳輸時鐘,又能傳輸數據,而且數據傳輸時是雙向的,因而這種單線技術具有線路簡單,硬件開銷少,成本低廉,便于擴展的優點。另外,它可以很容易直接讀取被測溫度值,進行轉換,就可以滿足設計要求。從以上兩種方案可以看出,兩種都完全能夠滿足設計需要,但很容易看出,采用數字溫度傳感器測溫,電路比較簡單,軟件設計也比較簡單,故采用此設計方案。系統方案概述本設計主控制器使用的是51單片機AT89C52,AT89C52單片機在工控、測量、儀器儀表等領域被廣泛應用。溫度傳感器使用的是DS18B20,它是一種可組網的高精度數字式溫度傳感器,由于其具有單總線的獨特優點,可以使用戶輕松地組建起傳感器網絡,并可使多點溫度測量電路變得簡單、可靠。顯示是用液晶顯示屏LCD1602實現溫度顯示。蜂鳴器和LED燈用來實現當測量溫度超過設定的上下限時的報警功能。整個溫度監控系統由4個部分組成,它們是AT89C52單片機最小系統(包括復位電路和晶振電路)、DS18B20傳感器模塊、LCD顯示模塊、按鍵設置模塊和報警模塊,其設計框架如圖2所示。圖2系統總框架圖硬件部分4.1單片機最小系統設計4.1.1AT89C52單片機簡介AT89C52是一款低電壓、高性能CMOS8位單片機,片內含8KB的可反復檫寫的程序存儲器和12B的隨機存取數據存儲器(RAM),器件采用Atmel公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內配置通用8位中央處理器(CPU)和Flash存儲單元,功能強大的AT89C52單片機可靈活應用于各種控制領域。AT89C52單片機屬于AT89C51單片機的增強型,其與另一款單片機80C52在引腳排列、硬件組成、工作特點和指令系統等方面兼容。其主要工作特性是:片內程序存儲器內含8KB的Flash程序存儲器,可擦寫壽命為1000次;片內數據存儲器內含256字節的RAM;具有32根可編程I/O口線;具有3個可編程定時器;中斷系統是具有8個中斷源、6個中斷矢量、2個級優先權的中斷結構;串行口是具有一個全雙工的可編程串行通信口;具有一個數據指針DPTR;低功耗工作模式有空閑模式和掉電模式;具有可編程的3級程序鎖定位;AT89C52工作電源電壓為5(1+0.2)V,其典型值為5V;AT89C52最高工作頻率為24MHz;AT89C52各引腳分布如圖4.1.1所示。圖4.1.1AT89C52單片機引腳分布圖其功能及管腳電壓介紹如下所示:?VCC:電源電壓?GND:接地線?P0口:P0口是一組8位漏極開路型雙向I/O口,也是地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口P0 寫“1”時,可作為共阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。?P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅動4個TTL邏輯電平.對P1端口寫"1"時,內部上拉電阻把端口拉高,此時可以作為輸入口使用.作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL).此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發輸入(P1.1/T2EX),具體如下表4.1.1所示。在Flash編程和校驗時,P1口接收低8位地址字節。引腳號功能特性P1.0T2(定時/計數2外部計數脈沖輸入),時鐘輸出P1.1T2EX(定時/計數2捕獲/重裝載觸發和方向控制)表4.1.1P1.0和P1.1的第二功能?P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平.對P2端口寫"1"時,內部上拉電阻把端口拉高,此時可以作為輸入口使用.作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL).在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX@DPTR)時,P2口送出高八位地址.在這種應用中,P2口使用很強的內部上拉發送1.在使用8位地址(如MOVX@RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號.?P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅動4個TTL邏輯電平.對P3端口寫"1"時,內部上拉電阻把端口拉高,此時可以作為輸入口使用.作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時/計數器0)P3.5T1(定時,計數器1)P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器讀選通)?RST:復位輸入。晶振工作時,RST腳持續2個機器周期高電平將使單片機復位.看門狗計時完成后,RST腳輸出96個晶振周期的高電平.特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效.DISRTO默認狀態下,復位高電平有效。?ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖.在flash編程時,此引腳(PROG)也用作編程輸入脈沖.在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用.然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過.如果需要,通過將地址為8EH的SFR的第0位置"1",ALE操作將無效.這一位置"1",ALE僅在執行MOVX或MOVC指令時有效.否則,ALE將被微弱拉高.這個ALE使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執行模式下無效。?PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89C52從外部程序存儲器執行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN將不被激活。?EA/VPP:訪問外部程序存儲器控制信號.為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND.為了執行內部程序指令,EA應該接VCC。在Flash編程期間,EA也接收12伏VPP電壓。?XTAL1:振蕩器反相放大器和內部時鐘發生電路的輸入端。?XTAL2:振蕩器反相放大器的輸出端。4.1.2晶振電路單片機的工作過程要對各種指令在時間上有明確的次序,這種時間次序也叫做時序,所以單片機需要產生一個時鐘信號。晶振電路如圖4.1.2所示。圖4.1.2晶振電路產生時鐘信號的方式是:在XTAL1(18腳)和XTAL2(19腳)引腳接入一個振蕩電路。用兩個22pF電容的作用是開啟振蕩器和調節振蕩頻率。接入12M晶振來確定時鐘周期,此時產生的信號為單片機最基本的時間單位,即時鐘周期,用振蕩頻率的的倒數代表它的大?。?/Fosc)。4.1.3復位電路復位電路在單片機設計中是一個必不可少的部分。單片機在剛開始運行的時候需要進行一次復位,以確保整個系統電路在要開始運行時保持一種最初狀態,保證一開始的運行正常。AT89C52單片機的第九引腳RESET,當這個引腳接收到兩個機器周期(24個振蕩脈沖周期)的高電平時,就會發生復位。復位電路的實現方式有很多種方式。常見的方式有上電、手動和自動復位三種。電路連接圖如圖4.1.3所示:圖4.1.3復位電路4.1.4排阻電路AT89C52單片機P0口內部結構與其他三個I/O口(P1口、P2口和P3口)不同,由于P0口內部沒有上拉電阻,當它用于通用I/O口使用時,其輸出驅動級為漏極開路,不能正常的輸出高低電平,因此必須外接上拉電阻。一般我們選擇接入阻值為10K的上拉電阻。如圖4.1.4所示。圖4.1.4排阻電路DS18B20溫度傳感器4.2.1DS18B20簡介單線數字溫度傳感器DS18B20是一種新型的”一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。其溫度測量范圍為-55~+125攝氏度,可編程為9位~12位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數以及用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。被測溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個傳感器可以并聯到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20的管腳排列、各種封裝形式如圖4.2.1所示。其中,DQ為數據輸入/輸出引腳,也可用作開漏單總線接口引腳,當被用在寄生電源工作方式下,可以向器件提供電源;GND為地信號;VDD為可選擇的電源引腳,當工作于寄生電源時,此引腳必須接地。圖4.2.1各種封裝的DS18B20傳感器DS18B20的性能特點如下:(1)獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條總線即可實現微處理器與DS18B20的雙向通訊;(2)DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫;(3)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內;(4)適應電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數據線供電;(5)測溫范圍-55℃~+125℃,在-10~+85℃時精度為±0.5℃;(6)零待機功耗;(7)可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現高精度測溫;(8)在9位分辨率時最多在93.75ms內把溫度轉換為數字,12位分辨率時最多在750ms內把溫度值轉換為數字,速度更快;(9)用戶可定義報警設置;(10)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;(11)測量結果直接輸出數字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;(12)負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作;以上特點使DS18B20非常適用與多點、遠距離溫度檢測系統。4.2.2DS18B20內部結構DS18B20內部結構框如圖4.2.2所示,其主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數據的高速暫存器(內含便箋式RAM),用于存儲用戶設定的溫度上下限值的TH和TL觸發器存儲與控制邏輯、8位循環冗余校驗碼(CRC)發生器等七部分。圖4.2.2DS18B20內部結構圖其中,64bit閃速ROM的結構如下圖4.2.3所示:圖4.2.364bit閃存ROM開始的8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發器TH和TL,可通過軟件寫入戶報警上下限。主機操作ROM的命令有六種,如圖4.2.4所示。溫度傳感器DS18B20的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8字節的存儲器,結構如圖4.2.5所示。圖4.2.5高速暫存RAM結構圖其中,前2個字節包含測得的溫度信息,第3和第4字節TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節,為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數值。暫存存儲器的第5個字節是配置寄存器,可以通過相應的寫命令進行配置,其內容如下表所示:0MSBR1R211111LSB其中R0和R1是溫度值分辨率位,可按表4.2.2進行配置。R1R0分辨率最大轉換時間(ms)009位93.75ms(tconv/8)0110位183.50ms(tconv/4)1011位375ms(tconv/2)1112位750ms(tconv)表4.2.2溫度分辨率對應最大轉換時間當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節。單片機可通過單線接口讀到該數據,讀取時低位在前、高位在后,數據格式以0.0625℃/LSB形式表示。溫度值格式如表4.2.3。低232221202-12-22-32-4高SSSSS262524表4.2.3溫度值格式表這是12位轉化后得到的12位數據,存儲在DS18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。格式中,S表示位。對應的溫度計算:當符號位S=0時,表示測得的溫度植為正值,直接將二進制位轉換為十進制;當S=1時,表示測得的溫度植為負值,先將補碼變換為原碼,再計算十進制值。例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出為0191H,-25.0625℃的數字輸出為FF6FH,-55℃的數字輸出為FC90H。DS18B20溫度傳感器主要用于對溫度進行測量,數據可用16位符號擴展的二進制補碼讀數形式提供,并以0.0625℃/LSB形式表示。表4.2.4是部分溫度值對應的二進制溫度表示數據。溫度數字輸出(二進制)數字輸出(16進制)+125℃000001111101000007D0H+85℃00000101010100000550H+25.0625℃00000001100100010191H+10.125℃000000001010001000A2H+0.5℃00000000000010000008H0℃00000000000000000000H-0.5℃1111111111111000FFF8H-10.125℃1111111101011110FFE5H-25.0625℃1111111001101111FF6FH-55℃1111110010010000FC90H表4.2.4部分溫度的二進制數表示DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節內容作比較,若T>TH或T<TL,則將該器件內的告警標志置位,并對主機發出的告警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行告警搜索。在64位ROM的最高有效字節中存儲有循環冗余校驗碼(CRC)。主機根據ROM前56位來計算CRC值,并和DS18B20中的CRC值做比較,以判斷主機收到的ROM數據是否正確。4.2.3DS18B20電路本設計中DS18B20的連接電路如圖4.2.6所示。單總線通常要求接一個約4.7K左右的上拉電阻,這樣,當總線空閑時,其狀態為高電平。圖4.2.6DS18B20連接電路LCD1602液晶顯示電路顯示溫、濕度需要較長的顯示字碼,在單片機的人機交流界面中,一般的輸出方式有以下幾種:發光管、LED數碼管、液晶LCD顯示器。在本文中采用液晶顯示LCD1602作為顯示模塊。在日常生活中,我們對液晶顯示器并不陌生,當今液晶顯示器已經成為市場上很多電子產品的顯示器件,比如在電子表、計算器、萬用表以及很多家用的電子產品中都可以看到,其顯示主要是數字、符號和圖形。在單片機系統中應用晶液顯示器作為輸出器件有以下幾個優點:顯示質量高、數字式接口、體積小、重量輕、功耗低。LCD1602液晶顯示模塊可以和單片機AT89C52直接接口,電路如圖4.3所示。圖4.3LCD1602與AT89C52電路連接LCD1602主要技術參數為顯示容量為16*2個字符;工作電壓范圍4.5-5.0V;工作電流在5.0V供電電壓下位2mA;字符尺寸為2.95*4.35mm。LCD1602引腳功能如表4.3所示:引腳號符號狀態功能1Vss電源地2Vdd+5V邏輯電源3V0液晶驅動電源4RS輸入寄存器選擇1:數據;0:指令5R/W輸入讀、寫操作選擇1:讀;0:寫6E輸入使能信號7DB0三態數據總線(LSB)8DB1三態數據總線9DB2三態數據總線10DB3三態數據總線11DB4三態數據總線12DB5三態數據總線13DB6三態數據總線14DB7三態數據總線(MSB)15LEDA輸入背光+5V16LEDK輸入背光地表4.3LCD1602引腳功能表LCD1602指令集說明如下:它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置指令2:光標復位,光標返回到地址00H指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標指令6:功能設置命令DL,高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符指令7:字符發生器RAM地址設置指令8:DDRAM地址設置指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。指令10:寫數據指令11:讀數據按鍵模塊常用的按鍵電路有兩種形式,獨立式按鍵和矩陣式按鍵,由于在溫濕度監控系統設計中,按鍵的主要功能是設置報警溫濕度的上下限值,功能明確單一,因此采用獨立式按鍵模塊。獨立式鍵盤的按鍵相互獨立,每個按鍵接一根I/O口線,一根I/O口線上的按鍵工作狀態不會影響其它I/O口線的工作狀態。因此,通過檢測I/O口線的電平狀態,即可判斷鍵盤上哪個鍵被按下。在本系統中只需檢測引腳P1.2、P1.7、P3.3是否被拉低為低電平,若為低電平則表示有鍵按下。P1.2對應“設置”鍵,P1.7對應“溫度+”鍵,P3.3對應為“溫度-”鍵。連接方式如圖4.4所示。圖4.4按鍵模塊電路當“設置”鍵被按下時,LCD液晶顯示溫濕度上下限設置界面,此時可以通過“溫度+”和“溫度-”鍵對溫度上下限數值進行設置。本設計為作者原創設計,其中五個內容已被省去,它們是:主程序設計流程流程圖;DS18B20程序設計流程圖;附錄一的系統仿真總電路圖;附錄二的程序和程序注釋;參考文獻;得到完整論文、Proteus仿真、Visio流程圖、KeilC程序以及參考資料等,請SubscribetheWeChatPublicNumber:交大小將。分享如下:報警模塊4.5.1蜂鳴器報警模塊本次設計采用三極管驅動蜂鳴器報警。蜂鳴器又稱為喇叭,廣泛運用在各種電子產品中的一種元器件,常用于提示、報警等多種場合。蜂鳴器和家用電氣上的喇叭在用法上也有相似的地方。通常工作電流比較大,電路上的TTL電平基本上不能驅動蜂鳴器。一個管腳很難驅動蜂鳴器發出聲音,這時就需要加一個電流放大電路,增加一個三極管來增加通過蜂鳴器的電流。蜂鳴器的正極性的一端聯接三極管的集電極,另一端接地,三極管的基極由單片機的P1.0管腳來控制,當P1.0管腳為低時,三極管導通,這樣蜂鳴器的電流形成回路,發出聲音。當P1.0管腳為高時,三極管截至,蜂鳴器不發出聲音。其電路如圖4.5.1所示。圖4.5.1蜂鳴器報警電路4.5.2LED報警模塊系統LED報警模塊,主要有2個LED燈組成,它們分別指示當前溫濕度值的狀態。溫度過低,相應藍色LED燈點亮;溫度過高,相應的紅色LED燈點亮;當溫濕度數值處于設定的上下限范圍之中時,LED燈熄滅。LED報警模塊電路圖見圖4.5.2。圖4.5.2LED報警模塊電路軟件部分5.1軟件開發平臺KeilC51是一款51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。C51工具包的整體結構,其中mVision與Ishell分別是C51forWindows和forDos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。5.2主程序設計主程序主要就是調用各個子程序的C語言文件中定義的函數,實現DS18B20、LCD1602、定時器初始化等操作,然后測量環境溫度,調用函數對數據進行處理,最后進行顯示并監測預警當前溫度信號,主程序流程圖如圖5.2所示。5.3DS18B20程序設計DS18B20屬于單線式器件,它在一根數據線上實現數據的雙向傳輸,這就需要一定的協議,來對讀寫數據提出嚴格的時序要求,而AT89C52單片機并不支持單線傳輸,因此必須采用軟件的方法來模擬單線的協議時序。DS18B20有嚴格的通信協議來保證各為數據傳輸的正確性和完整性。主機操作單線器件DS18B20必須遵循下面的順序。5.3.1初始化單線總線上的所有操作都是從初始化開始的。過程如下:1、請求主機通過拉低單線480us以上,產生復位脈沖,然后釋放該線,進入Rx接收模式。主機釋放總線時,會產生一個上升沿脈沖。DQ:1->0(480us+)->1

2、響應DS18B20檢測到該上升沿后,延時15~60us,通過拉低總線60~240us來產生應答脈沖。DQ:1(15~60us)->0(60~240us)3、接收響應主機接收到從機的應答脈沖后,說明有單線器件在線。至此,初始化完成。DQ:05.3.2ROM操作命令當主機檢測到應答脈沖,便可發起ROM操作命令。共有5類ROM操作命令,如表5.3.2所示。指令類型命令字節功能說明ReadRom讀ROM33H讀取激光ROM中的64位,只能用于總線上單個DS18B20器件情況,多掛時會發生數據沖突;MatchRom匹配ROM55H此命令后跟64位ROM序列號,尋址多掛總線上的對應DS18B20,只有序列號完全匹配的DS18B20才能響應后面的內存操作命令,其他不匹配的將等待復位脈沖,可用于單掛或多掛兩種情況;SkipRom跳過ROMCCH可無須提供64位ROM序列號即可運行內存操作命令,只能用于單掛;SearchRom搜索ROMF0H通過一個排除法過程,識別出總線上所有器件的ROM序列號;AlarmSearch報警搜索ECH命令流程與SearchRom相同,但DS18B20只有最近的一次溫度測量時滿足了報警觸發條件的,才會響應此命令。表5.3.2ROM操作指令表5.3.3數據處理DS18B20要求有嚴格的時序來保證數據的完整性。在單線DQ上存在復位脈沖、應答、寫”0”、寫”1”讀”0”和讀”1”幾種型號類型,其中除了應答脈沖以外,均有主機產生。1、DS18B20的復位時序圖5.3.3DS18B20的復位時序數據位的讀和寫則是通過使用讀、寫是時序實現的

溫馨提示

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

評論

0/150

提交評論