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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

評論

0/150

提交評論