




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本科畢業(yè)論文(設(shè)計) 題 目 物聯(lián)網(wǎng)的家庭傳感器網(wǎng)絡(luò)組網(wǎng)設(shè)計 學(xué)生姓名 專業(yè)名稱 電氣工程及其自動化 指導(dǎo)教師 年 月 日 教學(xué)單位 學(xué)生學(xué)號 200995014013 編 號 II 物聯(lián)網(wǎng)的家庭傳感器網(wǎng)絡(luò)組網(wǎng)設(shè)計 摘要 本系統(tǒng)在正常工作時,用戶通過手機(jī)發(fā)送指令,指令被 GSM 模塊接受并將指令傳送給單片機(jī),單片機(jī)處理信號發(fā)出控制指令通過繼電器等控制電路的通斷、電動機(jī)的正轉(zhuǎn)反轉(zhuǎn)等達(dá)到控制家用電器設(shè)備的效果。 本系統(tǒng)是基于全球移動通信系統(tǒng)進(jìn)行設(shè)計的。系統(tǒng)采用 GSM模塊進(jìn)行短信收發(fā),以 STC89C52RC 單片機(jī)系統(tǒng)為控制核心,進(jìn)行信息的反饋和遠(yuǎn)程控制,從而實現(xiàn)遠(yuǎn)程報警、遠(yuǎn)程控制等功能。 關(guān)鍵詞 :GSM模塊 單片機(jī) III The networking design of home sensor based on the Internet of things Abstracts When this system works in good condition, the users could send messages through cell phone or telephone .the GSM module accept the instructions and send it to the microcontroller. The SCM processes signals, send the orders out and control the on-off switch or the forward/reversal of the electromotor to control household appliances. This system is designed on the basis of the global mobile communication system. The system, which with the core of STC89C52RC SMS,sends and receives messages by using GSM module. It can realize the functions of remote alarm, remote control through giving information feedback and controlling appliances remotely. Key words: GSM module singlechip IV 目 錄 1.前言 . V 2.系統(tǒng)的總體設(shè)計方案與主要功能 . VI 2.1系統(tǒng)的總體設(shè)計方案 . VI 2.2系統(tǒng)主要功能 . VII 3.1傳感器單元硬件設(shè)計方案 . VIII 3.2控制系統(tǒng)單元硬件設(shè)計方案 . IX 3.3 GSM 模塊 方案 . IX 3.4電源模塊方案 . X 4 硬件電路設(shè)計 . XI 4.1 GSM與單片機(jī)硬件連接 . XI 4.2執(zhí)行機(jī)構(gòu)電路 . XI 5 系統(tǒng)軟件設(shè)計 . XIII 5.1系統(tǒng)流程圖 . XIII 5.2 AT 指令 . XIV 6.各模塊核心程序 . XV 6.1GSM 模塊收發(fā)程序 . XV 6.2 煙霧傳感器模塊核心代碼: . XXII 6.3 DS18B20 核心代碼: . XXIII 6.4 ADC0809 功能核心代碼 . XXVII 結(jié)論 . XXX 參考文獻(xiàn) . XXXI 謝 辭 . XXXII V 1.前言 隨著經(jīng)濟(jì)的快速增長 ,快節(jié)奏的生活狀態(tài)得人們越來越注重生活的質(zhì)量和品位,人們對舒適,方便,高效的生活環(huán)境的渴望愈來愈強(qiáng)烈。如何建立一個高效率、低成本的智能家居系統(tǒng)已經(jīng)成為當(dāng)今世界的一個熱點問題。目前國內(nèi)外各種類型的智能家居產(chǎn)品越來越多,但其中大部分是基于電話網(wǎng)的安防控制系統(tǒng),并且只是應(yīng)用于高檔住宅。一般的普通民眾都無法接受其高昂的價格。并且目前國內(nèi)固定電話的用戶正在急劇減少,手機(jī)用戶的數(shù)量在飛速增長。所以一種價格低廉且功能齊全的基于 GSM 模塊的的家居智能控制系統(tǒng)就將應(yīng)運而生。 本系統(tǒng)介紹的家居智能控制系統(tǒng)采用 GSM 模塊進(jìn)行短 信收發(fā),以 STC89C2RC芯片為控制核心,實現(xiàn)遠(yuǎn)程控制、信號采集、遠(yuǎn)程報警等功能。 VI 2.系統(tǒng)的總體設(shè)計方案與主要功能 2.1 系統(tǒng)的總體設(shè)計方案 G S M 模 塊短 信 收 發(fā)紅 外 傳 感器外 部 驅(qū) 動電 路各 類 家 用電 器單 片 機(jī) 控 制系 統(tǒng)煙 霧 傳 感器溫 度 傳 感器R S 2 3 2 串 口 圖 1 系統(tǒng)總體結(jié)構(gòu)框圖 系統(tǒng)的總體結(jié)構(gòu)框圖如圖 1所示。當(dāng)用戶家里有盜賊出入或者門窗沒有關(guān)好,發(fā)生火災(zāi)或者煤氣泄漏,溫度低于或者高于預(yù)設(shè)溫度時相應(yīng)的傳感器發(fā)出信號,此時數(shù)據(jù)采集模塊將傳感器發(fā)出的信號轉(zhuǎn)換成數(shù)字量,然后送給單片機(jī)控制系統(tǒng)進(jìn)行計算和分析后,通過 RS232串口將數(shù)據(jù)傳 送給 GSM 模塊將家里即時信息發(fā)送到用戶手機(jī)上,同時單片機(jī)控制系統(tǒng)將控制啟動相應(yīng)的執(zhí)行機(jī)構(gòu),如打開啟動報警器,打開照明燈,打開電磁閥,打開空調(diào)等等。當(dāng) GSM 模塊接受到用戶短信指令后,將其轉(zhuǎn)換成數(shù)字量,通過串口送給單片機(jī)系統(tǒng)分析指令的意思,然后開啟相應(yīng)的家電設(shè)備,比如提前打開燈,電視,熱水器,或者空調(diào),實現(xiàn)遠(yuǎn)程控制功能。 智能家居系統(tǒng)各單元的組成與功能簡介: 1. 傳感器單元:傳感器單元主要包括有紅外傳感器、煙霧傳感器、溫度傳感器等,主要是對家中各指標(biāo)進(jìn)行檢測,例如煙霧濃度,溫度高低等,并將這些離散量裝換成數(shù)字量送給 控制系統(tǒng)單元。 2. 控制系統(tǒng)單元:控制系統(tǒng)單元主要有 STC89C52芯片和外部必要的復(fù)位、電源電路等構(gòu)成。主要是對傳感器單元和 GSM 模塊傳送過來的數(shù)據(jù)進(jìn)行分析和 VII 計算,從而發(fā)出正確的指令。 3. GSM模塊單元: GSM全稱為全球移動通訊系統(tǒng)。是用戶與系統(tǒng)通訊連接的最重要的單元。 4. 電源模塊:采用 UPS供電,保證系統(tǒng)能在斷電的情況下能正常運行。 2.2 系統(tǒng)主要功能 1. 遠(yuǎn)程 控制功能: 該系統(tǒng)能 接收 并識別 用戶發(fā)送來的控制命令并由單片機(jī) 處理,來實現(xiàn)不同家電工作及停止功能。 2. 遠(yuǎn)程報警功能:在用戶住宅出現(xiàn)異常情況時,比如 火災(zāi) 、盜賊入侵、門窗未關(guān)好等,系統(tǒng) 會自動發(fā)送報警短信給預(yù)先設(shè)定手機(jī)號碼的用戶 ,同時啟動現(xiàn)在相關(guān)的執(zhí)行機(jī)構(gòu),如啟動報警器等 。 3. 永不斷電功能:系統(tǒng)采用 UPS電源供電, 在斷電時可繼續(xù)工作 , 可以 在斷電情況下監(jiān)控家里安全信息, 克服了停電時不能報警等缺點。 VIII 3.硬件技術(shù)方案 硬件的技術(shù)方案包括傳感器單元硬件設(shè)計方案,控制系統(tǒng)單元硬件設(shè)計方案, GSM 模塊單元硬件選擇方案,電源模塊硬件選擇方案。 3.1 傳感器單元硬件設(shè)計方案 本系統(tǒng)傳感器單元包括紅外傳感器、煙霧傳感器、溫度 傳感器和 A/D 轉(zhuǎn)換模塊。 1. 紅外傳感器采用主動紅外探測器,主動紅外探測器由紅外發(fā)射機(jī),紅外接收機(jī)和報警控制器組成。紅外發(fā)送端和接收端之間有一道紅外光束,當(dāng)人體穿越此光束時,必將部分或全部遮擋紅外光束,接收端輸出電信號的強(qiáng)度會發(fā)生變化從而啟動報警控制器發(fā)出報警信號,同時發(fā)報警短信信息給用戶。 2. 煙霧傳感器采用 MQ-2,它是一種電阻控制型的氣敏器件,其阻值隨被測氣體的濃度(成分)而變化。氣敏器件又是一種“氣 電”傳感器件,它將被測氣體的濃度(成分)信號轉(zhuǎn)換成相應(yīng)的電信號。其響應(yīng)時間 5s,恢復(fù)時間 30s。探測液化 氣的濃度在 300ppm-5000ppm。足以滿足本系統(tǒng)設(shè)計要求。 DS18b201 2 3GNDDQVDD 4. A/D轉(zhuǎn)換模塊,主要采用 ADC0809芯片,其主要是將各傳感器采集回來的數(shù)據(jù)轉(zhuǎn) 換成數(shù)字量送給 STC89C52RC單片機(jī)進(jìn)行計算和分析。 0809具有 8路模擬輸入端口,地址線( 23-25腳)可決定對哪一路模擬輸入作 A/D 轉(zhuǎn)換, 22腳為地址鎖存控制,當(dāng)輸入為高電平時,對地址信號進(jìn)行鎖存。 6腳為 AD 轉(zhuǎn)換啟動控制,當(dāng)輸入電平由低到高再到低后 A,就開始 A/D 轉(zhuǎn)換。 7腳為 A/D 轉(zhuǎn)換 結(jié)束標(biāo)志,3. 溫度傳感器采用 DS18B20,它是一種可編程的溫度傳感器,其內(nèi)置 EPROM,限溫報警功能,最高分辨率 12位,檢測溫度為 -55 +125,在 -10 +85時精度為 0.5。其外觀圖 2所示。 1號引腳接地, 2號數(shù)據(jù)輸入 /輸出引腳, 3號引腳當(dāng)工作在寄生電源時,改引腳接地。由于 DS18B20可以由數(shù)據(jù)線本身提供電源,因此與單片機(jī)連接是需要一根數(shù)據(jù)線和一根地址線。( 鄭峰 .51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全 P369) 圖 2 3 引腳T0-92DS18B20 IX 當(dāng) A/D 轉(zhuǎn)換結(jié)束時, 7腳輸出高電平。 9腳為 A/D 轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE 腳為高電平時, A/D 轉(zhuǎn)換數(shù)據(jù)從端口輸出。 3.2 控制系統(tǒng)單元硬件設(shè)計方案 控制系統(tǒng)單元主要由 STC89C52RC 芯片及其復(fù)位和電源電路組成。 8位STC89C52RC單片機(jī)是 STC公式開發(fā)的一款增強(qiáng)型的 51單片機(jī)芯片。具有低功耗,運行穩(wěn)定,存儲空間大等特點。用戶應(yīng)用程序空間為 8KB。片上集成 512字節(jié) RAM,具有 ISP/IAP 功能,無需專用編程其,可直接通過串口下載用戶程序,數(shù)秒即可完成。節(jié)約購買專用編程器的資金。具有 3個 16位定時 /計數(shù)器。最主要的是該芯片與 51芯片兼容,給使用者帶來極大的便利。 3.3 GSM 模塊 方案 本系統(tǒng)設(shè)計使用的 GSM 模塊是 Siemens 公司的 TC35I。 TC35I 是西門子公式最新推出的無線模塊。,該模塊集射頻電路和基帶于一體,向用戶提供標(biāo)準(zhǔn)的 AT 命令接口,為數(shù)據(jù)、語音、短消息和傳真提供快速、可靠、安全的傳輸,方便用戶的應(yīng)用開發(fā)與設(shè)計, TC35I 的組成如圖 3所示。 TC35I 模塊主要由 GSM基帶處理器、 GSM 射頻模塊、供電模塊、閃存、 ZIF 連接器、天線接口 6部分組成。作為 TC35I 的核心,基 帶處理器主要處理 GSM 終端的語音、數(shù)據(jù)信號,并涵蓋了蜂窩射頻設(shè)備的所有的模擬和數(shù)字功能。在不需要額外硬件電路的前提下,可支持 FR、 HR 和 EFR 語音信道編碼。( 鄭峰 .51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全 P559) R F 模 塊G S M 基 帶處 理 器F L A S H 存 儲 器天 線 連 接 器電 源 模 塊芯片連接器ZIFZ 40 圖 3 TC35I 的組成框圖 X 3.4 電源模塊方案 本系統(tǒng)采用 UPS 進(jìn)行供電,以保證在掉電情況下防盜報警功能依然能正常運行。不間斷電源( UPS)是當(dāng)交流輸入電源(俗稱市電)發(fā)生異?;驍嚯姇r,還能繼續(xù)向負(fù)載供電,并能保證供電質(zhì)量,是負(fù)載供電不受影 響的裝置。其基本結(jié)構(gòu)原理圖如圖 4所示 整 流器逆 變 器蓄電池市 電負(fù) 載 圖 4 UPS 基本結(jié)構(gòu)框圖 當(dāng)市電正常時通過整流器將交流電整流成直流點給蓄電池充電,同時通過逆變器又變換成交流電供給負(fù)載。當(dāng)市電斷電后,則蓄電池放出直流電通過逆變器逆變成交流電后,繼續(xù)給負(fù)載供電。這樣在有市電時供給負(fù)載的同時給蓄電池充電,當(dāng)市電斷電時,蓄電池則充當(dāng)電源通過逆變給負(fù)載繼續(xù)供電,實現(xiàn)不間斷供電。 XI 4 硬件電路設(shè)計 本系統(tǒng)的硬件電路主要包括 GSM模塊與 STC89C52RC芯片的連接 電路和執(zhí)行機(jī)構(gòu)電路。 4.1 GSM 與單片機(jī)硬件連接 GSM與 STC89C52RC 的硬件連接圖如圖 5所示。 T C 8 9 C 5 2R C 芯 片T X DR X D R X DT X DM A X 2 3 2芯 片G S M 模 塊 圖 5 GSM 與單片連接原理圖 單片機(jī)與 GSM 模塊的硬件連接 TC35I的數(shù)據(jù)接口采用串行異步收發(fā), 數(shù)據(jù)接口配置為 8 位數(shù)據(jù)位、 1 位停止位、無校驗位,可以在 300-115103 bps 的波特率下運行。 由于數(shù)據(jù)通信電路中 TC35I 數(shù)據(jù)接口工作在 CMOS 電平,而STC89C52RC芯片工作在 TTL點電平,所以 在 STC89C52RC芯片 和 TC35I 之間加入 TI公式的 電平轉(zhuǎn)換 芯片 MAX232。實現(xiàn)串口通訊的功能。 4.2 執(zhí)行機(jī)構(gòu)電路 執(zhí)行機(jī)構(gòu)部分電路如圖 6所示。 XII 圖 6 執(zhí)行機(jī)構(gòu)部分電路圖 本系統(tǒng)共有八路通過繼電器通斷實現(xiàn)對電器控制的執(zhí)行機(jī)構(gòu)電路。單片機(jī)管腳通過 10K限流電 阻與三極管基極相連,當(dāng)相應(yīng)的管腳呈高電平時,那么相對應(yīng)的三極管就會導(dǎo)通,信號繼電器線圈也就會通電吸合,從而實現(xiàn)家用電器的開關(guān)。當(dāng)單片機(jī)管腳輸出為低電平時,三極管失去導(dǎo)通電壓關(guān)斷,由于繼電器線圈并聯(lián)了一個續(xù)流二極管,此時繼電器線圈產(chǎn)生的巨大的感應(yīng)電流會通過續(xù)流二極管與線圈形成通路,最后電能將全部在線圈上消耗,從而感應(yīng)電流就不會沖向三極管,保證了電路的穩(wěn)定性和可靠性。 XIII 5 系統(tǒng)軟件設(shè)計 5.1 系統(tǒng)流程圖 開 始初 始 化是 否 接 受到 短 信 指 令啟 動 相 應(yīng) 電器Y E SNO檢 測 傳 感器 開 關(guān)G S M 發(fā) 送 操作 成 功 信 息進(jìn) 入 中 斷服 務(wù) 程 序N OYES關(guān) 中 斷紅 外 報 警煙 霧 報 警溫 度 報 警啟 動 報 警 器G S M 發(fā) 送 防盜 報 警啟 動 報 警 器并 禁 止 空 調(diào)開 啟G S M 發(fā) 送 火災(zāi) 報 警啟 動 空 調(diào)G S M 發(fā) 送 高溫 報 警中 斷 返回Y E SY E SNONOYES中 斷 服 務(wù)子 程 序結(jié) 束圖 7 系統(tǒng)流程圖 本系統(tǒng)的軟件部分由 C語言編寫, C語 言有較好的可閱讀行和移植性,大大的方便了程序的編寫。系統(tǒng)流程圖如圖 7 所示。首先對系統(tǒng)進(jìn)行初始化,初始化包括串行通訊口的初始化,中斷初始化, TC35I的初始化。然后單片機(jī)對是否接受到短信指令和與傳感器連接的 I/O 進(jìn)行循環(huán)檢測。當(dāng) GSM 接收到短信指令時,通過單片機(jī)的分析計算啟動相應(yīng)的電器,同時給用戶發(fā)送操作成功的短消息,然后繼續(xù)對傳感器進(jìn)行檢測,如果沒有傳感器沒有信號,則又返回繼續(xù)對 GSM是否接收到短信指令進(jìn)行檢測,就這樣循環(huán)進(jìn)行檢測。當(dāng)家里發(fā)生險情或溫度過高時,軟件進(jìn)入中斷服務(wù)程序,對三個傳感器分別進(jìn)行判斷, 然后進(jìn)行相應(yīng)的處理同時完成對報警信息的發(fā)送。 XIV 5.2 AT 指令 AT指令是以 AT 作首 , 字符結(jié)束的字符串, AT指令的響應(yīng)數(shù)據(jù)包在 中。每個指令執(zhí)行成功與否都有相應(yīng)的返回。 對 TC35I 的操作均采用 AT 指令,它包含了 GSM 語音和短信息的控制。 其指令格式為“ AT+XXXX”, 根據(jù) AT 指令的GSM07.05 標(biāo)準(zhǔn),發(fā)送和接收中文或中 /英文混合的短信息必須采用 PDU 模式,Text 模式只支持傳送英文及數(shù)字信息。 根據(jù)本系統(tǒng)的要求采用 Text 模式。系統(tǒng)所用基本命令如下: a) 設(shè)置短消息發(fā)送格式( 0-PDU, 1-文本 ) AT+CMGF=1; b) 發(fā)送短消息 (短消息內(nèi)容為 “ OK”)AT+CMGS=1 5173236799(用戶電話 )OKz( z 表示 OK+z); c) 本地中心號碼設(shè)置 AT+CSCA=+8613800732500(湘潭) ; d) 讀取短信息內(nèi)容 AT+CMGR=1; e) GSM網(wǎng)絡(luò)狀態(tài)查詢“ AT+CREG?”; f) 刪除短息防止溢出 AT+CMGD=1; XV 6.各模塊核心程序 6.1GSM 模塊收發(fā)程序 單片機(jī)實現(xiàn)短信自動發(fā)送 進(jìn)行短信發(fā)送的前提是短信內(nèi)容的正確編碼。經(jīng)過以上對短信發(fā)送過程的分析,可以 通過單片機(jī)對其進(jìn)行實現(xiàn)。下面是實現(xiàn)程序例程: /*- 函數(shù)名: PDU_SMS() 功能 :發(fā)送短信 參數(shù)說明: SMS_Center 為短信中心號碼 11位 SMS_Telenum為短信接收方的號碼 11位 SMS_Context為短信的內(nèi)容 -*/ int PDU_SMS(char *SMS_Center, char *SMS_Telenum, char *SMS_Context,char is_GB) int i,j; unsigned char len,time; char lens3; time=0; for(i=0;i300;i+) PDU_Codei=PDU_ti; /*-設(shè)置短信中心號碼 -*/ for (i = 0, j = 0; i strlen(SMS_Center) / 2; i+) PDU_Code6+(j+) = SMS_Center2 *i + 1; PDU_Code6+(j+) = SMS_Center2 *i; XVI PDU_Code6+j+ = F; /在最后補上的 F PDU_Code6+j = SMS_Centerstrlen(SMS_Center) - 1; /*-*/ /*-設(shè)置接收號碼 -*/ for (i = 0, j = 0; i 4) 9 ? (len 4) + 55: (len 4) + 48; PDU_Code45 = (len &0x0f) 9 ? (len &0x0f) + 55: (len &0x0f) + 48; /*-*/ /*-編碼短信內(nèi)容 -*/ if(is_GB=0)/如果不是 GB 碼,短信內(nèi)容為 ascii 碼字符串 for (i = 0,j=0; istrlen(SMS_Context);i+) szzh16(SMS_Contextj+,lens); PDU_Code46+i*4 = 0; PDU_Code46+i*4+1 = 0; XVII PDU_Code46+i*4+2 = lens0; PDU_Code46+i*4+3 = lens1; PDU_Code46+i*4 = 0x1a; PDU_Code46+i*4+1 = 0xff; else /短信內(nèi)容為 GB 碼,如果要使手機(jī)能夠顯示,改到 UNICODE 編碼 for (i = 0,j=0; istrlen(SMS_Context);i+) szzh16(int)SMS_Contextj+,lens); PDU_Code46+i*2 = lens0; PDU_Code46+i*2+1 = lens1; PDU_Code46+i*2 = 0x1a; PDU_Code46+i*2+1 = 0xff; /*-*/ if(PDU_HandShake() do PDU_EnablePDU(); if(is_GB=0) PDU_SetLength(Strlen(SMS_Context)*2); else PDU_SetLength(Strlen(SMS_Context); PDU_Send(PDU_Code); for(i=0;i25;i+) XVIII delay(20000); sbufcounter=0; counter=0; time+; /判斷是否發(fā)送成功,如果不成功繼續(xù)發(fā)送,最多 4次,如仍不成功,返回 0 while(strpos(sbuf+strlen(sbuf)-20,G)=-1&time4); if(strpos(sbuf+strlen(sbuf)-20,G)=-1) return 0; else return 1; /成功的話返回 0 else sbufcounter=0; counter=0; return 0; 以上程序成功實現(xiàn)短信的發(fā)送。 單片機(jī)對短信的讀取與解碼 單片機(jī)可以通過 AT 指令對短信貓中的短信進(jìn)行讀取,并對讀入的短信數(shù)據(jù)進(jìn)行分析與解碼。 讀出的短信格式與發(fā)送時的短信編碼大致是相同的 , 下面給出相應(yīng)的程序例程 。 讀取某一條短信,并將其進(jìn)行顯示 : /*- 函數(shù)名: LAD_SMS()(short for Load And Display the Short MessageS) 功能 :用戶函數(shù),讀取第 n 條短信,并在 LCD 的 (x,y)位置顯示出來 -*/ XIX unsigned char LAD_SMS(unsigned char n,unsigned char x,unsigned char y) unsigned char i,len,t; char temp5; char temp13; /IN_Draw_BlankorBlackRect(0,20,30,72,0); szzh10(n,temp1); /將 n 轉(zhuǎn)為相應(yīng)的字符串,如 n=21,則字符串為 21,用以與 AT 指令拼接。 t=85; clear_sbuf(); counter=0; send_s(AT+CMGR=);/AT+CMGR 為讀取短信的 AT 指令 send_s(temp1);/上面所得的字符串 send(0x0d); send(0x0a); for(i=0;i10;i+) delay(10000); /等待讀取完畢 sbufcounter=0; /在收到的數(shù)據(jù)末尾附加 0 temp0=sbuf23; temp1=sbuf24; temp2=sbuf25; temp3=0; if(sbuf25!=0x0d) t+; for(i=0;i短信空 ); delay(50000); return 0; XX len-=20; if(len90) /LCD_PutEng(5,96,MTL); /LCD_PutChn(x,y,短信太長 ); delay(50000); return 0; for(i=0;ilen;i+) temp0=sbuft+2*i; temp1=sbuft+2*i+1; temp2=0; sbufi=_hex_(temp); /收到的短信內(nèi)容是內(nèi)存方式的顯示表示,轉(zhuǎn)為十六進(jìn)制數(shù) sbufi=0; Analysis_Pro();/解碼后的內(nèi)容在 sbuf 中,此函數(shù)對其進(jìn)行顯示輸出 delay(50000); clear_sbuf(); counter=0; return 1; 檢測新短信 : /*- XXI 函數(shù)名: Check_New() 功能 :用戶函數(shù),檢測有無 新的短信,如果有返回 1,否則返回 0 -*/ unsigned char Check_New() int i; send_s(AT+CMGL=0); /AT+CMGL=0為讀取新短信的 AT 指令 send(0x0d); send(0x0a); /發(fā)送回車 delay(10000); /等待接收完畢 if(sbuf12=O) return 0xff; if(sbuf12=+) for(i=18;i23;i+) if(sbufi=,) sbufi=0; return atoi(sbuf+19); /返回新短信的位置 刪除某條短信 : /*- 函數(shù)名: Delete() 功能 :用戶函數(shù),刪除第 n 條短信 -*/ unsigned char Delete(unsigned char n) char t10; char t15; strcpy(t,AT+CMGD=); /AT+CMGD 為刪除短信的 AT 指令 szzh10(n,t1); strcpy(t+8,t1); XXII while(Send_AT_CMD(t)!=1); delay(60000); return 1; 6.2 煙霧傳感器模塊核心代碼: uint AD_Conver(uchar port) uchar i; uint AD= 0; CLOCK = 0; CS= 0; EOC=1; port = 4; for (i = 0; i 12; i+) /注意 :在 12 個時鐘周期的下降沿產(chǎn)生了數(shù)據(jù)輸出 /在前 4 個時鐘周期內(nèi) ,TLC2543 已經(jīng)知道下一次將 if (DOUT)AD |= 0x01; /哪個通道做轉(zhuǎn)換 ,在后 8 個時鐘內(nèi)就一直對此通道 DIN = (bit)(port & 0x80); /進(jìn)行采樣 ,并保持到第 12個時鐘周 期結(jié)束 ,此后才 CLOCK = 1; /開始進(jìn)行 A/D轉(zhuǎn)換 ,轉(zhuǎn)換時間需要10us. _nop_(); _nop_(); _nop_(); /在第 4-8 個時鐘周期內(nèi)輸入的是 XXIII 命令控制字 CLOCK= 0; _nop_(); _nop_(); _nop_(); /可根據(jù)需要輸入 port = 1; AD =1; return AD; #endif 6.3 DS18B20 核心代碼: void delay(uint z) /延時函數(shù) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void dsreset(void) /DS18B20 復(fù)位,初始化函數(shù) uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; XXIV while(i0)i-; bit tempreadbit(void) /讀一位數(shù)據(jù)函數(shù) uint i; bit dat; ds=0;i+; /i+起延時作用 ds=1;i+;i+; dat=ds; i=8;while(i0)i-; return (dat); uchar tempread(void) /讀一個字節(jié)數(shù)據(jù)函數(shù) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在dat 里 return (dat); void tempwritebyte(uchar dat) /向 DS18B20 寫一個字節(jié)數(shù)據(jù)函數(shù) uint i; uchar j; bit testb; for(j=1;j1; if(testb) /寫 1 ds=0; XXV i+;i+; ds=1; i=8;while(i0)i-; else ds=0; /寫 0 i=8;while(i0)i-; ds=1; i+;i+; void tempchange(void) /DS18B20 開始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwritebyte(0xcc); /寫跳過讀 ROM 指令 tempwritebyte(0x44); /寫溫度轉(zhuǎn)換指令 uint get_temp() /讀寄存器中存儲的溫度數(shù)據(jù) uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /讀低 8 位 b=tempread(); /讀高 8 位 temp=b; temp0;i-) dis_temp(get_temp(); /獲取溫度并顯示 deal(temp); /進(jìn)行溫度處理 sprintf(buff,%f,f_temp); /將浮點型溫度格式化為字符型 for (i=10;i0;i-) dis_temp(get_temp(); /溫度顯示 comm(buff); /串口發(fā)送數(shù)據(jù) for(i=10;i0;i-) dis_temp(get_temp(); /溫度顯示 XXVII 6.4 ADC0809 功能核心代碼 void control(uchar num1,uchar num2) uint i; uchar s,j; s=num1; for(i=6;i0;i-) p17=0; p15=s%2; s=s/2; p17=1; j=num2; for(i=8;i0;i-) p17=0; p15=j%2; j=j/2; p17=1; p16=1; p16=0; void init() /產(chǎn)生 500khz 信號 TMOD=0x01; TH0=(65536-1)/256; XXVIII TL0=(65536-1)%256;/取余 EA=1; TR0=1; ET0=1; void main() /uchar temp; uchar a1,a2,a3,adval; init(); start=0; oe=0; /P2=0xff; while(1) start=0; start=1; start=0; /w
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國WLAN無線局域網(wǎng)設(shè)備市場發(fā)展策略與投資競爭戰(zhàn)略研究報告
- 2025-2030年中國互聯(lián)網(wǎng)金融對銀行市場深度調(diào)研及投資規(guī)劃研究報告
- 2025年中國電工級環(huán)氧模塑料市場調(diào)查研究報告
- 襄陽汽車職業(yè)技術(shù)學(xué)院《電腦建模技法》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025-2030年中國IC、卡智能卡行業(yè)投資價值研究報告
- 新疆天山職業(yè)技術(shù)大學(xué)《生物信息學(xué)應(yīng)用實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025-2030年中國LED微型投影機(jī)行業(yè)市場調(diào)查與投資咨詢研究報告
- 新疆應(yīng)用職業(yè)技術(shù)學(xué)院《高等數(shù)學(xué)C(下)》2023-2024學(xué)年第一學(xué)期期末試卷
- 信陽職業(yè)技術(shù)學(xué)院《模式識別與圖像處理》2023-2024學(xué)年第二學(xué)期期末試卷
- GB/Z 42217-2022醫(yī)療器械用于醫(yī)療器械質(zhì)量體系軟件的確認(rèn)
- GB/T 9799-1997金屬覆蓋層鋼鐵上的鋅電鍍層
- 醫(yī)師定期考核口腔題庫
- 尾礦庫基本知識課件
- 學(xué)生自我陳述興趣特長發(fā)展?jié)撃苌囊?guī)劃500字
- 少年中國說五線譜樂譜
- 《酸堿中和反應(yīng)》上課課件(省級優(yōu)質(zhì)課獲獎作品)
- 消防器材每月定期檢查記錄表
- 酒店員工服務(wù)禮儀規(guī)范培訓(xùn)模板
- 量化策略設(shè)計及實戰(zhàn)應(yīng)用PPT通用課件
- 【證券】金融市場基礎(chǔ)知識(完整版講義)
評論
0/150
提交評論