基于單片機溫度控制電路的設(shè)計與制作.doc_第1頁
基于單片機溫度控制電路的設(shè)計與制作.doc_第2頁
基于單片機溫度控制電路的設(shè)計與制作.doc_第3頁
基于單片機溫度控制電路的設(shè)計與制作.doc_第4頁
基于單片機溫度控制電路的設(shè)計與制作.doc_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機溫度控制電路的設(shè)計與制作基于單片機溫度控制電路的設(shè)計與制作 摘摘 要要 本設(shè)計以 STC89C52RC 單片機為控制核心 由實時時鐘芯片 DS1302 和數(shù)字溫 度傳感器 DS18B20 構(gòu)成了一個高溫和低溫時 分別對相應(yīng)的器件進行控制的系統(tǒng) 詳細地 介紹了整個系統(tǒng)的硬件組成結(jié)構(gòu) 工作原理和系統(tǒng)的軟件程序設(shè)計 重點闡述了時鐘模塊 顯示模塊 溫度檢測模塊及相關(guān)控制模塊等的模塊化設(shè)計思路與制作 系統(tǒng)采用液晶 LCD1602 作為顯示器 具有實時時間顯示 環(huán)境溫度顯示 顯示系統(tǒng)連續(xù)工作前 24 小時 整點的溫度值 在本設(shè)計中 軟件程序均采用 C 語言編寫 便于移植與升級 關(guān)鍵詞關(guān)鍵詞 STC89C52RC 單片機 DS1302 LCD1602 溫度控制 Based on single chip microcomputer temperature control circuit design and production AbstractAbstract This design with STC89C52RC microcontroller as control core by real time clock chip DS1302 and digital temperature sensor DS18B20 constitute a high temperature and low temperature respectively on the corresponding device to control system Introduced the whole systems hardware structure working principle and system software program design in detail expounds the clock module display module temperature detecting module and related control module of modularization design and production System adopts LCD monitor LCD1602 as with real time time display environmental temperature display display the system worked 24 hours before the temperature on the hour value In this design software program all use written in C language for transplantation and upgrades Key words STC89C52RC single chip ds1302 lcd1602 Temperature control 目 錄 目錄目錄 1 背景與意義背景與意義 1 1 1背景 1 1 2意義 1 1 3功能介紹 2 2方案比較與論證方案比較與論證 3 2 1設(shè)計任務(wù)與要求 3 2 2方案比較與論證 3 2 2 1方案比較與論證 3 2 2 2方案的選擇 4 3系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計 4 3 1總體電路框圖 4 3 2單元電路設(shè)計 5 3 2 1單片機模塊 5 3 2 2時鐘模塊 6 3 2 3溫度采集模塊 6 3 2 4液晶顯示模塊 8 3 2 5按鍵模塊 8 4系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 9 4 1總體軟件框圖 9 4 2各模塊程序設(shè)計 10 4 2 1時鐘驅(qū)動程序 10 4 2 2溫度數(shù)據(jù)采集 11 4 2 3液晶驅(qū)動程序 13 5系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試 14 5 1硬件調(diào)試 14 5 2軟件調(diào)試 15 6設(shè)計總結(jié)設(shè)計總結(jié) 15 致致 謝謝 17 參考文獻參考文獻 18 附錄附錄 19 附錄 A 電路圖 19 附錄 B 程序清單 19 正 文 0 基于單片機溫度控制電路的設(shè)計與制作基于單片機溫度控制電路的設(shè)計與制作 專業(yè)班級 指導(dǎo)教師 1 背景與意義背景與意義 1 1背景 隨著社會的發(fā)展 科技的進步 以及測溫儀器在各個領(lǐng)域的應(yīng)用 智能化已是現(xiàn) 代溫度控制系統(tǒng)發(fā)展的主流方向 特別是近年來 溫度控制系統(tǒng)已應(yīng)用到人們 生活的各個方面 設(shè)計一個溫度控制系統(tǒng) 具有廣泛的應(yīng)用前景與實際意義 溫度是科學(xué)技術(shù)中最基本的物理量之一 物理 化學(xué) 生物等學(xué)科都離不開溫 度 在工業(yè)生產(chǎn)和實驗研究中 像電力 化工 石油 冶金 航空航天 機械 制造 糧食存儲 酒類生產(chǎn)等領(lǐng)域內(nèi) 溫度常常是表征對象和過程狀態(tài)的最重 要的參數(shù)之一 比如 發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi) 許多化 學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M行 煉油過程中 原油必須 在不同的溫度和壓力條件下進行分餾才能得到汽油 柴油 煤油等產(chǎn)品 沒有 合適的溫度環(huán)境 許多電子設(shè)備就不能正常工作 糧倉的儲糧就會變質(zhì)霉爛 酒類的品質(zhì)就沒有保障 因此 各行各業(yè)對溫度控制的要求都越來越高 可見 溫度的測量和控制是非常重要的 單片機在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛 在很多的電子產(chǎn)品中也用到了溫度檢測和溫度控制 隨著溫度控制器應(yīng)用范圍 的日益廣泛和多樣 各種適用于不同場合的智能溫度控制器應(yīng)運而生 比較成 熟的產(chǎn)品就有水溫測控溫度控制系統(tǒng)和語音報警的溫度監(jiān)控儀等 其中水溫測 控溫度控制系統(tǒng)的功能可以實現(xiàn)從常溫開始對自來水加溫 加熱到人工設(shè)定的 溫度的恒溫控制 而語音報警的溫度監(jiān)控儀可以通過控制空調(diào)對溫度進行自動 調(diào)節(jié) 使被控環(huán)境的溫度達到要求的范圍 并能實現(xiàn)對所控區(qū)域內(nèi)環(huán)境溫度的 自動監(jiān)控的遠程智能調(diào)控系統(tǒng) 1 2意義 基于單片機溫度控制的測試控制系統(tǒng) 控制對象是溫度 溫度控制在日常 Comment 園園園園1 此時 如何工作 Comment 園園園園2 Comment 園園園園3 不知道什么意思 Comment 園園園園4 正 文 1 生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛 比如溫室 水池 發(fā)酵缸 電源等場所的溫度 控制 而以往溫度控制是由人工完成的而且不夠重視 其實在很多場所溫度都 需要監(jiān)控以防止發(fā)生意外 針對此問題 本系統(tǒng)設(shè)計的目的是實現(xiàn)可以根據(jù)外 界環(huán)境溫度控制電機的溫度控制系統(tǒng) 它應(yīng)用廣泛 功能強大 小巧美觀 便 于攜帶 是一款既實用又廉價的控制系統(tǒng) 1 3 功能介紹 1 3 1 按 Model 鍵可切換設(shè)置模式 液晶屏顯示相應(yīng)模式頁面 1 3 2 當(dāng)液晶屏顯示頁面 1 時 即液晶屏的第一行顯示年 月 日 星期 第二行顯示時 分 秒 溫度時 按 Set 鍵 可實現(xiàn)風(fēng)扇的自動控制和手動控制 工作方式的切換 1 3 3 當(dāng)液晶屏顯示頁面 2 時 是時間設(shè)置模式 在該模式下按一下 Set 鍵 后 通過按左鍵 右鍵 加鍵和減鍵就可以對時間進行設(shè)置 設(shè)置完后再按 Set 鍵后就可以保存設(shè)定的時間 1 3 4 當(dāng)液晶屏顯示頁面 3 時 可查看系統(tǒng)連續(xù)工作時前 24 小時內(nèi)整點的 溫度值 即系統(tǒng)連續(xù)工作 24 小時后 輸入整點的時間 液晶屏顯示對應(yīng)該點時 間的溫度值 1 3 5 當(dāng)液晶屏顯示頁面 4 時 是繼電器工作情況的顯示 繼電器用于控 制加熱設(shè)備的工作 當(dāng)光標在 AuTo Manuel 時 按加或減鍵可設(shè)置繼電器的自 動或手動工作方式 手動 Manuel 工作方式時 繼電器一直打開 此時 風(fēng) 扇無論何種情況下都是按照風(fēng)扇本身最大速度運轉(zhuǎn) 自動時 由設(shè)定溫度控制 繼電器的開或關(guān) 當(dāng)環(huán)境溫度低于設(shè)定溫度時 繼電器才打開 1 3 6 當(dāng)液晶屏顯示頁面 5 時 是顯示風(fēng)扇自動工作時不能打開的時間段 顯示 即是在液晶頁面顯示的時間范圍內(nèi) 自動工作時 風(fēng)扇不允許打開 直 到過了這個時間段 自動控制才能再次正常工作 這個時間段是通過程序設(shè)定 的 而且設(shè)定好之后不允許再次修改 正 文 2 2方案比較與論證方案比較與論證 2 1設(shè)計任務(wù)與要求 2 1 1 當(dāng)傳感器檢測出的環(huán)境溫度偏低時 控制繼電器 實現(xiàn)電暖爐的開與關(guān) 的狀態(tài) 2 1 2 當(dāng)傳感器檢測出的環(huán)境溫度偏高時 隨著溫度的改變 控制電機的轉(zhuǎn)速 作出相應(yīng)的改變 2 1 3 通過時鐘芯片 DS1302 自動控制電機 使其在某個時間段不工作 2 1 4 當(dāng)環(huán)境溫度超出了設(shè)定值時 蜂鳴器發(fā)出聲響報警 2 2方案比較與論證 2 2 1 方案比較與論證 方案一 單片機按照一定的控制算法對采集的溫度數(shù)據(jù)進行處理 得到控制 量 以控制電機的功率 從而實現(xiàn)風(fēng)扇轉(zhuǎn)速的控制 傳感器采用集成的 AD599 但是這個方案的電路結(jié)構(gòu)十分復(fù)雜 A D 轉(zhuǎn)換器的精度實現(xiàn)既定功能 的困難很大 而且由于器件很多 使得單片機 89C51 的內(nèi)部資源不能滿足需要 調(diào)試和安裝都十分不方便 同時實現(xiàn)擴展功能困難 方案組成方框圖如圖 1 所 示 正 文 3 溫度傳感器信號放大A D 轉(zhuǎn)換 單片機 鍵盤 液晶顯示 蜂鳴器 或門放大光耦可控硅 電機 過零觸發(fā)電路 220V 圖 1 方案一組成方框圖 方案二 采用數(shù)字式溫度傳感器 DS18B20 它能夠?qū)囟戎苯愚D(zhuǎn)換成數(shù)字 信號 可以通過一根數(shù)據(jù)線與單片機進行通信 而且它不需要外部元件 在 100C 850C 范圍內(nèi)可以精確到 0 50C 完全滿足設(shè)計要求 這樣設(shè)計就可以不使 用 A D 轉(zhuǎn)換器 從而使系統(tǒng)的精度得以提高 也能夠大大節(jié)省單片機得系統(tǒng)資 源 所以我又加了 DS1302 時鐘模塊電路 使時間能夠?qū)崟r顯示 方案組成方 框圖如圖 2 所示 DS18B20 鍵盤 DS1302 單片機 STC89C525RC LCD 顯示 負載 蜂鳴器 圖 2 方案二組成方框圖 2 2 2 方案的選擇 通過以上兩種方案的比較 我選擇的是方案二作為設(shè)計方案 因為方案二與 正 文 4 方案一相比 它的硬件系統(tǒng)更簡單 但是功能卻更強大 它本身的模塊化設(shè)計 又使它的系統(tǒng)通用性遠遠超過方案一 在現(xiàn)在的條件下我能夠完成這個方案 所以最終選擇了這個方案 3系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計 3 1總體電路框圖 本設(shè)計以 STC89C52RC 單片機為主控核心設(shè)計的一個溫度控制系統(tǒng) 低溫 時可控制加熱設(shè)備 高溫時控制風(fēng)扇 超出設(shè)定最高溫度值時蜂鳴器發(fā)出聲響 報警 硬件方框圖如圖 3 所示 DS18B20 溫度檢測模 塊 DS1302 時鐘模塊 鍵盤 STC89C52RC 單片機 LCD 顯示模塊 蜂鳴器 繼電器 光耦可控硅 加熱設(shè)備 風(fēng)扇 圖 3 總體硬件方框圖 3 2單元電路設(shè)計 3 2 1 單片機模塊 STC89C52RC 單片機為 40 引腳雙列直插芯片 有四個 I O 口 P0 P1 P2 P3 MCS 51 單片機共有 4 個 8 位的 I O 口 P0 P1 P2 P3 每一條 I O 線都能 獨立地作輸出或輸入 Comment 園園園園5 縮進太多 正 文 5 單片機的最小系統(tǒng)如下圖所示 18 引腳和 19 引腳接時鐘電路 XTAL1 接外部 晶振和微調(diào)電容的一端 在片內(nèi)它是振蕩器倒相放大器的輸入 XTAL2 接外部晶 振和微調(diào)電容的另一端 在片內(nèi)它是振蕩器倒相放大器的輸出 第 9 引腳為復(fù)位 輸入端 接上電容 電阻及開關(guān)后夠上電復(fù)位電路 20 引腳為接地端 40 引腳為 電源端 31 引腳接電源端 9 11 如圖 4 所示 圖 4 單片機電路 3 2 2 時鐘模塊 DS1302 是美國 DALLAS 公司推出的一種高性能 低功耗的實時時鐘芯片 附 加 31 字節(jié)靜態(tài) RAM 采用 SPI 三線接口與 CPU 進行同步通信 并可采用突發(fā)方 式一次傳送多個字節(jié)的時鐘信號和 RAM 數(shù)據(jù) 實時時鐘可提供秒 分 時 日 星期 月和年 一個月小于 31 天時可以自動調(diào)整 且具有閏年補償功能 工作 電壓寬達 2 5V 5 5V 234 243 采用雙電源供電 主電源和備用電源 可設(shè)置 備用電源供電方式 提供了對后背電源進行涓細電流充電的能力 DS1302 與單 片機的連接僅需要 3 條線 RST 引腳 SCLK 串行時鐘引腳 I O 串行數(shù)據(jù)引腳 由 Y2 組成 DS1302 時鐘振蕩電路 提供計時脈沖 其中 Y2 為 32 768MHz 然后 其中 SCLK I O RST 分別接主控單片機的 P22 P23 P24 腳 電路原理圖如圖 5 所 示 正 文 6 圖 5 DS1302 原理圖 3 2 3 溫度采集模塊 DS18B20 支持 一線總線 故可以大大提高系統(tǒng)的抗干擾性 適合于惡劣 的環(huán)境溫度測量 全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路 內(nèi) 體積小 同時 DS18B20 的測量溫度范圍為 55 0C 125 0C 在 10 85 0C 范圍內(nèi) 精度為 0 5 0C 同樣的 DS18B20 還可以程序設(shè)定 9 12 位的分辨率 精度為 0 5 0C 同時設(shè)定的報警溫度存儲在 EEPROM 中 掉電后依然保存 并 且支持 3V 5V 的電壓范圍 便于系統(tǒng)設(shè)計 DS18B20 的主要特點 適應(yīng)電壓范圍更寬 電壓范圍 3 0 5 5V 在寄生電源方式下可由數(shù)據(jù)線 供電 獨特的單線接口方式 DS18B20 在與微處理器連接時僅需要一條口線即可實 現(xiàn)微處理器與 DS18B20 的雙向通訊 DS18B20 支持多點組網(wǎng)功能 多個 DS18B20 可以并聯(lián)在唯一的三線上 實現(xiàn) 組網(wǎng)多點測溫 DS18B20 在使用中不需要任何外圍元件 全部傳感元件及轉(zhuǎn)換電路集成在形 如一只三極管的集成電路內(nèi) 溫范圍 55 125 在 10 85 時精度為 0 5 可編程的分辨率為 9 12 位 對應(yīng)的可分辨溫度分別為 0 5 0 25 0 125 和 0 0625 可實現(xiàn)高精度測溫 在 9 位分辨率時最多在 93 75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字 12 位分辨率時最多 在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字 速度更快 測量結(jié)果直接輸出數(shù)字溫度信號 以 一線總線 串行傳送給 CPU 同時可傳 Comment 園園園園6 正 文 7 送 CRC 校驗碼 具有極強的抗干擾糾錯能力 負壓特性 電源極性接反時 芯片不會因發(fā)熱而燒毀 但不能正常工作 249 256 對 DS18B20 的設(shè)計外部供電方式單點測溫 在這種外部電源供電方式下 DS18B20 工作電源由 VDD 引腳接入 因為由 VDD 接入電源不存在電源電流不足 的問題 可以保證轉(zhuǎn)換精度 不過要注意 在這種外部供電的方式下 DS18B20 的 GND 腳不能懸空 否則不能轉(zhuǎn)換溫度 讀取的溫度總是 80 oC DS18B20 的硬 件電路連接如下圖 6 所示 圖 6 DS18B20 原理圖 3 2 4 液晶顯示模塊 字符型液晶顯示模塊是一種專門用于顯示字母 數(shù)字 版本號等的點陣式液 晶顯示模塊 它是由若干個 5 7 或 5 11 等點陣符位組成的 第一個點陣字符 位都可以顯示一個字符 點陣字符位之間有一定點距的間隔 這樣就起到了字 符間距和行距的作用 本系統(tǒng)采用字符型液晶顯示模塊 1602 我設(shè)置單片機驅(qū) 動 LCD1602 采用并行方式 RS RW EN 分別接主控單片機的 P25 P26 P27 腳 DB0 DB7 接到主控單片機的 P0 數(shù)據(jù)接口 BLA 接口通過一個 5V 電源 BLK 接地 LCD1602 的硬件連接原理圖如圖 7 所示 圖 7 液晶顯示 LCD1602 原理圖 正 文 8 3 2 5 按鍵模塊 我在本設(shè)計中加入了 5 個按鍵 其中 S1 為模式鍵 按一次 選擇顯示當(dāng)前 時間與溫度模式 按第二次 選擇顯示日期和時間設(shè)置模式 按第三次 選擇查看 前 24 小時整點溫度模式 按第四次 選擇顯示繼電器工作情況模式 按第五次 顯示風(fēng)扇自動工作時不能工作的時間段 S2 為設(shè)置鍵 用于設(shè)置風(fēng)扇手動跟自 動工作方式的設(shè)置及鎖定 S1 選擇的模式 S3 是對選中位的數(shù)據(jù)進行加 1 S4 是對被選中位數(shù)據(jù)進行減 1 S5 是左移鍵設(shè)置數(shù)據(jù)時 若按一次則光標向當(dāng)前所 設(shè)數(shù)據(jù)左移一位 按兩次 則再移一位 依此類推 S6 是右移鍵設(shè)置數(shù)據(jù)時 若按 一次則光標向當(dāng)前所設(shè)數(shù)據(jù)右移一位 按兩次 則再移一位 依此類推 如圖 8 所 示 圖 8 按鍵原理圖 4系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 4 1總體軟件框圖 總體軟件框圖如圖 9 所示 正 文 9 圖 9 總體軟件框圖 4 2各模塊程序設(shè)計 4 2 1 時鐘驅(qū)動程序 DS1302 是 SPI 總線驅(qū)動方式 它不僅要向寄存器寫入控制字 還需要讀取 相應(yīng)寄存器的數(shù)據(jù) 下圖圖 10 是 DS1302 的控制字 控制字的最高有效位 位 7 必須是邏輯 1 如果它為 0 則不能把數(shù)據(jù)寫 入到 DS1302 中 位 6 如果為 0 則表示存取日歷時鐘數(shù)據(jù) 為 1 表示存取 RAM 數(shù)據(jù) 位 5 至位 1 A4 A0 指示操作單元的地址 位 0 最低有效位 如為 0 表 示要進行寫操作 為 1 表示進行讀操作 控制字總是從最低位開始輸出 在控 制字指令輸入后的下一個 SCLK 時鐘的上升沿時 數(shù)據(jù)被寫入 DS1302 數(shù)據(jù)輸 入從最低位 0 位 開始 同樣 在緊跟 8 位的控制字指令后的下一個 SCLK 圖 10 控制字 即地址和命令字節(jié) 正 文 10 脈沖的下降沿 讀出 DS1302 的數(shù)據(jù) 讀出的數(shù)據(jù)也是從最低位到最高位 數(shù) 據(jù)讀寫時序如下圖 11 所示 圖 11 DS1302 讀寫時序圖 4 2 2 溫度數(shù)據(jù)采集 根據(jù) DS18B20 的通訊協(xié)議 單片機控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過三個 步驟 每一次讀寫之前都要對 DS18B20 進行復(fù)位操作 復(fù)位成功后發(fā)送一條 ROM 指令 最后發(fā)送 RAM 指令 這樣才能對 DS18B20 進行預(yù)定的操作 復(fù)位要 求單片機將數(shù)據(jù)線下拉 50 微秒 然后釋放 當(dāng) DS18B20 受到信號后等待 16 60 微秒左右 然后發(fā)出 60 240 微秒的存在低脈沖 主 CPU 收到此信號表 示復(fù)位成功 指令約定代碼功能 讀 ROM 33H 讀 DS1820 溫度傳感器 ROM 中的編碼 即 64 位地址 符合 ROM 55H 發(fā)出此命令之后 接著發(fā)出 64 位 ROM 編碼 訪問單總 線上與該編碼相對應(yīng)的 BS1820 使之作出響應(yīng) 為下一 步對該 DS1820 的讀寫作準備 搜索 ROM OFOH 用于確定掛接在同一總線上 DS1820 的個數(shù)和識別 64 位 ROM 地址 為操作各器件作好準備 跳過 ROM OCCH 忽略 64 位 ROM 地址 直接向 DS1820 發(fā)溫度變換命令 適用與單片工作 告警搜索命 令 OECH 執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才做出 響應(yīng) 正 文 11 指令約定代碼功能 溫度變換 44H 啟動 DS1820 進行溫度轉(zhuǎn)換 12 位轉(zhuǎn)換時最廠為 750ms 9 位為 93 75ms 結(jié)果存入內(nèi)部 9 字節(jié) RAM 中 讀暫存器 OBEH 讀內(nèi)部 RAM 中 9 字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部 RAM 的 3 4 字節(jié)寫上 下限溫度數(shù)據(jù)命令 緊跟該命令之后 是傳送兩字節(jié)的數(shù)據(jù) 復(fù)制暫存器 48H 將 RAM 中第 3 4 字節(jié)的內(nèi)容復(fù)制到 EEPROM 中 重調(diào) EEPROM OB8H 將 EEPROM 中內(nèi)容恢復(fù)到 RAM 中的第 3 4 字節(jié) 讀供電方式 OB4H 讀 DS1820 的供電模式 寄生東佃時 DS1820 發(fā)送 0 外界電源供電 DS1820 發(fā)送 1 下圖 12 是 DS18B20 的初始化和讀寫時序 正 文 12 圖 12 DS18B20 讀寫時序 4 2 3 液晶驅(qū)動程序 LCD 使用之前須對它進行初始初始化可通過復(fù)位完成 也可在復(fù)位后完成 初始化過程如下 1 清屏 將顯示緩沖區(qū) DDRAM 的內(nèi)容全部寫入空格 ASCII20H 2 功能設(shè)置 3 開 關(guān)顯示設(shè)置 控制顯示的開關(guān) 當(dāng) D 1 時顯示 D 0 時不顯示 控制光 標開關(guān) 當(dāng) C 1 時光標顯示 C 0 時光標不顯示 控制字符是否閃爍 當(dāng) B 0 時字符閃爍 B 0 時字符不閃爍 4 輸入方式設(shè)置 初始化過程 1 延時 15ms 2 寫指令 38H 不檢測忙信號 3 延 時 5 ms 4 寫指令 38H 不檢測忙信號 5 延時 5ms 6 寫指令 38H 不檢測忙信號 7 以后每次寫指令 讀 寫數(shù)據(jù)操作之前均需檢測忙 信號 8 寫指令 38H 顯示模式設(shè)置 9 寫指令 08H 顯示關(guān)閉 10 寫指令 01H 顯示清屏 11 寫指令 06H 顯示光標移動設(shè)置 12 寫指令 0CH 顯示開及光標設(shè)置 Comment 園園園園7 為什么要二次清 除 LCD 顯示 正 文 13 本系統(tǒng)中液晶顯示器的初始化程序流程如圖 13 所示 開始 清除 LCD 顯 示內(nèi)容 模擬設(shè)置 移動光標 顯示開關(guān)光 標 初始化完成 圖 13 LCD 初始化程序流程圖 5系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試 5 1硬件調(diào)試 在本溫度控制電路的設(shè)計調(diào)試中遇到了很多的問題 回想這些問題只要認真 多思考都是可以避免的 以下為主要的問題 1 開始調(diào)試時發(fā)現(xiàn)時鐘芯片 DS1302 發(fā)熱很厲害 后來發(fā)現(xiàn)電路沒有給它加 上拉電阻 加上上拉電阻后問題就解決了 正 文 14 2 雙向可控硅 BTA12 600B 高壓部分電路 加 104 電容時 發(fā)生擊穿現(xiàn)象 導(dǎo)致光耦控制部分電路癱瘓 原因是耐壓值不夠 解決的方法有兩種 第一種是更換耐壓值更高的電容 由于該電容的作用是吸收可控硅元件 的殘余電量 使得可控硅能夠正常導(dǎo)通截止 而根據(jù)使用的負載 交流 電機 去掉該電容后 該電路能夠正常的工作 所以第二種是在電路可 以運行的狀況下去掉該 104 電容相連的電路 我采取的是第二種方法 5 2軟件調(diào)試 在軟件調(diào)試時也出現(xiàn)了一些問題 其中主要的問題有以下兩個方面 1 程序讀取溫度值時 出現(xiàn)的現(xiàn)象 造成風(fēng)扇溫度在判斷時出現(xiàn)錯誤 使 風(fēng)扇經(jīng)常性突快突慢變化 蜂鳴器也不斷的蜂鳴報警 解決的方法是在 讀取溫度判斷時加延時 并且多次判斷 防止跳變 2 調(diào)節(jié)系統(tǒng)參數(shù)時 液晶光標太快以致調(diào)節(jié)的時候觀察困難 原因是刷新 液晶太快 解決的方法是在相應(yīng)數(shù)據(jù)更該時 才開始刷新液晶內(nèi)容 6設(shè)計總結(jié)設(shè)計總結(jié) 在整個設(shè)計過程中 充分發(fā)揮人的主觀能動性 自主學(xué)習(xí) 學(xué)到了許多沒 學(xué)到的知識 較好的完成了作品 達到了預(yù)期的目的 完了最初的設(shè)想 但是 在做板時由于之前考慮的不夠周全 時鐘芯片沒有加到上拉電阻 由于是做好了 板把元件焊上去才發(fā)現(xiàn)的 只能在板的后面把 3 個上拉電阻焊上去 所以導(dǎo)致了 整塊板的看起來不是很美觀 通過這一次的經(jīng)驗我意識到了對電路的設(shè)計 布 局要先有一個好的構(gòu)思 而且要認真仔細的檢查各個功能模塊的具體情況 確保 不遺留什么元件 才做出美觀 大方的電路板 程序編寫中 先研究各個功能模 塊的程序 包括時鐘模塊的程序 溫度模塊的程序 不懂的就通過查資料或者請教 老師和同學(xué)來解決 然后再整理好這些程序 最終完成了能實現(xiàn)整個設(shè)計要求的 程序 在此次設(shè)計中 知道了做凡事要有一顆平常的心 不要想著走捷徑 也 練就了我們的耐心和細心 做什么事都要認真仔細 因為細節(jié)決定成敗 總之 這次設(shè)計使我的能力得到了全方位的提高 Comment 園園園園8 行距不對 致 謝 15 致致 謝謝 這次的設(shè)計和論文是在各位老師的悉心指導(dǎo)下完成的 你們嚴肅的科學(xué)態(tài)度 嚴謹?shù)?治學(xué)精神 精益求精的工作作風(fēng) 深深地感染和激勵著我 從課題的選擇到項目的最終完 成 你們都始終給予我細心的指導(dǎo)和不懈的支持 在此謹向老師們致以誠摯的謝意和崇高 的敬意 在此 我還要感謝在一起愉快的度過大學(xué)四年的 07 級電子本科班的同學(xué)們 你們的 幫助和支持 我才能克服一個一個的困難和疑惑 直至本文的順利完成 最后 衷心感謝在百忙之中抽出寶貴時間對此論文進行評閱與審議的老師們 感謝學(xué)院給 我提供了一個展現(xiàn)自己的舞臺 給我一次難得煅煉的機會 使得我的動手能力和專業(yè)技能 都有了很大的提高 參考文獻 16 參考文獻參考文獻 1 沙占友 王彥明 孟志永 單片機外圍電路設(shè)計 M 北京 電子工業(yè)出版社 2003 1 2 李建忠 單片機原理及應(yīng)用 第二版 M 西安 西安電子科技大學(xué)出版社 2008 2 3 譚浩強 C 程序設(shè)計 第三版 M 清華大學(xué)出版社 2006 11 4 求是科技 單片機典型模塊設(shè)計實例導(dǎo)航 M 北京 人民郵電出版社 2004 5 華成英 童詩白 模擬電子技術(shù)基礎(chǔ) 第四版 M 高等教育出版社 2006 1 6 繆家鼎 徐文娟 牟同升 光電技術(shù) M 浙江大學(xué)出版社 1996 3 7 吳大正 電路基礎(chǔ) 第二版 西安電子科技大學(xué)出版社 2000 7 8 袁小平 電子技術(shù)綜合設(shè)計教程 第一版 機械工業(yè)出版社 2008 4 9 康華光 鄒壽彬 電子技術(shù)基礎(chǔ)數(shù)字部分 第四版 北京 高等教育出版社 1999 10 杜膚生 數(shù)字集成電路應(yīng)用精粹 北京 人民郵電出版社 2001 11 陳大欽 電子技術(shù)基礎(chǔ)實驗 第二版 北京 高等教育出版社 2000 12 全國大學(xué)生電子設(shè)計競賽組委會 第五界全國大學(xué)生電子設(shè)計競賽獲獎作品選編 2001 北京理工大學(xué)出版社 2003 13 中國計量出版社組編 新編電子電路大全 北京 中國計量出版社 2001 1 14 葛汝明 電子技術(shù)實驗與課程設(shè)計 山東 山東大學(xué)出版社 2004 15 周永金 模擬電子技術(shù)及應(yīng)用 西安 陜西國防學(xué)院電子教研室 2005 16 吳瑋瑋 PROTEL 99 簡明應(yīng)用教程 西安 陜西國防學(xué)院電子教研室 2006 17 任元 吳勇 常用電子元器件簡明手冊 北京 工業(yè)出版社 2000 18 程路 鄭毅 向先波 PROTEL 99SE 電路板設(shè)計與制作 人民郵電出版社 2007 附 錄 17 附錄附錄 附錄 A 電路圖 附錄 B 程序清單 include include include define uchar unsigned char define uint unsigned int define LCD dat P0 定義 lcd 數(shù)據(jù)口 sbit lcd E P2 7 定義 lcd 控制口 sbit lcd RW P2 6 定義 lcd 控制口 sbit lcd RS P2 5 定義 lcd 控制口 sbit DS18B20 DQ P1 5 定義 DS18B20 通信端口 sbit LED1 P1 2 sbit LED2 P1 3 sbit speaker P1 1 蜂鳴器接口 sbit fan P2 1 風(fēng)扇 pwm 輸出控制口 bit fan flag 0 sbit key model P3 1 模式鍵 sbit key set P3 2 設(shè)置鍵 sbit key add P3 5 加鍵 附 錄 18 sbit key sub P3 4 減鍵 sbit key left P3 0 左移鍵 sbit key right P3 3 右移鍵 sbit E sw P1 0 繼電器控制 uchar sw flag 0 繼電器自動手動切換標志 uchar switch flag 0 繼電器液晶設(shè)置切換標志 int sw open temperature 100 繼電器開啟的溫度值設(shè)置 uchar restrict hour 0 設(shè)定時間風(fēng)扇不能轉(zhuǎn) uint temp 0 溫度緩存 uint fan count 0 風(fēng)扇計數(shù) bit fan AUTO 0 自動風(fēng)扇自動或手動控制標志 uchar model flag 0 總的模式標志 uchar code num to char 0123456789ABCDEF 定義數(shù)字跟 ASCII 碼的關(guān)系 uchar data lcd1602 line1 2010 00 00 TUE 時間顯示緩存數(shù)組 uchar data lcd1602 line2 00 00 00 00 0C 時間顯示緩存數(shù)組 uchar data lcd1602 line3 00 00 00set time 時間設(shè)置緩存數(shù)組 uchar idata temp record line1 Temperature note 溫度記錄顯示緩存數(shù)組 uchar idata temp record line2 time 00 T 00 0c 溫度記錄顯示緩存數(shù)組 uchar xdata temp highter line1 sw T on off 繼電器手動自動切換和自動時開啟電 壓 uchar xdata temp highter line2 AUTO T 00 0C 繼電器手動自動切換和自動時開 啟電壓 uchar xdata temp time unable line1 fan time unable 顯示風(fēng)扇禁止打開的時間段 uchar xdata temp time unable line2 F 4 T 7 o clock 顯示風(fēng)扇禁止打開的時間段 uchar code temp AUTO switch 6 AUTO Manuel 自動 手動切換值 uchar idata temp record 0100000000000000000000000000000000000000000000000000000000000000 00000000 保存每天對應(yīng)鐘點的溫度值 uchar code Weeks 4 SUN MON TUE WED THU FRI SAT SUN 星期數(shù)組 時鐘標志 uint data year 0 時間設(shè)置標志 數(shù)據(jù) uchar data set time 0 time flag 0 day flag 0 hour 0 minute 0 second 0 day 0 month 0 week 0 時間 設(shè)置標志 數(shù)據(jù) uint speaker count 0 喇叭蜂鳴計數(shù) uchar record hour record minute record second record hour count 0 溫度記錄的時間設(shè)置 小延時程序 void delay uint x while x 1MS 為單位的延時程序 void delay 1ms uint x uchar j while x for j 0 j0 i DS18B20 DQ 0 給脈沖信號 dat 1 DS18B20 DQ 1 給脈沖信號 if DS18B20 DQ dat 0 x80 delay 4 return dat 寫一個字節(jié) void WriteOneChar uchar dat uchar i 0 for i 8 i 0 i DS18B20 DQ 0 DS18B20 DQ dat delay 5 DS18B20 DQ 1 dat 1 讀取溫度 ReadTemperature void uchar a 0 uchar b 0 uint t 0 float tt 0 Init DS18B20 WriteOneChar 0 xCC 跳過讀序號列號的操作 WriteOneChar 0 x44 啟動溫度轉(zhuǎn)換 Init DS18B20 WriteOneChar 0 xCC 跳過讀序號列號的操作 WriteOneChar 0 xBE 讀取溫度寄存器等 共可讀 9 個寄存器 前兩個就是溫度 a ReadOneChar b ReadOneChar t b t 8 t t a tt t 0 0625 將溫度的高位與低位合并 t tt 10 0 5 對結(jié)果進行 4 舍 5 入 return t 以上是 DS18B20 驅(qū)動程序 附 錄 21 以下是溫度高時處理程序 void temp hight void if fan AUTO 0 自動 LED1 1 亮燈說明是自動控制 if temp230 temp ReadTemperature 防止跳變干擾 再讀一次溫度 delay 1ms 5000 防止跳變干擾 再讀一次溫度 if temp 400 TR1 1 防止跳變干擾 再讀一次溫度 if fan flag 1 這部分作為 PWM 控制程序 這部分作為 PWM 控制程序 fan 1 這部分作為 PWM 控制程序 delay 1ms fan count 控制風(fēng)扇關(guān)閉的時間 以達到控制風(fēng)扇轉(zhuǎn)速的目的 fan 0 這部分作為 PWM 控制程序 if fan AUTO 1 手動 LED1 0 滅燈說明是手動控制 fan 0 表示風(fēng)扇一直開著 以上是溫度高時處理程序 以下是溫度低時處理程序 void temp low void if sw flag 0 自動的時候繼電器根據(jù)溫度值判斷開啟 LED2 1 亮燈說明是自動控制 if temp 4 允許標志 0 表示不允許 else fan flag 1 fan 1 T1 用于蜂鳴警報 void T1 set void TMOD 0X11 TH1 65536 1000 256 TL1 65536 1000 256 附 錄 23 EA 1 ET1 1 TR1 0 return T1 中斷 用于蜂鳴警報 void T1 interrupt 3 uchar i TH1 65536 1000 256 TL1 65536 1000 256 i if i 150 speaker speaker i 0 speaker count if speaker count 1000 speaker 1 speaker count 0 TR1 0 主函數(shù) void main uchar i bit dis flag 0 T1 set 初始化定時器 用于高溫警報 fan 1 init LCD 初始化 lcd Set1302 time data buff 設(shè)置時間 fan 1 while 1 模式設(shè)置 if key model 0 delay 1ms 20 while key model 0 model flag time flag 0 if model flag 5 model flag 0 write instruction 0 x0c cls if model flag 1 write string 0 xc8 set time write instruction 0 x0c if model flag 3 write instruction 0 x0e 這部分是用于設(shè)置繼電器的開 啟狀態(tài) for i 0 i 6 i temp highter line2 i temp AUTO switch sw flag i 讀取緩存值 temp highter line2 9 num to char sw open temperature 100 temp highter line2 10 num to char sw open temperature 100 10 temp highter line2 12 num to char sw open temperature 10 write string 0 x80 temp highter line1 write string 0 xc0 temp highter line2 附 錄 24 write instruction 0 xc0 顯示時間 if model flag 0 time restrict temp hight temp low if key set 0 風(fēng)扇自動手動切換 delay 1ms 20 while key set 0 fan AUTO fan AUTO Get1302 time data buff 讀取當(dāng)前時間 temp ReadTemperature record lcd1602 line1 3 num to char time data buff 6 0 x10 lcd1602 line1 4 num to char time data buff 6 0 x10 年 lcd1602 line1 6 num to char time data buff 4 0 x10 lcd1602 line1 7 num to char time data buff 4 0 x10 月 lcd1602 line1 9 num to char time data buff 3 0 x10 lcd1602 line1 10 num to char time data buff 3 0 x10 日 for i 0 i 4 i lcd1602 line1 i 12 Weeks time data buff 5 星期 lcd1602 line2 0 num to char time data buff 2 0 x10 lcd1602 line2 1 num to char time data buff 2 0 x10 時 lcd1602 line2 3 num to char time data buff 1 0 x10 lcd1602 line2 4 num to char time data buff 1 0 x10 分 lcd1602 line2 6 num to char time data buff 0 16 lcd1602 line2 7 num to char time data buff 0 16 秒 lcd1602 line2 9 num to char temp 100 溫度 lcd1602 line2 10 num to char temp 100 10 溫度 lcd1602 line2 12 num to char temp 10 溫度 delay 1ms 100 write string 0 x80 lcd1602 line1 write string 0 xc0 lcd1602 line2 以上顯示正常運行的時間 以下設(shè)置時間 if model flag 1 if key set 0 delay 1ms 20 while key set 0 set time if set time 3 set time 0 if set time 1 write instruction 0 xc6 write instruction 0 x0e 顯示光標 if set time 0 write instruction 0 x0c 關(guān)掉光標 write string 0 xc8 set time if set time 1 附 錄 25 if key left 0 設(shè)置時分秒星期日月年的標志 delay 1ms 20 while key left 0 time flag 設(shè)置時分秒星期日月年的標志 dis flag 1 if time flag 7 time flag 0 if key right 0 設(shè)置時分秒星期日月年的標志 delay 1ms 20 while key right 0 dis flag 1 time flag 設(shè)置時分秒星期日月年的標志 if time flag 1 time flag 6 second time data buff 0 0 x10 10 time data buff 0 0 x10 讀 取時間 用于下面的操作 minute time data buff 1 0 x10 10 time data buff 1 0 x10 讀 取時間 用于下面的操作 hour time data buff 2 0 x10 10 time data buff 2 0 x10 讀 取時間 用于下面的操作 day time data buff 3 0 x10 10 time data buff 3 0 x10 讀 取時間 用于下面的操作 month time data buff 4 0 x10 10 time data buff 4 0 x10 讀 取時間 用于下面的操作 week time data buff 5 0 x10 讀取時間 用于下面的操作 year 2000 time data buff 6 0 x10 10 time data buff 6 0 x10 讀取時間 用于下面的操作 if time flag 0 設(shè)秒 if key add 0 秒加 delay 1ms 20 while key add 0 second if second 60 second 0 dis flag 1 if key sub 0 秒減 delay 1ms 20 while key sub 0 second if second 1 second 59 dis flag 1 if dis flag 1 顯示和保存修改值 time data buff 0 second 10 0 x10 second 10 write instruction 0 xc6 write data num to char second 10 write data num to char second 10 write instruction 0 xc6 dis flag 0 if time flag 1 設(shè)分 if key add 0 分加 delay 1ms 20 while key add 0 minute 附 錄 26 if minute 60 minute 0 dis flag 1 if key sub 0 分減 delay 1ms 20 while key sub 0 minute if minute 1 minute 59 dis flag 1 if dis flag 1 顯示和保存修改值 time data buff 1 minute 10 0 x10 minute 10 write instruction 0 xc3 write data num to char minute 10 write data num to char minute 10 write instruction 0 xc3 dis flag 0 if time flag 2 設(shè)時 if key add 0 時加 delay 1ms 20 while key add 0 hour if hour 24 hour 0 dis flag 1 if key sub 0 時減 delay 1ms 20 while key sub 0 hour if hour 1 hour 23 dis flag 1 if dis flag 1 顯示和保存修改值 time data buff 2 hour 10 0 x10 hour 10 write instruction 0 xc0 write data num to char hour 10 write data num to char hour 10 write instruction 0 xc0 dis flag 0 if time flag 3 設(shè)星期 if key add 0 星期加 delay 1ms 20 while key add 0 week if week 8 week 1 dis flag 1 if key sub 0 星期減 delay 1ms 20 while key sub 0 week if week 1 hour 7 dis flag 1 附 錄 27 if dis flag 1 顯示和保存修改值 time data buff 5 week for i 0 i29 day 1 else if day 28 day 1 break

溫馨提示

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

評論

0/150

提交評論