溫度控制器課程設(shè)計書_第1頁
溫度控制器課程設(shè)計書_第2頁
溫度控制器課程設(shè)計書_第3頁
溫度控制器課程設(shè)計書_第4頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、溫度控制器課程設(shè)計書1 前言社會在發(fā)展,科技在進步,測溫儀器在各個領(lǐng)域的應(yīng)用,各種溫度控制系統(tǒng)迅速發(fā)展。近年來,溫度控制系統(tǒng)已廣泛應(yīng)用各個方面,然而溫度控制一直是一個未開發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個實際問題。針對這種實際情況,設(shè)計一個溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實際意義。溫度是一個重要的物理量,它反映了物體的冷熱程度,與自然界中的各種物理與化學(xué)過程相聯(lián)系,再生產(chǎn)過程中,各個環(huán)節(jié)都與溫度有緊密聯(lián)系,因此人們非常重視溫度的測量。溫度概念的產(chǎn)生及溫度的測量都是以熱平衡為基礎(chǔ),當(dāng)兩個冷熱程度不同的物體接觸后就會產(chǎn)生導(dǎo)熱 , 換熱,換熱結(jié)束后兩物體處于平衡狀態(tài),因此他們具有最本質(zhì)的性質(zhì)。溫

2、度控制系統(tǒng)對溫度進行檢測和控制, 任何工廠在生產(chǎn)過程中如果沒有合適的溫度環(huán)境,很多的器件甚至是電子設(shè)備都不能正常的工作,從而多生產(chǎn)的產(chǎn)品質(zhì)量有很大的影響,所以各行各業(yè)對溫度的要求的愈來愈高,所以,溫度控制系統(tǒng)的作用非常重要。溫度控制系統(tǒng)的控制系統(tǒng)是溫度,在我們?nèi)粘I钪?,溫度控制使非常重要的,在溫室、水池、電源等場所不能對溫度有效的控制,則會出現(xiàn)很多事故,所以為了避免此類事故的發(fā)生,溫度控制應(yīng)當(dāng)受到重視。本設(shè)計不僅實現(xiàn)了對溫度的檢測,還實現(xiàn)了溫度控制、顯示功能,當(dāng)溫度大于設(shè)定的溫度時,報警器報警;當(dāng)溫度小于設(shè)定的值時,報警器不報警,從而實現(xiàn)對溫度的控制,并且還可以實現(xiàn)按鍵復(fù)位功能。2 總體方案

3、方案一溫度測量的設(shè)計,可以采用熱敏溫度傳感器等對溫度進行測量,在將被測溫度變化的電壓或電流采集過來,進行 A/D 轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示液晶顯示屏上,就可以將被測溫度顯示出來,這種設(shè)計需要用到 A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。運用這種方案時模擬信號在傳輸過程中存在損耗并且容易受到外界的干擾,導(dǎo)致測量溫度不準(zhǔn)確。溫度檢測變送器A/D轉(zhuǎn)換圖 2.1溫度檢測流程圖方案二使用溫度傳感器 DS18B20直接對溫度進行檢測和轉(zhuǎn)換, 在結(jié)合 89C52單片機與 1602 液晶顯示器就能對溫度進行顯示。比較以上兩種方案, 很容易看出, 采用方案二,電路比較簡單, 軟件設(shè)計容易實現(xiàn),故

4、實際設(shè)計中擬采用方案二。本設(shè)計方框圖如圖 1.1 所示,它由四部分組成 : 控制部分主芯片采用單片機89C52;顯示部分采用 LCD1602液晶顯示器實現(xiàn)溫度顯示;溫度采集部分采用DS18B20溫度傳感器。報警裝置DS18B20LCD1602液晶顯示89C52單片機報警裝置圖 2.2溫度控制電路總體設(shè)計方案DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,完成對溫度信號的采集和轉(zhuǎn)換工作,數(shù)字溫度傳感器過 P1.7 引腳傳到單片機,單片機接受溫度并存儲并通過DS18B20把采集到的溫度通 P0 口連接 LCD160數(shù)字液晶顯示器顯示。通過P1.0口接報警裝置

