單片機(jī)的恒溫箱控制.doc_第1頁
單片機(jī)的恒溫箱控制.doc_第2頁
單片機(jī)的恒溫箱控制.doc_第3頁
單片機(jī)的恒溫箱控制.doc_第4頁
單片機(jī)的恒溫箱控制.doc_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1 蘇州市職業(yè)大學(xué) 畢 業(yè) 設(shè) 計 說 明 書 畢業(yè)設(shè)計題目畢業(yè)設(shè)計題目 單片機(jī)的恒溫箱控制 系 電子信息工程系 專業(yè)班級 09 電子 5 班 姓 名 周浩然 學(xué) 號 097302541 指導(dǎo)教師 2 目目 錄錄 摘要 關(guān)健詞 2 第一章 設(shè)計原理 3 1 1 電路原理圖 3 1 2 作品的功能 4 第二章 軟件描述 5 2 1 鍵盤管理模塊與顯示模塊 5 2 2 溫度報警模塊與控制模塊 6 第三章 程序流程圖及清單 9 3 1 程序流程圖 9 3 2 程序清單 12 第四章 系統(tǒng)調(diào)試與仿真 20 4 1 硬件調(diào)試 20 4 1 1 脫機(jī)檢查 20 4 1 2 仿真調(diào)試 20 4 1 3 檢查 CPU 的時鐘電路 20 4 1 4 對擴(kuò)展的 RAM ROM 進(jìn)行檢查和調(diào)試 20 4 2 軟件調(diào)試 21 4 2 1 交叉匯編 21 4 2 2 用匯編語言 21 4 2 3 手工匯編 21 4 3 系統(tǒng)仿真 21 第五章 抗干擾技術(shù) 22 5 1 硬件抗干擾技術(shù) 23 5 2 軟件抗干擾技術(shù) 23 第六章 系統(tǒng)制作與編程 24 6 1 系統(tǒng)制作 25 6 2 程序編程 25 第七章 總結(jié) 26 參考文獻(xiàn) 27 3 摘要 恒溫控制在工業(yè)生產(chǎn)過程中舉重輕重 溫度的控制直接影響著工業(yè)生產(chǎn)的產(chǎn)量和質(zhì)量 本設(shè)計是基于 AT89C51 單片機(jī)的恒溫控制系統(tǒng) 系統(tǒng)分為硬件和軟件兩部分 其中軟件 能包括 鍵盤管理程序設(shè)計 顯示程序設(shè)計 控制程序設(shè)計和溫度報警程序設(shè)計 編寫 程序結(jié)合硬件進(jìn)行調(diào)試 能夠?qū)崿F(xiàn)設(shè)置和調(diào)節(jié)初始溫度值 進(jìn)行數(shù)碼管顯示 當(dāng)加熱到 設(shè)定溫度立刻報警 另外 本系統(tǒng)通過軟件實(shí)現(xiàn)對鍵誤差 加熱過沖的調(diào)整 以提高系 統(tǒng)的安全性 可靠性和穩(wěn)定性 本設(shè)計從實(shí)際應(yīng)用出發(fā)選取了體積小 精度相對高的數(shù) 字式溫度溫度傳感元件 DS18B20 作為溫度采集器 單片機(jī) AT89C51 作為主控芯片 數(shù)碼 管作為顯示輸出 實(shí)現(xiàn)對溫度的實(shí)時測量與恒定控制 關(guān)鍵詞 單片機(jī)關(guān)鍵詞 單片機(jī) 恒溫恒溫 控制控制 報警報警 DesigningDesigning ofof AutomaticAutomatic ConstantConstant TemperatureTemperature BoxBox ControlledControlled ByBy SCMSCM Abstract Abstract TheThe systemsystem makesmakes useuse ofof thethe singlesingle chipchip AT89C51AT89C51 asas thethe temperaturetemperature controllingcontrolling center center usesuses numeralnumeral thermometerthermometer DS18B20DS18B20 whichwhich transmitstransmits asas 1 wire1 wire wayway asas thethe temperaturetemperature sensor sensor throughthrough thethe pressedpressed key key thethe numericalnumerical codecode demonstrateddemonstrated compositecomposite ofof thethe man machineman machine interactiveinteractive connectionconnection to to realizerealize setset andand adjustadjust thethe initialinitial temperaturetemperature value value AfterAfter thethe systemsystem works works thethe digitaldigital tubetube willwill demonstratedemonstrate thethe temperaturetemperature value value whenwhen temperaturetemperature arrivingarriving toto thethe settingsetting value value thethe buzzerbuzzer willwill bebe workwork immediately immediately InIn addition addition thethe systemsystem throughthrough thethe softwaresoftware adjustingadjusting toto thethe pressedpressed keykey error error andand thethe excessivelyexcessively hutting hutting Keywords SCM Constanttemperature control waring Keywords SCM Constanttemperature control waring 4 第一章第一章 設(shè)計原理設(shè)計原理 1 11 1 電路原理圖電路原理圖 圖 1 1 電路原理圖 5 圖 1 2 基本硬件電路圖 1 21 2 作品的功能作品的功能 根據(jù)恒溫箱控制器的功能要求 并結(jié)合對 51 系統(tǒng)單片機(jī)的資源分析 即單片機(jī)軟件 編程的自由度大 可用編程實(shí)現(xiàn)各種控制算法和邏輯控制 所以才用 AT89C51 作為系統(tǒng) 的控制核心 恒溫箱控制器的總體布局如圖 1 所示 按鍵將設(shè)置好的溫度值傳給單片機(jī) 通過溫度顯示模塊顯示出來 初始溫度設(shè)置好后 單片機(jī)開啟輸出控制模塊 使電熱器開 始加熱 同時將數(shù)字溫度傳感器 DS18B2 測量到的溫度值實(shí)時的顯示出來 當(dāng)加熱到設(shè)定 溫度時 單片機(jī)控制聲光報警模塊 發(fā)出聲光報警 同時關(guān)閉加熱器 當(dāng)自然冷卻到設(shè) 定溫度 3 攝氏度以下時 單片機(jī)再次啟動加熱 如此循環(huán)反復(fù) 已達(dá)到恒溫控制的目的 系統(tǒng)結(jié)構(gòu)如圖 1 所示 系統(tǒng)基本硬件電路圖如圖 2 所示 在本系統(tǒng)中 DP1 DP3 用于七段 數(shù)碼顯示 P1 0 用于接受 DS18B20 采集到的數(shù)字溫度信號 FUZAI 控制光電開關(guān) 決定 電加熱器是否工作 K1 K3 用于按鍵控制 BELL 和 P1 4 P1 5 用于控制揚(yáng)聲器和發(fā)光二 極管 進(jìn)行聲光報警 串行口用于輸出顯示段碼 P2 0 P2 1 用于對數(shù)碼管進(jìn)行動態(tài)掃 描 在一定的溫度 用以飼養(yǎng)或培養(yǎng)生物或生物的一部分 細(xì)胞等 的箱型器具 以 前用于孵卵的恒溫器 有的是通過熱水加熱 水溫式 但實(shí)驗(yàn)用的大部分為電熱式 裝有電熱器和溫度調(diào)節(jié)器 是一種外壁上裝有絕熱材料的箱子或柜櫥 恒溫箱的原理其實(shí)比較簡單 關(guān)鍵的控制部分有三個 6 1 溫度探頭 2 是制冷機(jī) 3 熱風(fēng)機(jī) 有的用紅外線加熱 或則直接用電阻加熱 溫度探頭的測量端伸在恒溫箱內(nèi)部的空氣中 不能與物體或是箱避接觸 實(shí)時監(jiān)測箱 內(nèi)的溫度 在控制面板上 可以設(shè)置恒溫箱的恒溫范圍 即設(shè)置允許的溫度上限和下限 當(dāng) 探頭檢測到溫度低于下限時 開啟熱風(fēng)機(jī)加熱 溫度開始回升 當(dāng)探頭檢測到溫度高于 上限時 開啟制冷壓縮機(jī)制冷 溫度下降 如此來回控制 有的恒溫比較高級 可以設(shè)置偏離度 比如說正常情況下 溫度應(yīng)是達(dá)到下限時開 始加熱 此時加熱稍晚 因?yàn)樵诩訜衢_始后 溫度可能還要下降一段時間 這時可以設(shè) 置偏離度 使之提前加熱或制冷 第二章第二章 軟件描述軟件描述 7 2 12 1 鍵盤管理模塊鍵盤管理模塊 鍵盤管理模塊子程序流程圖如圖 3 所示 圖 2 1 鍵盤處理程序流程 當(dāng)通電或者復(fù)位以后 系統(tǒng)進(jìn)入鍵盤管理狀態(tài) 單片機(jī)只接受設(shè)定溫度和啟動 當(dāng) 檢測到有鍵閉合時先去除抖動 這里才用軟件延時的方法 延時一段時間后 在確定是 否有鍵閉合 然后將設(shè)定好的值送入預(yù)置溫度數(shù)據(jù)庫區(qū) 并調(diào)用溫度合法檢測報警程序 當(dāng)設(shè)定溫度超過最大值比如 90 攝氏度時就會報警 最后當(dāng)啟動鍵閉合時啟動加熱 鍵盤設(shè)定 用于溫度設(shè)定 共三個按鍵 KEY1 P1 1 狀態(tài)切換 溫度設(shè)置確認(rèn) 溫度重新設(shè)置 KEY2 P1 2 設(shè)置溫度 KEY3 P1 3 設(shè)置溫度 系統(tǒng)上電后 數(shù)碼管全部顯示為零 根據(jù)按 KEY1 次數(shù) 決定顯示的狀態(tài) 根據(jù)相 應(yīng)的狀態(tài) 利用 KEY2 KEY3 進(jìn)行加減 當(dāng)溫度設(shè)定好后 在按 KEY1 進(jìn)行確定 系統(tǒng)開始 測溫 開啟加熱器 2 1 12 1 1 顯示模塊顯示模塊 顯示子程序的功能是將緩沖區(qū)的二進(jìn)制數(shù)據(jù)先轉(zhuǎn)換成 3 個 BCD 碼 再將其分別存 入百位 十位 個位 3 個顯示緩沖區(qū) 送往串行口 利用單片機(jī)的 P2 口進(jìn)行掃描 讓數(shù) 據(jù)動態(tài)的顯示出來 可顯示設(shè)置溫度和測量溫度 2 22 2 控制溫度控制溫度 溫度控制子程序流程圖如圖 4 所示 將當(dāng)前面的溫度和設(shè)置好的溫度相比較 當(dāng)當(dāng) 8 前溫度小于設(shè)置溫度 開啟加熱器 當(dāng)當(dāng)前溫度大于設(shè)置溫度時 關(guān)閉加熱器 當(dāng)二者 相等時電熱器保持這一狀態(tài) 圖 2 2 控制模塊程序流程 2 2 12 2 1 溫度報警模塊溫度報警模塊 報警子程序流程如圖 5 所示 根據(jù)設(shè)計要求 當(dāng)檢測到當(dāng)前溫度值高于設(shè)置溫度 3 攝氏度時報警 報警的同時關(guān)閉電熱器 為了防止誤報 設(shè)置了報警允許標(biāo)志 只有在 允許的標(biāo)志下 溫度高于設(shè)置值時才會報警 圖 2 3 報警子程序流程 第三章第三章 程序流程圖和清單程序流程圖和清單 9 3 1 程序流程圖 圖 3 1 圖 3 2 流程程序圖是程序分析中最基本 最重要的分析技術(shù) 它是進(jìn)行流程程序分析過程 中最基本的工具 它運(yùn)用工序圖示符號對生產(chǎn)現(xiàn)場的整個制造程序做詳細(xì)的記錄 以便 對零部件 產(chǎn)品在整個制造程序中的操作 搬運(yùn) 檢驗(yàn) 儲存 等待作詳細(xì)的研究與分 析 特別是用于分析其搬運(yùn)距離和等待 儲存等 隱藏成本 的浪費(fèi) 程序流程圖是程 序分析中最基本 最重要的分析技術(shù) 它是進(jìn)行流程程序分析過程中最基本的工具 流程程序圖運(yùn)用工序圖示符號對生產(chǎn)現(xiàn)場的整個制造程序做詳細(xì)的記錄 以便對零部 件 產(chǎn)品在整個制造程序中的操作 搬運(yùn) 檢驗(yàn) 儲存 等待作詳細(xì)的研究與分析 特別是用于分析其搬運(yùn)距離和等待 儲存等 隱藏成本 的浪費(fèi) 程序流程圖是方法研究改進(jìn)工作方法的有用工具 不論作業(yè)研究過程中運(yùn)用何種技 術(shù) 流程程序圖總是必經(jīng)的一步 它是應(yīng)用最普遍的一種工具 流程程序圖由操作 搬 運(yùn) 檢驗(yàn) 儲存 等待五種符號構(gòu)成 流程程序圖與工藝流程圖的結(jié)構(gòu)極為相似 其差 別僅為加入了 搬運(yùn) 貯存 暫存 三種符號 除記錄時間之外 再加上搬 運(yùn)距離 程序流程圖是人們對解決問題的方法 思路或算法的一種描述 流程圖的優(yōu)點(diǎn) a 采用簡單規(guī)范的符號 畫法簡單 b 結(jié)構(gòu)清晰 邏輯性強(qiáng) c 便于描述 容易理解 進(jìn)行流程程序圖分析時 必須采用程序分析的基本步驟進(jìn)行 主程序采用中段嵌套方式設(shè)計 各功能模塊可以直接調(diào)用 主程序完成系統(tǒng)的初始化 溫度預(yù)置及其合法性檢測 預(yù)測溫度的顯示及定時器 0 的設(shè)置 定時器 0 中斷服務(wù)子程 序是溫度控制體制的主體 用于溫度檢測 控制和報警 包括啟動溫度轉(zhuǎn)換 讀入采樣 數(shù)據(jù) 數(shù)字濾波 越限溫度報警和越限處理 輸出控制脈沖等 中斷 定時器 0 產(chǎn)生根 據(jù)需要每隔 15 秒中斷一次 即每隔 15 秒采樣控制一次 但系統(tǒng)采用 6MHZ 晶振 最大定 時為 130ms 為實(shí)現(xiàn) 15s 定時 這里另行設(shè)了一個軟件計數(shù)器 10 圖 3 1 主程序流程圖 圖 3 2 中斷服務(wù)程序流程圖 11 第四章第四章 系統(tǒng)調(diào)試和仿真系統(tǒng)調(diào)試和仿真 4 14 1 硬件調(diào)試硬件調(diào)試 根據(jù)設(shè)計的原理電路做好實(shí)驗(yàn)樣機(jī) 便進(jìn)入硬件調(diào)試階段 調(diào)試工作的主要任務(wù) 是排除樣機(jī)故障 其中包括設(shè)計錯誤和工藝性錯誤 C1 用 AY89C51 單片機(jī)集成電路 X1 用 12MHz 的石英晶體 DS1 DS2 選用共陰 LED 數(shù)碼管 溫度傳感器集成電路 LM334 密封在 一個小金屬盒里面內(nèi)置而成 C4 要選用溫度系數(shù)小的電容器 如滌綸薄膜電容 其余元 器件見表 1 安裝前要先將匯編程序編譯成目標(biāo)文件即 HEX 文件 在用編譯器將 HEX 文件寫入 AT8 9C51 芯片 安裝后的調(diào)試工作主要是通過對 RP1 RP2 的調(diào)節(jié)來校準(zhǔn)溫度 先把 RP1 至于調(diào)節(jié)范 圍的中間偏上的位置 將溫度傳感器插入冰水混合物中 等溫度平衡后 調(diào)節(jié) 調(diào)節(jié) RP2 使溫度顯示值為 0 用水銀溫度計的數(shù)值相等 在將溫度傳感器插入冰水混合物中 看顯 示值是否發(fā)生變化 如果溫度顯示值和水銀溫度計的數(shù)值不相等是在調(diào)節(jié) EP1 使其相等 如此反復(fù)調(diào)節(jié)直至兩個溫度值顯示都正確是溫度就校對成功好了 如果把苯裝置只用于制冷設(shè)備的控制 如冰箱和空調(diào)的溫度控制 只需把程序中的 P 1 2 1 改成 P1 2 0 即可 4 1 14 1 1 脫機(jī)檢查 檢查數(shù)據(jù)總線 地址總線和控制總線是否脫機(jī)檢查 檢查數(shù)據(jù)總線 地址總線和控制總線是否 用萬能表獲邏輯擦拭筆逐步按照邏輯圖檢查機(jī)中各器件的電源及各引腳的連接是 否正確 檢查數(shù)據(jù)總線 地址總線和控制總線是否有段路等故障 有時為了保護(hù)芯片 先對各管座的電位或者電源進(jìn)行檢查 確定其無誤后再插入芯片檢查 4 1 24 1 2 仿真調(diào)試仿真調(diào)試 暫時排除目標(biāo)板的 CPU 和 EPROM 將樣機(jī)接上仿真機(jī)的 40 芯仿真插頭進(jìn)行調(diào)試 調(diào) 試各部分接口電路是否滿足設(shè)計要求 這部分工作是是一種經(jīng)驗(yàn)性很足的工作 一般來 說 設(shè)計制作的樣機(jī)不可能一次性完好 總是需要調(diào)試 通常的方法是 先編調(diào)試軟件 逐一檢查調(diào)試硬件電路系統(tǒng)設(shè)計的準(zhǔn)確性 4 1 34 1 3 檢查檢查 CPUCPU 的時鐘電路的時鐘電路 通過測試 ALE 信號 如沒有 ALE 信號 則判斷是晶體或者 CPU 故障 這稱之為 心 臟 檢查 12 檢查 ABUS DBUS 的分時復(fù)用功能的地址鎖存是否正常 檢查 I O 地址分配器 一般 由部分譯碼或者全譯碼電路構(gòu)成的 如果是部分譯碼設(shè)計 則排除地址重復(fù)故障 4 1 44 1 4 對擴(kuò)展的對擴(kuò)展的 RAM ROMRAM ROM 進(jìn)行檢查調(diào)試進(jìn)行檢查調(diào)試 一般先后寫入 55H AHH 再讀出比較 以此判斷是否正常 因?yàn)檫@樣 RAM ROM 的各位均寫入過 1 或者 0 代碼 4 24 2 軟件調(diào)試軟件調(diào)試 軟件調(diào)試 軟件調(diào)試根據(jù)開發(fā)的設(shè)備情況可以可以有以下方法 4 2 14 2 1 交叉編程交叉編程 用 TBM PC TM 對 MCS 51 系類單片機(jī)程序進(jìn)行交叉匯編時 可借助 TBM PC XT 機(jī)的 行編輯和屏幕編輯功能 將程序按規(guī)定的格式輸入到 PC 機(jī) 生成 MCS 51 HEX 目標(biāo)代碼 和 LIST 文件 4 2 24 2 2 用匯編語言用匯編語言 現(xiàn)在有些單片 STD 工業(yè)控制機(jī)或者開發(fā)系統(tǒng) 可直接使用匯編語言 借助 CRT 進(jìn) 行匯編語言調(diào)試 4 2 34 2 3 手工匯編手工匯編 這種方法是最原始的 但又是一種最簡捷的調(diào)試方法 且不增加調(diào)試設(shè)備 這種 方法的實(shí)質(zhì)就是對照 MCS 51 指令編碼表 將源程序指令逐漸譯成機(jī)器碼 然后輸入到 RAM 重新進(jìn)行調(diào)試 在進(jìn)行手工調(diào)試的時候 要特別注意轉(zhuǎn)移指令 調(diào)用指令 查表指令 必須準(zhǔn)確無誤的計算出操作碼 轉(zhuǎn)移地址和相對偏移量 以免出錯 以上 3 鐘方法調(diào)試完成以后 即可通過 EPROM 寫入器 將目標(biāo)代碼寫入 EPROM 中 并將其插至機(jī)器的相應(yīng)的機(jī)器上 系統(tǒng)便可投入運(yùn)行 4 34 3 系統(tǒng)仿真系統(tǒng)仿真 所謂系統(tǒng)仿真 system simulation 就是根據(jù)系統(tǒng)分析的目的 在分析系統(tǒng)各 要素性質(zhì)及其相互關(guān)系的基礎(chǔ)上 建立能描述系統(tǒng)結(jié)構(gòu)或行為過程的 且具有一定邏 輯關(guān)系或數(shù)量關(guān)系的仿真模型 據(jù)此進(jìn)行試驗(yàn)或定量分析 以獲得正確決策所需的各 種信息 其實(shí)質(zhì)是 13 1 它是一種對系統(tǒng)問題求數(shù)值解的計算技術(shù) 尤其當(dāng)系統(tǒng)無法通過建立數(shù)學(xué) 模型求解時 仿真技術(shù)能有效地來處理 2 仿真是一種人為的試驗(yàn)手段 它和現(xiàn)實(shí)系統(tǒng)實(shí)驗(yàn)的差別在于 仿真實(shí)驗(yàn) 不是依據(jù)實(shí)際環(huán)境 而是作為實(shí)際系統(tǒng)映象的系統(tǒng)模型以及相應(yīng)的 人造 環(huán)境下進(jìn) 行的 這是仿真的主要功能 3 仿真可以比較真實(shí)地描述系統(tǒng)的運(yùn)行 演變及其發(fā)展過程 其系統(tǒng)仿真的作用 仿真的過程也是實(shí)驗(yàn)的過程 而且還是系統(tǒng)地收集和積累信息的過程 尤其是 對一些復(fù)雜的隨機(jī)問題 應(yīng)用仿真技術(shù)是提供所需信息的唯一令人滿意的方法 對一 些難以建立物理模型和數(shù)學(xué)模型的對象系統(tǒng) 可通過仿真模型來順利地解決預(yù)測 分 析和評價等系統(tǒng)問題 通過系統(tǒng)仿真 可以把一個復(fù)雜系統(tǒng)降階成若干子系統(tǒng)以便于 分析 通過系統(tǒng)仿真 能啟發(fā)新的思想或產(chǎn)生新的策略 還能暴露出原系統(tǒng)中隱藏著 的一些問題 以便及時解決 系統(tǒng)仿真的基本方法是建立系統(tǒng)的結(jié)構(gòu)模型和量化分析模型 并將其轉(zhuǎn)換為適 合在計算機(jī)上編程的仿真模型 然后對模型進(jìn)行仿真實(shí)驗(yàn) 由于連續(xù)系統(tǒng)和離散 事件 系統(tǒng)的數(shù)學(xué)模型有很大差別 所以系統(tǒng)仿真方法基本上分為兩大類 即連續(xù)系 統(tǒng)仿真方法和離散系統(tǒng)仿真方法 在以上兩類基本方法的基礎(chǔ)上 還有一些用于系統(tǒng) 特別是社會經(jīng)濟(jì)和管理系 統(tǒng) 仿真的特殊而有效的方法 如系統(tǒng)動力學(xué)方法 蒙特卡洛法等 系統(tǒng)動力學(xué)方 法通過建立系統(tǒng)動力學(xué)模型 流圖等 利用 DYNAMO 仿真語言在計算機(jī)上實(shí)現(xiàn)對真 實(shí)系統(tǒng)的仿真實(shí)驗(yàn) 從而研究系統(tǒng)結(jié)構(gòu) 功能和行為之間的動態(tài)關(guān)系 因本系統(tǒng)是利用單片機(jī)進(jìn)行系統(tǒng)調(diào)試 所以需采用單片機(jī)仿真工具 Promotes 進(jìn)行 仿真 Promotes 軟件來自英國 Lab center electronics 公司的 EDA 工具軟件 Prometheus 軟件有十多年的歷史 在全球廣泛使用 除了其具有和其他 EDA 工具一樣的 原理布圖 PCB 自動或者人工布線機(jī)電路仿真的功能外 其革命性的功能是 他的電路仿 真是互動的 針對微型處理器的應(yīng)用 還可以直接在基于原理圖的虛擬原形上編程 并 實(shí)現(xiàn)源碼級的實(shí)時調(diào)試 如有顯示及輸出 還能看到運(yùn)行后的輸入輸出的效果 配合系 統(tǒng)配置的虛擬儀器如示波器 邏輯分析儀等 Prometheus 為使用者建立了完備的電子設(shè) 計開發(fā)環(huán)境 Prometheus 產(chǎn)品系類還包括了革命性的 VSM 技術(shù) 用戶可以對基于微控制 器的設(shè)計連同所有周圍電子器件一起仿真 是一款非常優(yōu)秀的單片機(jī)仿真軟件 可以使 用 Kiel c51 和 Prometheus 進(jìn)行聯(lián)調(diào) 使調(diào)試和仿真更為方便 由于 Prometheus 軟件庫內(nèi)沒有本系統(tǒng)所要的 DS18B20 測溫原件 所以在仿真時 系 統(tǒng)電路做了一些調(diào)整 首先畫好仿真圖 將程序的二進(jìn)制文件調(diào)入單片機(jī)對話框的 Prometheus File 欄內(nèi) 如圖 4 1 所示 14 圖 4 1 二進(jìn)制文件的調(diào)入 仿真開始時 仿真圖如圖 4 2 所示 數(shù)碼管顯示都是 0 只有紅色 未加熱狀態(tài)燈 D1 亮 圖 4 2 剛啟動的仿真圖 在設(shè)置好溫度值如 100 攝氏度并按 SET 鍵確定后 數(shù)碼管顯示實(shí)時溫度值 26 攝氏度 系統(tǒng)開始進(jìn)入加熱狀態(tài) 如圖 10 所示 綠色 加熱狀態(tài)燈 D2 亮 黃色 輸出控制狀態(tài) D3 亮 系統(tǒng)控制加熱器對水進(jìn)行加熱 15 圖 4 3 系統(tǒng)啟動加熱仿真圖 系統(tǒng)啟動加熱一段時間后 達(dá)到設(shè)定的溫度值 系統(tǒng)停止加熱 狀態(tài)燈 D1 重新點(diǎn)亮 如圖 4 3 圖 4 4 系統(tǒng)進(jìn)入保溫狀態(tài)仿真圖 第五章第五章 抗干擾技術(shù)抗干擾技術(shù) 5 15 1 硬件抗干擾技術(shù)硬件抗干擾技術(shù) 16 光電隔離 在輸入輸出通道上采用光電隔離器來進(jìn)行信息傳輸是很有好處的 他將 微機(jī)系統(tǒng)與各種傳感器 開關(guān) 執(zhí)行機(jī)構(gòu)從電氣上隔離開來 很大一部分干擾被阻擋 抗干擾電源 微機(jī)系統(tǒng)供電線路是干擾的主要來源 電源采用隔離變壓器接入電網(wǎng) 可以防止電網(wǎng)的干擾侵入危機(jī)系統(tǒng) 配置去耦電容 原則上每個集成電路芯片都應(yīng)安置一個 0 01mF 的陶瓷電容器 可以 消除大部分高頻干擾 良好接地 在既有模電又有數(shù)電中 數(shù)字地和模電路要分開 最好只在一點(diǎn)相連 如果兩者不分開 則會相互干擾 5 25 2 軟件抗干擾技術(shù)軟件抗干擾技術(shù) 人工復(fù)位 對于失控的 CPU 最簡單的方法是使其復(fù)位 程序自動從 0000H 開始執(zhí) 行 為此在單片機(jī)的 RESET 端上一個高電平信號 并持續(xù) 10ms 以上即可 掉電保護(hù) 在掉電中斷子程序 首先進(jìn)行現(xiàn)場保護(hù) 保存現(xiàn)有的重要的狀態(tài)參數(shù) 當(dāng)電 源恢復(fù)正常時 CPU 重新復(fù)位 恢復(fù)現(xiàn)場繼續(xù)未完成的工作 抗死循環(huán) 當(dāng)單片機(jī)因干擾或者其它原因 程序彈飛到一個臨時構(gòu)成的死循環(huán)中時 只有利用人工強(qiáng)制復(fù)位或者問狗技術(shù) WATCHDOG 才能使單片機(jī)擺脫死循環(huán) 但操作者 不可能一直監(jiān)視程序運(yùn)行 并且單片機(jī)死機(jī)與人工強(qiáng)制復(fù)位之間需要時間差 這將會引 起負(fù)載暫時停止工作 看門狗技術(shù)可以在單片機(jī)死機(jī)后而人未發(fā)覺的瞬間 毫秒級 便 使單片機(jī)恢復(fù)工作 因此可選用帶有硬件的看門狗的單片機(jī) 若單片機(jī)內(nèi)不帶硬件看門 狗 則可在程序儲存器的空白區(qū)域和未用的中斷向量區(qū)域填滿軟件陷阱 軟件陷阱如下 NOP NOP MOVEA CDH MOVEB ABH PUSH ACC PUSH B RETI ABCD 是主程序 MAIN 所在行的地址碼 一旦子程序飛到寫有軟件陷阱程序的區(qū) 域 就會被拉回到主程序區(qū)域 MAIN 而不是回主程序的初始程序化部分 START 運(yùn) 行數(shù)據(jù)不被初始化 單片機(jī)系統(tǒng)所控制的負(fù)載與干擾前工作狀態(tài)一樣 17 信號采樣的抗干擾 在數(shù)字信號采樣時 可采用不同的濾波算法除去測量信號中非周期性干擾 提高 測量精度 其檢查欠壓 過壓功能就是采用多次 A D 轉(zhuǎn)換 然后去掉最高值和最低值 在求平均的方法作為憑據(jù) 而且采用連續(xù)采樣 5 次 僅當(dāng)其中四次取樣高于或者低于程 序中規(guī)定的某個值 才進(jìn)入相應(yīng)的處理 輸出抗干擾 單片機(jī)輸出時 可采用軟件設(shè)置所有輸出位置的放大來抗干擾 重復(fù)輸出的周期 應(yīng)盡量短 才能保證外部設(shè)備在收到抗干擾信號時還沒來得及反應(yīng) 正確的輸出信號又 到了 這樣不斷的刷新輸出數(shù)據(jù) 可防止輸出設(shè)備因受到干擾而停止工作 對輸出設(shè)備動作瞬間所產(chǎn)生的強(qiáng)電磁干擾 應(yīng)采用預(yù)設(shè)干擾標(biāo)志位的方法 當(dāng)干擾使 程序跳到所設(shè)計的軟件陷阱或使單片機(jī)復(fù)位時 通過檢測標(biāo)志位來判斷程序在干擾前已 執(zhí)行到的程序地址 從該程序的執(zhí)行地址繼續(xù)執(zhí)行 若程序繼續(xù)跑飛 瞬間程序又被拉 回 在干擾瞬間被強(qiáng)制輸出 在確認(rèn)正確執(zhí)行負(fù)載后再清除干擾標(biāo)志位 系統(tǒng)復(fù)位的處理 干擾源通過電源引起系統(tǒng)的復(fù)位 一般都從入口地址 0000H 出開始 執(zhí)行 系統(tǒng)初 始化 但控制程序希望在處理干擾時不破壞 RAM 區(qū)的數(shù)據(jù) 不影響正常程序執(zhí)行 這就 要求區(qū)分是正常上電復(fù)位 還是干擾源電源進(jìn)入單片機(jī)系統(tǒng)引起的復(fù)位或者看門狗復(fù)位 則檢測所設(shè)置的標(biāo)志位 使其跳過初始化電位 不改變 RAM 的數(shù)據(jù) 使其負(fù)載設(shè)備不會 因程序處理干擾而間斷工作 RAM 數(shù)據(jù)區(qū)的數(shù)據(jù)糾正恢復(fù) 干擾有時會破壞 RAM 區(qū)的數(shù)據(jù) 因此 程序中當(dāng)數(shù)據(jù)變化時要設(shè)標(biāo)志位 改寫數(shù)據(jù) 前要確認(rèn)標(biāo)志位后才能改寫 否則跳回主程序 避免 RAM 數(shù)據(jù)區(qū)出現(xiàn)誤寫 另一方法是 給每個數(shù)據(jù)設(shè)置兩個備份每次恢復(fù)正常運(yùn)行后 將數(shù)據(jù)與它的兩個備份數(shù)據(jù)進(jìn)行比較 從而比較數(shù)據(jù)的準(zhǔn)確性 在一些干擾比較強(qiáng)的地方同時使用以上兩種方法 才能保證數(shù) 據(jù)不受干擾的影響 第六章第六章 系統(tǒng)制作和編程系統(tǒng)制作和編程 6 16 1 系統(tǒng)制作系統(tǒng)制作 系統(tǒng)的 PCB 板見圖 所用的元器件見表 1 18 圖 6 1 系統(tǒng)的 PCB 板 表 6 2 原件列表 19 6 26 2 程序編程程序編程 程序使用匯編語言編寫 程序由主程序 定時中斷服務(wù)程序 延時子程序等模塊組 成 主程序由初始化 設(shè)置溫度的鍵盤處理程序等部分組成 定時中斷服務(wù)程序由 A D 轉(zhuǎn)換 數(shù)碼動態(tài)掃描顯示等部分組成 匯編語言源程序及注解和編譯好的 HEX 文件可以 從查詢相關(guān)資料 由于采用了動態(tài)掃描顯示的方法 雖然簡化了電路 節(jié)省了 I O 線 但占用了 CPU 的時間多 因此必須采用調(diào)用定時中斷的方式來測量溫度 以減小 CPU 的負(fù)擔(dān) 定時器 1 的定時時間為 5ms 每過 240ms 48 次中斷 測一次溫 延時子程序要供按鍵處理程序消 抖動金額設(shè)置溫度是控制數(shù)字翻動速度時調(diào)用 字形碼的輸出用了 P3 口的 P3 1 P3 5 P3 7 P3 口輸出的數(shù)據(jù)通過查表獲得 因 此數(shù)碼管為共陰型 所以相應(yīng)的輸出位為 1 時筆段亮 數(shù)組 Disbud 作為個位數(shù) 十位數(shù) 的存儲單元 其數(shù)值作為查表的指針 數(shù)組作為位驅(qū)動碼的存儲單元 數(shù)值作為字形碼 中對應(yīng)的位必須全取 1 以免影響 AT89C51 內(nèi)部模擬需哦名叫阿披比較器正常工作 字 形碼和顯示字符之間的對應(yīng)關(guān)系見上圖 動態(tài)掃描顯示由數(shù)碼管顯示程序完成 當(dāng)個位數(shù)送到 P3 接口時 P1 3 輸出地點(diǎn)為 數(shù)碼管 DS2 顯示個位數(shù) 當(dāng)十位數(shù)送到 P3 口時 P1 4 輸出低電平 數(shù)碼管 DS1 顯示十 20 位數(shù) 這樣輪流工作即可顯示溫度值 當(dāng)溫度低于 0 攝氏度時顯示 L 當(dāng)溫度高于 50 攝 氏度顯示 H 在測量結(jié)束時 P3 6 由 0 翻轉(zhuǎn)到為 1 通過觀察在 KEIL C51 中的匯編語言程序編 譯的匯編程序發(fā)現(xiàn) 判斷 P3 6 為高電平要用兩個機(jī)器周期 關(guān)閉定時器 1 停止計數(shù)要用 1 個機(jī)器周期 1 的計數(shù)值增加到 3 因此在程序中對此誤差進(jìn)行了修正 將計數(shù)值減去 3 在將結(jié)果除以 10 即可得到溫度值 程序如下 include define unchar unsigned char define uint unsigned int uchar bai shi ge xiaoshu fuhao bit sign 負(fù)數(shù)的標(biāo)志位 bit f DS18B20 初始化成功標(biāo)志位 sbit DQ P1 7 sbit LS138A P2 0 定義 138 譯碼器的輸入 A 腳由 P2 0 控制 sbit LS138B P2 1 定義 138 譯碼器的輸入腳 B 由 P2 1 控制 sbit LS138C P2 2 定義 138 譯碼器的輸入腳 C 由 P2 2 控制 uchar Temp 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 負(fù)號 void delayms uint z 延時大約 1ms uchar i j for i 0 i z i for j 0 j 115 j void delayus uchar i 延時大約 6us while i void init ds18b20 DQ 1 delayus 8 DQ 0 delayus 80 DQ 1 delayus 8 delayus 4 21 while DQ 0 f 1 寫一個字節(jié)的數(shù)據(jù) 低位在前 Void write ds18b20 unchar date uchar i 0 for i 0 i 1 delayus 4 讀一個字節(jié)的數(shù)據(jù) uchar read ds18b20 uchar i 0 dat 0 for i 0 i 1 DQ 1 if DQ 1 dat 0 x80 delayus 4 return dat 溫度的轉(zhuǎn)換 獲取溫度 uint wendu uchar temph templ uint temp float t init ds18b20 write ds18b20 0 xcc write ds18b20 0 x44 delayms 10 init ds18b20 22 write ds18b20 0 xcc write ds18b20 0 xbe temp read ds18b20 temp read ds18b20 if temph 此時溫度為零下 即為負(fù)數(shù) temph temph templ templ templ 1 if templ 255 temph temp temph temp temp temph 256 templ 0 625 0 5 return temp void smg LS138A 0 LS138B 0 LS138C 0 P0 0 void display uint LedOut 10 i 4 uint num num wendu bai num 1000 shi num 1000 100 ge num 100 10 xiaoshu num 10 fuhao 10 if f P0 0 x00 else 23 LedOut 4 Te

溫馨提示

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

評論

0/150

提交評論