基于51單片機的溫度控制系統(tǒng)
《基于51單片機的溫度控制系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機的溫度控制系統(tǒng)(41頁珍藏版)》請在裝配圖網(wǎng)上搜索。
I 畢業(yè)論文設(shè)計 基于51單片機的溫度控制系統(tǒng) II 摘要 在日常生活中溫度在我們身邊無時不在 溫度的控制和應(yīng)用在各個領(lǐng)域都有重要的 作用 很多行業(yè)中都有大量的用電加熱設(shè)備 和溫度控制設(shè)備 如用于報警的溫度自動 報警系統(tǒng) 熱處理的加熱爐 用于融化金屬的坩鍋電阻爐及各種不同用途的溫度箱等 這些都采用單片機技術(shù) 利用單片機語言程序?qū)λ鼈冞M行控制 而單片機技術(shù)具有控制 和操作使用方便 結(jié)構(gòu)簡單便于修改和維護 靈活性大且具有一定的智能性等特點 可 以精確的控 制技術(shù)標準 提高了溫控指標 也大大的提高了產(chǎn)品的質(zhì)量和性能 由于單片機技術(shù)的優(yōu)點突出 智能化溫度控制技術(shù)正被廣泛地采用 本文介紹了基 于單片機 AT89C51 的溫度控制系統(tǒng)的設(shè)計方案與軟硬件實現(xiàn) 采用溫度傳感器 DS18B20 采集溫度數(shù)據(jù) 7 段數(shù)碼管顯示溫度數(shù)據(jù) 按鍵設(shè)置溫度上下限 當(dāng)溫度低于設(shè)定的下限 時 點亮綠色發(fā)光二極管 當(dāng)溫度高于設(shè)定的上限時 點亮紅色發(fā)光二極管 給出了系 統(tǒng)總體框架 程序流程圖和 Protel 原理圖 并在硬件平臺上實現(xiàn)了所設(shè)計功能 關(guān)鍵詞 單片機 溫度控制系統(tǒng) 溫度傳感器 III Abstract In daily life the temperature in our side the ever present the control of the temperature and the application in various fields all have important role Many industry there are a large number of electric heating equipment and the temperature control equipment such as used for alarm automatic temperature alarm systems heat treatment furnace used to melt metal crucible resistance furnace and all kinds of different USES of temperature box and so on these using single chip microcomputer using single chip computer language program to control them And single chip microcomputer technology has control and convenient in operation easy to modify and maintenance of simple structure flexibility is large and has some of the intelligence and other characteristics we can accurately control technology standard to improve the temperature control index also greatly improve the quality of the products and performance Because of the advantages of the single chip microcomputer intelligent temperature control technology outstanding is being widely adopted This paper introduces the temperature control based on single chip microcomputer AT89C51 design scheme of the system and the hardware and software implementation The temperature sensor DS18B20 collection temperature data 7 period of digital pipe display the upper and lower limits of temperature button when temperature below the setting of the lower limit light green leds when the temperature is higher than the set on the limit light red leds Given the system framework and program flow chart and principle chart and in Protel hardware platform to realize the function of the design Keywords SCM Temperature control system Temperature sensors IV 目錄 摘要 I ABSTRACT II 第一章 前言 1 1 1 溫度控制系統(tǒng)設(shè)計發(fā)展歷史及意義 1 1 2 溫度控制系統(tǒng)的目的 1 1 3 溫度控制系統(tǒng)完成的功能 1 第二章 總體設(shè)計方案 2 2 1 方案一 2 2 2 方案二 2 3 1 DS18B20 簡介 5 3 1 1DS18B20 封裝與引腳 5 3 1 2 DS18B20 的簡單性能 5 3 2 DS18B20 的工作原理 5 3 3 DS18B20 的測溫原理 6 3 3 1 測溫原理 6 3 3 2 DS18B20 的溫度采集過程 9 第四章 單片機接口設(shè)計 10 4 1 設(shè)計原則 10 4 2 單片機引腳連接 10 4 2 1 單片機引腳圖 10 4 2 2 串口引腳 11 第五章 硬件電路設(shè)計 12 V 5 1 主要硬件電路設(shè)計 12 5 2 軟件系統(tǒng)設(shè)計 15 5 2 1 軟件系統(tǒng)設(shè)計 15 5 2 2 程序組成 16 結(jié)束語 20 致謝 21 附錄 22 參考文獻 34 1 第一章 前言 1 1 溫度控制系統(tǒng)設(shè)計發(fā)展歷史及意義 溫度控制系統(tǒng)廣泛應(yīng)用于社會生活的各個領(lǐng)域 如家電 汽車 材料 電力電子等 常 用的控制電路根據(jù)應(yīng)用場合和所要求的性能指標有所不同 在工業(yè)企業(yè)中 如何提高溫 度控制對象的運行性能一直以來都是控制人員和現(xiàn)場技術(shù)人員努力解決的問題 這類控 制對象慣性大 滯后現(xiàn)象嚴重 存在很多不確定的因素 難以建立精確的數(shù)學(xué)模型 從而導(dǎo) 致控制系統(tǒng)性能不佳 甚至出現(xiàn)控制不穩(wěn)定 失控現(xiàn)象 傳統(tǒng)的繼電器調(diào)溫電路簡單實用 但 由于繼電器動作頻繁 可能會因觸點不良而影響正常工作 控制領(lǐng)域還大量采用傳統(tǒng)的 PID 控制方式 但 PID 控制對象的模型難以建立 并且當(dāng)擾動因素不明確時 參數(shù)調(diào)整不便 仍是普遍存在的問題 而采用數(shù)字溫度傳感器 DS18B20 因其內(nèi)部集成了 A D 轉(zhuǎn)換器 使 得電路結(jié)構(gòu)更加簡單 而且減少了溫度測量轉(zhuǎn)換時的精度損失 使得測量溫度更加精確 數(shù)字溫度傳感器 DS18B20 只用一個引腳即可與單片機進行通信 大大減少了接線的麻煩 使得單片機更加具有擴展性 由于 DS18B20 芯片的小型化 更加可以通過單跳數(shù)據(jù)線就 可以和主電路連接 故可以把數(shù)字溫度傳感器 DS18B20 做成探頭 探入到狹小的地方 增加了實用性 更能串接多個數(shù)字溫度傳感器 DS18B20 進行范圍的溫度檢測 1 2 溫度控制系統(tǒng)的目的 溫度控制在日常生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛 比如溫室 水池 發(fā)酵缸 電源等 場所的溫度控制 而以往溫度控制是由人工完成的而且不夠重視 其實在很多場所溫度 都需要監(jiān)控以防止發(fā)生意外 針對此問題 本系統(tǒng)設(shè)計的目的是實現(xiàn)一種可連續(xù)高精度 調(diào)溫的溫度監(jiān)測和控制系統(tǒng) 實現(xiàn)對溫度的實時檢測 具有提醒和控制的功能 本設(shè)計 的內(nèi)容是溫度測試控制系統(tǒng) 控制對象是溫度 它的特點在于應(yīng)用廣泛 功能強大 小 巧美觀 便于攜帶 是一款既實用又廉價的控制系統(tǒng) 1 3 溫度控制系統(tǒng)完成的功能 本設(shè)計是對溫度進行實時監(jiān)測與控制 設(shè)計的溫度控制系統(tǒng)實現(xiàn)了基本的溫度控制 功能 此設(shè)計中溫度恒定值設(shè)置為 60 上下跳轉(zhuǎn)溫度為 1 設(shè)計精度值為 0 1 當(dāng)溫 度低于設(shè)定下限溫度即 59 時 綠燈亮 報警提醒需要外界的加熱措施 當(dāng)溫度上升到 上限溫度時 停止加溫 紅燈亮保持溫度 當(dāng)溫度高于設(shè)定上限溫度即 61 時 紅燈亮 需要外界采取降溫措施 本設(shè)計中沒有附加外界的加熱和降溫措施 當(dāng)溫度下降到恒溫 度時 停止降溫 溫度在上下限溫度之間時 執(zhí)行機構(gòu)不執(zhí)行 2 第二章 總體設(shè)計方案 2 1 方案一 利用溫度傳感器將溫度測出 通過某種電信號傳給外部電路產(chǎn)生一種變化 然后由 外部電路控制裝置的開啟 測溫電路的設(shè)計 可以使用熱敏電阻之類的傳感器件利用其 感溫效應(yīng) 如電阻隨溫度的變化有一個變化的曲線 即利用它的變化特性曲線 溫度的 變化使得電阻發(fā)生了變化根據(jù)歐姆定律 電阻的變化會帶來電流或這電壓的變化 再將 隨被測溫度變化的電壓或電流采集過來 然后進行模擬信號換成數(shù)字信號 A D 轉(zhuǎn)換 將數(shù)字信號送入單片機 用單片機進行數(shù)據(jù)的處理 將溫度顯示在電路上 這樣就可以 將被測溫度顯示出來 最后還有外圍的控制電路 采取一定的措施來控制產(chǎn)生溫度的電 路 如加溫 降溫 保持不動 或者報警 這種設(shè)計需要用到 A D 轉(zhuǎn)換電路 感溫電路 比較麻煩 設(shè)計流程圖如圖 2 1 傳感器溫度檢測電路 A D 轉(zhuǎn)換電路 單片機處理電路 顯示和控制溫度 圖 2 1 設(shè)計流程圖 2 2 方案二 利用溫度傳感器芯片直接將溫度數(shù)據(jù)測出 之后通過單片機程序控制溫度的上 下 限值 用外部電路產(chǎn)生顯示和控制加熱和降 來達到設(shè)計的要求 考慮使用溫度傳感器 結(jié)合單片機電路設(shè)計 采用一只 DS18B20 溫度傳感器 直接 讀取被測溫度值 之后進行轉(zhuǎn)換 依次完成設(shè)計要求 比較以上兩種方案 很容易看出 采用方案二 電路比較簡單 軟件設(shè)計容易實現(xiàn) 故實際設(shè)計中擬采用方案二 在設(shè)計中溫度的控制流程如圖 2 2 所示 3 開 始 初始化 DS18B20 顯示當(dāng)前溫度 紅燈亮 設(shè)定溫度恒定值 綠燈亮 判斷當(dāng)前 溫度值 超過設(shè)定 溫度上限 低于設(shè)定 溫度下限 圖 2 2 溫度控制整體流程 在本系統(tǒng)的總體電路設(shè)計方框圖如圖 2 3 所示 它由五部分組成 單片機 AT89C51 控 制部分 DS18B20 溫度傳感器采集部分 3 位 LED 數(shù)碼管顯示部分 按鍵調(diào)節(jié)部分 二 極管報警部分 4 DS18B20 溫度采集 電路 LED 顯示電 路 二極管顯示 報警電路 AT89C51 單片機控 制電路 按鍵調(diào)節(jié)電路 圖 2 3 溫度計電路總體設(shè)計方案 整個設(shè)計總體分為以下幾個部分 控制部分 顯示部分 溫度采集部分 按鍵控制 部分 1 控制部分 由單片機 AT89C51 芯片在程序控制和外圍簡單組合電路作用下運行 和控制溫度的 上 下限 和 LED 的溫度顯示 控制發(fā)光二級管的亮滅 起到提醒報警功能 2 顯示部分 顯示電路采用 3 位 7 斷共陽 LED 數(shù)碼管 從 P3 口送數(shù) P0 口掃描 有兩部分顯示電 路 第一是顯示 DS18B20 溫度傳感器所檢測的當(dāng)前溫度 第二是設(shè)定恒定的溫度值 3 溫度采集部分 由 DS18B20 智能溫度傳感器直接采集被測溫度 4 按鍵控制部分 由三個按鍵控制調(diào)節(jié) 用來調(diào)節(jié)溫度的恒定限值 起到預(yù)設(shè)調(diào)節(jié)作用 5 第三章 溫度傳感器 DS18B20 3 1 DS18B20簡介 3 1 1 DS18B20封裝與引腳 DS18B20 封裝與引腳如圖 3 1 圖 3 1 DS18B20 的封裝與引腳 3 1 2 DS18B20的簡單性能 1 獨特的單線接口方式 DS18B20 在與微處理器連接時僅需要一條口線即可實現(xiàn) 微處理器與 DS18B20 的雙向通訊 2 測溫范圍 55 125 固有測溫分辨率 0 5 3 支持多點組網(wǎng)功能 多個 DS18B20 可以并聯(lián)在唯一的三線上 實現(xiàn)多點測溫 4 工作電源 3 5V DC 5 在使用中不需要任何外圍元件 6 測量結(jié)果以 9 12 位數(shù)字量方式串行傳送 7 不銹鋼保護管直徑 6 8 適用于 DN15 25 DN40 DN250 各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫 9 標準安裝螺紋 M10X1 M12X1 5 G1 2 任選 10 PVC 電纜直接出線或德式球型接線盒出線 便于與其它電器設(shè)備連接 3 2 DS18B20的工作原理 DS18B20 內(nèi)部的低溫度系數(shù)振蕩器是一個振蕩頻率隨溫度變化很小的振蕩器 為計 6 數(shù)器 1 提供一頻率穩(wěn)定的計數(shù)脈沖 高溫度系數(shù)振蕩器是一個振蕩頻率對溫度很敏感的振蕩器 為計數(shù)器 2 提供一個頻 率隨溫度變化的計數(shù)脈沖 初始時 溫度寄存器被預(yù)置成 55 每當(dāng)計數(shù)器 1 從預(yù)置數(shù)開始減計數(shù)到 0 時 溫 度寄存器中寄存的溫度值就增加 1 這個過程重復(fù)進行 直到計數(shù)器 2 計數(shù)到 0 時便停 止 初始時 計數(shù)器 1 預(yù)置的是與 55 相對應(yīng)的一個預(yù)置值 以后計數(shù)器 1 每一個循環(huán) 的預(yù)置數(shù)都由斜率累加器提供 為了補償振蕩器溫度特性的非線性性 斜率累加器提供 的預(yù)置數(shù)也隨溫度相應(yīng)變化 計數(shù)器 1 的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存 值增加 1 計數(shù)器所需要的計數(shù)個數(shù) DS18B20 內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位 在計數(shù) 器 2 停止計數(shù)后 比較器將計數(shù)器 1 中的計數(shù)剩余值轉(zhuǎn)換為溫度值后與 0 25 進行比較 若低于 0 25 溫度寄存器的最低位就置 0 若高于 0 25 最低位就置 1 若高于 0 75 時 溫度寄存器的最低位就進位然后置 0 這樣 經(jīng)過比較后所得的溫度寄存器的 值就是最終讀取的溫度值了 其最后位代表 0 5 四舍五入最大量化誤差為 1 2LSB 即 0 25 溫度寄存器中的溫度值以 9 位數(shù)據(jù)格式表示 最高位為符號位 其余 8 位以二進制 補碼形式表示溫度值 測溫結(jié)束時 這 9 位數(shù)據(jù)轉(zhuǎn)存到暫存存儲器的前兩個字節(jié)中 符 號位占用第一字節(jié) 8 位溫度數(shù)據(jù)占據(jù)第二字節(jié) DS18B20 測量溫度時使用特有的溫度測量技術(shù) DS18B20 內(nèi)部的低溫度系數(shù)振蕩器能 產(chǎn)生穩(wěn)定的頻率信號 同樣的 高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號 當(dāng)計 數(shù)門打開時 DS18B20 進行計數(shù) 計數(shù)門開通時間由高溫度系數(shù)振蕩器決定 芯片內(nèi)部還 有斜率累加器 可對頻率的非線性度加以補償 測量結(jié)果存入溫度寄存器中 一般情況 下的溫度值應(yīng)該為 9 位 但因符號位擴展成高 8 位 所以最后以 16 位補碼形式讀出 DS18B20 工作過程一般遵循以下協(xié)議 初始化 ROM 操作命令 存儲器操作命令 處理數(shù)據(jù) 3 3 DS18B20的測溫原理 3 3 1 測溫原理 每一片 DSl8B20 在其 ROM 中都存有其唯一的 48 位序列號 在出廠前已寫入片內(nèi) ROM 中 主機在進入操作程序前必須用讀 ROM 33H 命令將該 DSl8B20 的序列號讀出 ROM 命 7 令代碼見表 3 1 程序可以先跳過 ROM 啟動所有 DSl8B20 進行溫度變換 之后通過匹配 ROM 再逐一 地讀回每個 DSl8B20 的溫度數(shù)據(jù) DS18B20 的測溫原理 低溫度系數(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ù)器 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ù)值即為所測溫度 圖 3 2 中的斜率累加器用于補償和修正測溫過程中的非線性 其輸出用于修正減法計數(shù)器的預(yù) 置值 只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程 直至溫度寄存器值達到被測溫度值 8 表 3 1 ROM 操作命令 指令 約定代碼 功 能 讀 ROM 33H 讀 DS18B20 ROM 中的編碼 符合 ROM 55H 發(fā)出此命令之后 接著發(fā)出 64 位 ROM 編碼 訪問單線 總線上與該編碼相對應(yīng)的 DS18B20 使之作出響應(yīng) 為下 一步對該 DS18B20 的讀寫作準備 搜索 ROM 0F0H 用于確定掛接在同一總線上 DS18B20 的個數(shù)和識別 64 位 ROM 地址 為操作各器件作好準備 跳過 ROM 0CCH 忽略 64 位 ROM 地址 直接向 DS18B20 發(fā)溫度變換命令 適用于單片工作 告警搜索 命 令 0ECH 執(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) E2PRAM 0BBH 將 E2PRAM 中內(nèi)容恢復(fù)到 RAM 中的第 3 4 字節(jié) 讀供電方式 0B4H 讀 DS18B20 的供電模式 寄生供電時 DS18B20 發(fā)送 0 外接電源供電 DS18B20 發(fā)送 1 9 計數(shù)器 斜率累加器 減到 0 減法計數(shù)器 預(yù) 置 低溫度系數(shù) 振 蕩 器 高溫度系數(shù) 振 蕩 器 計數(shù)比較器 預(yù) 置 溫度寄存器 減到 0 圖 3 2 測溫原理內(nèi)部裝置 3 3 2 DS18B20的溫度采集過程 由于 DS18B20 單線通信功能是分時完成的 他有嚴格的時隙概念 因此讀寫時序很 重要 系統(tǒng)對 DS18B20 的各種操作必須按協(xié)議進行 操作協(xié)議為 初始化 DS18B20 發(fā)復(fù) 位脈沖 發(fā) ROM 功能命令 發(fā)存儲器操作命令 處理數(shù)據(jù) 溫度的采集流程如圖 3 3 所示 初始化 DS18B20 跳過 ROM 匹配 溫度變換 延時 1S 跳過 ROM 匹配 讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示 圖 3 3 DS18B20 測溫流程 10 第四章 單片機接口設(shè)計 4 1 設(shè)計原則 DS18B20 有 2 種供電方式 一種是直流電源 還有一種是寄生蟲方式供電 采用電源 供電方式 此時 DS18B20 的 1 腳接地 2 腳作為信號線 3 腳接電源 電源是利用直流穩(wěn) 壓電源 當(dāng) DS18B20 處于寫存儲器操作和溫度 A D 變換操作時 總線上必須有強的上拉 上拉開啟時間最大為 10 s 采用寄生電源供電方式是 VDD和 GND 端均接地 由于單線制 只有一根線 因此發(fā)送接收口必須是三狀態(tài)的 主機控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng) 過 3 個步驟 初始化 ROM 操作指令 存儲器操作指令 4 2 單片機引腳連接 4 2 1 單片機引腳圖 單片機引腳如圖 4 1 所示 圖 4 1 單片機引腳 11 4 2 2 串口引腳 串口引腳的連接圖如附錄 1 12 第五章 硬件電路設(shè)計 5 1 主要硬件電路設(shè)計 硬件電路主要包括 顯示電路 DS18B20溫度傳感器檢測電路 按鍵電路 晶振電路 二極管顯示報警電路 電源電路 1 顯示電路 顯示電路采用了7段共陰數(shù)碼管掃描電路 通過單片機的P0 0到P0 7八個端口接數(shù)碼 管的八個引腳 數(shù)碼管的9號引腳接地 用來顯示當(dāng)前檢測的溫度值 精確度為0 1 如 圖5 1所示 節(jié)約了單片機的輸出端口 便于程序的編寫 本設(shè)計中還有一組數(shù)碼管由P2 0到P2 7連接 除接口不同外其他一樣 如圖5 2 圖5 1 顯示測量結(jié)果電路圖 圖5 2顯示限定溫度電路 2 DS18B20溫度傳感器檢測電路 溫度采集通過數(shù)字化的溫度傳感器 DS18B20 通過QD接向單片機的P3 0口 13 DS18B20溫度傳感器電路如圖5 3所示 圖5 3 溫度傳感器電路引腳圖 3 按鍵電路 按鍵電路如圖5 4所示 由K2 K3 K4三個按鍵控制上 下限溫度值 P3 1接口接K4 按鍵 P3 2接口接入K3按鍵 P3 3接口接K2按鍵 1 K2溫度上下限減少鍵 減少溫度上下限的值 2 K3溫度上下限增加鍵 增加溫度上下限的值 3 K4溫控開關(guān)鍵 進入溫控的切換鍵 圖5 4 按鍵電路圖 4 晶振控制電路 晶振采用的是12MHZ的標準晶振 接入單片機的XTAL1 XTAL2 晶振控制電路如圖5 5所示 14 圖5 5 晶振控制電路圖 5 復(fù)位電路 復(fù)位電路采用了人工復(fù)位的方式 按下按鍵K1使單片機復(fù)位 直接接到單片機的 RESET引腳 復(fù)位電路如圖5 6所示 圖5 6 復(fù)位電路圖 6 二極管顯示報警電路 二極管顯示報警電路如圖5 7所示 通過單片機的P3 4和P3 5兩個端口送出 采用的 是高電平驅(qū)動 使其發(fā)光發(fā)出警告 15 圖5 7 二極管顯示電路 8 電源部分 電源部分才用的是直流穩(wěn)壓電源 產(chǎn)生5V的穩(wěn)定直流電壓 電源設(shè)計部分如圖5 8所 示 圖5 8 電源部分電路 5 2 軟件系統(tǒng)設(shè)計 5 2 1 軟件系統(tǒng)設(shè)計 一個應(yīng)用系統(tǒng)要完成各項功能 首先必須有較完善的硬件作保證 同時還必須得到 相應(yīng)設(shè)計合理的軟件的支持 尤其是微機應(yīng)用高速發(fā)展的今天 許多由硬件完成的工作 都可通過軟件編程而代替 甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作 用軟 件編程有時會變得很簡單 如數(shù)字濾波 信號處理等 因此充分利用其內(nèi)部豐富的硬件 資源和軟件資源 采用與 C51 系列單片機相對應(yīng)的 51 匯編語言和結(jié)構(gòu)化程序設(shè)計方法進 行軟件編程 程序設(shè)計語言有三種 機器語言 匯編語言和高級語言 機器語言是機器唯一能 懂 的語言 用匯編語言或高級語言編寫的程序 稱為源程序 最終都必須翻譯成機 器語言的程序 成為目標程序 計算機才能 看懂 然后逐一執(zhí)行 16 高級語言是面向問題和計算過程的語言 它可通過于各種不同的計算機 用戶編程 時不必仔細了解所用的計算機的具體性能與指令系統(tǒng) 而且語句的功能強 常常一個語 句已相當(dāng)于很多條計算機指令 于是用高級語言編制程序的速度比較快 也便于學(xué)習(xí)和 交流 但是本系統(tǒng)卻選用了匯編語言 原因在于 本系統(tǒng)是編制程序工作量不大 規(guī)模 較小的單片機微控制系統(tǒng) 使用匯編語言可以不用像高級語言那樣占用較多的存儲空間 適合于存儲容量較小的系統(tǒng) 同時 本系統(tǒng)對位處理要求很高 需要解決大量的邏輯控 制問題 51 指令系統(tǒng)的指令長度較短 它在存儲空間和執(zhí)行時間方面具有較高的效率 編成 的程序占用內(nèi)存單元少 執(zhí)行也非常的快捷 與本系統(tǒng)的應(yīng)用要求很適合 而且 AT89C 51 指令系統(tǒng)有豐富的位操作 或稱位處理 指令 可以形成一個相當(dāng)完整的位 操作指令子集 這是 AT89C 51 指令系統(tǒng)主要的優(yōu)點之一 對于要求反應(yīng)靈敏與控制及 時的工控 檢測等實時控制系統(tǒng)以及要求體積小 系統(tǒng)小的許多 電腦化 產(chǎn)品 可以 充分體現(xiàn)出匯編語言簡明 整齊 執(zhí)行時間短和易于使用的特點 本裝置的軟件包括主程序 讀出溫度子程序 復(fù)位應(yīng)答子程序 寫入子程序 以及 有關(guān)DS18B20的程序 初始化子程序 寫程序和讀程序 5 2 2 程序組成 系統(tǒng)程序主要包括主程序 讀出溫度子程序 寫入子程序 門限調(diào)節(jié)子程序等 1 主程序 主程序的主要功能是負責(zé)溫度的實時顯示 讀出并處理 DS18B20 的測量的當(dāng)前溫度 值 溫度測量每 1s 進行一次 這樣可以在一秒之內(nèi)測量一次被測溫度 其程序流程見圖 5 9 所示 通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩 個單元中 然后通過調(diào)用顯示子程序顯示出來 17 圖 5 9 主程序流程圖 2 讀出溫度子程序 讀出溫度子程序的主要功能是讀出 RAM 中的 9 字節(jié) 在讀出時需進行 CRC 校驗 校驗有錯時不進行溫度數(shù)據(jù)的改寫 程序流程圖如圖 5 10 所示 DS18B20 的各個命令對時序的要求特別嚴格 所以必須按照所要求的時序才能達到 預(yù)期的目的 同時 要注意讀進來的是高位在后低位在前 共有 12 位數(shù) 小數(shù) 4 位 整 數(shù) 7 位 還有一位符號位 18 圖 5 10 讀出溫度子程序 跳過 ROM 匹配命令 寫入子程序 溫度轉(zhuǎn)換命令 顯示子程序 延時 寫入子程序 寫入子程序 DS18B20 復(fù)位 應(yīng)答子程序 DS18B20 復(fù)位 應(yīng)答子程序 跳過 ROM 匹配命令 讀溫度命令子程序 終 止 南昌工程學(xué)院??飘厴I(yè)設(shè)計 論文 19 3 寫入子程序 寫入子程序的流程圖如 5 11 所示 圖 5 11 寫入子程序 進位 C 清 0 P3 0 清 0 延時 12US 帶進位右移 延時 46US P3 0 置 0 R2 是否為 0 終止 開始 20 4 門限調(diào)節(jié)子程序 門限調(diào)節(jié)子程序流程如圖 5 12 所示 圖 5 12 門限調(diào)節(jié)電路 21 結(jié)束語 本文詳細講述了系統(tǒng)設(shè)計方案 并給出了相關(guān)程序流程 本設(shè)計應(yīng)用性比較強 可 以應(yīng)用在倉庫溫度 大棚溫度 機房溫度 水池等的監(jiān)控 另外 如果把本設(shè)計方案擴 展為多點溫度控制 加上上位機 則可以實現(xiàn)遠程溫度監(jiān)控系統(tǒng) 將具有更大的應(yīng)用價 值 本文的創(chuàng)新點在于詳細設(shè)計了基于單片機 AT89C51 的溫度監(jiān)控系統(tǒng) 設(shè)計程序已經(jīng) 此 系統(tǒng)可廣泛用于溫度在 DS18B20 測溫范圍之內(nèi)的場合 有良好的應(yīng)用前景 由于單片機 的各種優(yōu)越的特性 使得它的經(jīng)濟效益顯的更加突出 有很好的實用性 22 附錄 附錄 1 23 原理電路總設(shè)計圖 24 附錄 2 源程序 FK1 EQU 24H F k 實測溫度 FK EQU 25H F k 實測溫度暫存 RK EQU 26H R k 給定溫度 SHI1 EQU 30H 實測溫度十位 SHI2 EQU 31H 實測溫度個位 SHI3 EQU 32H 實測溫度小數(shù)位 GAO EQU 33H 給定溫度十位 ZHO EQU 34H 給定溫度個位 DI EQU 35H 給定溫度小數(shù)位 CNT EQU 37H 按鍵消抖計數(shù)器 LSB EQU 50H 檢測溫度低 8 位 MSB EQU 51H 檢測溫度高 8 位 K INM BIT P3 1 DI 位設(shè)定溫度按鍵 K INH BIT P3 2 ZHO 位設(shè)定溫度按鍵 KI BIT P3 3 GAO 位設(shè)定溫度按鍵 DQ BIT P3 0 DS18B20 的溫度輸入口 ORG 0000H 主程序入口地址 AJMP MAIN 跳轉(zhuǎn)到主程序 ORG 000BH T0 中斷入口地址 ORG 001BH T1 中斷入口地址 ORG 0050H MAIN MOV SP 60H 堆棧指針初始化 MOV GAO 0 置設(shè)定值顯示十位初值 MOV ZHO 0 置設(shè)定值顯示個位初值 MOV DI 0 置設(shè)定值顯示小數(shù)位初值 MOV CNT 10 MOV TMOD 11H 定時器 T0 T1 初始化 方式 1 MOV TH0 3CH T0 定時器 定時常數(shù) 25 MOV TL0 0B0H MOV TH1 0FCH T1 定時器 定時常數(shù) MOV TL1 18H SETB PT1 T1 優(yōu)先中斷 MOV IE 8AH 中斷使能 SETB TR0 啟動定時器 T0 SETB TR1 啟動定時器 T1 LOOP ACALL GETTMP 調(diào)用測溫子程序 ACALL BBLD 調(diào)用二十進制子程序 ACALL TER 調(diào)用拆字子程序 ACALL XIAOSHU 調(diào)用小數(shù)處理子程序 ACALL DISP1 調(diào)用測得溫度顯示程序 ACALL KEY 調(diào)用按鍵處理子程序 ACALL IDTB 調(diào)用十二進制轉(zhuǎn)換子程序 ACALL CHK1 調(diào)用報警子程序 ACALL DISP2 調(diào)用設(shè)定溫度顯示子程序 AJMP LOOP 循環(huán) 測溫子程序 GETTMP ACALL RESET PULSE ACALL PRESENCE MOV A 0CCH ACALL WRITE BYTE 發(fā)跳過 ROM 命令 MOV A 44H ACALL WRITE BYTE 發(fā)出溫度轉(zhuǎn)換命令 JNB DQ ACALL RESET PULSE ACALL PRESENCE MOV A 0CCH 發(fā)跳過 ROM 命令 ACALL WRITE BYTE MOV A 0BEH 發(fā)讀存儲器命令 ACALL WRITE BYTE 26 ACALL READ BYTE MOV LSB A 溫度值低位字節(jié)送 LSB ACALL READ BYTE MOV MSB A 溫度值高位字節(jié)送 MSB ACALL RESET PULSE ACALL PRESENCE MOV A MSB SWAP A ANL A 70H MOV FK A MOV A LSB SWAP A ANL A 0FH ORL FK A MOV FK1 FK RET 讀 DS18B20 的程序 READ BYTE MOV R6 8 READ1 CLR DQ NOP NOP SETB DQ NOP NOP NOP MOV R5 A MOV C DQ MOV A R5 MOV R7 30 DJNZ R7 RRC A 27 DJNZ R6 READ1 RET PRESENCE JB DQ JNB DQ RET RESET PULSE CLR DQ MOV R7 250 DJNZ R7 SETB DQ MOV R7 10 DJNZ R7 RET 寫 DS18B20 的程序 WRITE BYTE MOV R6 8 WRITE RRC A JC WRITE1 CLR DQ MOV R7 30 DJNZ R7 SETB DQ NOP NOP NOP NOP DJNZ R6 WRITE RET WRITE1 CLR DQ NOP NOP NOP NOP 28 SETB DQ MOV R7 30 DJNZ R7 DJNZ R6 WRITE RET 二十進制轉(zhuǎn)換子程序 BBLD CLR A MOV R2 A MOV R7 8 BBCD1 CLR C MOV A FK RLC A MOV FK A MOV A R2 ADDC A R2 DA A MOV R2 A DJNZ R7 BBCD1 RET 拆字子程序 TER MOV A R2 ANL A 0FH MOV SHI2 A MOV A R2 SWAP A ANL A 0FH MOV SHI1 A RET 小數(shù)部分處理子程序 XIAOSHU CLR C 29 MOV R3 3 MOV A 50H LOOP2 RRC A DJNZ R3 LOOP2 ANL A 01H CJNE A 01H XIAOSHU2 MOV SHI3 5 RET XIAOSHU2 MOV SHI3 0 RET 按鍵部分處理子程序 KEY MOV CNT 80 JB K INM KEY1 ACALL DISP1 ACALL DISP2 ACALL DISP1 ACALL DISP2 JB K INM KEY1 WAIT0 JB K INM KEY2 ACALL DISP1 ACALL DISP2 DJNZ CNT WAIT0 KEY2 MOV A DI ADD A 5 DA A MOV DI A SUBB A 09H JC KEY1 MOV DI 0 KEY1 MOV CNT 80 JB K INH KEY4 30 ACALL DISP1 ACALL DISP2 ACALL DISP1 ACALL DISP2 JB K INH KEY4 WAIT1 JB K INH KEY3 ACALL DISP1 ACALL DISP2 DJNZ CNT WAIT1 KEY3 MOV A ZHO ADD A 1 DA A MOV ZHO A CJNE A 10H KEY4 MOV ZHO 0 KEY4 MOV CNT 80 JB KI KEY BACK ACALL DISP1 ACALL DISP2 ACALL DISP1 ACALL DISP2 JB KI KEY BACK WAIT2 JB KI KEY5 ACALL DISP1 ACALL DISP2 DJNZ CNT WAIT2 KEY5 MOV A GAO ADD A 1 DA A MOV GAO A CJNE A 10H KEY BACK 31 MOV GAO 0 KEY BACK RET 延時程序 1 D0 6S MOV R3 64H DEL3 MOV R4 384H DEL4 NOP NOP NOP DJNZ R4 DEL4 DJNZ R3 DEL3 RET 實測溫度顯示部分子程序 DISP1 MOV DPTR TAB MOV A SHI1 MOVC A A DPTR MOV P0 A MOV P1 3FH CLR P1 0 ACALL TM MOV A SHI2 MOVC A A DPTR MOV P0 A MOV P1 3FH SETB P0 7 CLR P1 1 ACALL TM MOV A SHI3 MOVC A A DPTR MOV P0 A MOV P1 3FH CLR P1 2 32 ACALL TM 實測溫度顯示部分子程序 DISP2 MOV DPTR TAB MOV A GAO MOVC A A DPTR MOV P2 A MOV P1 3FH CLR P1 3 ACALL TM MOV A ZHO MOVC A A DPTR MOV P2 A MOV P1 3FH SETB P2 7 CLR P1 4 ACALL TM MOV A DI MOVC A A DPTR MOV P2 A MOV P1 3FH CLR P1 5 ACALL TM RET TAB DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 顯示延時子程序 TM MOV R1 30 TM1 MOV R2 25 TM2 DJNZ R2 TM2 DJNZ R1 TM1 RET 十二進制轉(zhuǎn)換子程序 33 IDTB MOV R0 33H MOV R2 1 MOV A R0 MOV 52H A DITB1 MOV A 52H MOV B 10 MUL AB MOV 52H A MOV A B INC R0 MOV A 52H ADD A R0 MOV 52H A MOV RK 52H RET 設(shè)定溫度越線報警子程序 CHK1 MOV A DI CLR C SUBB A 0 MOV A ZHO SUBB A 0 MOV A GAO SUBB A 4 JC OUTB MOV A DI CLR C SUBB A 5 MOV A ZHO SUBB A 0 MOV A GAO SUBB A 9 34 JNC OUTA MOV A 00H RET OUTA MOV GAO 9 MOV ZHO 0 MOV DI 0 CLR P3 4 ACALL D0 6S SETB P3 4 RET OUTB MOV GAO 4 MOV ZHO 0 MOV DI 0 CLR P3 4 ACALL D0 6S SETB P3 4 RET END 35 參考文獻 1 張友德主編 單片微型機原理 應(yīng)用與實驗 復(fù)旦大學(xué)出版社出版 1993 2 何立民主編 單片機應(yīng)用技術(shù)選編 1 北京航空航天大學(xué)出版社 2000 3 韋瓏珅 楊榮松 基于 DS18B20 的單片機多點溫度測量系統(tǒng) 機械與電子 4 趙娜 趙剛 于珍珠 郭守清 基于 51 單片機的溫度測量系統(tǒng) 2007 02 5 Steven F Barrett Daniel J Pack Embedded System M 北京 電子工業(yè)出版社 2006 6 陳躍東 DS18B20 集成溫度傳感器原理與應(yīng)用 J 安徽機電學(xué)院學(xué)報 2002 7 閻石 數(shù)字電子技術(shù)基礎(chǔ) 第三版 M 北京 高等教育出版社 1989 8 李朝青 單片機原理及接口技術(shù) 簡明修訂版 M 北京 北京航空航天大學(xué)出版社 1998 9 李廣弟 單片機基礎(chǔ) M 北京 北京航空航天大學(xué)出版社 1994 10 金偉正 單線數(shù)字溫度傳感器的原理與應(yīng)用 J 電子技術(shù)與應(yīng)用 2000 11 李 鋼 1 Wire 總線數(shù)字溫度傳感器 DS18B20 原理及應(yīng)用 現(xiàn)代電子技術(shù) J 36 南 昌 工 程 學(xué) 院 畢 業(yè) 設(shè) 計 論文 成 績 評 定 和 評 語 姓名 班級 學(xué)號 畢業(yè)設(shè)計 論文 題目 指導(dǎo)教師評語及評分 評語 評分 指導(dǎo)教師 年 月 日 答辯委員會 小組 評語及評分 評語 評分 總評成績 答辯委員會 小組 負責(zé)人 年 月- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 51 單片機 溫度 控制系統(tǒng)
鏈接地址:http://www.3dchina-expo.com/p-10717853.html