5、,實現(xiàn)報警功能。3 單元模塊設(shè)計3.1 DS18B20 溫度檢測電路5V3U2P2.3VCC227.0DQ1GNDDS18B20圖 3.1 溫度檢測電路溫度檢測電路采用智能溫度傳感器 DS18B20,它與單片機相連只需要 3 線,減少了外部的硬件電路。 DS18B20主要性能特點如下:(1) 測溫的范圍為 55 125,最大分辨率可以達(dá)到 0.0625 ;(2) 電源電壓范圍為 3.0 5.5V;(3) 供電模式:寄生供電和外部供電;(4) 封裝形式有兩種: 3 腳的 TO-92 封裝和 8 腳的 SOIC封裝;(5) 可編程的溫度轉(zhuǎn)換分辨率,分辨率為 912 位( 包括 1 位符號位 ) ,

6、由配置寄存器決定具體位數(shù),配置寄存器的格式如表 3-1 所示。表 3-1 配置寄存器格式TMR1R011111其中 R1 R0是用來設(shè)定分辨率的,分辨率的定義如表3-2 所示 。表 3-2 DS18B20 分辨率的定義R1R0分辨率 /位溫度最大轉(zhuǎn)換時間 /ms00993.750110187.510113751112750由表 3-2 可以看出,分辨率設(shè)定得越高,溫度轉(zhuǎn)換所需要的時間就越長,因此應(yīng)根據(jù)實際應(yīng)用的需要來選擇合適的分辨率。本文中選取12 位分辨率,每隔 1 秒檢測一次溫度。3.2 單片機電路單片機電路如圖3.2 所示 ,U11918XTAL1XTAL2P0.0/AD039D038D

7、1P0.1/AD137D2P0.2/AD236D3P0.3/AD335D4P0.4/AD434D5P0.5/AD533D6P0.6/AD69RST29PSEN30ALE31vEA51P1.0/T22P1.1/T2EX3P1.24P1.35P1.46P1.57P1.68P1.7AT89C52P0.7/AD732D7P2.0/A821RS22RWP2.1/A923EP2.2/A1024DQP2.3/A11P2.4/A122526P2.5/A1327P2.6/A1428P2.7/A15P3.0/RXD1011P3.1/TXD12P3.2/INT013P3.3/INT114P3.4/T015P3.5/

8、T116P3.6/WR17P3.7/RD圖 3.2 單片機電路AT89C52是一款超強抗干擾 / 高速 / 低功耗的單片機, AT89C52是一個低電壓,高性能 CMOS 8位單片機,片內(nèi)含 8k bytes 的可反復(fù)擦寫的 Flash 只讀程序存儲器和 256 byte s 的隨機存取數(shù)據(jù)存儲器( RAM),器件采用 ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) MCS-51指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 Flash 存儲單元,功能強大的 AT89C52單片機可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。AT89C52 有 40 個引腳, 32 個外部雙向輸入 / 輸出( I/O

9、 )端口,同時內(nèi)含 2 個外中斷口, 3 個 16 位可編程定時計數(shù)器 ,2 個全雙工串行通信口, 2 個讀寫口線, AT89C52可以按照常規(guī)方法進行編程 , 但不可以在線編程 (S 系列的才支持在線編程 ) 。其將通用的微處理器和 Flash 存儲器結(jié)合在一起, 特別是可反復(fù)擦寫的 Flash 存儲器可有效地降低開發(fā)成本。3.3 顯示電路顯示模塊采用的是LCD1602液晶顯示如圖 3.3 。單片機微控制器通過對當(dāng)前溫度傳感器進行讀取獲得當(dāng)前溫度值,通過一定的運算后經(jīng)LCD1602液晶顯示屏顯示出來。芯片的工作電壓是 4.5 5.5V,能顯示兩行,每行顯示 16 個字符。除電壓、背光引腳及

10、8 個 I/O 引腳外,主要的控制引腳還有數(shù)據(jù) / 命令選擇 RS引腳 , 該引腳為高電平時表示 I/O 引腳出現(xiàn)的是數(shù)據(jù),該引腳為低電平時表示 I/O 引腳出現(xiàn)的是命令;讀 / 寫選擇引腳及使能引腳 E( 該引腳為高電平時對LCD1602的操作才有效 ) 。LCDLM016LS D ES D EV V V12 31VRS WR R E45 6012.2 2 2 P P P01234567DDDDDDDD789012340121111134567.00000000PPPPPPPP圖 3.3 LCD1602 液晶顯示3.4 報警電路報警電路采用蜂鳴器作為發(fā)生裝置,當(dāng)溫度高于設(shè)定的上限值時,蜂鳴器

