版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 多路溫度測量系統(tǒng)設計</p><p><b> 年 月</b></p><p><b> 信息技術學院</b></p><p> 課 程 設 計 任 務 書</p><p><b> 一、課程設計課題:</b></p><
2、p> 多路溫度測量采集系統(tǒng)</p><p> 二、課程設計工作日自 2013 年 12 月 1 日至 2013 年 12 月 20 日</p><p> 三、課程設計進行地點: 信息館320 </p><p> 程設計任務要求: (詳細內容見課程設計文檔)</p>&l
3、t;p><b> 1.課題來源:</b></p><p><b> 教師下發(fā)</b></p><p><b> 2.目的意義:</b></p><p> 1、培養(yǎng)理論聯(lián)系實際的正確思想,訓練綜合應用已經學過的理論知識和生產實際知識去綜合解決工程實際問題的能力。</p>&l
4、t;p> 2、學習較復雜電子系統(tǒng)設計的一般方法,了解和掌握模擬、數字電路等知識解決電子信息方面常見實際問題的能力,由有學生自行設計和調試。</p><p> 3、進行基本技能和技術訓練,如掌握設計資料、手冊、標準和規(guī)范以及使用繪圖軟件和仿真軟件等。</p><p><b> 3.基本要求:</b></p><p> 1、采用單片機
5、80C51實現(xiàn)八路溫度檢測;2、要求溫度范圍0℃~100℃之間; 3、精度達到±1%,分辨率≤0.1℃;4、在LED中顯示溫度;5、用繪圖軟件畫出總體電路圖;6、提交格式符合要求,內容完整的設計報告。</p><p><b> 課程設計評審表</b></p><p><b> 目錄</b></p><p>
6、 1.設計任務要求2</p><p><b> 2.方案比較2</b></p><p> 2.1 課題分析2</p><p> 2.1.1 溫度傳感器的選擇2</p><p> 2.1.2 顯示部分3</p><p> 2.1.3 主控芯片的選擇3</p>
7、;<p> 3.單元電路設計3</p><p> 3.1.最小系統(tǒng)電路3</p><p> 3.1.1 單片機及其管腳說明4</p><p> 3.2.復位電路6</p><p> 3.3.晶振電路6</p><p> 3.4.溫度采集電路7</p>&l
8、t;p> 3.4.1 DS18B20的讀寫程序和單總線協(xié)議的實現(xiàn)8</p><p> 3.5.電源電路12</p><p> 3.6.按鍵輸入電路12</p><p> 3.7.數目管顯示電路13</p><p> 3.8.聲光報警模塊電路15</p><p> 4.整體電路
9、16</p><p> 5.軟件設計18</p><p> 5.1 工作方案簡介18</p><p> 5.2 主程序流程圖18</p><p> 5.3 功能模塊19</p><p> 5.4 由DS18B20完成溫度檢測模塊19</p><p>
10、 5.5 按鍵輸入模塊23</p><p> 5.6 聲光報警模塊23</p><p><b> 總結與體會24</b></p><p><b> 致謝26</b></p><p><b> 參考文獻27</b></p><p
11、> 附錄一元器件清單28</p><p> 附錄二軟件清單28</p><p><b> 設計任務要求</b></p><p> 采用單片機80C51實現(xiàn)八路溫度檢測,要求測量溫度范圍0℃~100℃之間;并在LED中顯示溫度;溫度傳感器選用模擬和數字的都可以,要求精度達到±1% ;分辨率≤0.1℃ ;直流穩(wěn)壓電源自行
12、設計;輔助電路及元器件自選。</p><p><b> 方案比較</b></p><p><b> 2.1 課題分析</b></p><p> 對于多路溫度測量,溫度探頭的低功耗是十分重要的,同時還要滿足易于控制的條件,測溫范圍也必須達到或超過題目要求。因此選擇合適的溫度傳感器成為本次設計的重中之重</p>
13、;<p> 2.1.1 溫度傳感器的選擇</p><p> 根據題目要求,設計一溫度測量電路,能夠通過溫度傳感器測量并顯示被測量點的溫度,常用的溫度傳感器可分為3大類:</p><p><b> 方案一:熱電偶式</b></p><p> 熱電偶具有構造簡單,適用溫度范圍廣,使用方便,承受熱機械沖擊能力強以及響應速度快等
14、特點,常用于高溫區(qū)域, 振動沖擊大等惡劣環(huán)境以及適合于微小結構測溫場合;但其信號輸出靈敏度比較低,容易受到環(huán)境干擾和前置放大器溫度漂移的影響,因此不適合測量微小的溫度變化。</p><p><b> 方案二:電阻式</b></p><p> 電阻式可用來測量-220~850℃范圍內的溫度,少數情況下,低溫可測量至-272℃,高溫可測量至1000℃,互換性差,非線性
15、嚴重,在腐蝕介質中使用時,易氧化,因此,只能用于低溫及無腐蝕性的介質中。雖然測量溫度范圍廣,但熱穩(wěn)定性差。</p><p><b> 方案三:數字式</b></p><p> DS18B20溫度傳感器。DS18B20溫度傳感器為“一線式器件”,體積更小、適用電壓更寬、更方便。其測量溫度范圍為 -55℃~+125℃,在-10℃~+85℃范圍內,精度為±0.
16、5℃,有十二位分辨率。其內部有A/D、D/A轉換裝置,用戶可以設置溫度的上下限,并具可以直接與單片機進行通訊?,F(xiàn)場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統(tǒng)的抗干擾性。采用1-Wire公眾域(PD)軟件應用程序接口,采用循環(huán)程序結構實現(xiàn)查看任何一個檢測點的編號、溫度值等數據指示,實現(xiàn)了多個檢測點數據的自動化監(jiān)管。</p><p> 考慮題目測溫范圍要求以及測量數據的準確性要求選擇方案三。</p&
17、gt;<p> 2.1.2 顯示部分</p><p> 方案一:使用液晶顯示屏顯示轉換結果。液晶顯示屏(LCD)具有輕薄短小,平面顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,能顯示漢字及各種符號,可以繪制曲線和簡單的圖像,分辨率高,抗干擾能力強和顯示形式靈活等優(yōu)點。</p><p> 方案二:使用傳統(tǒng)的數碼顯示管。數碼管(LED)受外界環(huán)境影響小,顯示明亮,編程簡單,占用資源較少。
18、</p><p> 由于課程設計要求采用LED顯示,所以只能采用方案二。</p><p> 2.1.3 主控芯片的選擇</p><p> 本系統(tǒng)主要有采集溫度模塊,顯示模塊,報警模塊。在綜合考慮對芯片的熟悉程度及功能的實現(xiàn)程度上。決定在主板上采用AT89S52芯片,AT89S52片內含4k bytes的可反復擦鞋的只讀程序存儲器(PEROM)和128 byt
19、es的隨機存取數據存儲器(RAM), 32個I/O 口線完全能夠滿足對數據的處理要求。</p><p> 雖然市面上有著功能更為強大的單片機芯片,但都價格不菲。而本設計本著簡單實用,精簡節(jié)約的原則,我們選擇了AT89S52芯片。</p><p><b> 單元電路設計</b></p><p><b> 最小系統(tǒng)電路</b&
20、gt;</p><p> 在課程設計所研究的多路溫度采集系統(tǒng)中的的MCU控制模塊是由AT89S52單片機構成的最小系統(tǒng),如圖3-1。該模塊是硬件系統(tǒng)的核心部分,它負責對DS18B20所采集的溫度信息進行處理并向LED發(fā)送實習數據顯示采集到的溫度信息,完成多路溫度采集系統(tǒng)的要求。</p><p> 圖3-1:AT89S52最小系統(tǒng)</p><p> 3.1.1
21、 單片機及其管腳說明</p><p> AT89S52是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和
22、輸出管腳相兼容。下面指出了各個管腳的用途。</p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8個TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,
23、它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接
24、收。 </p><p> P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特
25、殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口, P3口管腳 備選功如下:</p>
26、<p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1)</p><p> P3.4 T0(記時器0外部輸入)</p><p> P3.5 T1(記時器1外
27、部輸入)</p><p> P3.6 /WR(外部數據存儲器寫選通)</p><p> P3.7 /RD(外部數據存儲器讀選通)</p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p> RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>
28、 ALE/PROG:當訪問外部存儲器,地址鎖存允許的輸出電平用于鎖存地址地位字節(jié)。</p><p> /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p> /EA/VPP:在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p>
29、<p> XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出</p><p><b> 復位電路</b></p><p> 復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。為可靠起見,電源穩(wěn)定后還要經一定的延時才撤銷復位信號,以防電源開
30、關或電源插頭分-合過程中引起的抖動而影響復位。圖3-2所示的RC復位電路可以實現(xiàn)上述基本功能。</p><p> 圖3-2:RC復位電路</p><p><b> 晶振電路</b></p><p> 晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網絡,電工學上這個網絡有兩個諧振點,以頻率的高低分其中
31、較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個頻率的距離相當的接近,在這個極窄的頻率范圍內,晶振等效為一個電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會組成并聯(lián)諧振電路,如圖3-3晶體震蕩電路所示。這個并聯(lián)諧振電路加到一個負反饋電路中就可以構成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數變化很大,這個振蕩器的頻率也不會有很大的變化。</p><p> 晶振有
32、一個重要的參數,那就是負載電容值,選擇與負載電容值相等的并聯(lián)電容,就可以得到晶振標稱的諧振頻率。</p><p> 一般的晶振振蕩電路都是在一個反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另一端再接到地,這兩個電容串聯(lián)的容量值就應該等于負載電容,請注意一般IC的引腳都有等效輸入電容,這個不能忽略。</p><p><b> 圖
33、3-3:晶體電路</b></p><p><b> 溫度采集電路</b></p><p> 本系統(tǒng)利用DS18B20完成溫度采集及轉換工作,而單片機89S52起實時控制及發(fā)送數據給LED顯示作用.可以將多個DS18B20與單片機一位總線相連,形成多點測溫, 本設計研究八片DS18B20與單片機構成的測溫系統(tǒng)。DS18B20與單片機接口電路如圖3-4八路
34、溫度采集電路所示.</p><p> 圖3-4八路溫度采集電路</p><p> 3.4.1 DS18B20的讀寫程序和單總線協(xié)議的實現(xiàn)</p><p> DS18B20的讀寫程序和測溫程序相同,只是得到的溫度值的位數因分辨率不同而不同,且溫度轉換時的延時時間由2s減為750ms。 DS18B20測溫原理中低溫度系數晶振的振蕩頻率受溫度影響很小,用于產生固
35、定頻率的脈沖信號送給計數器1。高溫度系數晶振隨溫度變化其振蕩率明顯改變,所產生的信號作為計數器2的脈沖輸入。計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當計數器1的預置值減到0時,溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環(huán)直到計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度
36、。圖3-5中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數器1的預置值。</p><p> 圖3-5 DS18B20測溫原理框圖</p><p> DS18B20有4個主要的數據部件: </p><p> ?。?)光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)
37、是產品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。 </p><p> ?。?)DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數形式提供,以0.0625℃/LSB形式表達,其中S為
38、符號位。</p><p> 這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。 </p><p> 例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出
39、為0191H,-25.0625℃的數字輸出為FF6FH,-55℃的數字輸出為FC90H。</p><p> (3)DS18B20溫度傳感器的存儲器 </p><p> DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結構寄存器。 </p><p><b> ?。?
40、)配置寄存器 </b></p><p> 該字節(jié)各位的意義如下:</p><p> 表3-1 配置寄存器結構</p><p> 低五位一直都是"1",TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。R1和R0用來設置分辨率,如下表3-1所示:(DS18B20
41、出廠時被設置為12位)</p><p> 表3-2 溫度分辨率設置表</p><p> 本設計采用多個溫度傳感器DS18B20對溫度進行采樣,從而進行溫度的檢測與控制。因為DS18B20是使用單總線協(xié)議的,所以具有單總線的優(yōu)點,本設計通過對DS18B20的使用,使讀者對單總線協(xié)議有了更深的認識。下面就DS18B20芯片的特性進行一下介紹。</p><p> 與
42、 DALLAS 公司早期生產的 DS1820 相比,DS18B20具有如下特點:</p><p> (1) 精度:DS18B20 在-10℃~+85℃范圍內精度為+-0.5℃。</p><p> ?。?) 分辨率:DS18B20 的分辨率由9~12位(包括1位符號位)數據在線編程決定。</p><p> (3) 溫度轉換時間:DS18B20 的轉換時間與設定的分
43、辨率有關,當設定為9位時,最大轉換時間為93.75ms;10位時,為187.5ms;11位時,為375ms;12位時,為750ms。</p><p> ?。?) 電源電壓范圍:在保證溫度轉換精度為+-0.5℃的情況下,電源電壓可為+3.0V~+5.5。</p><p> (5) 程序設置寄存器:該寄存器主要用來設置分辨率位數的。</p><p> (6) 64位
44、ROM編碼:從高位算起,該ROM有一個字節(jié)的CRC校驗碼,6個字節(jié)的產品序號和一個字節(jié)的家族代碼。對于家族代碼, DS18B20是28H。</p><p> ?。?) 溫度數據寄存器:寄存器由兩個字節(jié)組成,DS18B20 對于12 位的分辨率為2-4℃,如圖3.6所示[4]。</p><p> Msb 單位=℃
45、 Lsb</p><p><b> 符號位</b></p><p> 圖3.6 DS18B20的分辨率</p><p> (8) 內部存儲器分配:DS18B20H 高速暫存寄存器是DS18B20 高速暫存寄存器的存儲分配</p><p> DS18B20 采用TO—92封裝或8腳SOIC封裝。其引腳排
46、列及含義如下圖3-6所示。</p><p> DS18B20 的供電方式有兩種: 一種是寄生電源;另一種為外電源供電,因為多個器件掛在總線上,為了識別不同的器件,在程序設計中一般有四個步驟:初始化命令;傳送ROM 命令;傳送RAM命令;數據交換命令。本設計在軟件介紹部分會就DS18B20 溫度傳感器件具體介紹其每一部分的時序。</p><p><b> 電源電路</b&
47、gt;</p><p> 電源能否提供穩(wěn)定的電壓是一個系統(tǒng)能否穩(wěn)定運行的前提,沒有一個穩(wěn)定的硬件系統(tǒng)作為基礎,所有的軟件控制都無從談起,所以系統(tǒng)電源必須是穩(wěn)定可靠的。線性電源技術很成熟,制作成本較低,可以達到很高的穩(wěn)定度,波紋也很小,而且沒有開關電源具有的干擾與噪音,在這里選擇用線性穩(wěn)壓芯片LM7805,其電路圖如圖3-8:LM7805電源電路。用lm78系列三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路內
48、部還有過流、過熱及調整管的保護電路,使用起來可靠、方便,而且價格便宜。</p><p> 圖3-8:LM7805電源電路</p><p><b> 按鍵輸入電路</b></p><p> 按鍵的設置可以將報警的溫度上限進行修改。當按鍵按下時,相應的I/O為低電平,單片機會自行判斷程序的設置值,并且在LED上顯示出來;設置按鍵與單片機的pi
49、n腳接口圖如圖3-9按鍵輸入電路</p><p> 圖3-9按鍵輸入電路</p><p><b> 數目管顯示電路</b></p><p> 數碼管在工業(yè)控制中有著很廣泛的應用,例如用來顯示溫度、數量、重量、日期、時間,還可以用來顯示比賽的比分等,具有顯示醒目、直觀的優(yōu)點.無論是共陰極還是共陽極的數碼管,都分段碼和位碼,要想讓它亮必須驅動
50、它! 以共陽極4位數碼管為例,即首先要選中你想要電亮的數碼管的位,要想讓4個數碼管全亮須4個位全選中,所謂選中的含義就是給高電平(共陽極)。數碼管分8個段,即段碼,每個段的亮滅都對應著一個數字或字母,想讓哪一段亮就給哪段送低電平。其中掃描分靜態(tài)掃描和動態(tài)掃描! 靜態(tài)掃描比動態(tài)掃描簡單些。動態(tài)掃描他在沒個時間只能點亮一位數碼管,但是由于掃描頻率的設置,單片機的速度是很快的,但幾十MS內就能讓4位數碼管循環(huán)亮滅很多次,這些人的肉眼是分辨不出
51、來的,數碼管的亮度可以通過軟件設置(掃描頻率的設置)調整。</p><p> 每個數碼管都有a、b、c、d、e、f、g七個筆劃和一個小數點DP,這八個聯(lián)對應二極管陽極,陰極都聯(lián)在一起(稱共陰極)。以四位數碼管矩陣為例,四個數碼管的a、b、c、d、e、f、g七個筆劃和一個小數點DP電極分別并聯(lián)在一起。當c行高電平,3列低電平,其他行列都為高阻態(tài)時,第三個數碼管的c筆劃亮,通過掃描方式在1/20秒內四個數碼管的筆劃
52、該亮的都亮一次,由于視覺暫留,就會看到結果。</p><p> 本設計是通過三極管來驅動數碼管顯示,當基極電流很小時,無論基極電流如何變化,集電極電流都接近為0,集電極電流不隨基極電流而變化,也就是管子不導通;當基極電流增大到一定值以后,集電極電流此后大于0,且集電極電流隨著基極電流而變化,這是放大狀態(tài);當基極電流繼續(xù)增大,達到一定值以后,集電極電流此后再也大不上去了,此后即便是基極電流再增加,集電極電流也不能
53、增大,即飽和了。對于單片機端口通過晶體管驅動負載的情況,無論負載是數碼管還是繼電器,晶體管都只能工作在截止狀態(tài)或飽和狀態(tài),是不能工作在放大狀態(tài)的。</p><p> 本設計每個三極管負責一個位選,。當置于低電平時才有效,每個數碼管都會顯示一個相同的數字,所以然后需把其他三個數碼管置高電平。通過這種方法就能把溫度測出來。數碼管連接如下圖3-10所示。</p><p> 圖3-10:數碼管
54、與單片機接口電路</p><p><b> 聲光報警模塊電路</b></p><p> 當發(fā)生報警事件時,除了顯示溫度數值外,還要有聲光報警功能。用聲音或是燈光報警時,連續(xù)的聲響或常亮的燈光往往不易被人們的警覺,只有斷續(xù)的聲音或山所的燈光才能取得最佳的報警效果。就利用時鐘翻轉 P15和P14來轉換電平,產生短促的報警聲音或閃爍燈光。當濃度正常時,管腳P1
55、4為高電平和P15為低電平,此時D1燈滅,蜂鳴器不工作;當濃度達到報警溫度上限或者下限時,管腳P16呈現(xiàn)低電平,從而使D1燈亮,同時管腳P14為高電平,使三極管的集電極與發(fā)射極導通,蜂鳴器發(fā)出報警聲音。電路的連接圖3-11如下</p><p> 圖3-11聲光報警模塊</p><p><b> 整體電路</b></p><p><b&
56、gt; 整體電路如圖4-1</b></p><p><b> 圖4-1整體電路</b></p><p><b> 軟件設計</b></p><p> 5.1 工作方案簡介</p><p> 程序處理是整個系統(tǒng)的關鍵,即簡潔的硬件結構是靠復雜的軟件來支持的。本設計采用的是基
57、于單總線協(xié)議的溫度測控系統(tǒng)。</p><p> 系統(tǒng)上電復位后先處于停止狀態(tài),等待輸入初始報警溫度。顯示器顯示輸入的溫度;報警溫度設定好后就可以按確定鍵啟動系統(tǒng)工作了。溫度檢測系統(tǒng)不斷定時檢測當前溫度,并送往顯示器顯示,達到報警值時啟動報警電路報警。</p><p> 5.2 主程序流程圖</p><p> 圖5-1主程序流程圖</p>&
58、lt;p> 5.3 功能模塊</p><p> 根據上面對工作流程的分析,系統(tǒng)軟件可以分為以下幾個功能模塊:</p><p> (1)溫度檢測及溫度值變換:由單總線溫度傳感器DS18B20完成</p><p> ?。?)鍵盤管理:監(jiān)測鍵盤輸入,接收初始時間設置,接收報警溫度設置,啟動系統(tǒng)工作。</p><p> ?。?)報警
59、:當檢測到的溫度超越報警溫度時,蜂鳴器發(fā)出報警信號,發(fā)光二極管閃爍。 </p><p> 5.4 由DS18B20完成溫度檢測模塊</p><p> 運用單總線協(xié)議(一線協(xié)議)構建的單總線指令系統(tǒng)是單總線網絡運行的軟件基礎,典型的單總線指令序列如下:</p><p><b> 第一步 :初始化</b></p><
60、p> 第二步 :ROM命令(跟隨需要交換的數據)</p><p> 第三步 :功能命令(跟隨需要交換的數據)</p><p> 每次訪問單總線器件,必須嚴格遵守這個命令序列,如果出現(xiàn)序列混亂,則單總線器件不會響應主機。但是,這個準則對于搜索ROM命令和報警搜索命令例外,在執(zhí)行兩者中的任何一條命令之后,主機不能執(zhí)行其后的功能命令,必須返回至第一步。</p><
61、p><b> (1) 初始化</b></p><p> 基于單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主機發(fā)出復位脈沖和從機響應的應答脈沖組成。應答脈沖使主機知道,總線上有從機設備,且準備就緒。</p><p><b> (2) ROM命令</b></p><p> 基于單總線上的所有傳輸過程都是
62、以初始化開始的,初始化過程由主機發(fā)出復位脈沖和從機響應的應答脈沖組成。應答脈沖使主機知道,總線上有從機設備,且準備就緒。</p><p> 在主機檢測到應答脈沖后,就可以發(fā)送ROM命令。這些命令與各個從機設備的唯一的64位ROM有關。這些命令還允許主機能檢測到總線上有多少個從機設備以及其設備類型,或者有沒有設備處于報警狀態(tài)。從機設備可能支持5種ROM命令(實際情況與具體型號有關),每種命令長度為8位。主機在發(fā)出
63、功能命令之前,必須送出合適的ROM命令。具體的傳送ROM命令格式如表5-1所示。</p><p> 表5-1 DS18B20的ROM命令表</p><p><b> (3) 功能命令</b></p><p> 表5-2 DS18B20功能命令表</p><p> 注 釋 :①在溫度轉換和復制暫存器數據至EEP
64、ROM期間,主機必須在單總線上允許強上拉,并且在此期間,總線上不能進行其它數據傳輸。②通過發(fā)送復位脈沖,主機能夠在任何時候中斷數據傳輸。③在復位脈沖發(fā)送以前,必須寫入全部的三個字節(jié)。</p><p> 主機發(fā)送ROM指令,以訪問某個指定的DS18B20,接著就可以發(fā)送DS18B20支持的某個功能命令。這些命令允許主機寫入或讀出DS18B20暫存器、啟動溫度轉換以及判斷從機的供電方式。DS18B20的功能命令如表
65、5-2所示。不同類型的單總線芯片有不同的功能命令,也有的芯片無功能命令(如可尋址開關芯片DS2405),在實際應用中可根據設計的需要加以選擇。</p><p> 5.5 按鍵輸入模塊</p><p> 上電或復位后系統(tǒng)處于鍵盤管理狀態(tài),其功能是監(jiān)測鍵盤輸入,接收初始時間設置、報警溫度設置和顯示時間等命令。鍵盤掃描流程圖如下圖5-3所示。</p><p>
66、 圖5-3 鍵盤掃描流程圖</p><p> 5.6 聲光報警模塊</p><p> 報警溫度的設置是在單片機中設置一個單元存放預先設置好的報警溫度。將單片機從DS18B20中讀取的溫度與報警溫度進行比較。當發(fā)現(xiàn)DS18B20溫度大于預設的報警溫度,則讓單片機發(fā)出報警信號,發(fā)光二極管閃爍,蜂鳴器發(fā)出蜂鳴聲。</p><p><b> 總結與體會
67、</b></p><p> 本設計以單總線技術為主線,詳盡的討論了單總線技術的軟、硬件基礎及單總線協(xié)議、單總線芯片的相關指令系統(tǒng),并將其運用到多路溫度測控系統(tǒng)。在系統(tǒng)的研制和設計編寫過程中,得出了如下體會。多路溫度測量在工業(yè)生產和交通設備運行監(jiān)控中起著相當重要的作用,由于誤操作或是器件的性能問題導致的設備引起的意外事故,通過對多個器件的溫度檢測和實時溫度的數據采集,獲得溫度值,可以有效的避免事故的發(fā)
68、生,同時也為技術分析提供重要的實時的數據記錄資料。</p><p> 整個系統(tǒng)的設計說明以單總線技術控制、控制為核心,充分發(fā)揮了單片機串行總線的優(yōu)點。但是由于時間的關系,設計的軟、硬件的許多功能還有待完善和改進。</p><p> 隨著計算機技術的飛速發(fā)展和普及,數據采集系統(tǒng)在多個領域有著廣泛的應用。數據采集是工、農業(yè)控制系統(tǒng)中至關重要的一環(huán),在醫(yī)藥、化工、食品、等領域的生產過程中,往
69、往需要隨時檢測各生產環(huán)節(jié)的溫度、濕度、流量及壓力等參數。同時,還要對某一檢測點任意參數能夠進行隨機查尋,將其在某一時間段內檢測得到的數據經過轉換提取出來,以便進行比較,做出決策,調整控制方案,提高產品的合格率,產生良好的經濟效益。 </p><p> 隨著工、農業(yè)的發(fā)展,多路數據采集勢必將得到越來越多的應用,為適應這一趨勢,作這方面的研究就顯得十分重要。在科學研究中,運用數據采集系統(tǒng)可獲得大量的動態(tài)信息,也是獲
70、取科學數據和生成知識的重要手段之一。總之,不論在哪個應用領域中,數據采集與處理將直接影響工作效率和所取得的經濟效益。</p><p> 此外,計算機的發(fā)展對通信起了巨大的推動作用.計算機和通信緊密結合構成了靈活多樣的通信控制系統(tǒng),也可以構成強有力的信息處理系統(tǒng),這樣對社會的發(fā)展產生了深遠的影響。數據通信是計算機廣泛應用的必然產物。</p><p> 通過這次的課程設計的制作讓我對單片機
71、的理論有了更加深入的了解,同時通過這次實踐使我更深刻的體會到了理論聯(lián)系實際的重要性,我們在今后的學習工作中會更加的注重實際 理論與實際的結合!</p><p><b> 致謝</b></p><p> 在本次課程設計中,不僅自己付出了很多心血,也得到了很多老師和同學的支持,為我創(chuàng)造了很多有利條件,在這里,我要特別感謝我的導師席老師,在課程設計的開始,單老師給了我很
72、多幫助,指導我了解了很多單片機的相關知識,并在當我設計遇到困難時,及時的給予幫助和鼓勵,同時,對我其他學科的鼓勵也滲透在課程設計的同時,給了我莫大的信心,為我順利完成課程設計起到了非常重要的作用。同時。我還要感謝實習組及實驗室的所有老師,為我的課程設計提供了非常便利的條件。最后還要感謝幫助我的同學,在我遇到困難時給予我耐心的幫助。</p><p> 再次對在本次課程設計中給予過我?guī)椭睦蠋熀屯瑢W至上我最真摯的謝
73、意。</p><p><b> 參考文獻</b></p><p> [1]李全利.遲榮強.單片機原理及接口技術[M]. 北京:高等教育出版社.</p><p> [2]左冬紅.現(xiàn)場單總線接入技術研究[D]. 武漢:華中科技大學.</p><p> [3]陳志英.李光輝.單總線(1 - Wire Bus) 技術及其
74、應用. 中國學術期刊全文數據庫[DB/OL].2003 – 8/2006 – 06.</p><p> [4]劉鳴.車立新.陳興梧.趙煜.溫度傳感器DS18B20的特性及程序設計方法. 中國學術期刊全文數據庫[DB/OL].2001 – 10/2006 – 06.</p><p> [5]DALLAS DS1338 2-Wire RTC with 56-Byte NV RAM<
75、/p><p> http://www.maxim-ic.com.cn/qa/info/errata/.</p><p> [6]龔福民.I2C 串行總線及其軟件接口.中國學術期刊全文數據庫[DB/OL]. 1998 - 04/2006 – 06.</p><p><b> 附錄一元器件清單</b></p><p>&l
76、t;b> 附錄二軟件清單</b></p><p> #include <reg52.h> </p><p> #include "18b20.h"</p><p> #include "delay.h"</p><p> sbit KEY1=P1^0;</p
77、><p> sbit KEY2=P1^1;</p><p> sbit KEY3=P1^3;</p><p> sbit LED=P1^5;</p><p> sbit BEEP=P1^6;</p><p> sbit DATE=P1^7;</p><p> bit ReadTempFl
78、ag;</p><p> unsigned char code ds18b20_num1[8]={0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e};</p><p> unsigned char code ds18b20_num2[8]={0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xB9};</p><p
79、> unsigned char code ds18b20_num3[8]={0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xE0};</p><p> unsigned char code ds18b20_num4[8]={0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xD7};</p><p> unsigned char
80、code ds18b20_num5[8]={0x28,0x34,0xc5,0xb8,0x00,0x00,0x00,0x52};</p><p> unsigned char code ds18b20_num6[8]={0x28,0x35,0xc5,0xb8,0x00,0x00,0x00,0x65};</p><p> unsigned char code ds18b20_num7[8]
81、={0x28,0x36,0xc5,0xb8,0x00,0x00,0x00,0x3c};</p><p> unsigned char code ds18b20_num8[8]={0x28,0x37,0xc5,0xb8,0x00,0x00,0x00,0x0B};</p><p> unsigned char code ds18b20_num9[8]={0x28,0x38,0xc5,0xb
82、8,0x00,0x00,0x00,0x2F};</p><p> unsigned char code ds18b20_num10[8]={0x28,0x39,0xc5,0xb8,0x00,0x00,0x00,0x18};</p><p> unsigned char code ds18b20_num11[8]={0x28,0x3a,0xc5,0xb8,0x00,0x00,0x00,0
83、x41};</p><p> unsigned char code ds18b20_num12[8]={0x28,0x3b,0xc5,0xb8,0x00,0x00,0x00,0x76};</p><p> unsigned char ROM_NUM[8];</p><p> unsigned char num;</p><p> un
84、signed char num1;</p><p> unsigned char sn[8];</p><p> unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> unsigned char code WeiMa[]={0xfe
85、,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p> unsigned char TempData[8];</p><p> unsigned char TempData1[8];</p><p> unsigned int MyData=24;</p><p> unsigned char i
86、,j;</p><p> unsigned char k;</p><p> void Display(unsigned char FirstBit,unsigned char Num);</p><p> void Display1(unsigned char FirstBit,unsigned char Num);</p><p>
87、 void Init_Timer0(void);</p><p> void KeyScan();</p><p> void main (void)</p><p> { </p><p> unsigned int TempH,TempL,temp;</p><p>
88、unsigned int TempH1,TempL1,temp1;</p><p> Init_Timer0();</p><p><b> MOTOR=0;</b></p><p> temp=ReadTemperature();</p><p> delay(200);</p><p>
89、; TempData[0]=0x39;</p><p> TempData[1]=0x39;</p><p> TempData[2]=0;</p><p> TempData[3]=DuanMa[8]; //十位溫度</p><p> TempData[4]=DuanMa[5]|0x80; //個位溫度,帶小數點</p&
90、gt;<p> TempData[5]=DuanMa[0];</p><p> TempData[6]=0x39; //顯示C符號</p><p> while (1) </p><p><b> {</b></p><p> if(KEY1==1)</p&g
91、t;<p><b> {</b></p><p> if(ReadTempFlag==1)</p><p><b> {</b></p><p><b> k++;</b></p><p><b> if(k==13)</b>&l
92、t;/p><p><b> {</b></p><p><b> k=1;</b></p><p> temp=ReadTemperature();</p><p> delay(600);</p><p><b> }</b></p>
93、<p> temp=ReadTemperature();</p><p> delay(600);</p><p> ReadTempFlag=0;</p><p> temp=ReadTemperature();</p><p> delay(600);</p><p> TempH=tem
94、p>>4;</p><p> TempL=temp&0x0F;</p><p> TempL=TempL*6/10;//小數近似處理</p><p> TempData[2]=0;</p><p> TempData[3]=DuanMa[(TempH%100)/10]; //十位溫度</p><
95、p> TempData[4]=DuanMa[(TempH%100)%10]|0x80; //個位溫度,帶小數點</p><p> TempData[5]=DuanMa[TempL];</p><p> TempData[6]=0x39; //顯示C符號 </p><p> if(temp>MyData)//如果超溫則提示&
96、lt;/p><p><b> {</b></p><p> TempData[7]=0x76;//顯示"H"</p><p><b> MOTOR=1;</b></p><p> // for(j=25;j>0;j--)</p><p>
97、;<b> // {</b></p><p> // for(i=35;i>0;i--)</p><p> // {</p><p> //delay(60);</p><p> //SPEAK=!SPEAK;</p>
98、;<p> // }</p><p> // }</p><p><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p>
99、 TempData[7]=0;;</p><p><b> num1++;</b></p><p><b> }</b></p><p> if((k==12)&&(num1!=12))</p><p><b> {</b></p><
100、;p><b> MOTOR=1;</b></p><p><b> num1=0;</b></p><p><b> }</b></p><p> if((k==12)&&(num1==12))</p><p><b> {</b
101、></p><p><b> MOTOR=0;</b></p><p><b> num1=0;</b></p><p><b> SPEAK=0;</b></p><p><b> }</b></p><p>
102、if(MOTOR==1)</p><p><b> {</b></p><p> for(j=25;j>0;j--)</p><p><b> {</b></p><p> for(i=35;i>0;i--)</p><p><b> {<
103、;/b></p><p> delay(60);</p><p> SPEAK=!SPEAK;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
104、<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> KeyScan();</p><p>
105、temp1=MyData;</p><p> TempData1[0]=0;</p><p> TempH1=temp1>>4;</p><p> TempL1=temp1&0x0F;</p><p> TempL1=TempL1*6/10;//小數近似處理</p><p> TempDa
106、ta1[7]=0;</p><p> TempData1[1]=0;</p><p> if((TempH1/100==0)&&((TempH1%100)/10==0))//消隱</p><p> TempData1[2]=0;</p><p><b> else</b></p>&
107、lt;p> TempData1[3]=DuanMa[(TempH1%100)/10]; //十位溫度</p><p> TempData1[4]=DuanMa[(TempH1%100)%10]|0x80; //個位溫度,帶小數點</p><p> TempData1[5]=DuanMa[TempL1];</p><p> TempData1[6]=0x
108、39; //顯示C符號</p><p> Display1(0,8);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void Display
109、(unsigned char FirstBit,unsigned char Num)</p><p><b> {</b></p><p> static unsigned char i=0;</p><p> DataPort=0; </p><p> LATCH1=1; </p>&
110、lt;p><b> LATCH1=0;</b></p><p> DataPort=WeiMa[i+FirstBit]; </p><p> LATCH2=1; </p><p><b> LATCH2=0;</b></p><p> DataPort=TempData[i]
111、; </p><p> LATCH1=1; </p><p><b> LATCH1=0;</b></p><p><b> i++;</b></p><p> if(i==Num)</p><p><b> i=0;</b></
112、p><p><b> }</b></p><p> void Display1(unsigned char FirstBit,unsigned char Num)</p><p><b> {</b></p><p> static unsigned char i=0;</p>&
113、lt;p> DataPort=0; </p><p> LATCH1=1; </p><p><b> LATCH1=0;</b></p><p> DataPort=WeiMa[i+FirstBit]; </p><p> LATCH2=1; </p><p>
114、;<b> LATCH2=0;</b></p><p> DataPort=TempData1[i]; </p><p> LATCH1=1; </p><p><b> LATCH1=0;</b></p><p><b> i++;</b></p>
115、;<p> if(i==Num)</p><p><b> i=0;</b></p><p><b> }</b></p><p> void Init_Timer0(void)</p><p><b> {</b></p><p&g
116、t; TMOD |= 0x01; </p><p> TH0=0x00; </p><p><b> TL0=0x00;</b></p><p> EA=1; </p><p> ET0=1; </p><p>
117、TR0=1; </p><p><b> }</b></p><p> void Timer0_isr(void) interrupt 1 </p><p><b> {</b></p><p> static unsigned int num;</p>&
118、lt;p> TH0=(65536-1000)/256; </p><p> TL0=(65536-1000)%256;</p><p> if(KEY1==1)</p><p><b> {</b></p><p> Display(0,8); </p><p>
119、<b> num++;</b></p><p> if(num==2000) </p><p><b> {</b></p><p><b> num=0;</b></p><p> ReadTempFlag=1; </p><p&g
120、t;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void KeyScan()</p><p><b> {</b></p><p> if(KEY1
121、==0)</p><p><b> {</b></p><p> if((KEY2==0)||(KEY3==0))</p><p><b> {</b></p><p> delay(30);</p><p> if((KEY2==0)||(KEY3==0))<
122、;/p><p><b> {</b></p><p> if(KEY2==0)</p><p><b> {</b></p><p> while(!KEY2);</p><p> if(MyData<2048)</p><p>
123、<b> {</b></p><p> MyData+=17;</p><p> if(MyData>2048)</p><p><b> {</b></p><p> MyData=2048;</p><p><b> }</b>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子信息工程課程設計--溫度測量系統(tǒng)設計
- dsp課程設計--電子信息工程
- 電子信息系統(tǒng)綜合課程設計
- 電子信息工程課程設計實施方案
- 聲光控開關的設計-電子信息工程課程設計
- 心率計電子系統(tǒng)課程設計報告-電子信息工程專業(yè)
- 心率計電子系統(tǒng)課程設計報告-電子信息工程專業(yè)
- 電子課程設計——溫度測量儀
- 電子信息工程課程設計-路燈控制器的設計
- 電子信息工程課程設計--數據采集系統(tǒng)動態(tài)有效位測試
- 溫度控制課程設計--數字溫度測量系統(tǒng)
- 電子信息工程課程設計---多路彩燈控制器的設計
- 溫度測量課程設計
- 糧庫溫度測量顯示系統(tǒng)課程設計
- 數字溫度測量系統(tǒng)課程設計論文
- 電子裝置課程設計報告---溫度檢測系統(tǒng)設計
- 聲光控延時開關課程設計報告-電子信息工程畢業(yè)論文
- 數字電子技術課程設計---溫度測量與控制設計
- 溫度測量儀課程設計
- 溫度測量儀課程設計
評論
0/150
提交評論