基于51單片機的通風電路的設計.doc_第1頁
基于51單片機的通風電路的設計.doc_第2頁
基于51單片機的通風電路的設計.doc_第3頁
基于51單片機的通風電路的設計.doc_第4頁
基于51單片機的通風電路的設計.doc_第5頁
已閱讀5頁,還剩32頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1 陽泉職業技術學院陽泉職業技術學院 畢畢 業業 論論 文文 畢業生姓名畢業生姓名 鐘毅芳鐘毅芳 專業專業 應用電子技術應用電子技術 學號學號 080724015080724015 指導教師指導教師喬永鳳喬永鳳 所屬系 部 所屬系 部 信息系信息系 二二 一一一一年五月年五月 2 陽泉職業技術學院陽泉職業技術學院 畢業論文評閱書畢業論文評閱書 題目 題目 基于基于 51 單片機的通風電路設計單片機的通風電路設計 信息信息系系 應用電子技術應用電子技術 專業專業 姓姓 名名 鐘毅芳鐘毅芳 設計時間 設計時間 2011 年年 3 月月 7 日日 2011 年年 5 月月 6 日日 評閱意見 評閱意見 成績 成績 指導教師 指導教師 簽 簽 字 字 職職 務 務 3 2011 年年月月 日日 陽泉職業技術學院陽泉職業技術學院 畢業論文答辯記錄卡畢業論文答辯記錄卡 信息信息 系系 應用電子技術應用電子技術 專業專業 姓名姓名 鐘毅芳鐘毅芳 答答 辯辯 內內 容容 問問 題題 摘摘 要要評評 議議 情情 況況 記錄員 記錄員 簽 簽 名 名 成成 績績 評評 定定 指導教師評定成績指導教師評定成績答辯組評定成績答辯組評定成績綜合成績綜合成績 注 評定成績為注 評定成績為 100 分制 指導教師為分制 指導教師為 30 答辯組為 答辯組為 70 4 專業答辯組組長 專業答辯組組長 簽名 簽名 2011 年年 月月 日日 目錄 中文摘 要 3 英文摘要 4 引 言 5 1方案的選擇及認證 6 1 1電源方案選擇 6 1 2測溫傳感器模塊 6 1 3顯示模塊 7 1 4 電機驅動模塊的選擇 7 2 硬件系統設計與電路設計 7 2 1 通風電路組成框圖 8 2 2 STC89C51 單片機硬件結構 8 2 3 最小應用系統設計 8 2 3 1 時鐘電路 9 2 3 2 復位電路 10 2 4 溫度測量電路單元模塊設計 10 2 5 電機驅動單元模塊設計 12 2 6液晶 LCD1602 顯示模塊硬件電路設計 14 3 軟件設計 14 3 1 軟件程序設計 14 3 2 主程序流程圖 14 3 3 讀取溫度流程圖 15 3 4溫度報警控制電機流程圖 16 3 5液晶 LCD1602 顯示溫度 17 3 6報警溫度上下限設置和按鍵處理 18 結論 19 謝辭 19 參考文獻 20 附件 1 通風電路主板 串口的原理圖 21 附件 2 通風電路主板 串口的 PCB 圖 22 附件 3 實物圖 23 附件 4 程序清單 23 5 基于 51 單片機的通風電路設計 摘摘 要要 本設計采用 STC89S51 單片機為控制核心 電機的硬件驅動采用 ULN2003 芯片 由單片機輸出信號控制電機轉動 利用溫度傳感器模塊實現智 能檢測當前環境溫度 整個系統的電路結構簡單 可靠性高 設計測試結果滿 足要求 設計原理簡明 方案正確 關鍵詞 關鍵詞 通風系統 STC89S51 DS18B20 ULN2003驅動 自動測溫 6 Design of analog bus stop system Based on single chip body bus campaign Major of Applied Electronic Technology Information and Engineering College Wanghui Abstract The design for the control of single chip core STC89C51 electrical hardware drivers using the ULN2003 chip single chip output by the PWM control of motor speed the use of infrared detection module bus intelligent automatic tracing the circuit structure of the whole system is simple high reliability Experimental test results meet the requirements design principles of simplicity the program correctly Keyword Intelligent ventilation system STC89S51 DS18B20 ULN2003 Automatic temperature 7 引引 言言 隨著人們生活水平的不斷提高 單片機控制無疑是人們追求的目標之一 它 所給人帶來的方便也是不可否定的 其中智能通風系統就是一個典型的例子 但人們對它的要求越來越高 要為現代人工作 科研 生活 提供更好的更方 便的設施就需要從屬于單片機技術入手 一切向著數字化控制 智能化控制方 向發展 本設計所介紹的液晶溫度控制直流電機與傳統的手動控制直流電機及測溫電路 相比 具有讀數方便 顯示的信息比較多 測溫范圍廣 測溫比較準確 實現 了智能化 其輸出溫度采用液晶 1602 顯示 主要用于對測溫比較準確的場所 或科研實驗室使用 該設計控制器使用單片機 STC89S51 測溫傳感器使用 DS18B20 用液晶芯片 LCD1602 實現溫度顯示 能準確到小數點后一位達到以上 要求 單片機技術已經普及到我們生活 工作 科研 各個領域 已經成為一種比較 成熟的技術 本文主要介紹了一個基于 STC89S51 單片機的測溫控制電機風扇 系統 詳細描述了利用溫度傳感器 DS18B20 開發測溫系統的過程 重點對傳感 器在單片機下的硬件連接 軟件編程以及各模塊系統流程進行了詳盡分析 對 各部分的電路也一一進行了介紹 該系統可以方便的實現實現溫度采集和顯示 并可根據需要發光報警溫度 它使用起來相當方便 具有精度高 量程寬 靈 敏度比較高 體積小 功耗低環保實惠廉價等優點 適合于我們日常生活和工 農業生產中的溫度測量 也可以當作溫度處理模塊嵌入其它系統中 作為其他 主系統的輔助擴展 DS18B20 與 STC89S51 結合實現最簡溫度檢測系統和具有 智能化的控制風扇的開啟與關閉 該系統結構簡單 抗干擾能力強 適合于惡 劣環境下進行現場溫度測量 有廣泛的應用前景 8 1 1 方案的選擇方案的選擇及認證及認證 1 11 1 電源方案選擇電源方案選擇 由于本系統需要 5V 電源供電 我們考慮了如下幾種方案為系統供電 方案 1 采用 4 節 1 5V 干電池供電 電壓達到 12V 經 7805 穩壓后給直流 電機供電及單片機系統和其他芯片供電 由于干電池電量有限 使用大量的干 電池將會給系統調試帶來不便 而且電池對環境產生污染源 因此 我們放棄 了這種方案 方案 2 采用變壓器整流濾波再經過 7805 穩壓穩定后再給直流電機供電 及單片機和其他芯片供電 此方案是自制一個 5v 電源 電路比較簡單 而 且元件也比較廉價 電路板小而易攜帶 因此 這種方案比較可行 因此我們 選擇了此方案 綜上考慮 我們選擇了方案 2 1 11 1測溫傳感器測溫傳感器模塊模塊 方案 1 使用熱敏電阻設計 由于本設計是測溫控制直流電機電路 可以使用熱敏電阻之類的器件利用其感 溫效應 在將隨被測溫度變化的電壓或電流采集過來 進行 A D 轉換后 就可 以用單片機進行數據的處理 在顯示電路上 就可以將被測溫度顯示出來 這 種設計需要用到 A D 轉換電路 感溫電路比較麻煩而且測量的精度不夠 抗干 擾能力比較差 受各方面因素的影響較多 所以此方案不可取 方案 2 使用 DS18B20 傳感器設計 采用 STC89C51 單片機作控制器 溫度傳感器選用 DS18B20 來對環境溫度采集 測溫電路由溫度傳感器 DS18B20 實現 本設計所介紹的 DS18B20 溫度采集與傳 統的熱敏電阻之類的利用感溫效應相比 具有溫度采集數據處理方便 測溫范 圍廣 測溫準確 主要用于對測溫比較準確的場所 或科研實驗室使用 該設 計控制器使用單片機 STC89S51 測溫傳感器使用 DS18B20 用 實現溫度顯示 能準確達到以上要求 故選擇方案二 9 1 21 2顯示顯示模塊模塊 方案 1 用四位七段數碼管 對于數碼顯示 顯示的數據信息比較有限 而且顯示的控制比較繁瑣 因此我們放棄了這種方案 方案 2 用液晶 LCD1602 顯示 可以顯示的數據信息比較多 對液晶現實 的控制寫入比較簡單 而且它的價格然我們接受的起 所以我們選擇了方案 2 1 4 電機驅動模塊的選擇電機驅動模塊的選擇 方案 1 采用專用芯片 L298N 作為直流電機驅動芯片 L298N 是一個具有高 電壓大電流的全橋驅動芯片 它相應頻率比較高 一片 L298N 可以分別控 制兩個直流電機 而且還帶有控制使能端 用該芯片作為電機驅動 操作 方便 穩定性好 性能優良 但芯片比較貴 方案 2 用分立元件制作直流電機驅動電路 由分立元件構成電機驅動電 路 結構簡單 價格低廉 在實際應用中比較廣泛 但是這種電路工作性能不 夠穩定 方案 3 用 ULN2003 反相器作為直流電機驅動芯片 ULN2003 也是一個 7 路 反向器電路 即當輸入端為高電平時 ULN2003 輸出端為低電平 當輸入端為低 電平時 ULN2003 輸出端為高電平 具有電流增益高 工作電壓高 溫度范圍寬 帶負載能力強等特點 而且價格低廉 因此我們選用了方案 3 能夠較好地滿足系統的要求 因此我們選擇了此方案 2 硬件系統設計與電路設計硬件系統設計與電路設計 硬件設計系統主要包括了測溫系統的設計以及單片機應用系統設計 一個單片機應用系統的硬件電路設計主要包含有兩部分內容 一是系統擴 展 即單片機內部的功能單元 如 ROM RAM I O 口 定時 計數器 中斷系統 等 當不能滿足應用系統的要求時 還必須在片外進行擴展 選擇適當的芯片 設計相應的電路 二是系統配置 既按照系統功能要求配置外圍設備 并要考 慮設計合適的接口電路 10 2 12 1 通風電路組成框圖通風電路組成框圖 通風系統的控制核心是 STC89S51 單片機 系統由測溫模塊 直流電機驅動 模塊 LCD 顯示模塊 LED 燈光報警指示模塊 電源模塊等幾部分構成 系統框圖如圖 2 1 所示 AT89C51 時鐘電路 復位電路 LCD1602 液晶顯示 溫度采集 直流 電機 聲光報警 圖 2 1 通風系統框圖 2 22 2 STC89C51STC89C51 單片機硬件結構單片機硬件結構 STC89C51 單片機是把那些控制應用所必需的基本內容都集成在一個尺寸有 限的電路芯片上 如果按照功能的劃分 它主要由微處理器 數據存儲器 程 序存儲器 并行 I O 口 串行口 定時器 計數器 中斷系統及特殊功能寄存器 組成 它們都是通過片內單一總線連接而成 其基本結構仍舊是采用 CPU 加上 外圍芯片的傳統模式 但對各種功能部件的控制是則采用特殊功能寄存器的集 中控制方式 STC89C51 單片機的硬件結構具有功能部件種類齊全 功能強等特 點 特別值得一提的是該單片機中 CPU 中的位處理器 它實際上是一個完整的 一位微計算機 這個一位微計算機有自己的 CPU 位寄存器 I O 口和指令集 1 位機在開關決策 邏輯電路仿真 過程控制方面非常有效 而 8 位機在數據 采集 運算處理方面有明顯的長處 MCS 51 單片機中 8 位機和 1 位機的硬件資 源復合在一起 二者相輔相承 它是單片機技術上的一個突破 這也是 MCS 51 單片機在設計的精妙之處 2 32 3 最小應用系統設計最小應用系統設計 STC89C51 是片內有 ROM EPROM 的單片機 因此 這種芯片構成的最小系統 簡單可靠 用 STC89C51 單片機構成最小應用系統時 只要將單片機接上時鐘電 路和復位電路即可 如圖 2 3 所示 由于集成度的限制 最小應用系統只能用 11 作一些小型的控制單元 其應用特點如下 1 有可供用戶使用的大量 I O 口線 2 內部存儲器容量有限 3 應用系統開發具有特殊性 圖 2 2 STC89C51 單片機最小系統 2 3 12 3 1 時鐘電路時鐘電路 STC89C51 雖然有內部振蕩電路 但要形成時鐘 必須外部附加電路 STC89C51 單片機產生時鐘的方法有兩種 內部時鐘方式和外部時鐘方式 本設計采用內部時鐘方式 利用芯片內部的振蕩電路 在 XTAL1 XTAL2 引 腳上外接定時元件 內部的振蕩電路便產生自激振蕩 本設計采用最常用的內 部時鐘方式 即用外接晶體和電容組成的并聯諧振回路 振蕩晶體頻率選擇 11 0592MHz 電容值無嚴格要求 但電容取值對振蕩頻率輸出的穩定性 大小 振蕩電路起振速度有少許影響 CX1 CX2 可在 20pF 到 100pF 之間取值 但在 20pF 到 30pF 時振蕩器有較高的頻率穩定性 所以本設計中 電容選擇 22pF 在設計印刷電路板時 晶體和電容應盡可能地靠近單片機芯片 以減少寄 生電容的產生 更好的保證振蕩器穩定和可靠地工作 12 2 3 22 3 2 復位電路復位電路 STC89C51 的復位是由外部的復位電路來實現的 復位引腳 RST 通過一個施 密特觸發器來抑制噪聲 在每個機器周期的 S5P2 復位電路采樣施密特觸發器 的輸出電平一次 然后才能得到內部復位操作所需要的信號 復位電路通常采用上電自動復位和按鈕復位兩種方式 最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充 電來實現的 只要 Vcc 的上升時間不超過 1ms 就可以實現自動上電復位 上電 復位電路見圖 2 4 圖 2 3 上電復位 2 42 4 溫度測量電路單元模塊設計溫度測量電路單元模塊設計 測溫所采用的電路如下圖 2 5 所示 圖 2 4 測溫電路原理 我們采用 DS18B20 溫度傳感器實物如圖 2 4 1 所示 13 圖 2 4 1 1 ds18b20 的 8 角封裝 圖 2 4 1 ds18b20 實物 DS18B20 輸出地數據格式說明在下圖 2 4 2 中具體表現出來 其中 MS 表示數據 的高 8 位 LS 表示數據的低 8 位 由于溫度在 0 以上為正溫度 而在 0 以 下為負溫度 因此在計算溫度時必須在溫度轉換之前應先對正負數進行判別 然后再進行轉換 當 S 0 時 表示正數 S 1 時 表示負數 對于負數 在處 理時是采用了 先取反再加一 即將補碼轉換為原碼的方法 同時 為了提高 測量的精度 DS18B20 采用了 12 位數據轉換的方式 其中 符號位占 l 位 整 數占 7 位 小數占 4 位 因此 在計算與處理時 還必須將整數和小數分開進 行處理 通過對百分位數據的 四舍五入 處理 其引腳說明如下表 2 4 1 8 引腳 SOIC 封裝TO92符號說明 51GND地 42DQ數據輸入 輸出 常態下高電平 33VDD可選電源 表 2 4 1 DS18B20 的存儲器由暫存 RAM 和非易失的 EEPRAM 構成 暫存 RAM 共 9 個存儲單元 其結構圖如圖 2 4 2 所示 暫存 RAM 中 TH TL 配置字節的 拷貝 改變 TH TL 的值 可以改變 DS18B20 的上下限的溫度 通過設置配置 字節的第 6 7 位 可完成溫度值的分辨率的配置 溫度值低字節0 溫度值高字節1 TH 用戶字節 12 TL 用戶字節 23 14 配置字節4 保留字節5 保留字節6 保留字節7 CRC8 CRC 值為前 8 個字節的校驗位 溫度值的高低字節位結構如表 2 4 2 1 表 2 4 2 1 本通風系統的溫度測量溫度顯示的整數溫度值取值時采取 高字節的低三位 低字節的高四位 小數部分 低字節位的低四位 列表查表 完成 DS18B20 操作指令集如下列表 2 4 2 2 命令說明協議總線數據操作 溫度轉換開始溫度轉換44H將轉換狀態發送給主 設備 讀寄存器讀所有寄存器 包括 CRC 字節 BEH將 9 字節的數據發送 給主設備 寫寄存器數據寫入寄存器 TH TL 4EH主設備向 ds18b20 發 送 3 字節數 復制將寄存器 TH TL 恢復到 EEPROM 48H無 回調由 EEPROM 向寄 存器恢復 TH TL 和配置寄存器數 據 B8H將恢復狀態發送給主 設備 讀電源讀取電源模式B4H向主設備發送電源狀 態 表 2 4 2 2 2 52 5 電機驅動單元模塊設計電機驅動單元模塊設計 從單片機輸出的信號功率很弱 即使在沒有其它外在負載時也無法帶動電 機 所以在實際電路中我們加入了電機驅動芯片用來提高輸出電機信號的功率 從而能夠根據實際需要來控制電機轉動 根據驅動功率大小以及連接電路的簡 化要求我們選擇了 ULN2003 芯片 其外形 管腳分布如圖 2 7 所示 15 圖 2 5 ULN2003 管腳分布圖 從圖中可以知道 一塊 ULN2003 芯片能夠驅動兩個電機轉動 它的使能端 可以外接高低電平 也可以利用單片機進行軟件控制 極大地滿足各種復雜電 路需要 另外 ULN2003 的驅動功率較大 能夠根據輸入電壓的大小輸出不同 的電壓和功率 解決負載能力不足的問題 電機驅動電路如下圖 2 8 所示 圖 2 6 電機驅動電路 ULN2003 的 1 8 個引腳接到單片機上 通過對單片機的編程可以實現直流 電機正停轉的功能 16 2 62 6液晶液晶 LCD1602LCD1602 顯示模塊硬件電路設計顯示模塊硬件電路設計 圖 2 7 通風系統顯示圖及仿真效果圖 3 3 軟件設計軟件設計 3 13 1 軟件程序設計軟件程序設計 在進行微機控制系統設計時 除了系統硬件設計外 大量的工作就是如何 根據每個對象的實際需要設計應用程序 在單片機控制系統中 大體上可分為 數據處理 過程控制兩個基本類型 數據處理包括 數據的采集 數字處理 數據變換 顯示處理等 過程控制程序主要是使單片機按一定的方法進行計算 然后再輸出信號 以便控制生產 為了完成上述任務 在進行軟件設計時 通常把整個過程分成若干個部分 每一部分叫做一個模塊 所謂 模塊 實質上就是完成一定功能 相對獨立的 程序段 模塊程序設計法的主要優點是 1 單個模塊比起一個完整的程序易編寫及調試 2 模塊可以共存 一個模塊可以被多個任務在不同條件下調用 3 23 2 主程序流程圖主程序流程圖 主程序流程圖 3 2 如下所示 17 液晶初始化 顯示字符串 讀取測量溫度 按鍵處理 溫度報警判斷 結束 延時 開始 圖 3 2 程序流程圖 3 33 3 讀取溫度流程圖讀取溫度流程圖 測溫流程圖 3 2 如下 18 開始 DS18B20初始 化故障 DS18B20正常 標志位置0 跳過讀取內存 Y N 啟動溫度轉換 DS18B20初始 化 跳過讀取內存 讀取溫度寄存器 讀取溫度低8位 和高8位 DS18B20正常標 志位置1 結束 讀取溫度值流程圖 開始 讀取溫度 DS18B20 IS O K 1 N 讀取溫度發生 變化 刷新顯示 顯示溫度 溫度 Signed Temp 35 電機轉動 標識綠燈亮 溫度 Signed Temp 10 電機轉動 標識紅燈亮 YY 溫度 10 Signed Temp 35 NN 電機慢慢停轉 標識 Y 結束 Y Y 圖 3 2 讀取溫度流程圖 圖 3 2 1 溫度報警的流程圖 3 43 4溫度報警控制電機流程圖溫度報警控制電機流程圖 溫度報警控制流程圖如圖 3 4 報警溫度原理圖如圖 3 4 1 圖 3 4 1 溫度報警原理圖 19 當溫度值大于 35 度時 電機轉動綠燈閃爍報警 當溫度大于 10 度小于 35 度時 電機停止轉動 當溫度小于 10 度時 電機轉動 紅燈閃爍報警 3 53 5液晶液晶 LCD1602LCD1602 顯示溫度顯示溫度 液晶顯示流程圖如圖 3 5 開始 負數標識置0 溫度值取反加1 溫度為負數 小數部分查表 高位自加 負數標識置 1 獲取溫度整數部分 高 位的低三位 低位的高 四位 獲取有符號的溫度值 忽 略小數位 Y 結束 液晶顯示 溫度值低位位0 x00 將溫度整數部分分為三位 刷新LCD顯示 高位為0時不顯示 高位為0 且次高位為0時 次高位不顯 示 顯示負號恰當 顯示標題 溫度符號 Y 圖 3 5 液晶 LCD1602 顯示流程圖 20 3 63 6報警溫度上下限設置和按鍵處理報警溫度上下限設置和按鍵處理 報警溫度上下限設置和按鍵處理流程圖如下 開始 按鍵是否按下 等待釋放 按鍵是否按下 消抖動 結束 標志位flag加1 Flag 2 Flag 0 Y N 圖 3 6 1 按鍵處理 圖 3 6 2 報警溫度上下限設置 開始 溫度上限加1 K1按下 K2按下 K3按下 K4按下 NNN Y 溫度上限減1溫度下限加1溫度下限減1 YYY 顯示溫度上下限值 結束 21 結結論 論 本設計通風控制系統經過論證 證明運行可靠 操作方便 節省人力投入 提高了自動化控制水平和工作效率 方便了調試和維護 符合智能通風技術的 要求 真正做到既經濟又實用的控制目的 具有推廣價值 隨著生活水平的提 高 人們對室內空氣的要求已從保暖降溫發展到要求高品質 在自然通風達不 到要求時 強制通風的空氣質量控制系統則成為建筑必不可少的設施 而這方面 我國才剛剛起步 中低端市場更是空白 本設計已成功地應用于車間的通風機 控制中 應用前景廣闊 可以大量推廣到需要低成本通風系統的場合 如學校 醫院 家庭 商場及工廠等 22 致謝 致謝 在這段時間里 喬老師嚴謹的治學態度和熱忱的工作作風令我十分欽佩 她的指導使我們受益匪淺 通過這次畢業設計 使我深刻地認識到學好專業知識的重要性 也理解了 理論聯系實際的含義 并且檢驗了大學三年的學習成果 雖然在這次設計中對 于知識的運用和銜接還不夠熟練 但是我將在以后的工作和學習中繼續努力 不斷完善 這段時間的設計是對過去所學知識的系統提高和擴充的過程 為今 后的發展打下了良好的基礎 由于自身水平有限 設計過程中存在了一些不足之處 敬請各位老師批評 指正 參考文獻參考文獻 1 王靖 胡特 謝玉川等 現代住宅室內通風方式探討 制冷與空調 2003 2 2 侯哲生 李 聰 張 伏等 基于單片機的通風機控制器的設計 2005 09 13 3 王成福 趙云等 一種簡單的實用 LCD 數顯溫度計 2002 4 宋亞偉 李恒宗 基于 DS18B20 的溫度采集控制電路 2008 3 7 9 5 肖晴 液晶顯示溫度的控制 2005 2 6 沈蘭寧 窗戶自動控制管理系統的控制與設計 2009 22 7 張菁 基于單片機溫度控制系統方案的研究 2007 9 8 黨峰 王敬農 高國旺 基于 DS18B20 的數字式溫度計的設計 2007 3 23 附件附件 1 1 通風電路主板通風電路主板 串口的原理圖 串口的原理圖 主板的電路圖 24 電源及串口電路圖 附件附件 2 2 通風電路主板 串口的通風電路主板 串口的 PCBPCB 圖圖 附件電路圖 4 LCD 顯示模塊電路 圖 25 附件附件 3 3 實物圖實物圖 附件附件 4 程序清單程序清單 include include define uchar unsigned char define uint unsigned int void delayNOP nop nop 附件電路圖 4 LCD 顯示模塊電路 圖 26 nop nop ucharflag 0 按鍵標識符 sbit DQ P3 3 溫度傳感器數據口 sbit LCD RS P1 2 sbit LCD RW P1 1 sbit LCD EN P1 0 sbit Forward P1 3 高溫報警 sbit Stop P1 1 sbit Reveral P1 5 低溫報警 sbit MA P2 5 電機驅動 sbitbeep P2 7 蜂鳴器報警 sbitbutton P2 6 按鍵 sbitk1 P2 0 sbitk2 P2 1 sbitk3 P2 2 sbitk4 P2 3 ucharcode speak Hot temp ucharcode speak1 cold temp uchar code helloword Wellcome you uchar code helloword1 Temperature test uchar code helloword2 The test is end uchar code Temp Disp Title Current Temp uchar Current Temp Display Buffer TEMP ucharalarm HI LOW ucharalarm temp 2 15 10 uchargao di uchar ng 0 負溫度標識符 溫度字符 uchar code Temperature Char 8 0 x0C 0 x12 0 x12 0 x0C 0 x00 0 x00 0 x00 0 x00 溫度小數位對照表 uchar code df Table 0 1 1 2 3 3 4 4 5 6 6 7 8 8 9 9 當前讀取的溫度整數部分 uchar CurrentT 0 有符號溫度值 char Signed Temp 0 從 DS18B20 讀取的溫度值 uchar Temp Value 0 x00 0 x00 溫度數據備份 uchar Back Temp Value 0 xFF 0 xFF 27 待顯示的各溫度數位 uchar Display Digit 0 0 0 0 傳感器正常標志 bit DS18B20 IS OK 1 voiddisplay alarm temp ucharhigh uchar lowe 延時 1 void DelayXus int x uchar i while x for i 0 i 200 i LCD 忙檢測 uchar LCD Busy Check reentrant uchar result LCD RS 0 LCD RW 1 LCD EN 1 delayNOP result bit P0 LCD EN 0 return result 寫指令 void Write LCD Command uchar cmd while LCD Busy Check LCD RS 0 LCD RW 0 LCD EN 0 delayNOP P0 cmd delayNOP LCD EN 1 delayNOP LCD EN 0 28 寫數據 void Write LCD Data uchar dat while LCD Busy Check LCD RS 1 LCD RW 0 LCD EN 0 P0 dat delayNOP LCD EN 1 delayNOP LCD EN 0 自定義字符寫 CGRAM void Write NEW LCD Char uchar i Write LCD Command 0 x40 寫 CGRAM for i 0 i 8 i Write LCD Data Temperature Char i 寫入溫度符號 初始化 void LCD Initialise Write LCD Command 0 x01 DelayXus 5 Write LCD Command 0 x38 DelayXus 5 Write LCD Command 0 x0c DelayXus 5 Write LCD Command 0 x06 DelayXus 5 Write NEW LCD Char 溫度符號寫入 CGRAM 設置顯示位置 29 void Set LCD POS uchar pos Write LCD Command pos 0 x80 延時 2 void Delay uint x while x 初始化 DS18B20 uchar Init DS18B20 uchar status DQ 1 Delay 8 DQ 0 Delay 90 DQ 1 Delay 8 status DQ Delay 100 DQ 1 return status 初始化成功返回 0 讀一字節 uchar ReadOneByte uchar i dat 0 DQ 1 nop for i 0 i 1 DQ 1 nop nop if DQ dat 0 x80 30 Delay 30 DQ 1 return dat 寫一字節 void WriteOneByte uchar dat uchar i for i 0 i 1 讀取溫度值 void Read Temperature EA 0 if Init DS18B20 1 DS18B20 故障 DS18B20 IS OK 0 else WriteOneByte 0 xCC 跳過序列號 WriteOneByte 0 x44 啟動溫度轉換 Init DS18B20 WriteOneByte 0 xCC 跳過序列號 WriteOneByte 0 xBE 讀取溫度寄存器 Temp Value 0 ReadOneByte 溫度低 8 位 Temp Value 1 ReadOneByte 溫度高 8 位 DS18B20 IS OK 1 EA 1 31 在 LCD 上顯示當前溫度 void Display Temperature uchar i uchar t 150 延時值 uchar ng 0 負數標識 如果為負數則取反加 1 并設置負數標識 if Temp Value 1 Temp Value 0 Temp Value 0 1 if Temp Value 0 0 x00 Temp Value 1 ng 1 查表得到溫度小數部分 Display Digit 0 df Table Temp Value 0 獲取溫度整數部分 無符號 CurrentT Temp Value 0 獲取有符號溫度值 忽略小數位 Signed Temp ng CurrentT CurrentT 將整數部分分解為三位待顯示數字 Display Digit 3 CurrentT 100 Display Digit 2 CurrentT 100 10 Display Digit 1 CurrentT 10 刷新 LCD 顯示緩沖 Current Temp Display Buffer 11 Display Digit 0 0 Current Temp Display Buffer 10 Current Temp Display Buffer 9 Display Digit 1 0 Current Temp Display Buffer 8 Display Digit 2 0 Current Temp Display Buffer 7 Display Digit 3 0 高位為 0 時不顯示 if Display Digit 3 0 Current Temp Display Buffer 7 高位為 0 且次高位為 0 時 次高位不顯示 if Display Digit 2 0 負數符號顯示在恰當位置 32 if ng if Current Temp Display Buffer 8 Current Temp Display Buffer 8 else if Current Temp Display Buffer 7 Current Temp Display Buffer 7 else Current Temp Display Buffer 6 在第一行顯示標題 Set LCD POS 0 x00 for i 0 i 16 i Write LCD Data Temp Disp Title i 在第二行顯示當前溫度 Set LCD POS 0 x40 for i 0 i 16 i Write LCD Data Current Temp Display Buffer i Set LCD POS 0 x4D Write LCD Data 0 x00 Set LCD POS 0 x4E Write LCD Data C 蜂鳴器報警聲音 void beept uchari j 70 for i 0 i alarm temp 0 MA 1 轉動 Forward Forward Stop 1 Reveral 1 beept Set LCD POS 0 x00 for i 0 i 13 i Write LCD Data speak i Write LCD Command 0 x8f Write LCD Data Y 風扇開啟標志 else if Signed Temp alarm temp 1 MA 1 轉動 Forward 1 Stop 1 beept Reveral Reveral Set LCD POS 0 x00 for i 0 i 13 i Write LCD Data speak1 i 34 Write LCD Command 0 x8f Write LCD Data Y e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論