freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

煤氣檢漏報警器設(shè)計-資料下載頁

2024-12-04 09:31本頁面

【導(dǎo)讀】泄漏所做出的相應(yīng)的報警,即為家庭式煤氣報警器。本課題設(shè)計煤氣報警。采用了AT89S52單片機為報警器的核心部件,對煤氣報警器進行控制。與設(shè)定濃度值相比較得到偏差。通過對偏差信號的處理獲得控制信號,發(fā)。而實現(xiàn)對家用和工業(yè)煤氣漏氣的監(jiān)控。整個系統(tǒng)的硬件電路設(shè)計合理,性

  

【正文】 我們建議您用 200ppmCO 或 1000ppmLPG 、 5000ppm 甲烷校正傳感器。當(dāng)精確測量時,報警點的設(shè)定應(yīng)考慮溫濕度的影響。 靈敏度的調(diào)整程序: a. 將傳感器連接在應(yīng)用回路中 b. 接通電源,通電老化 48 小時以上。 c. 調(diào)節(jié)負(fù)載電阻直到 90 秒末時獲得對應(yīng)于某一個一氧化碳濃度時所需要的信號值。 d. 調(diào)節(jié)另外一個負(fù)載電阻直到 60 秒末獲得對應(yīng)于某個甲烷或 LPG 濃度時所需要的信號值。 (四) 硬件設(shè)計小結(jié) 在接到畢業(yè)設(shè)計題目為煤氣報警器設(shè)計。經(jīng)過考慮和查 找個方面的資料最終確 27 定了煤氣報警器的具體方案。方案是利用 89s52 單片機作為主控芯片, TLC2543 作為 A/D 轉(zhuǎn)化器, X5045 作為硬件看門狗,并且作為儲存報警上限, DS12887 作為實時時鐘模塊計時并儲存報警記錄,兩個不同輸出的傳感器和信號處理模塊。確定好模塊就進行硬件設(shè)計和原器件的采購,并且在田剛老師的實驗室進行焊接和調(diào)試。版圖設(shè)計中考慮到美觀和穩(wěn)定,盡量使用走錫的方式進行設(shè)計。并且在設(shè)計中加入了不少的去耦電容提高電源的穩(wěn)定性、阻容濾波、多個擴展的接口和特別添加的基準(zhǔn)電壓。 28 四、 軟件設(shè)計 關(guān)于單片機 MCS51的編程目前比較多用的是匯編和 C語言。 C語言是 Combined Language(組合語言)的中英混合簡稱。是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有 匯編語言 的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序 ,其靈活性特備的強 。 然而 對于目前普遍使用的 RISC 架構(gòu)的 8bit MCU 來說, 因為所用的資源有 限,所以必需在編譯的過程中多看反匯編并進行程序的修改,反匯編中一條指令就對應(yīng)一個機器碼,每一步執(zhí)行什么動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。 所以本設(shè)計采用 C 語言編寫。 本設(shè)計采用 Keil C51 軟件進行編程, Keil C51 軟件是眾多單片機應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編 ,PLM 語言和 C 語言的程序設(shè)計,界面友好,易學(xué)易用,給我在設(shè)計者帶來很大的方便。 13 (一) 主程序設(shè)計 程序設(shè)計采用模塊化設(shè)計,控制時序采用時間觸發(fā)的時間片輪詢調(diào)度 方法和鍵盤中斷的方法同時進行, 為一個控制周期,分成 10 個時間片,每個時間片為50MS,將所有的任務(wù)分配在各個時間片完成,主程序僅完成初始化,然后進入休眠狀態(tài) 。 初始化程序和主程序 主程序的初始化,要對 X504 DS12887 和 HD7279A 進行初始化,以及時鐘的設(shè)置。 50MS 定時采用 89S52 內(nèi)部定時器 1,工作方式 1,由于晶振為 12MHZ,一個機器周期為 1us,所以 T1 預(yù)裝初始值為 655365000=15536=3CB0H。 X5045 看門狗定時器周期設(shè)置為 200ms,寫入狀態(tài)寄存器 STATUS_REG=20H。 DS12887 則是先判斷是否是有初始過,如果沒有就進行初始化,如果有則進行初始化。其中初始化程序是通過配置寄存器 DSA=0x20 來開啟時鐘,設(shè)置寄存器 DSB=0x02 來初始化二進制和 24 小時 13趙亮 、 候國銳 : 單片機 C 語言編程與實例 [M], 北京人民郵電出版社 2021 年。 29 制。 HD7279A 則需要進行復(fù)位,以及延遲測試然后再次復(fù)位,并進行消隱處理等待顯示處理調(diào)用。單片機進入低功耗狀態(tài),等待中斷。 N 圖 41 初始化子程序 圖 42 主程序流程圖 START P1, P2, P3 口復(fù)位 初始化 DS12887 定時器 /計數(shù)器 1 方式 2 選擇,初值設(shè)置 開外中斷 1 開總中斷允許 返回 初始化 X5045 初始化 HD7279A START 調(diào)用初始化程序 進入低功耗空閑節(jié)電方式 有中斷? 硬件退出低功耗空閑方 式 Y 30 初始化定時器子程序段: TMOD=0X10; TH1=0X3C; TL1=0XB0; 初始化 DS12887: 因為 DS12887 是以外部儲存器的形式定義,所以程序比較簡單 14,下表為主要變量的分部,寄存器狀態(tài)的設(shè)置: REGA=0X20。 REGB=0X02。 REGC=0X00。 表 41 DS12887 主要變量分配 符號 定義 地址 意義 SEC XBYTE FE00H 秒的存儲地址 MIN FE02H 分的存儲地址 HOUR FE04H 小時的存儲地址 DAY FE07H 天的存儲地址 MON FE08H 月的存儲地址 YEAR FE09H 年的存儲地址 REGA FE0AH 寄存器 A 的存儲地址 REGB FE0BH 寄存器 B 的存儲地址 REGC FE0CH 寄存器 C 的存儲地址 REGD FE0DH 寄存器 D 的存儲地址 MISFUN FE10H 10H 到 73H 存放 10 條報警記錄 其中必須判斷 DS12887 中的 REGA 是 否為 0,為 0則進行初始化,并把初始的值定義給 DS12887,為 0則進行下一步。這是配合 X5045 的看門狗復(fù)位使用,以至于 14 31 系統(tǒng)的時鐘為正確并沒有誤差。 初始化 X5045: 因為 X5045 是以 SPI 進行通信協(xié)議,所以程序?qū)崿F(xiàn)比較復(fù)雜,下表為其指令的分部情況 15。 表 42 DS12887 的主要變量表 符號 偽指令 地址或產(chǎn)量 意義 SCS BIT 代表 89s52 的 ,既硬件連接 SCK BIT 代表 89s52 的 ,既硬件連接 SI BIT 代表 89s52 的 ,既硬件連接 SO BIT 代表 89s52 的 ,既硬件連接 AL1_L,AL1_H ……… . AL8_L,AL8_H DATA 00H,01H …… .. 0EH,0FH 通道 1 的報警上限 ……… .. 通道 8 的報警上限 WREN EQU 06H 代表允許寫操作指令 06H WRDI EQU 04H 代表禁止寫操作指令 04H RDSR EQU 05H 代表讀狀態(tài)寄存器指令 05H WRSR EQU 01H 代表寫狀態(tài)寄存器指令 01H WRITE EQU 02H 代表寫存儲器指令 02H READ EQU 03H 代表讀存儲器指令 02H 程序必須調(diào)用 wren_cmd()和 wrsr_cmd(),并把 STATUS_REG=0X20。而且必須判斷各個通道報警上限的值,如果為 0,則賦值 0X0200 避免初次開機死循環(huán)報警。 void wrsr_cmd()16 { CS = 0。 outbyt(WRSR)。 // 傳送狀態(tài)寄存器寫入指令 outbyt(STATUS_REG)。 // 傳送要寫入的數(shù)據(jù) CS = 1。 15 16李鳳霞: C 語言程序設(shè)計教程 [M],北京理工大學(xué)出版社 2021 年 32 wip_poll()。 // 檢測寫入進度 } void wren_cmd() { CS = 0。 outbyt(WREN)。 // 傳送寫入使能指令 CS = 1。 } 初始化 HD7279A: HD7279A 也是以串行通信協(xié)議進行通信,所以程序?qū)崿F(xiàn)比較復(fù)雜,下表為其指令的分部情況。 表 43 HD7279A 指令集 符號 變量 意義 CMD_RESET 0xa4 復(fù)位清除指令 CMD_TEST 0xbf 測試指令 DECODE0 0x80 下載數(shù)據(jù) ,切按方式 0 譯碼 DECODE1 0xc8 下載數(shù)據(jù),切按方式 1 譯碼 CMD_READ 0x15 讀鍵盤指令 UNDECODE 0x90 下載指令,但是不譯碼 RTL_CYCLE 0xa3 循環(huán)左移指令 RTR_CYCLE 0xa2 循環(huán)右移指令 RTL_UNCYL 0xa1 左移指令 RTR_UNCYL 0xa0 右移指令 ACTCTL 0x98 消隱指令 SEGON 0xe0 段點亮指令 SEGOFF 0xc0 段關(guān)閉指令 BLINKCTL 0x88 閃爍指令 其中復(fù)位、測試、 左右移和循環(huán)左右移是純指令,其他為帶命令指令。 33 send_byte(CMD_RESET)。 // 復(fù)位 HD7279A send_byte(CMD_TEST)。 // 測試指令 for (j=0。j3。j++) // 延時約 3秒 {delay10ms(100)。} send_byte(CMD_RESET)。 最后要置循環(huán)不斷的 PCON=0x01,保持退出中斷就在低功耗狀態(tài)。 中斷服務(wù)程序 本設(shè)計中單片機進入低功耗狀態(tài),為了節(jié)省資源和提高抗干擾能力的而進行的,由各種中斷喚 醒低功耗模式,執(zhí)行完中斷服務(wù)程序之后,重新進入休眠狀態(tài)。而中斷服務(wù)程序入口有兩個,一個是鍵盤的外部中斷服務(wù)程序入口,一個是 T1 時鐘中斷服務(wù)程序。外部中斷主要是用來進入鍵盤處理模塊,而 T1 時鐘中斷是用來分配系統(tǒng)的各個時間片的任務(wù)調(diào)度模塊。任務(wù)調(diào)度模塊中主要通 SYS_CLK 的增加來,分別任務(wù)模塊的程序。這樣可以保證定時給看門狗喂狗,又可以節(jié)省功耗。 開外部中斷 中斷入口 關(guān)外部中斷 重設(shè)定時器 T1的值 KEY_OK=1 N Y KB_FIG=0 KB_FIG=1 N Y 讀鍵值 KEY=0顯示時間,進入相應(yīng)處理程序 KEY=1顯示報警上限并進入相應(yīng)處理程序 KEY=2顯示報警記錄并進入相應(yīng)處理程序 KEY=3顯示當(dāng)前值道并進入相應(yīng)處理程序 KEY=4設(shè)定鍵并進入相應(yīng)處理程序 KEY=5閃爍位加 1 鍵并進入相應(yīng)處理程序 KEY=6閃爍位右移鍵并進入相應(yīng)處理程序 KEY=7確定位鍵并進入相應(yīng)處理程序 34 圖 43 外部中斷服務(wù)程序 圖 44 定時器 T1 的中斷程序 (二) 功能實現(xiàn) 主要子程序 其中必須對各個模塊進行編程處理,其中包括人機對話的顯示和按鍵模塊,數(shù)據(jù)的采集模塊,數(shù)據(jù)的計算很分析模塊和報警模塊。其實這些模塊都是中斷子程序的一部分。而且也是整個系統(tǒng),程序的主要組成部分。 定時器常數(shù)重裝 SYS_CLK+1=SYS_CLK 中斷入口 SYS_CLK=? 采集通道1數(shù)據(jù) 采集通道2數(shù)據(jù) 采集通道3數(shù)據(jù) 采集通道4數(shù)據(jù) 采集通道5數(shù)據(jù) 采集通道6數(shù)據(jù) 采集通道7數(shù)據(jù) 采集通道8數(shù)據(jù) 數(shù)據(jù)處理 報警記錄 中斷返回 35 采集程序 采集通道比較簡單,因為是每個時間片進行采集的,而且 TLC2543 的轉(zhuǎn)換時間遠(yuǎn)遠(yuǎn)低于片選時間的 50ms,所以無需查詢 EOC 或是中斷觸發(fā),直接可以獲得。因為 TLC2543 是采用 SPI 通信模式進行通信的,而我們采用直接的 I/O 模擬協(xié)議來進行編寫通信。 其通信的模式是: 在 I/O CLOCK 的前 8 個脈沖的上升沿 ,以 MSB 前導(dǎo)方式從 DATA INPUT 端輸入 8位數(shù)據(jù)
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1