單片機(jī)溫度控制.doc
《單片機(jī)溫度控制.doc》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)溫度控制.doc(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
精選 word 范本 摘 要 隨著電子產(chǎn)品向智能化和微型化的不斷發(fā)展 單片機(jī)已成為電子產(chǎn)品研制和開發(fā) 中首選的控制器 為了更好地推廣單片機(jī)在實(shí)際生活和生產(chǎn)中的應(yīng)用 本文從硬件和 軟件兩個方面介紹了基于 AT89C52 單片機(jī)溫度控制系統(tǒng)的設(shè)計 以實(shí)現(xiàn)系統(tǒng)能自主 調(diào)節(jié)溫度的功能 該系統(tǒng)的硬件部分由溫度采集模塊 鍵盤掃描及按鍵處理模塊 溫度顯示模塊 繼電器控制模塊組成 其中溫度采集模塊采用溫度傳感器DS18B20來采集當(dāng)前溫度 并對采集的溫度信號進(jìn)行A D轉(zhuǎn)換以數(shù)字信號的方式傳送給單片機(jī) 鍵盤掃描及按 鍵處理模塊由3 4矩陣鍵盤 反相驅(qū)動器74LS06 顯示驅(qū)動芯片8279組成 完成掃 描鍵盤 形成鍵碼 并將其送至單片機(jī)處理 溫度顯示模塊由顯示驅(qū)動芯片8279和 數(shù)碼管組成 輸入的溫度值進(jìn)行比較 并通過液晶顯示器LCD顯示出來 繼電器控制 模塊由繼電器和升溫電爐 降溫風(fēng)扇組成 如果采集溫度低于設(shè)置溫度 系統(tǒng)將通 過繼電器模塊自動控制升溫 如果采集溫度高于設(shè)置溫度 系統(tǒng)將通過繼電器模塊 自動控制降溫 該系統(tǒng)的軟件設(shè)計部分由系統(tǒng)主程序流程框圖 溫度處理子程序流程框圖 鍵 盤處理子程序框圖組成 其中系統(tǒng)主程序由初始化程序 掃描鍵盤程序及溫度處理 子程序組成 溫度采集子程序由對溫度傳感器的初始化和溫度處理程序組成 鍵盤 處理子程序由8279芯片的初始化程序及掃描處理程序組成 關(guān)鍵詞 單片機(jī)AT89C52 溫度控制 溫度傳感器DS18B20 液晶顯示器LCD 精選 word 范本 ABSTRACT With the electronic products developing to intelligent and miniaturization single chip has become the first chosen controller which is used to develop and explore the electronic product In order to promote single chip applicating in real life and production the paper will introduce a temperature control system which is based on a kind of single chip AT89C52 and it can achieve the function that the system can regulate the temperature independently The hardware of the system by the temperature acquisition module keyboard scan and key processing module temperature display module relay control module Wherein the temperature sensor DS18B20 temperature acquisition module to acquire the current temperature and the acquisition of the temperature signal to the A D converted digital signal is transferred to the microcontroller Keyboard scan and key processing module consists of a 3 4 matrix keyboard inverting driver 74LS06 display driver chip 8279 to complete the scan keyboard a key code and sent to the microcontroller processing The temperature display module consists of a display driver chip 8279 and digital tubes the input temperature values are compared and through the liquid crystal display LCD display Relay control module relay and heating furnace cooling fan If the acquisition temperature is below the set temperature the system will automatically controlled by the relay module temperature the collecting temperature is higher than the set temperature the system will automatically control the cooling relay module Software design of the system by the system main program flow block diagram temperature processing the subroutine flow diagram keyboard handling subroutine block diagram form the system main program initialization procedure scanning keyboard program and temperature processing subroutines The temperature acquisition subroutine by the temperature sensor the initialization and temperature handler The keyboard handling routine by the 8279 chip initialization procedures and scanning process Keywords Single Chip AT89C52 Temperature Control Temperature Sensor DS18B20 Liquid Crystal Display 精選 word 范本 目 錄 緒 論 1 選題背景與意義 1 選題介紹 1 1 單片機(jī)溫度控制系統(tǒng)總體設(shè)計 2 1 1 系統(tǒng)的特征 2 1 2 系統(tǒng)的設(shè)計目標(biāo)和原則 2 1 3 系統(tǒng)模塊設(shè)計 2 1 4 系統(tǒng)層次框圖 2 2 硬件系統(tǒng)設(shè)計 4 2 1 單片系統(tǒng)設(shè)計 4 2 1 1 主要性能參數(shù) 4 2 1 2 功能特性概述 5 2 1 3 管腳說明 5 2 1 4 定時與計數(shù) 6 2 1 5 復(fù)位電路 6 2 1 6 時鐘電路 6 2 2 溫度傳感模塊的設(shè)計 7 2 2 1 DS18B20 的性能特點(diǎn) 7 2 2 2 DS18B20 控制方法 7 2 2 3 DS18B20 使用中注意事項(xiàng) 8 2 2 4 高速暫存存儲器 9 2 3 鍵盤顯示模塊的設(shè)計 9 2 3 1 鍵盤顯示驅(qū)動芯片 8279 10 2 3 2 8279 內(nèi)部結(jié)構(gòu) 11 2 3 3 鍵盤和數(shù)碼管 12 2 4 繼電器控制模塊的設(shè)計 12 2 4 1 繼電器接點(diǎn)說明 13 2 4 2 繼電器控制升溫 13 2 4 3 繼電器控制降溫 13 3 系統(tǒng)軟件設(shè)計 14 3 1 系統(tǒng)主程序流程圖 14 3 2 鍵盤處理子程序 15 3 3 DS18B20 子程序圖 15 體 會 17 致 謝 18 參考文獻(xiàn) 19 附 錄 20 精選 word 范本 緒 論 選題背景與意義 在生產(chǎn)的管理過程中 溫度的控制是十分常見的 國內(nèi)已相繼出現(xiàn)各種以微機(jī) 為核心的溫度控制系統(tǒng) 這種系統(tǒng)控制精度高 重復(fù)性好 自動化程度高 在日常生活中 人們?yōu)榱藫碛幸粋€更舒適的生活環(huán)境 往往需要室內(nèi)擁有一個 合適的溫度 而單片機(jī)的準(zhǔn)確性高 價格低 功耗低等一系列優(yōu)點(diǎn) 可結(jié)合升溫和 降溫設(shè)備 有效的應(yīng)用到實(shí)際生活中 單片機(jī)溫度控制系統(tǒng)是單片機(jī)控制的一項(xiàng)簡單應(yīng)用 近幾年來單片機(jī)因其獨(dú)特 的 方便 快捷的優(yōu)勢被廣泛的應(yīng)用于各個領(lǐng)域之中 選題簡介 課題名稱 單片機(jī)溫度控制系統(tǒng)設(shè)計 主要任務(wù) 將溫度控制在設(shè)定的溫度值 設(shè)定范圍為0 99度 針對在生產(chǎn)和日 常生活中溫度智能化控制系統(tǒng)的實(shí)現(xiàn) 開發(fā)環(huán)境 本環(huán)境溫度控制系統(tǒng)的軟件部分是通過KEIL進(jìn)行編譯 技術(shù)指標(biāo) 1 以AT89C52系列單片機(jī)為核心部件 2 以數(shù)字電路和模擬電路為硬件基礎(chǔ) 3 以C語言為軟件實(shí)現(xiàn)語言 功能概述 在該環(huán)境溫度控制系統(tǒng)中 單片機(jī)作為核心部件進(jìn)行檢測控制 增 強(qiáng)了設(shè)計的通用性 適時性 在該環(huán)境溫度控制系統(tǒng)中溫度檢測采用 DS18B20 溫度 傳感器 它不僅具有較高的精度 而且適用電壓寬 同時采用了 3X4 矩陣掃描鍵盤 輸入 顯示設(shè)備等外圍擴(kuò)展芯片 軟件部分采用流程圖來表示 精選 word 范本 1 單片機(jī)溫度控制系統(tǒng)總體設(shè)計 1 1 系統(tǒng)的特征 從功能上講單片機(jī)溫度控制系統(tǒng)應(yīng)該能夠快速提供真實(shí)準(zhǔn)確的溫度數(shù)據(jù) 并能 實(shí)現(xiàn)斷開操作 從而使糧倉保持在一個恒定的溫度 同時單片機(jī)溫度控制系統(tǒng)也具 有如下特征 1 糧倉溫度需要不間斷測量 2 必須有效地測量的精度 3 系統(tǒng)反應(yīng)時間短 穩(wěn)定性高 4 執(zhí)行裝置可靠 1 2 系統(tǒng)的設(shè)計目標(biāo)和原則 單片機(jī)溫度控制系統(tǒng)的建立是一個系統(tǒng)工程 包括硬件和軟件兩個方面 從技 術(shù)角度看 系統(tǒng)設(shè)計必須進(jìn)行充分的需求調(diào)查 對運(yùn)作機(jī)制 信息流程 現(xiàn)有儀器 狀態(tài) 用戶要求等做詳盡的了解 在從系統(tǒng)工程的角度出發(fā) 采用快速原型法 進(jìn) 行從上而下的系統(tǒng)詳細(xì)設(shè)計 根據(jù)單片機(jī)溫度控制系統(tǒng)的特點(diǎn) 確定如下設(shè)計原則 1 實(shí)用性原則 要求最大限度地滿足實(shí)際工作的需要 充分考慮其實(shí)用性 2 可靠性原則 設(shè)計要簡潔 保證長時間工作的可靠性 3 準(zhǔn)確性原則 保證測量數(shù)據(jù)的準(zhǔn)確性 1 3 系統(tǒng)模塊設(shè)計 1 單片機(jī)控制模塊 2 溫度傳感模塊 3 鍵盤 顯示模塊 4 繼電器控制模塊 1 4 系統(tǒng)層次框圖 本文所研究的溫度控制系統(tǒng)硬件部分按功能大致可以分為以下幾個部分 單片 機(jī)主控模塊 溫度傳感模塊 鍵盤顯示模塊 繼電器控制模塊 其中 溫度控制系 統(tǒng)以 AT89C52 單片機(jī)為核心 并擴(kuò)展外部存儲器構(gòu)成主控模塊 利用溫度傳感器 DS18B20 檢測并轉(zhuǎn)換成微弱的電壓信號 它具有精度高 可靠性好和能直接將模擬 被測量轉(zhuǎn)換成數(shù)字量輸出 因此不需要加 A D 轉(zhuǎn)換 電路更加簡單 鍵盤掃描及顯 示模塊主要由顯示驅(qū)動芯片 8279 反相驅(qū)動器 74LS06 數(shù)碼管和 3 4 組成 完成了 溫度設(shè)定值的輸入和顯示溫度的功能 繼電器控制模塊完成對升溫電爐和降溫風(fēng)扇 的控制 對上述各項(xiàng)功能需求進(jìn)行集中 分塊 按照結(jié)構(gòu)化程序設(shè)計的要求 得到 溫度測量保護(hù)系統(tǒng)層次框圖 如圖 1 1 所示 精選 word 范本 圖 1 1 單片機(jī)溫度控制系統(tǒng)層次框圖 精選 word 范本 2 單片機(jī)溫度控制系統(tǒng)的電路設(shè)計 單片機(jī)溫度控制系統(tǒng)的電路設(shè)計在整個系統(tǒng)中占有非常重要的地位 電路結(jié)構(gòu) 設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生的影響 合理的電路結(jié)構(gòu) 設(shè)計可以大大提高工作的效率 保證數(shù)據(jù)系統(tǒng)的可靠性 同時合理的電路結(jié)構(gòu)也將 有利于程序的實(shí)現(xiàn) 2 1 單片機(jī)模塊 單片機(jī)模塊主要由單片機(jī)芯片 AT89C52 組成 本模塊負(fù)責(zé)與溫度傳感器 鍵盤 顯示驅(qū)動傳遞命令和數(shù)據(jù) 并進(jìn)行數(shù)據(jù)的處理 單片機(jī)從 8279 讀入鍵盤掃描得到的 溫度設(shè)定值 并將數(shù)據(jù)保存在存儲器某一單元 單片機(jī)還負(fù)責(zé)從 DS18B20 的數(shù)據(jù)引 腳讀入實(shí)際的溫度值 保存在某一單元 最后 單片機(jī)對兩者進(jìn)行比較 從而確定 執(zhí)行的操作 單片機(jī)引腳圖如圖 2 1 所示 圖 2 1 89C52單片機(jī)引腳圖 2 1 1 主要性能參數(shù) 與 MCS 51 產(chǎn)品指令和引腳完全兼容 256 8 位內(nèi)部 RAM 32 可編程 I O 線 3 個 16 位定時器 計數(shù)器 8 個中斷源 可編程串行 UART 通道 片內(nèi)振蕩器和時鐘電路 8K 字節(jié)可重擦寫 flash 閃爍存儲器 全靜態(tài)工作 0Hz 24Hz 三級加密程序存儲器 精選 word 范本 1000 次擦寫周期 2 1 2 功能特性概述 AT89C52 具有以下標(biāo)準(zhǔn)功能 8k 字節(jié) Flash 256 字節(jié) RAM 32 位 I O 口線 看門狗定時器 2 個數(shù)據(jù)指針 三個 16 位定時器 計數(shù)器 一個 6 向量 2 級中斷結(jié) 構(gòu) 全雙工串行口 片內(nèi)晶振及時鐘電路 另外 AT89C52 可降至 0Hz 靜態(tài)邏輯操 作 支持 2 種軟件可選擇節(jié)電模式 空閑模式下 CPU 停止工作 允許 RAM 定時器 計數(shù)器 串口 中斷繼續(xù)工作 掉電保護(hù)方式下 RAM 內(nèi)容被保存 振蕩器被凍結(jié) 單片機(jī)一切工作停止 直到下一個中斷或硬件復(fù)位為止 2 1 3 管腳說明 1 VCC 供電電壓 2 GND 接地 3 P0 口 P0 口為一個 8 位漏級開路雙向 I O 口 每腳可吸收 8TTL 門電流 當(dāng) P1 口的管腳第一次寫 1 時 被定義為高阻輸入 P0 口能夠用于外部程序數(shù)據(jù)存儲器 它可以被定義為數(shù)據(jù) 地址的第八位 在 FIASH 編程時 P0 口作為原碼輸入口 當(dāng) FIASH 進(jìn)行校驗(yàn)時 P0 輸出原碼 此時 P0 外部必須被拉高 4 P1 口 P1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 I O 口 P1 口緩沖器能接 收輸出 4TTL 門電流 P1 口管腳寫入 1 后 被內(nèi)部上拉為高電平 可用作輸入 P1 口被外部下拉為低電平時 將輸出電流 在 FLASH 編程和校驗(yàn)時 P1 口作為第八位 地址接收 5 P2 口 P2 口為一個內(nèi)部上拉電阻的 8 位雙向 I O 口 P2 口緩沖器可接收 輸出 4 個 TTL 門電流 當(dāng) P2 口被寫 1 時 其管腳被內(nèi)部上拉電阻拉高 且作為 輸入 P2 口的管腳被外部拉低 將輸出電流 這是由于內(nèi)部上拉的緣故 P2 口當(dāng)用 于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進(jìn)行存取時 P2 口輸出地址的高八 位 在給出地址 1 時 它利用內(nèi)部上拉優(yōu)勢 當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行 讀寫時 P2 口輸出其特殊功能寄存器的內(nèi)容 P2 口在 FLASH 編程和校驗(yàn)時接收高八 位地址信號和控制信號 6 P3 口 P3 口管腳是 8 個帶內(nèi)部上拉電阻的雙向 I O 口 可接收輸出 4 個 TTL 門電流 當(dāng) P3 口寫入 1 后 它們被內(nèi)部上拉為高電平 并用作輸入 作為輸入 由于外部下拉為低電平 P3 口將輸出電流 這是由于上拉的緣故 P3 口也可作為 AT89C52 的一些特殊功能口 管腳備選功能如下 P3 0 RXD 串行輸入口 P3 1 TXD 串行輸出口 P3 2 INT0 外部中斷 0 P3 3 INT1 外部中斷 1 P3 4 T0 記時器 0 外部輸入 P3 5 T1 記時器 1 外部輸入 P3 6 WR 外部數(shù)據(jù)存儲器寫選通 P3 7 RD 外部數(shù)據(jù)存儲器讀選通 P3 口同時為閃爍編程和編程校驗(yàn)接收一些控制信號 7 RST 復(fù)位輸入 當(dāng)振蕩器復(fù)位器件時 要保持 RST 腳兩個機(jī)器周期的高電平 8 ALE PROG 當(dāng)訪問外部存儲器時 地址鎖存允許的輸出電平用于鎖存地址的地 位字節(jié) 在 FLASH 編程期間 此引腳用于輸入編程脈沖 在平時 ALE 端以不變的 頻率周期輸出正脈沖信號 此頻率為振蕩器頻率的 1 6 因此它可用作對外部輸出 的脈沖或用于定時目的 然而要注意的是 每當(dāng)用作外部數(shù)據(jù)存儲器時 將跳過一 個 ALE 脈沖 如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0 此時 ALE 只有在執(zhí)行 MOVX MOVC 指令時 ALE 才起作用 另外 該引腳被略微拉高 如果微處理器在外部 執(zhí)行狀態(tài) ALE 禁止 置位無效 精選 word 范本 9 PSEN 外部程序存儲器的選通信號 在外部程序存儲器取指期間 每個機(jī)器 周期兩次 PSEN 有效 但在訪問外部數(shù)據(jù)存儲器時 兩次有效的 PSEN 信號將不出現(xiàn) 10 EA VPP 當(dāng) EA 保持低電平時 則在此期間外部程序存儲器 0000H FFFFH 工作 不管是否有內(nèi)部程序存儲器 注意加密方式 1 時 EA 將內(nèi)部鎖定為 RESET 當(dāng) EA 端保持高電平時 此間內(nèi)部程序存儲器 在 FLASH 編程期間 此引腳 也用于施加 12V 編程電源 VPP 11 XTAL1 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入 12 XTAL2 來自反向振蕩器的輸出 2 1 4 定時與記數(shù) AT89C52 單片機(jī)內(nèi)部設(shè)有 3 個 16 位的可編程定時器 計數(shù)器 簡稱為定時器 O T0 定時器 l T1 和定時器 2 T2 可編程是指其功能 如工作方式 定肘時間 量程 啟動方式等 均可由指令來確定和改變 在定時器 計數(shù)器中除了有 3 個 16 位 的計數(shù)器之外 還有兩個特殊功能寄存器 控制寄存器和方式寄存器 2 1 5 復(fù)位電路 AT89C52 單片機(jī)復(fù)位是使 CPU 和系統(tǒng)中的其他芯片處于一個確定的初始狀態(tài) 無 論在系統(tǒng)剛開始接通電源時 還是在斷開電源或者發(fā)生故障后都需要復(fù)位 單片機(jī) 的復(fù)位條件是在復(fù)位引腳 RST 加上持續(xù)的 2 個機(jī)器周期以上的高電位 復(fù)位電路如 圖 2 2 所示 圖 2 2復(fù)位電路 2 1 6 時鐘電路 時鐘電路是系統(tǒng)的心臟 它控制著系統(tǒng)的工作節(jié)奏 時鐘頻率因型號而異 典 型值為 12MHz AT89C52 單片機(jī)內(nèi)部有一個帶反饋的線形反相放大器 XTAL1 XTAL2 分別為反相器輸入和輸出端 外接晶振和電容組成震蕩器 震蕩器在加電以后延遲 一段時間 約 10ms 起振產(chǎn)生時鐘 時鐘電路如圖 2 3 所示 精選 word 范本 圖 2 3時鐘電路圖 2 2 溫度傳感模塊 3 溫度傳感模塊主要由單線數(shù)字溫度傳感器 DS18B20 組成 主要完成溫度的測量 并將其轉(zhuǎn)換成數(shù)字量 傳送給單片機(jī) 溫度傳感模塊如圖 2 4 所示 圖 2 4 溫度傳感模塊圖 2 2 1 DS18B20性能特點(diǎn) 采用單總線專用技術(shù) 既可通過串行口線 也可通過其它 I O 口線與微機(jī)接 口 無須經(jīng)過其它變換電路 直接輸出被測溫度值 9 位二進(jìn)制數(shù) 含符號位 測溫范圍為 55 125 測量分辨率為 0 0625 內(nèi)含 64 位經(jīng)過激光修正的只讀存儲器 ROM 適配各種單片機(jī)或系統(tǒng)機(jī) 用戶可分別設(shè)定各路溫度的上 下限 內(nèi)含寄生電源 2 2 2 DS18B20控制方法 在硬件上 DS18B20 與單片機(jī)的連接有兩種方法 一種是 Vcc 接外部電源 GND 接地 I O 與單片機(jī)的 I O 線相連 另一種是用寄生電源供電 此時 Vcc GND 接地 I O 接單片機(jī) I O 無論是內(nèi)部寄生電源還是外部供電 I O 口線要接 5K 左右的 上拉電阻 精選 word 范本 DS18B20 有六條控制命令 如表 2 1 所示 表 2 1 DS18B20的六條控制命令 2 2 3 DS18B20使用中注意事項(xiàng) DS18B20 雖然具有測溫系統(tǒng)簡單 測溫精度高 連接方便 占用口線少等優(yōu)點(diǎn) 但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題 1 每一次讀寫之前都要對 DS18B20 進(jìn)行復(fù)位 復(fù)位成功后發(fā)送一條 ROM 指 令 最后發(fā)送 RAM 指令 這樣才能對 DS18B20 進(jìn)行預(yù)定的操作 復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500 us 然后釋放 DS18B20 收到信號后等待16 60 us 左右 后 發(fā)出60 240 us 的存在低脈沖 主 CPU 收到此信號表示復(fù)位成功 所有的讀寫時 序至少需要 60us 且每個獨(dú)立的時序之間至少需要 1us 的恢復(fù)時間 在寫時序時 主機(jī)將在下拉低總線 15us 之內(nèi)釋放總線 并向單總線器件寫 1 若主機(jī)拉低總線 后能保持至少 60us 的低電平 則向單總線器件寫0 單總線僅在主機(jī)發(fā)出讀寫時 序時才向主機(jī)傳送數(shù)據(jù) 所以 當(dāng)主機(jī)向單總線器件發(fā)出讀數(shù)據(jù)指令后 必須馬上 產(chǎn)生讀時序 以便單總線器件能傳輸數(shù)據(jù) 2 在寫數(shù)據(jù)時 寫 0 時單總線至少被拉低 60us 寫 1 時 15us 內(nèi)就得 釋放總線 3 轉(zhuǎn)化后得到的12 位數(shù)據(jù) 存儲在 DS18B20 的兩個8 比特的RAM 中 二進(jìn) 制中的前面 5 位是符號位 如果測得的溫度大于 0 這 5 位為 0 只要將測到 的數(shù)值乘于0 0625 即可得到實(shí)際溫度 如果溫度小于0 這5 位為1 測到的數(shù)值 需要取反加 1 再乘于 0 0625 即可得到實(shí)際溫度 4 較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償 由于 DS18B20 與微處理 器間采用串行數(shù)據(jù)傳送 因此 在對 DS1820 進(jìn)行讀寫編程時 必須嚴(yán)格的保證讀 寫時序 否則將無法讀取測溫結(jié)果 在使用PL M C 等高級語言進(jìn)行系統(tǒng)程序設(shè) 計時 對 DS18B20 操作部分最好采用匯編語言實(shí)現(xiàn) 5 在 DS18B20 的有關(guān)資料中均未提及單總線上所掛DS18B20 數(shù)量問題 容 易使人誤認(rèn)為可以掛任意多個 DS18B20 在實(shí)際應(yīng)用中并非如此 當(dāng)單總線上所掛 DS18B20 超過8 個時 就需要解決微處理器的總線驅(qū)動問題 這一點(diǎn)在進(jìn)行多點(diǎn)測 指 令 約定代碼 操 作 說 明 溫度轉(zhuǎn)換 44H 啟動 DS18B20 進(jìn)行溫度轉(zhuǎn)換 讀暫存器 BEH 讀暫存器 9 個字節(jié)內(nèi)容 寫暫存器 4EH 將數(shù)據(jù)寫入暫存器的 TH TL 字節(jié) 復(fù)制暫存器 48H 把暫存器的 TH TL 字節(jié)寫到 E2RAM 中 重新調(diào) E2RAM B8H 把 E2RAM 中的 TH TL 字節(jié)寫到暫存器 TH TL 字節(jié) 讀電源供電方式 B4H 啟動 DS18B20 發(fā)送電源供電方式的信號給主 CPU 精選 word 范本 溫系統(tǒng)設(shè)計時要加以注意 6 連接DS18B20 的總線電纜是有長度限制的 試驗(yàn)中 當(dāng)采用普通信號電纜 傳輸長度超過 50m 時 讀取的測溫數(shù)據(jù)將發(fā)生錯誤 當(dāng)將總線電纜改為雙絞線帶屏 蔽電纜時 正常通訊距離可達(dá) 150m 當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電 纜時 正常通訊距離進(jìn)一步加長 這種情況主要是由總線分布電容使信號波形產(chǎn)生 畸變造成的 因此 在用 DS1B820 進(jìn)行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布 電容和阻抗匹配問題 測溫電纜線建議采用屏蔽 4 芯雙絞線 其中一對線接地線與 信號線 另一組接 VCC 和地線 屏蔽層在源端單點(diǎn)接地 7 在 DS18B20 測溫程序設(shè)計中 向 DS18B20 發(fā)出溫度轉(zhuǎn)換命令后 程序 總要等待 DS18B20 的返回信號 一旦某個 DS18B20 接觸不好斷線 當(dāng)程序讀該 DS18B20 時 將沒有返回信號 程序進(jìn)入死循環(huán) 這一點(diǎn)在進(jìn)行 DS18B20 硬件連接 和軟件設(shè)計時也要給予重視 2 2 4 高速暫存存儲器 在 DS18B20 內(nèi)部結(jié)構(gòu)中有一個高速暫存存儲器 該存儲器由 9 個字節(jié)組成 其 分配如表 2 2 所示 當(dāng)溫度轉(zhuǎn)換命令發(fā)布后 經(jīng)轉(zhuǎn)換所得的溫度值以二進(jìn)制補(bǔ)碼形 式存放在高速暫存存儲器的第 0 和第 1 個字節(jié) 單片機(jī)可通過單線接口讀到該數(shù)據(jù) 讀取時低位在前 高位在后 數(shù)據(jù)格式如表 2 2 所示 對應(yīng)的溫度計算 當(dāng)符號位 S 0 時 直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制 當(dāng) S 1 時 先將補(bǔ)碼變?yōu)樵a 再計算成 十進(jìn)制值 表 2 2 DS18B20暫存器分布 CPU 對 DS18B20 的訪問流程是 先對 DS18B20 初始化 再進(jìn)行 ROM 操作命令 最后才能對存儲器和數(shù)據(jù)進(jìn)行操作 DS18B20 每一步操作都要遵循嚴(yán)格的工作時序 和通信協(xié)議 如主機(jī)控制 DS18B20 完成溫度轉(zhuǎn)換這一過程 根據(jù) DS18B20 的通訊協(xié) 議 須經(jīng)三個步驟 每一次讀寫之前都要對 DS18B20 進(jìn)行復(fù)位 復(fù)位成功后發(fā)送一 條 ROM 指令 最后發(fā)送 RAM 指令 這樣才能對 DS18B20 進(jìn)行預(yù)定的操作 2 3 鍵盤 顯示模塊 鍵盤 顯示模塊主要由鍵盤 顯示驅(qū)動芯片 8279 數(shù)碼管 3 4 鍵盤矩陣 反 相驅(qū)動器 74LS06 組成 完成溫度設(shè)定數(shù)值的輸入和溫度的顯示功能 鍵盤 顯示驅(qū) 動芯片 8279 主要完成和單片機(jī)芯片進(jìn)行數(shù)據(jù)的交換 將單片機(jī)送來的 需要顯示的 數(shù)據(jù)經(jīng)反相驅(qū)動器 74LS06 反相后驅(qū)動數(shù)碼管 譯碼掃描輸出信號 SL0 SL3 完成對數(shù) 碼管的選擇 并且自動刷新顯示數(shù)據(jù) 8279 還負(fù)責(zé)掃描鍵盤 形成鍵碼 并將其送 至單片機(jī) 數(shù)碼管顯示設(shè)定溫度和實(shí)際溫度 鍵盤完成溫度數(shù)據(jù)的設(shè)定 總體電路 如圖 2 5 所示 精選 word 范本 圖 2 5 鍵盤 顯示模塊電路圖 2 3 1 鍵盤 顯示驅(qū)動芯片 8279 8279 芯片是一種通用的可編程鍵盤顯示器接口器件 單個芯片就能完成鍵盤輸 入和七段碼顯示控制兩種功能 引腳如圖 2 6 IRQ 中斷請求 高電平有效 為輸出線 D0 D7 數(shù)據(jù)總線 為雙向三態(tài)總線 和單片機(jī)的數(shù)據(jù)總線相連接 用于傳送 CPU 和 8279 之間的命令 數(shù)據(jù)和狀態(tài)等信息 圖 2 6 8279芯片引腳圖 讀寫選通信號 來自 CPU 低電平有效 控制 8279 讀 寫操作 RDW 片選信號 0 時選中 8279 為輸入線 CSCS A0 數(shù)據(jù)選擇線 A0 1 時 CPU 寫入 8279 的數(shù)據(jù)為命令字 從 8279 讀出的數(shù) 據(jù)為狀態(tài) A0 0 時 CPU 讀寫的字節(jié)均為數(shù)據(jù) RESET 復(fù)位端 RESET 1 時 8279 復(fù)位 復(fù)位時芯片有關(guān)狀態(tài)是 程序時鐘編 程為 31 外部譯碼鍵掃描方式 雙鍵互鎖 16 個字符顯示 精選 word 范本 CLK 系統(tǒng)時鐘 外部時鐘輸入 經(jīng)分頻后產(chǎn)生 100kHz 作為 8279 的內(nèi)部時鐘 RL0 RL7 反饋輸入線 平時保持 1 當(dāng)鍵盤矩陣結(jié)點(diǎn)上有鍵閉合時 邊為 0 在選通方式時作為 8 位輸入線 SHIFT 移位信號 高電平有效 可用它擴(kuò)充鍵盤功能 作為上 下檔功能選擇 鍵 在傳感器方式或選通方式中無效 CNTL STB 控制 選通輸入線 高電平有效 常用于擴(kuò)充鍵的控制功能 該信號 的上升沿可將來自 RL0 RL7 的數(shù)據(jù)存入 FIFO RAM 中 SL0 SL7 掃描輸出線 用于鍵盤 顯示器或傳感器的掃描線 OUTA0 OUTA3 A 組段顯示數(shù)據(jù)輸出線 OUTB0 OUTB3 B 組段顯示數(shù)據(jù)輸出線 A B 兩組可以單獨(dú)使用 也可合并使用 與多位數(shù)字顯示的掃描線 SL0 SL3 同步 消隱輸出線 低電平有效 當(dāng)有顯示切換或消隱命令時 使顯示器消滅 D 2 3 2 8279內(nèi)部結(jié)構(gòu) 1 I O 控制和數(shù)據(jù)緩沖器 數(shù)據(jù)緩沖器是雙向緩沖器 連接內(nèi)部總線和外部總線 D7 D0 用于傳送 CPU 和 8279 之間的命令狀態(tài)和數(shù)據(jù) I O 控制線是 CPU 對 8279 進(jìn)行控制的引線 是片選信號 A0 用于區(qū)別信息CS 的特征 2 控制邏輯 控制與定時寄存器用來寄存鍵盤和顯示器的工作方式以及由 CPU 編程的其他操 作方式 這些寄存器一旦接受鎖存送來的命令 就通過譯碼產(chǎn)生相應(yīng)的信號 從而 完成相應(yīng)的控制功能 定時和控制包含一些計數(shù)器 其中有一個 5 位計數(shù)器 對 CLK 引線輸入的時鐘 信號進(jìn)行分頻 產(chǎn)生 100kHz 的定時信號 然后再經(jīng)過分頻為鍵盤掃描提供適當(dāng)?shù)闹?行掃描頻率和顯示掃描時間 3 掃描計數(shù)器 掃描計數(shù)器有編碼和譯碼兩種工作方式 按編碼方式工作時 掃描計數(shù)器的狀 態(tài)從 SL0 SL3 輸出 通過外部譯碼器 可以外接 16 位顯示器和 8 8 鍵盤 按譯碼 方式工作時 掃描計數(shù)器的低 2 位的狀態(tài)從 SL0 SL3 輸出 狀態(tài)為 00 SL0 輸出低 電平 SL1 SL3 輸出高電平 狀態(tài)為 01 SL1 輸出為低電平 其他輸出為高電平 此時只能外接 4 位顯示器和 4 8 鍵盤 4 鍵輸入控制和 FIFO 先進(jìn)先出 RAM 這部分電路可以完成對鍵盤的自動掃描 鎖存 RL0 RL 7的輸入信號 搜索閉合 鍵 去除鍵抖動 并將鍵輸入數(shù)據(jù)寫入先進(jìn)先出存儲器 FIFO RAM 8279 具有 8 個字節(jié)先進(jìn)先出的鍵輸入存儲器 當(dāng) FIFO RAM 中存有鍵盤上閉合鍵的鍵碼時 IRQ 變?yōu)楦唠娖?向 CPU 請求中斷 當(dāng) CPU 從 FIFO RAM 中讀取數(shù)據(jù)時 IRQ 變?yōu)榈碗娖?若 RAM 中仍有數(shù)據(jù) 則 IRQ 再次恢復(fù)高電平 當(dāng) CPU 將 RAM 中的輸入數(shù)據(jù)全部讀出 時 IRQ 下降為低電平 鍵盤掃描方式中 8279 輸入數(shù)據(jù)按下列格式存放 D7 D6 D5 D4 D3 D2 D1 D0 CNTL SHITF SCAN RETURN 精選 word 范本 CNTL D7 控制鍵 CNTL 的狀態(tài) SHITF D6 控制鍵 SHITF 的狀態(tài) SCAN D5 D3 輸入鍵的行數(shù) 由 SLO SL2 的狀態(tài)確定 RETURN D2 D0 指出輸入鍵的列數(shù) 由 RL0 RL7 狀態(tài)確定 5 顯示 RAM和顯示地址寄存器 8279 中有 16 個字節(jié)的顯示寄存器 CPU 將段數(shù)據(jù)寫入顯示存儲器 存儲的顯示 數(shù)據(jù)輪流從顯示寄存器輸出 CPU 將顯示數(shù)據(jù)寫入存儲器有左端送入和右端送入兩 種方式 左端送入為依次填入方式 右端送入為移位方式 顯示寄存器的輸出與顯 示掃描配合 不斷的將顯示 RAM 中的數(shù)據(jù)在顯示器上顯示出來 也可以合送一個 8 位的二進(jìn)制數(shù)據(jù) 顯示地址寄存器用來寄存由 CPU 進(jìn)行讀 寫顯示 RAM 的地址 它可以由命令設(shè)定 也可以設(shè)置成每次讀出或?qū)懭胫笞詣舆f增 2 3 3 鍵盤和數(shù)碼管 在本模塊中鍵盤向單片機(jī)芯片輸入用戶準(zhǔn)備設(shè)定的溫度值 顯示部分的數(shù)碼管 顯示設(shè)定的溫度值和實(shí)際溫度值 現(xiàn)規(guī)定設(shè)定溫度值在 0 到 99 之間 故需要顯 示的數(shù)碼位數(shù)為兩位數(shù) 需要的數(shù)碼管總數(shù)為 4 用于溫度設(shè)定的鍵盤采用 3 4 鍵 盤矩陣 結(jié)合上述 8279 芯片的介紹 顯示電路采用譯碼掃描 4 字符顯示 左進(jìn)工作方 式 數(shù)碼管采用共陽極 LED 數(shù)碼管 掃描輸出 SL0 SL 3已經(jīng)過譯碼 故可直接作為 4 個數(shù)碼管的選通信號 輪流刷新 4 個數(shù)碼管 OUTA 0 3 與 OUTB0 3 共同作為顯示輸 出 經(jīng) 74LS06 反相驅(qū)動后接至 LED 顯示器 每個輸出驅(qū)動一段 各個數(shù)碼管相同的 段連接在一起 顯示內(nèi)容來自顯示 RAM 現(xiàn)規(guī)定第一位數(shù)碼管顯示設(shè)定溫度的十位 數(shù)字 第二位數(shù)碼管顯示設(shè)定溫度的個位數(shù)字 第三位數(shù)碼管顯示實(shí)際溫度的十位 數(shù)字 第四位顯示實(shí)際溫度的個位數(shù)字 鍵盤的 12 個鍵中 10 個鍵用于設(shè)定溫度 值的 0 9 這 10 個數(shù) 一個鍵用于刪除輸入錯誤的數(shù)字 一個用于確定所輸入的溫度 值 按鍵及相關(guān)說明如表 2 3 所示 表 2 3 按鍵及相關(guān)說明 行掃描信號 列掃描信號按鍵 SL2 SL1 SL0 RL3 RL2 RL1 RL0 鍵盤掃描數(shù) 據(jù) 鍵碼 S0 1 1 0 1 1 1 0 11000000 0 S1 1 0 1 1 1 1 0 11001000 1 S2 0 1 1 1 1 1 0 11010000 2 S3 1 1 0 1 1 0 1 11000001 3 S4 1 0 1 1 1 0 1 11001001 4 S5 0 1 1 1 1 0 1 11010001 5 S6 1 1 0 1 0 1 1 11000010 6 S7 1 0 1 1 0 1 1 11001010 7 S8 0 1 1 1 0 1 1 11010010 8 S9 1 1 0 0 1 1 1 11000011 9 S10 1 0 1 0 1 1 1 11001011 10 S11 0 1 1 0 1 1 1 11010011 11 精選 word 范本 2 4 繼電器控制模塊 本模塊主要是用來控制溫度高低 當(dāng)環(huán)境的溫度高于或低于設(shè)定的溫度值 繼 電器開始工作 進(jìn)行降溫或升溫以達(dá)到設(shè)定溫度值 繼電器模塊電路圖如圖 2 7 所 示 圖 2 7 繼電器模塊 2 4 1 繼電器接點(diǎn)說明 NC 常閉點(diǎn) 以 COM 為共同點(diǎn) NC 與 COM 在平時是呈導(dǎo)通狀態(tài)的 COM 共通點(diǎn) 輸出控制接點(diǎn)的共同接點(diǎn) NO 常開點(diǎn) NO 和 COM 平時呈開路的狀態(tài) 當(dāng)繼電器工作時 NO 和 COM 導(dǎo)通 NC 和 COM 則呈開路狀態(tài) 在本設(shè)計中為了達(dá)到降溫或升溫的目的 在單片機(jī)的 P1 1 和 P1 7 腳分別接 一個繼電器 一個繼電器的 2 腳和 3 腳間接加熱電爐另一個繼電器的 2 腳和 3 腳間 接風(fēng)扇 當(dāng)繼電器 P1 腳輸入一個低電平時 C8550B 處于截至狀態(tài) 繼電器不工作 當(dāng)給一個高電平時 由于磁場的吸合作用使得繼電器開始工作 同時 1 腳和 3 腳斷 開 2 腳和 3 腳接通 從外面可以看到發(fā)光二極管點(diǎn)亮 說明繼電器在正常的工作 2 4 2 繼電器控制升溫 在單片機(jī)的 P1 1 接一個繼電器 繼電器的 3 腳和 2 腳間接加熱電爐 當(dāng)繼電 器 P1 腳輸入一個低電平時 C8550B 處于截至狀態(tài) 繼電器不工作 當(dāng)給一個高電 平時 由于磁場的吸合作用使得繼電器開始工作 同時 1 腳和 3 腳斷開 2 腳和 3 腳接通說明此時電爐升溫 從外面可以看到發(fā)光二極管點(diǎn)亮 說明繼電器在正常的 工作 2 4 3 繼電器控制降溫 在單片機(jī)的 P1 7 接一個繼電器 繼電器的 3 腳和 2 腳間接降溫風(fēng)扇 當(dāng)繼電 器 P1 腳輸入一個低電平時 C8550B 處于截至狀態(tài) 繼電器不工作 當(dāng)給一個高電 精選 word 范本 平時 由于磁場的吸合作用使得繼電器開始工作 同時 1 腳和 3 腳斷開 2 腳和 3 腳接通說明此時使用風(fēng)扇降溫 從外面可以看到發(fā)光二極管點(diǎn)亮 說明繼電器在正 常的工作 3 系統(tǒng)軟件設(shè)計 3 1 系統(tǒng)主程序框圖 本系統(tǒng)的流程框圖中 Ts 設(shè)定溫度 Tr 實(shí)際溫度 系統(tǒng)主程序要做的主要工作 是上電后對系統(tǒng)初始化和構(gòu)建系統(tǒng)整體軟件框架 主要完成 AT89C52 芯片 8279 芯 片和 DS18B20 的初始化 對繼電器 數(shù)碼顯示管的初始化 完成對鍵盤處理子程序 18B20 子程序 顯示子程序的調(diào)用 并完成對溫度值的比較判斷 然后等待溫度設(shè)定 若溫度已經(jīng)設(shè)定好了 判斷系統(tǒng)運(yùn)行鍵是否按下 若系統(tǒng)運(yùn)行 則依次調(diào)用各個相 關(guān)模塊 循環(huán)控制直到系統(tǒng)停止運(yùn)行 如圖 3 1 所示 溫度處理中 允許最大的溫差 為 3 精選 word 范本 圖 3 1 主程序框圖 精選 word 范本 3 2 鍵盤處理子程序框圖 鍵盤處理子程序流程框圖主要完成對鍵盤設(shè)置溫度值進(jìn)行處理 如圖 3 2 所示 本課題中共需要設(shè)置兩位數(shù)字 框圖將數(shù)字位數(shù)送入 R1 將讀入的鍵盤值送入緩 沖單元 28H 完成初始化后 循環(huán)判斷是否有按鍵 有 則讀入鍵碼值并將其轉(zhuǎn)換 成二進(jìn)制數(shù)并存儲在指定單元 計數(shù)器減 1 地址增 1 無 則返回繼續(xù)判斷是否 存在按鍵 圖 3 2 鍵盤處理子程序框圖 3 3 DS18B20子程序框圖 DS18B20 子程序框圖主要完成對溫度傳感器 DS18B20 的初始化和從 18B20 中讀 出數(shù)據(jù)的操作 負(fù)責(zé)溫度信號的采集以及將采集到的模擬量通過 A D 轉(zhuǎn)換器轉(zhuǎn)化為 相應(yīng)的數(shù)字量提供給單片機(jī) 如圖 3 3 所示 單片機(jī)對 DS18B20 的數(shù)據(jù)引腳進(jìn)行 500uS 的低電平復(fù)位 并判斷復(fù)位是否成功 沒有成功則繼續(xù)進(jìn)行復(fù)位 復(fù)位成功 則進(jìn)行讀操作 每一次對 DS18B20 進(jìn)行讀寫操作先必須依次經(jīng)過復(fù)位 ROM 指令 精選 word 范本 圖 3 3 DS18B20子程序框 精選 word 范本 體會 單片機(jī)溫度控制系統(tǒng)采用了高性能的單片機(jī) 其豐富的片內(nèi)源 使得外圍擴(kuò)展 器件少 體積小 降低了成本 也降低了故障率 通過兩個多月的畢業(yè)設(shè)計 我對AT89C52系列單片機(jī)和數(shù)字溫度傳感器DB1280 有了初步了解 從中獲得了很多課堂上學(xué)習(xí)不到的知識 其中我對以下幾點(diǎn)有比較深 的體會 1 電路的設(shè)計要細(xì)致認(rèn)真 對于使用芯片的特點(diǎn)要熟知 2 編程一定要規(guī)范 必要時應(yīng)加上注解 不要想當(dāng)然地定義某個變量 常量 標(biāo)準(zhǔn)的定義方法和習(xí)慣 用助于其他程序員理解程序代碼 以便今后進(jìn)行維護(hù) 3 查閱資料是必不可少的一個環(huán)節(jié) 如果能找到與設(shè)計有關(guān)的合適參考文獻(xiàn) 將對所做的編程工作有極大的幫助 可以避免走許多不必要的彎路 在互聯(lián)網(wǎng)上搜 索相關(guān)資料 往往會有意想不到的驚喜 大大提高效率 4 程序編寫好后 對它的調(diào)試也是及其重要的一步 調(diào)試程序的意義在于 可 以逐步改正程序中的錯誤 努力使程序達(dá)到最佳的狀態(tài) 在調(diào)試的過程中應(yīng)該盡量 以普通用戶的思想去測試 而不是程序設(shè)計者 這次畢業(yè)實(shí)習(xí)與畢業(yè)設(shè)計對我來講是一次難得實(shí)踐機(jī)會 在真正的工作中加深 了對專業(yè)知識的理解 積累了經(jīng)驗(yàn) 無論是自己的意志品質(zhì)還是適應(yīng)社會的能力都 得到了磨練 為今后走向社會打下了堅實(shí)的基礎(chǔ) 精選 word 范本 致 謝 在論文完成之際 回顧大學(xué)的成長道路 我在學(xué)業(yè)和生活上得到了眾多老師 同學(xué)和朋友們的熱心幫助和大力支持 在此 我要向你們表示我最誠摯的謝意 本論文是在林剛勇教授的悉心指導(dǎo)下完成的 在此我首先對林教授表示誠摯的 謝意 在我的整個學(xué)習(xí)階段 無論在專業(yè)學(xué)習(xí) 還是在課題研究和論文撰寫上 林 教授都給予了極大的關(guān)心 指導(dǎo)和鼓勵 林教授求真務(wù)實(shí)的治學(xué)精神 淵博的知識 豐富的實(shí)踐經(jīng)驗(yàn) 勇于開拓的科學(xué)精神和平易近人的態(tài)度 是我終身難忘 并將深 深影響我以后的工作和學(xué)習(xí) 再次感謝林教授對我不倦的栽培 在畢業(yè)設(shè)計期間 教研組的所有老師都給予我非常大的關(guān)心和指導(dǎo) 感謝你們 使我能順利的完成畢業(yè)論文 最后感謝所有對我有過幫助在我人生中知遇的許許多多匆匆過客 愿他們能心 想事成 精選 word 范本 參考文獻(xiàn) 1 秦實(shí)宏 徐春輝 MCS 51 單片機(jī)原理及應(yīng)用 M 武漢 華中科技大學(xué)出版社 2010 2 陳明熒 8051 單片機(jī)課程設(shè)計實(shí)訓(xùn)教材 M 北京 清華大學(xué)出版 2004 3 凌玉華 單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計 M 長沙 中南大學(xué)出版社 2006 4 李軍 檢測技術(shù)及儀表 M 北京 中國輕工業(yè)出版社 2002 5 欒桂東 金歡陽 傳感器及其應(yīng)用 M 西安 西安電子科技大學(xué) 2002 6 康華光 電子技術(shù)基礎(chǔ)模擬部分 第四版 M 北京 高等教育出版社 1999 7 譚浩強(qiáng) C 程序設(shè)計 第三版 M 北京 清華大學(xué)出版社 2005 7 3 8 侯玉寶 基于 Proteus 的 51 系列單片機(jī)設(shè)計與仿真 M 電子工業(yè)出版社 2008 9 劉鳴 車立新 陳興梧 趙煜 溫度傳感器 DS18B20 的特性及程序設(shè)計方法 J 電測與儀表 2001 10 10 周月霞 孫傳友 DS18B20 硬件連接及軟件編程 J 傳感器世界 2001 12 11 陳濤 DS18B20 芯片與單片微控制器的接口設(shè)計與應(yīng)用 J 山東煤炭科技 2002 03 12 陳躍東 DS18B20 集成溫度傳感器原理及其應(yīng)用 J 安徽工程科技學(xué)院學(xué)報 2002 04 精選 word 范本 附 錄 單片機(jī)內(nèi)存分配申明 TEMPES EQU 27H 用于保存設(shè)定溫度值 TEMPER L EQU 29H 用于保存實(shí)際溫度 Tr 的低 8 位 TEMPER H EQU 28H 用于保存實(shí)際溫度 Tr 的高 8 位 FLAG1 EQU 38H 是否檢測到 DS18B20 標(biāo)志未 LO EQU 0F60H 定時器低字節(jié) HI EQU 0F6H 定時器高字節(jié) FLAG2 EQU 39H 按鍵標(biāo)志位 A BIT EQU 20H 數(shù)碼管實(shí)際溫度 Tr 個位數(shù)存放位置 B BIT EQU 21H 數(shù)碼管實(shí)際溫度 Tr 十位數(shù)存放位置 C BIT EQU 18H 數(shù)碼管設(shè)定溫度 Ts 個位數(shù)存放位置 D BIT EQU 19H 數(shù)碼管設(shè)定溫度 Ts 十位數(shù)存放位置 SDWD EQU 30H 轉(zhuǎn)換后的設(shè)置溫度 SJWD EQU 31H 轉(zhuǎn)換后的實(shí)際溫度 SW1 EQU P1 1 繼電器 1 控制引腳 加熱繼電器 SW2 EQU P1 7 繼電器 2 控制引腳 降溫繼電器 DS18 EQU P1 0 DS18B20 的數(shù)據(jù)引腳 SJK EQU FFE8H 8279 的數(shù)據(jù)口 MLK EQU FFEAH 8279 的命令口 8CLK EQU ALK 8279 的時鐘信號輸入端 ORG 00H JMP MAIN ORG 0BH MAIN CLR SW1 關(guān)繼電器 1 CLR SW2 關(guān)繼電器 2 MOV A BIT 0 MOV B BIT 0 MOV C BIT 0 MOV D BIT 0 MOV TEMPES 0 MOV TEMPER L 0 MOV TEMPER H 0 INIT 1820 SETB DS18 NOP CLR DS18 主機(jī)發(fā)出延時 537 微妙的復(fù)位低脈沖 MOV R1 3 TER1 MOV R0 107 DJNZ R0 DJNZ R1 TSR1 精選 word 范本 SETB DS18 拉高數(shù)據(jù)線 NOP NOP NOP NOP MOV R0 25H TSR2 JNB DS18 TSR3 等待 DS18B20 回應(yīng) DJNZ R0 TSR2 延時 LJMP TSR4 TSR3 SETB FLAG1 置標(biāo)志位 表示 DS18B20 存在 LJMP TSR5 TSR4 CLR FLAG1 清標(biāo)志位 表示 DS18B20 不存在 LJMP TSR7 TSR5 MOV R0 117 TDR6 DJNZ R0 TSR6 時序要求延時一端時間 TSR7 SETB DS18 RET LP MOVX A DPTR JB ACC 7 LP MOV A 2AH S 時鐘十分頻成 100KHz MOVX DPTR A MOVX DPTR DISHBH 提示符 0000 代碼首地址 LCALL DIS MOV 27H 80H SETB IT SETB EA SETB EX1 INIT TIMTR MOV TMOD 22H 定時器初始化 使用定時器 0 模式 2 MOV IE 00H 啟用定時器 0 中斷產(chǎn)生 MOV TL0 L0 加載低字節(jié) MOV TH0 HI 加載高字節(jié) SETB TR0 啟動定時器 0 開始記時 SETB EA SETB ET0 JNB TF0 CPL 8CLK MOV SP 60H CLR EA MOV DPTR MLK MOV A 0D1H MOVX DPTR A ZHUCHXU LCALL JPCL LCALL DISPLAY 精選 word 范本 AA LCALL GET TEMPER MOV A SJWD 溫度比較 CJNE A SDWD PD XD LCALL DISPLAY LJMP ZHUCHXU PD JC PD1 SUB A 3 CJNE A SDWD PD2 LCALL XD PD2 JNC JW LCALL XD PD1 ADD A 3 CJNE A SDWD PD2 LCALL XD PD2 JC SW LCALL XD SW SETB SW1 JMP AA JW SETB SW2 JMP AA 鍵盤處理子程序 JPLC MOV R1 2 MOV R2 27H JNB IE0 等待鍵盤的輸入 MOVX DPTR MLK MOV A 40H MOVX DPTR A MOVX DPTR SJK MOVX A DPTR ANL A 3FH MOVX R2 A INC R2 DJNZ R2 JX JMP RET JX MOV DPTR TABLE1 MOV R3 0BH MOVX A R2 MOV R4 TABLE2 JM DJNZ R3 2 AJMP JX CJNE A R4 4 MOV R2 DPTR AJMP RET 精選 word 范本 INC R4 INC DPTR DEC R3 AJMP JM TABLE1 DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8FH 8DH 90H BFH 0FFH TABLE2 DB 0H 8H 20H 1H 9H 11H 2H AH 12H 3H 0BH 23H DS18B20子程序 GET TEMPER SETB DS18 LCALL INIT 1820 先復(fù)位 DS18B20 JB FLAG1 TSS2 RET 判斷 DS18B20 是否存在 若 DS18B20 不存在則返回 TSS2 MOV A 0CCH 跳過 ROM 匹配 MOV A 44H 發(fā)出溫度轉(zhuǎn)換命令 LCALL DISPLAY 這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一 段時間 等待轉(zhuǎn)換結(jié)束 LCALL INIT 1820 準(zhǔn)備讀溫度前先復(fù)位 MOV A 0CCH 跳過 ROM 匹配 LCALL WRITE 1820 MOV A 0BEH 發(fā)出讀溫度命令 CALL READ 1820 將讀出的溫度數(shù)據(jù)保存到 28H 29H RET 讀 DS18B20 的程序 從 DS18B20 中讀出兩個字節(jié)的溫度數(shù)據(jù) READ 1820 MOV R4 2 將溫度高位和低位從 DS18B20 中讀出 MOV R1 29H 低位存如 29H TEMPER L 高位存入 28H TEMPER H RE00 MOV R2 8 數(shù)據(jù)一共 8 位 RE01 CLR C SETB DS18 NOP NOP CLR DS18 NOP NOP NOP SETB DS18 MOV R3 9 RE10 DJNZ R3 RE10 MOV C DS18 MOV R3 23 RRC A 精選 word 范本 DJNZ R2 RE10 MOV R1 A DEC R1 DJNZ R4 RE00 END 顯示子程序 DISPLAY MOV DPTR MLK MOV A 0D1H MOVX DPTR A MOV DPTR MLK MOV A 0D90H MOVX DPTR A MOV A 29H 將 29H 中的十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制 MOV B 10 DIV AB MOV B BIT A 十位在 A MOV A BIT A 個位在 B MOV DPTR NUMTAB 指定查表起始地址 MOV R0 4 DPLOP MOV A A BIT 取個位數(shù) MOVC A A DPTR 查個位數(shù)的 7 段碼 PUSH A MOV A 90H MOV DPTR MLK POP A MOVX DPTR A MOV A B BIT 取十位數(shù) MOVC A A DPTR 查十位數(shù)的 7 段碼 PUSH A MOV A 90H MOV DPTR MLK POP A MOVX DPTR A RET 7 段數(shù)碼管 0 9 數(shù)字的共陽極顯示代碼 TABLE2 DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8FH 8DH 90H BFH 0FFH 精選 word 范本- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 溫度 控制
鏈接地址:http://zhongcaozhi.com.cn/p-5393316.html