11、發(fā)出報警聲作為提醒,蜂鳴器會一直發(fā)出聲音直到溫度低于設(shè)定上限值。3.5 DS18B20 溫度傳感器簡介溫度的采集和轉(zhuǎn)換DS18B20的測溫原理如圖 3.4 所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變, 所產(chǎn)生的信號作為減法計數(shù)器 2 的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時, DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定, 每次測量前,首先將 - 55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器 1 和溫度寄存器中, 減法計數(shù)器

12、1 和溫度寄存器被預(yù)置在 - 55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器 1 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器 1 的預(yù)置值減到 0 時溫度寄存器的值將加 1,減法計數(shù)器 1 的預(yù)置將重新被裝入,減法計數(shù)器 1 重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器 2 計數(shù)到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。斜坡式累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值。斜坡累加器預(yù)置比較低溫度系數(shù)振蕩器計數(shù)器預(yù)置=0溫度寄存器高溫度系數(shù)振蕩

13、器計數(shù)器=0圖3.4溫度測量電路DS18B20 接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16 位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、 2 字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625 LSB形式表示。當(dāng)符號位 S0 時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當(dāng)符號位 S1 時,表示測得的溫度值為負(fù)值,要先將補碼變成原碼,再計算十進制數(shù)值,表 3-3 是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)。表 3-3 溫度與數(shù)據(jù)的關(guān)系溫度/數(shù)據(jù)輸出(二進制)數(shù)據(jù)輸出(十六進制)+1250000000011111010

14、00FA+2500000000001100100032+1/20000000000000001000100000000000000000000-1/21111111111111111FFFF-251111111111001110FFCE-551111111110010010FF92的工作原理DS18B20的共做時序(1)初始化時序控制器 Tx復(fù)位脈沖控制器 RX M IX480us480us-960us等待15-存在脈沖 60-240us60us圖 3.5初始化時序圖總線上的所有傳輸過程都是以初始化開始的,主機響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機知道,總線上有從機設(shè)備,且準(zhǔn)備就緒。主機輸出低電平,保持

15、低電平時間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機釋放總線,上拉電阻將總線拉高,延時1560us,并進入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時480us。(2)寫時序控制器寫“隙 60us0 ”時間間 TX 120us控制器寫“隙 1us1 ”時間間 1usd s 18b 20 采樣15u15u30us15u15u30usssss圖 3.6寫時序圖當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,寫時序開始。有兩種情況,寫 1 時間間隙和寫 0 時間間隙,所以寫時間間隙最少持續(xù) 60us,包括兩個寫周期至少 1us的恢復(fù)時間, I/O 線電平變低后, DS18B20在一個 5us 到 6

16、0us 的窗口內(nèi)對 I/O 線采樣,如果線上時高電平,就是寫 1,如果線上是低電平,就是寫 0。(3) 讀時序主機寫“0 ”時序主機寫“1 ”時序 1us 1us主主機機采采15us樣15us樣45us45us圖 3.7讀時序圖總線器件僅在主機發(fā)出讀時序是,才向主機傳輸數(shù)據(jù),所以,在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便從機能夠傳輸數(shù)據(jù)。所有讀時序至少需要 60us。當(dāng)主機把高電平拉到低電平時寫時間開始, 在 2 次獨立的讀時序之間至少需要 1us 的恢復(fù)時間。每個時序都由主機發(fā)起,至少拉低總線 1us。主機在讀時序期間必須釋放總線,并且在時序起始后的 15us 之內(nèi)采樣總線狀態(tài)。 主

17、機輸出低電平延時 2us,然后主機轉(zhuǎn)入輸入模式延時 12us,然后讀取總線當(dāng)前電平,然后延時 50us。DS18B20溫度流程初始化DS18B20跳過匹配ROM溫度變換延時1s數(shù)碼管顯示轉(zhuǎn)換成顯示碼讀暫存器跳過 ROM匹配圖 3.8 DS18B20 溫度流程圖ROM操作命令表 3-4 ROM 操作命令指令約定代碼功能讀 ROM33H讀 DS18B20ROM中的編碼符合 ROM55H發(fā)出此命令之后, 接著發(fā)出 64 位 ROM編碼,訪問單線總線與改變碼相對應(yīng)得 DS18B20使之做出響應(yīng),為下一步對該DS18B20的讀寫做準(zhǔn)備搜索 ROM0F0H讀 ROM跳過 ROM0CCH忽略 64 位 RO

18、M地址,直接向 DS18B20發(fā)溫度變換命令, 適用于單片工作告警搜索 ROM0ECH執(zhí)行后,只有溫度超過設(shè)定值上限或者下限的片子才做出響應(yīng)溫度變換44H啟動 DS18B20進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為500MS,結(jié)果存入內(nèi)部 9 字節(jié) RAM中讀暫存器0BEH讀內(nèi)部 RAM中 9 字節(jié)的內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部 RAM的第 3,4 字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟讀命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將 E2PRAM中第 3,4 字節(jié)內(nèi)容復(fù)制到E2PRAM中重調(diào) E2PRAM0BBH23,4 字節(jié)將 E PRAM中內(nèi)容恢復(fù)到 RAM中的第讀供電方式0B4H讀 DS18B20的供電

19、模式,寄生供電時DS18B20發(fā)送“ 0”,外接電源供電 DS18B20發(fā)送“ 1”4 軟件設(shè)計高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機,用戶編程時不必仔細(xì)了解所用的計算機的具體性能與指令系統(tǒng),而且語句的功能強,常常一個語句已相當(dāng)于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學(xué)習(xí)和交流,而 MCS52 指令系統(tǒng)的指令長度較短,它在存儲空間和執(zhí)行時間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用要求很適合。而且 MCS52 指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可以形成一個相當(dāng)完整的位操作指令子集,這是 MCS52 指令系

20、統(tǒng)主要的優(yōu)點之一。對于要求反應(yīng)靈敏與控制及時的工控、檢測等實時控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言簡明、整齊、執(zhí)行時間短和易于使用的特點。圖 4.1 系統(tǒng)總流程圖系統(tǒng)程序主要有主程序和 LCD1602初始化子程序及讀寫時序程序、 DS18B20復(fù)位及讀寫時序子程序溫度數(shù)字處理子程。4.1 系統(tǒng)調(diào)試讀出溫度子程序圖 4.2 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的 9 字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。DS18B20的各個命令對時序的要求特別嚴(yán)格,所以必須按照所要求的時序才能達(dá)到預(yù)期的目的, 同時,要注意讀進來的是

21、高位在后低位在前,共有 12 位數(shù),小數(shù) 4 位,整數(shù) 7 位,還有一位符號位。4.2 系統(tǒng)調(diào)試寫入子程序圖 4.3 寫入子程序流程圖5 系統(tǒng)調(diào)試硬件調(diào)試是對溫度顯示器 LCD1602進行調(diào)試,溫度顯示器通電后不顯示溫度,使用示波器對 LCD1602、單片機的每個管腳進行測試,對其進行分析是由于電阻值過大,調(diào)節(jié)滑動變阻器減小其阻值,液晶顯示器顯示溫度為 0。軟件調(diào)試是在溫度大于 31,而報警器不報警,經(jīng)檢查,發(fā)現(xiàn)是溫度寫成 31000。多寫了兩個 0,改正過后又發(fā)現(xiàn)報警器在溫度大于 31時,只響一次。把如下程序的 =改為就排出了這個異常。void main()init_play();/初始化顯

22、示while(1)read_temp();/讀取溫度ds1820disp();/顯示if(tvalue310)Beef=0;elseBeef=1;6 總結(jié)與體會本設(shè)計使用的溫度控制器結(jié)構(gòu)簡單、測溫準(zhǔn)確,具有一定的實際應(yīng)用價值。該溫度控制器只是 DS18B20在溫度控制領(lǐng)域的一個簡單實例,還有許多需要完善的地方,例如可以將測得的溫度通過單片機與通訊模塊相連接,以手機短消息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進行監(jiān)控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉儲等行業(yè)。 本溫度控制系統(tǒng)可以應(yīng)用于多種場合,像育嬰房的溫度、 水溫的控制。用戶可靈活選擇本設(shè)計的用途,有很強的實用價值。通過

23、這次課程設(shè)計,讓我對單片機有了進一步的了解、鞏固和加深,并且對所學(xué)知識的得以實際應(yīng)用。與我所學(xué)芯片再一次零距離接觸,進一步加深我對各個芯片的功能和特性的了解。微機控制與接口技術(shù)課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識 , 發(fā)現(xiàn)、提出、分析和解決實際問題 , 鍛煉實踐能力的重要環(huán)節(jié) , 是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程. 回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在短短的兩個星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次微機控制與接口技術(shù)的課程設(shè)計使我懂得了理論與

24、實際相結(jié)合是很重要的, 只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨立思考的能力。在此次溫度控制器的設(shè)計過程中,讓我了解到了現(xiàn)代電子產(chǎn)品的設(shè)計和工作原理。以前在實際生活中看到的電子產(chǎn)品例如彩燈、交通燈、電磁爐、電飯煲等,就只會用他們并不知道他們的工作原理,通過這次課程設(shè)計對這些產(chǎn)品的原理有了深入的了解。同時這次課程設(shè)計大大提高了我的動手能力,為我以后的工作和學(xué)習(xí)奠定了基礎(chǔ),在以后的生活中我也可以用我所學(xué)的知識和對芯片功能的了解來設(shè)計一些日常生活所需的電子產(chǎn)品。實訓(xùn)時間很短,但是通過這次實訓(xùn)可以學(xué)到很多書本沒有的東西,有了這一次

25、的實踐經(jīng)驗,我們的動手能力和思維能力也相應(yīng)的得到了的提高,這次實訓(xùn)進一步鍛煉了自己的邏輯思維能力,并從中總結(jié)出寶貴的經(jīng)驗。最后,在此感謝陳老師的細(xì)心指導(dǎo),也同樣謝謝其他各位同學(xué)的無私幫助!7 參考文獻1. 張毅剛主編 . 單片機原理及應(yīng)用 . 北京:高等教育出版社 .2003 ;2. 曹承志 等主編 . 微型計算機控制技術(shù) . 北京:化學(xué)工業(yè)出版社 .2008 ;3. 康華光主編 . 電子技術(shù)基礎(chǔ)模擬部分(第五版) . 北京:高等教育出版社 .2006 ;4. 譚浩強著 .C 程序設(shè)計 . 北京:清華大學(xué)出版社 .2005 ;5. 王心水主編 . 一種基于單片機的多功能溫度控制器額設(shè)計 . 曲

26、阜師范大學(xué)信息技術(shù)與傳播學(xué)院;6. 胡學(xué)海主編 . 單片機原理及應(yīng)用系統(tǒng)設(shè)計 M. 北京:京電子工業(yè)出版社 .2005 ;7. 李廣弟 . 單片機基礎(chǔ) M. 北京 : 北航出版社 .2010 。附錄 : 設(shè)計程序/*Main.c*/#include#includeds1820.h#include1602.hsbit Beef=P11;extern uchar disdata5;extern uint tvalue;/溫度值extern uchar tflag;/溫度正負(fù)標(biāo)志/*功能:將18B20采集的溫度數(shù)據(jù)在1602 顯示出來*輸入?yún)?shù):無*返回值:無*/void ds1820disp()/

27、溫度值顯示uchar flagdat;disdata0=tvalue/1000+0x30;/百位數(shù)disdata1=tvalue%1000/100+0x30;/十位數(shù)disdata2=tvalue%100/10+0x30;/個位數(shù)disdata3=tvalue%10+0x30;/小數(shù)位if(tflag=0)flagdat=0x20;/正溫度不顯示符號elseflagdat=0x2d;/負(fù)溫度顯示負(fù)號 :-if(disdata0=0x30)disdata0=0x20;/如果百位為 0,不顯示if(disdata1=0x30)disdata1=0x20;/如果百位為 0,十位為 0 也不顯示wr_

28、com(0xc0);wr_dat(flagdat);/顯示符號位wr_com(0xc1);wr_dat(disdata0);/顯示百位wr_com(0xc2);wr_dat(disdata1);/顯示十位wr_com(0xc3);wr_dat(disdata2);/顯示個位wr_com(0xc4);wr_dat(0x2e);/顯示小數(shù)點wr_com(0xc5);wr_dat(disdata3);/顯示小數(shù)位/*主程序 */void main()init_play();/初始化顯示while(1)read_temp();/ds1820disp();/if(tvalue310)Beef=0;讀取溫

29、度顯示elseBeef=1;/* DS1820.C*/#include#includeds1820.huchar disdata5;uint tvalue;/溫度值uchar tflag;/溫度正負(fù)標(biāo)志void delay_18B20(unsigned int i)/延時1 微秒while(i-);/*功 能: ds1820 復(fù)位輸入?yún)?shù):無*返回值:無*/void ds1820rst()/*ds1820 復(fù)位 */unsigned char x=0;DQ = 1; /DQ delay_18B20(4); / DQ = 0; /DQ delay_18B20(100); / DQ=1; /復(fù)位延

30、時拉低精確延時大于拉高480usdelay_18B20(40);/*功 能: ds1820 讀數(shù)據(jù)輸入?yún)?shù):無*返 回 值: dat*/uchar ds1820rd()/*讀數(shù)據(jù) */unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-)DQ=0;/給脈沖信號dat=1;DQ=1;/給脈沖信號if(DQ)dat|=0x80;delay_18B20(10);return(dat);/*功能: ds1820 寫數(shù)據(jù)*輸入?yún)?shù): wdata返回值:無*/void ds1820wr(uchar wdata)/* 寫數(shù)據(jù) */unsigned ch

31、ar i=0;for (i=8; i0; i-)DQ=0;DQ = wdata&0x01;delay_18B20(10);DQ=1;wdata=1;/*功能: ds1820 讀取溫度*輸入?yún)?shù):無返 回 值: tvalue*/uint read_temp()/*讀取溫度值并轉(zhuǎn)換 */uchar a,b;ds1820rst();ds1820wr(0xcc);/*跳過讀序列號 */ds1820wr(0x44);/*啟動溫度轉(zhuǎn)換 */ds1820rst();ds1820wr(0xcc);/*跳過讀序列號 */ds1820wr(0xbe);/*讀取溫度 */a=ds1820rd();b=ds1820r

32、d();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff)tflag=0;elsetvalue=tvalue+1;tflag=1;tvalue=tvalue*(0.625);/ 溫度值擴大 10 倍,精確到 1 位小數(shù) return(tvalue);/*1602.C*/#include1602.hunsigned char code str1=temperature: ;unsigned char code str2=;/*lcd1602程序 */void delay1ms(unsigned int ms)/延時1 毫秒(不夠精確的)unsig

33、ned int i,j;for(i=0;ims;i+)for(j=0;j100;j+);/*功能:寫指令*輸入?yún)?shù): com:命令*返回值:無*/void wr_com(unsigned char com)/寫指令 /delay1ms(1);RS=0;RW=0;EN=0;P0=com;delay1ms(1);EN=1;delay1ms(1);EN=0;/*功能:寫數(shù)據(jù)*輸入?yún)?shù):dat:數(shù)據(jù)返回值:無*/void wr_dat(unsigned char dat)/ 寫數(shù)據(jù) /delay1ms(1);RS=1;RW=0;EN=0;P0=dat;delay1ms(1);EN=1;delay1ms

34、(1);EN=0;/*功能: /初始化設(shè)置/*輸入?yún)?shù):無返回值:無*/void lcd_init()/初始化設(shè)置 /delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);/*功能: 1602 顯示*輸入?yún)?shù):字符串的首地址返回值:無*/void display(unsigned char *p)/ 顯示 /while(*p!=0)wr_dat(*p);p+;delay1ms

35、(1);/*功能: 1602 初始化顯示*輸入?yún)?shù):無返回值:無*/void init_play()/初始化顯示lcd_init();wr_com(0x80);display(str1);wr_com(0xc0);display(str2); 據(jù)了解,很多廠家在使用溫度控制器的過程中,往往碰到慣性溫度誤差的問題,苦于無法解決,依靠手工調(diào)壓來控制溫度。創(chuàng)新,采用了 PID 模糊控制技術(shù),較好地解決了慣性溫度誤差的問題。 傳統(tǒng)的 溫度控制器 ,是利用熱電偶線在溫度化變化的情況下, 產(chǎn)生變化的電流作為控制信號, 對電器元件作定點的開關(guān)控制器。 電腦控制溫度控制器: 采用 PID 模糊控制技術(shù) * 用先進的數(shù)碼技術(shù)通過 Pvar、Ivar 、Dvar( 比例、積分、微分

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論