版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課 程 名 稱: 單片機(jī)課程設(shè)計(jì) </p><p> 題 目:基于GSM的智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 專 業(yè) 班 級(jí): </p><
2、;p> 學(xué) 生 姓 名: </p><p> 學(xué) 生 學(xué) 號(hào): </p><p> 日 期: 2011年6月 </p><p> 指 導(dǎo) 教 師:
3、 </p><p> 指導(dǎo)教師簽字: </p><p> 年 月 日</p><p><b> 目 錄</b></p><p> 摘 要 ……………………………………………………………………………………… II</p>
4、<p> Abstract …………………………………………………………………………………... II</p><p> 1 引言…………………….……..………………………………………………………... 1</p><p> 2 系統(tǒng)工作原理及主要功能 ………………………………………..……………..…….1</p><p> 2.1 系統(tǒng)工
5、作原理 …………………………………………..…………………………..…2 </p><p> 3 主要功能模塊…………………………………………………………..………………..3</p><p> 3.1 單片機(jī)控制模塊 ………………………………………..…………………………...…4 </p><p> 3.2 GSM模塊 …………………………………………
6、……..…………………………....…5 </p><p> 3.3 傳感器模塊 ……………………………………………..…………………………...…6 </p><p> 3.2 液晶顯示模塊 …………………………………………..…………………………...…7 </p><p> 4 硬件接口電路設(shè)計(jì)…………………………………………..…….……………..
7、...… 7</p><p> 4.1 單片機(jī)與GSM模塊的連接……………………….………………………………..….…7</p><p> 4.2 電器控制電路……………………………………………..………………………….....7 </p><p> 5系統(tǒng)軟件設(shè)計(jì)…..……………………………………………..…………………………......8</p&
8、gt;<p> 5.1 AT模式選擇及AT指令…………………………………..………………………….….8 </p><p> 5.2 系統(tǒng)軟件的設(shè)計(jì)………………………………………..………………………….…....8 </p><p> 6結(jié)論…..…………………………….…………………………..………………………….…9</p><p>
9、 參考文獻(xiàn) …….………………..………………………………..………………………….….9 </p><p> 附錄1 主要程序代碼 ……...………………………………..………………………….…10 </p><p> 附錄2 TC35模塊電路 ……..………………………………..………………………….…27</p><p><b> 摘 要
10、</b></p><p> 摘要:介紹了一種基于GSM網(wǎng)絡(luò)的智能家居控制系統(tǒng)的工作原理及主要功能。采用 STC單片機(jī)為系統(tǒng)控制核心,對(duì)家庭中可能出現(xiàn)的意外情況用各種傳感器進(jìn)行采集,利用GSM模塊的短信收發(fā)功能,實(shí)現(xiàn)遠(yuǎn)程安防及家電控制。實(shí)踐證明本系統(tǒng)性能可靠,成本低,可廣泛應(yīng)用于現(xiàn)代住宅中。</p><p> 關(guān)鍵詞(小4號(hào) 黑體 頂格):智能家居;GSM模塊;傳感器;遠(yuǎn)程控
11、制</p><p><b> Abstract</b></p><p> Abstract:Describes a network based on GSMof Smart Home Control system works and the major functions.Using the STC microcontroller for system contr
12、ol by the core, with the family situation that may arise unexpectedly collected by various sensors,</p><p> make use of the send and receive SMS function of the GSM module, remote security and appliance con
13、trol. Practice has proved that the systemis reliable, low cost, can be widely used inmodern houses.</p><p> Keywords:smart home; GSMmodule; sensor; remote control</p><p><b> 1 引言</b&g
14、t;</p><p> 隨著經(jīng)濟(jì)的快速增長(zhǎng),快節(jié)奏的生活狀態(tài)使得人們?cè)絹碓阶⒅厣畹馁|(zhì)量和品位。如何建立一個(gè)高效率、低成本的智能家居系統(tǒng)已成為當(dāng)今世界的一個(gè)熱點(diǎn)問題。目前,國(guó)內(nèi)外各種類型的智能家居產(chǎn)品越來越多,其中大部分是基于電話網(wǎng)的安防控制系統(tǒng)。但在我國(guó),家庭電話用戶正逐步減少,且電話線路易被破壞,故此類產(chǎn)品有一定局限性。隨著電信 GSM 網(wǎng)絡(luò)覆蓋范圍的廣闊化、無縫化、以及手機(jī)的日益普及為基于 GSM 網(wǎng)絡(luò)的
15、智能家居系統(tǒng)提供了巨大的應(yīng)用空間[1]。</p><p> 本文所介紹的基于 GSM網(wǎng)絡(luò)的智能家居系統(tǒng)采用 GSM 模塊進(jìn)行短信息收發(fā),以單片機(jī)為控制核心,進(jìn)行信息反饋和遠(yuǎn)程控制,實(shí)現(xiàn)了遠(yuǎn)程報(bào)警、遠(yuǎn)程遙控等功能。</p><p> 2 系統(tǒng)工作原理及主要功能</p><p> 2.1 系統(tǒng)工作原理</p><p> 圖 1 為智能家居
16、系統(tǒng)的工作原理圖[2]。系統(tǒng)在正常工作時(shí)處于低功耗監(jiān)控狀態(tài),一旦發(fā)生警情即各類傳感器檢測(cè)到異常信號(hào)(如盜竊、火警、煤氣等)時(shí),單片機(jī)通過從不同引腳接收到的信號(hào)同預(yù)先存儲(chǔ)在ROM中的信息進(jìn)行對(duì)比,判斷出異常情況的類型,然后將報(bào)警信號(hào)由串口傳送給GSM模塊,最后將報(bào)警短信發(fā)送給用戶,幾秒鐘后,用戶的手機(jī)上就可以接收到報(bào)警短信,提醒用戶采取措施。另外用戶可通過發(fā)送短信,由GSM模塊接收,經(jīng)單片機(jī)解碼后,驅(qū)動(dòng)系統(tǒng)中的電器控制電路去控制相應(yīng)的家電
17、,從而實(shí)現(xiàn)遠(yuǎn)程控制電器工作的目的[3]。</p><p><b> 系統(tǒng)的主要功能:</b></p><p> (1)自動(dòng)報(bào)警功能:當(dāng)用戶住宅出現(xiàn)異常情況時(shí),系統(tǒng)會(huì)自動(dòng)發(fā)送報(bào)警短信給預(yù)先設(shè)定手機(jī)號(hào)碼的用戶,直至用戶回復(fù)為止。</p><p> (2)家電控制功能:接收用戶發(fā)送來的控制命令,實(shí)現(xiàn)短信的譯碼功能,并由單片機(jī)根據(jù)相應(yīng)的譯碼來實(shí)現(xiàn)
18、不同家電工作及停止功能。</p><p> 圖1 系統(tǒng)設(shè)計(jì)原理圖</p><p><b> 3主要功能模塊</b></p><p> 3.1單片機(jī)控制模塊</p><p> 系統(tǒng)的控制器選用 STC89C52RD+單片機(jī),8位STC89C52RD+單片機(jī)是STC公司生產(chǎn)的一款51單片機(jī),具有運(yùn)行穩(wěn)定、價(jià)格便宜等特
19、點(diǎn)。其支持的最高時(shí)鐘為40MHz,內(nèi)部包括8 kB的Flash程序存儲(chǔ)器ROM 、256B的數(shù)據(jù)存儲(chǔ)器RAM,具有 ISP 在線編程功能,大大減少了開發(fā)復(fù)雜度,同時(shí)可節(jié)省購(gòu)買編程器的額外投入。圖2為單片機(jī)控制模塊電路圖。</p><p> 圖2 單片機(jī)控制模塊</p><p><b> 3.2 GSM模塊</b></p><p> 本系統(tǒng)
20、設(shè)計(jì)使用的GSM模塊是 Siemens 公司的TC35I。TC35I是Siemens公司推出的新一代無線通訊模塊,可以快速安全地實(shí)現(xiàn)數(shù)據(jù)、語音的傳輸、短信息服務(wù)(SMS)和傳真等功能,可以工作在GSM 900 kHz和1 800 kHz兩個(gè)頻段,RS232數(shù)據(jù)口符合ETSI 標(biāo)準(zhǔn)GSM0707和GSM0705。通過獨(dú)特的40引腳的ZIF連接器,實(shí)現(xiàn)電源連接、指令、數(shù)據(jù)、語音信號(hào)及控制信號(hào)的雙向傳輸;通過ZIF連接器及50Ω天線連接器,可
21、分別連接SIM卡支架和天線。該模塊向用戶提供標(biāo)準(zhǔn)的AT命令接口,為數(shù)據(jù)、語音、短消息和傳真提供快速、可靠、安全的傳輸,方便用戶的應(yīng)用開發(fā)及設(shè)計(jì)。TC35I模塊主要由 GSM基帶處理器、GSM射頻模塊、供電模塊(ASIC)、閃存、ZIF連接器、天線接口六個(gè)部分組成[4]。TC35I 構(gòu)成框圖如圖 3 所示。</p><p> 圖3 TC35I 構(gòu)成框圖</p><p><b>
22、 3.3 傳感器模塊</b></p><p> 本系統(tǒng)傳感器模塊由一組功能不同的傳感器構(gòu)成,用于各種異常情況監(jiān)測(cè)。</p><p> 防盜竊使用紅外線反射型傳感器,將紅外線反射型傳感器安裝在通道的位置或門窗的兩側(cè),當(dāng)有人進(jìn)入時(shí)紅外線反射型傳感器就會(huì)檢測(cè)出來,檢測(cè)信號(hào)通過轉(zhuǎn)換電路轉(zhuǎn)換成低電平,然后送去給單片機(jī),單片機(jī)對(duì)應(yīng)引腳檢測(cè)到送來低電平后就會(huì)啟動(dòng)防盜報(bào)警系統(tǒng)工作。<
23、;/p><p> 防火使用離子式煙霧傳感(SS-668),通過監(jiān)測(cè)煙霧的濃度來實(shí)現(xiàn)火災(zāi)防范。煙霧報(bào)警器內(nèi)部采用離子式煙霧傳感,當(dāng)一定量煙霧進(jìn)入煙霧傳感器的反應(yīng)腔,引起電路電平變化。離子式煙霧傳感器是一種技術(shù)先進(jìn),工作穩(wěn)定可靠的傳感器,為火災(zāi)預(yù)防和早期發(fā)現(xiàn)提供幫助。</p><p> 燃?xì)鈧鞲衅魇褂媒饘傺趸锇雽?dǎo)體傳感器(或稱MOS)。MOS也可以用來檢測(cè)毒性水平。它由一個(gè)金屬氧化物半導(dǎo)體的
24、傳感器件(如氧化物SnO2)構(gòu)成。在新鮮空氣條件下,它的電導(dǎo)較小,而一旦接觸還原性氣體或者易燃易爆氣體,電導(dǎo)會(huì)增加引發(fā)檢測(cè)電路電平跳變從而啟動(dòng)報(bào)警系統(tǒng)工作。</p><p> 注:由于時(shí)間所限,本系統(tǒng)中,除紅外報(bào)警電路外,煙霧傳感器報(bào)警電路和煤氣傳感器報(bào)警電路均采用按鍵模擬的方法實(shí)現(xiàn)。紅外報(bào)警電路如圖4。</p><p><b> 圖4 紅外報(bào)警電路</b><
25、;/p><p> 3.4 1602液晶顯示模塊</p><p> 1602液晶顯示模塊主要用于顯示當(dāng)前系統(tǒng)的工作狀態(tài)。模塊電路圖如圖5。</p><p> 圖5 1602液晶顯示模塊</p><p> 4 硬件接口電路設(shè)計(jì)</p><p> 本系統(tǒng)硬件接口電路主要由單片機(jī)與GSM模塊的接口電路和電器控制電路構(gòu)成。
26、</p><p> 4.1 單片機(jī)與GSM模塊的硬件連接</p><p> 單片機(jī)與TC35I的連接圖如圖6所示,TC35I的數(shù)據(jù)接口采用串行異步收發(fā),符合ITU-TRS-232接口電路標(biāo)準(zhǔn),工作在CMOS電平(2.65V)。數(shù)據(jù)接口配置為8位數(shù)據(jù)位、1位停止位、無校驗(yàn)位,可以在300—115*103bps的波特率下運(yùn)行。由于數(shù)據(jù)通信電路中TC35I數(shù)據(jù)接口工作在CMOS電平,而STC
27、單片機(jī)工作在TTL電平,工作電壓范圍一般比TC35I寬,故應(yīng)在單片機(jī)和TC35I之間加電平轉(zhuǎn)換電路。本設(shè)計(jì)使用TI公司的MAX232芯片為核心,實(shí)現(xiàn)電平轉(zhuǎn)換及串口通信功能。</p><p> 圖6 單片機(jī)與TC35I的連接圖</p><p> 4.2 電器控制電路</p><p> 圖7為系統(tǒng)的電器控制電路,它是通過單片機(jī)由弱電控制繼電器的開/關(guān),從而實(shí)現(xiàn)控制
28、強(qiáng)電的接通/斷開,P_JDQ3、P_JDQ4處可接不同的電器,控制系統(tǒng)可以根據(jù) GSM模塊收到的不同短信息控制命令,由單片機(jī)做相應(yīng)的譯碼,然后再由單片機(jī)控制不同家電工作或停止運(yùn)行。</p><p><b> 圖7 電器控制電路</b></p><p><b> 5 系統(tǒng)軟件設(shè)計(jì)</b></p><p> 5.1 AT
29、模式選擇及AT指令</p><p> 對(duì)TC35I的操作均采用AT指令,它包含了GSM語音和短信息的控制。根據(jù)AT指令的GSM07.05標(biāo)準(zhǔn),發(fā)送和接收中文或中/英文混合的短信息必須采用PDU模式,Text 模式只支持傳送英文及數(shù)字信息。PDU模式的編解碼過程復(fù)雜,本系統(tǒng)使用Text模式就可以滿足系統(tǒng)功能需求,故選擇Text模式作為系統(tǒng)的通訊模式。</p><p> 模塊的通訊全部采用
30、AT+XXXX完成。發(fā)送短消息的基本命令如下:</p><p> (1)設(shè)置短消息發(fā)送格式(0-PDU,1-文本)</p><p> AT+CMGF=1;</p><p> (2)發(fā)送短消息(短消息內(nèi)容為 test )</p><p> AT+CMGS="13753485896"(目的地址)</p>
31、<p> >test^z ^z 表示 ctrl+z;</p><p> (3)列出所有的短消息 AT+CMGL= “ALL”;</p><p> 4)讀取短信息內(nèi)容(Once more),假設(shè)INDEX 6,AT+CMGR=6。</p><p> 5.2 系統(tǒng)軟件的設(shè)計(jì)</p><p> 系統(tǒng)的軟件設(shè)計(jì)采用C語言編寫
32、,系統(tǒng)安防主程序及中斷程序流程圖如圖5所示。系統(tǒng)首先對(duì)單片機(jī)的串口、中斷和TC35I短信模塊初始化,STC單片機(jī)不斷監(jiān)測(cè)有沒有新短信來,當(dāng)檢測(cè)到有新短信來時(shí),則置相應(yīng)的指示燈亮并讀取短信,根據(jù)短信中的指令打開相應(yīng)的繼電器。同時(shí),當(dāng)外部報(bào)警電路有信號(hào)時(shí),進(jìn)入系統(tǒng)外部中斷,通過中斷處理子程序完成對(duì)相應(yīng)防盜、防火、防煤氣泄漏等事件的短信息發(fā)送。利用STC單片機(jī)通過UART串口向GSM模塊發(fā)送一系列AT指令,就能實(shí)現(xiàn)基于GSM的短信息的收發(fā)、查
33、尋和管理。</p><p> 圖5 系統(tǒng)安防主程序及中斷程序流程圖</p><p><b> 5 結(jié)論</b></p><p> 本設(shè)計(jì)方案借助于GSM網(wǎng)絡(luò)通信技術(shù)和單片機(jī)的控制功能,實(shí)現(xiàn)了安防監(jiān)控和遠(yuǎn)程控制。GSM模塊與控制電路集成在同一線路板上,這樣既節(jié)約了成本,又提高了整個(gè)系統(tǒng)通信的穩(wěn)定性,不僅可用于居民住宅,還可以用于倉(cāng)庫(kù)、廠房與
34、花卉大棚等地方的安防監(jiān)控與電路遠(yuǎn)程控制等,并具有實(shí)現(xiàn)簡(jiǎn)單、成本低、適用范圍廣、安全可靠等優(yōu)點(diǎn),具有廣泛的應(yīng)用前景。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 楊利平﹒基于網(wǎng)絡(luò)技術(shù)的遠(yuǎn)程智能家居系統(tǒng)[J]﹒儀器儀表學(xué)報(bào),2009 ,25 (4):309-311.</p><p> [2] 劉松,趙忠,孫學(xué)磊.基于
35、GSM 的遠(yuǎn)程家庭智能監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(shù),2009,32(1):89-91.</p><p> [3 ] 張俊. SMS 短消息傳輸?shù)倪h(yuǎn)端控制技術(shù)及其實(shí)現(xiàn)[J ] .儀器儀表學(xué)報(bào),2003 ,24 (4) :610-611.</p><p> 附1 主要程序代碼</p><p> 1、MAIN.C 主程序代碼如下:</p>&l
36、t;p> #include<reg52.h></p><p> #include<intrins.h></p><p> #include"DataType.h"</p><p> #include"TC35.h"</p><p> #include"P
37、ublic.h"</p><p> #include"Lcd1602.h" //頭文件不區(qū)分大小寫</p><p> #include"eeprom.h"</p><p> void main(void)</p><p><b> {</b></p>
38、<p> uchar num;</p><p> init_1602(); //1602初始化 并 顯示相關(guān)文字</p><p> write1602_com(0x80);</p><p> for(num=0;num<14;num++)</p><p><b> {<
39、;/b></p><p> write1602_date(Table1602A[num]);</p><p> Delay_ms(5);</p><p><b> }</b></p><p> write1602_com(0x80+0x40);</p><p> for(num=0
40、;num<14;num++)</p><p><b> {</b></p><p> write1602_date(Table1602B[num]);</p><p> Delay_ms(5);</p><p><b> }</b></p><p> Dela
41、y_ms(2);</p><p> LED1=0; //注冊(cè)指示燈 開</p><p> Start_GSM();//開啟TC35</p><p> Delay_ms(46000);//延時(shí)大約20秒 ,等待模塊聯(lián)網(wǎng)/</p><p> UART_init();//串口初始
42、化/</p><p> GSM_INIT();//對(duì)tc35模塊進(jìn)行初始化</p><p> //Write_Password();</p><p> Read_Password();</p><p> LED1=1; //注冊(cè)指示燈 開</p><p><
43、;b> while(1)</b></p><p><b> {</b></p><p> receive_ready(); //此函數(shù)的功能是判斷是否有新短信來,如果來的話就置位 receiveready 為1</p><p> if(receiveready==1)</p><p&g
44、t;<b> { </b></p><p><b> LED2=0;</b></p><p> read_message(); //發(fā)送讀取短信指令</p><p> receiveready=0;</p><p> sendready=1; //</p>
45、<p><b> LED2=1;</b></p><p><b> }</b></p><p> Delay_ms(300);</p><p> message_read(); //判斷短信,準(zhǔn)備是否回復(fù)短信給目標(biāo)號(hào)碼</p><p> if(send==1)&l
46、t;/p><p><b> { </b></p><p> Delay_ms(2000);</p><p> readcommend(); //讀取短信內(nèi)容,做出相應(yīng)操作:開關(guān)繼電器等</p><p> sendmessage(); //發(fā)送回復(fù)短信指令 其中 包含提取對(duì)方手機(jī)號(hào)操作</p>
47、<p> Delay_ms(1000);</p><p> delete_message(); //刪除讀短信指令</p><p><b> flag=0;</b></p><p> for(Rx=0;Rx<RxIn;Rx++) //每一次操作完成后對(duì)接收數(shù)組清零//</p><p&
48、gt;<b> {</b></p><p> SystemBuf[Rx]=0x00; </p><p><b> }</b></p><p><b> Rx=0; </b></p><p><b> send=0;</b></p>
49、;<p><b> }</b></p><p> if(BaoJing==1)</p><p><b> {</b></p><p> sendBaoJing();</p><p> BaoJing=0;</p><p> Delay_ms(6000
50、);</p><p><b> LED4=1;</b></p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p><p> /**************
51、****************************************************************************************************/</p><p> ////////////////////////////////////////////////////////////////////////////////////////////////
52、//////////////////</p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> ///////////////////函數(shù)void receive(void
53、) interrupt 4 using 1;實(shí)現(xiàn)功能:通過串口接收數(shù)據(jù)///////////////////////////////</p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><
54、p> /******************************************************************************************************************/</p><p> void receive(void) interrupt 4 </p><p><b> {</b>
55、</p><p><b> if(RI)</b></p><p><b> {</b></p><p> if(Rx<RxIn)</p><p><b> {</b></p><p> SystemBuf[Rx]=SBUF;</p&
56、gt;<p><b> Rx++;</b></p><p><b> }</b></p><p><b> RI=0;</b></p><p><b> }</b></p><p><b> } </b><
57、;/p><p> /******************************************************************************************************</p><p> ////////////////////////////////////void int0(void) interrupt 0 :實(shí)現(xiàn)功能: 實(shí)現(xiàn)緊
58、急短信報(bào)警</p><p> ********************************************************************************************************/</p><p> void int0(void) interrupt 0 </p><p><b>
59、{</b></p><p> BaoJing=1;</p><p><b> LED4=0;</b></p><p><b> }</b></p><p> /************************************************************
60、**************************</p><p> ////////////////////////////</p><p> ***************************************************************************************/</p><p><b>
61、TC35.C </b></p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> #include"datatype.h"</p><p> #include"public.h"</
62、p><p> #include"tc35.h"</p><p> #include"eeprom.h"</p><p> uchar code AT[]="AT";//握手信號(hào)</p><p> uchar code ATE[]="ATE";
63、//關(guān)回顯</p><p> uchar code AT_CNMI[]="AT+CNMI=2,1";//設(shè)置這組參數(shù)來了新信息直接顯示到串口,不作存儲(chǔ)</p><p> uchar code AT_CSCA[]="AT+CSCA=\"+8613800516500\"";//設(shè)置服務(wù)中心號(hào)碼 徐州移
64、動(dòng) +8613800516500 徐州聯(lián)通 +8613010350500 </p><p> uchar code AT_CMGF[]="AT+CMGF=1";//設(shè)置短信的格式為text格式</p><p> uchar code AT_CMGR[]="AT+CMGR=";//讀取短信指令</p><p
65、> uchar code AT_CMGS[]="AT+CMGS=";//發(fā)送短信指令</p><p> uchar code AT_CMGD[]="AT+CMGD=";//刪除短信指令</p><p> uchar code successfully[]="Operate Successfully!"
66、;;//發(fā)送操作成功信息到目標(biāo)號(hào)碼</p><p> uchar code fail[]="Operate failed,try again!";//發(fā)送操作失敗信息到目標(biāo)號(hào)碼</p><p> uchar code danger[]="Danger!!!"; //發(fā)送警報(bào)信息 提示有人闖入、煤氣泄漏、失
67、火的信息</p><p> uchar code MyTel[]="+8615152810108"; //我的手機(jī)號(hào)碼</p><p> uchar AT_delete[12];</p><p> uchar AT_Read[12];//用來存儲(chǔ)發(fā)送讀取短信指令 </p><
68、p> uchar AT_SendNumber[25]; //用來存儲(chǔ)發(fā)送短信號(hào)碼指令</p><p> uchar numberbuf[3]; //用來保存短信條數(shù) </p><p> uchar idata SystemBuf[RxIn]; //儲(chǔ)存出口接收數(shù)據(jù) </p><p> uchar Comm
69、andBuf[8];//用來儲(chǔ)存指令 </p><p> uchar Rx=0;</p><p> // uchar idata state[17]; //用來存儲(chǔ)IO口狀態(tài) </p><p> //uint temp;//記錄狀態(tài) </p><p> //uchar temp
70、1;//用于記錄P0口狀態(tài)</p><p> //uchar temp2; //用于記錄P2口狀態(tài) </p><p> //bit check=0;//查詢標(biāo)志位 </p><p> bit receiveready=0; //接收短信標(biāo)志位</p><p>
71、; bit sendready=0; //發(fā)送短信準(zhǔn)備標(biāo)志位</p><p> bit send=0; //發(fā)送短信標(biāo)志位</p><p> bit flag=0; //指令標(biāo)志位</p><p> bit BaoJing=0; //報(bào)警標(biāo)志位!<
72、;/p><p> /******************************************************************************************************************/</p><p> /////////////////////////////////////////////////////////////
73、/////////////////////////////////////////////////////</p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> //////
74、////////////////函數(shù)void UART_init;實(shí)現(xiàn)功能:對(duì)串口進(jìn)行初始化////////////////////////////////////////////////</p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////
75、////////////</p><p> /******************************************************************************************************************/</p><p> void UART_init (void)</p><p><
76、b> {</b></p><p> TMOD=0x20; //選擇定時(shí)器1</p><p> PCON=0x00;///波特率不加倍</p><p> SCON=0x50;//串行工作方式1允許串行接收</p><p> TH1=0xFD;//實(shí)驗(yàn)板上晶振位11.0592MHZ,選擇波特率為9600&l
77、t;/p><p> TL1=0xFD;//在相應(yīng)計(jì)數(shù)器上賦值</p><p> EA=1;//總中斷開啟</p><p> EX0=1; //外部中斷0允許位</p><p> IT0=0; //跳變沿觸發(fā)方式,從高-->低的負(fù)跳變有效</p><p> ES=1;//串行中斷
78、開啟</p><p> TR1=1;//開啟定時(shí)器1</p><p><b> }</b></p><p> /***************************************************************************************************************
79、***/</p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> ////////////////////////////////////////////////////////
80、///////////////////////////////////////////////////////////</p><p> //////////////////////函數(shù)void sendchar(uchar ch);實(shí)現(xiàn)功能:發(fā)送一字節(jié)數(shù)據(jù)////////////////////////////////////////////////</p><p> ///////
81、////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> /****************************************************************************************
82、**************************/</p><p> void sendchar(uchar ch)</p><p><b> {</b></p><p><b> SBUF=ch;</b></p><p> while(TI==0);</p><p&
83、gt;<b> TI=0;</b></p><p><b> }</b></p><p> /******************************************************************************************************************/</p>
84、;<p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> /////////////////////////////////////////////////////////////////////
85、//////////////////////////////////////////////</p><p> //////////////////////函數(shù)void sendstring(uchar *p);實(shí)現(xiàn)功能:通過串口發(fā)送字符串/////////////////////////////////////</p><p> ///////////////////////////
86、////////////////////////////////////////////////////////////////////////////////////////</p><p> /************************************************************************************************************
87、******/</p><p> void sendstring(uchar *p)</p><p><b> {</b></p><p><b> while(*p)</b></p><p><b> {</b></p><p> sendc
88、har(*p);</p><p><b> p++;</b></p><p><b> }</b></p><p> sendchar(0x0D);//? 回車</p><p> sendchar(0x0A);//? 換行</p><p><b> }&l
89、t;/b></p><p> /******************************************************************************************************************/</p><p> //////////////////////////////////////////////////
90、////////////////////////////////////////////////////////////////</p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p&
91、gt; //////////////////////函數(shù)void Start_GSM(void);實(shí)現(xiàn)功能:對(duì)TC35進(jìn)行啟動(dòng),開啟TC35///////////////////////////////////</p><p> //功能詳述:單片機(jī)上的IGT管腳是跟TC35的IGT管腳相連;需要啟動(dòng)TC35,必須在 15腳(/IGT)加時(shí)長(zhǎng)至少為100ms的低電平信號(hào),</p><p&g
92、t; ///且該信號(hào)下降沿時(shí)間小于1ms。啟動(dòng)后,15 腳的信號(hào)應(yīng)保持高電平.</p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> ///////////////////
93、////////////////////////////////////////////////////////////////////////////////////////////////</p><p> /****************************************************************************************************
94、**************/</p><p> void Start_GSM(void)</p><p><b> {</b></p><p><b> IGT=0;</b></p><p> Delay_ms(1000);</p><p><b> I
95、GT=1;</b></p><p> Delay_ms(1000);</p><p><b> }</b></p><p> /****************************************************************************************************
96、**************/</p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> /////////////////////////////////////////////
97、/////////////////////////////////////////////////////////////////////////</p><p> ///////////////////函數(shù)void GSM_INIT(void);實(shí)現(xiàn)功能:初始化TC35模塊///////////////////////////////</p><p> ///////////////
98、////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> /************************************************************************************************
99、******************/</p><p> void GSM_INIT(void)</p><p><b> { </b></p><p><b> LOOP:</b></p><p> Delay_ms(1000);</p><p> sendstr
100、ing(AT);</p><p> Delay_ms(1000);</p><p> sendstring(ATE);</p><p> Delay_ms(1000);</p><p> sendstring(AT_CNMI);</p><p> Delay_ms(1000);</p><
101、p> sendstring(AT_CSCA); </p><p> Delay_ms(1000);</p><p> for(Rx=0;Rx<RxIn;Rx++)</p><p><b> {</b></p><p> SystemBuf[Rx]=0x00; </p><p&
102、gt;<b> }</b></p><p><b> Rx=0; </b></p><p> sendstring(AT_CMGF);</p><p> Delay_ms(1000);</p><p> if((SystemBuf[2]=='O')&&(Sy
103、stemBuf[3]=='K')) //判斷是否模塊初始化成功,成功的話模塊會(huì)回復(fù)"OK"給單片機(jī)</p><p> { // beep=1; //如果單片機(jī)沒有收到OK,就繼續(xù)發(fā)送初始化指令/ </p><p> for(Rx=0;Rx<RxIn;Rx++)<
104、/p><p><b> {</b></p><p> SystemBuf[Rx]=0x00; </p><p><b> }</b></p><p><b> Rx=0; </b></p><p><b> }</b>&l
105、t;/p><p><b> else</b></p><p> { //beep=0; </p><p> for(Rx=0;Rx<RxIn;Rx++)</p><p><b> {</b></p><p> SystemBuf[Rx]=
106、0x00; </p><p><b> }</b></p><p><b> Rx=0; </b></p><p> goto LOOP; </p><p><b> }</b></p><p><b> }&
107、lt;/b></p><p> /******************************************************************************************************************/</p><p> /////////////////////////////////////////////////
108、/////////////////////////////////////////////////////////////////</p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p>&l
109、t;p> ///////////////////函數(shù)void receive_ready(void);實(shí)現(xiàn)功能:接收短信準(zhǔn)備///////////////////////////////</p><p> ////////////////////////////////////////////////////////////////////////////////////////////////////
110、///////////////</p><p> /******************************************************************************************************************/ </p><p> void receive_ready(void)</p><p&
111、gt;<b> {</b></p><p><b> uchar i;</b></p><p> if((SystemBuf[5]==0x54)&&SystemBuf[6]==0x49) //如果有新短信(TI)來,模塊會(huì)通過串口向單片機(jī)發(fā)送字符串,</p><p> {
112、 //此函數(shù)的功能是判斷是否有新短信來,如果來的話就置位準(zhǔn)備接受位標(biāo)志為1</p><p> receiveready=1; //如果不是新短信的指令,就舍棄,并將接收數(shù)組清零/</p><p><b> }</b></p><p><b> else</b></p><p&
113、gt;<b> { </b></p><p> for(i=0;i<Rx;i++)</p><p><b> {</b></p><p> SystemBuf[i]=0x00; </p><p><b> }</b></p><p>
114、<b> Rx=0; </b></p><p><b> } </b></p><p><b> }</b></p><p> /**********************************************************************************
115、********************************/</p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> ///////////////////////////
116、///////////////////////////////////////////////////////////////////////////////////////////</p><p> ///////////////////函數(shù) void message_read(void);實(shí)現(xiàn)功能:判斷短信,準(zhǔn)備是否回復(fù)短信給目標(biāo)號(hào)碼//////////////////////////</p>
117、<p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> /*********************************************************************
118、*********************************************/ </p><p> void message_read(void)</p><p><b> {</b></p><p> if((sendready==1)&&(SystemBuf[5]==0x47)&&(Sys
119、temBuf[6]==0x52)) //GR</p><p><b> send=1;</b></p><p><b> }</b></p><p> /*********************************************************************************
120、*********************************/</p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> //////////////////////////
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)智能家居系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---智能家居中控系統(tǒng)
- 基于單片機(jī)的智能家居控制設(shè)計(jì)
- 基于單片機(jī)的智能家居安防系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的智能家居控制設(shè)計(jì) (2)
- 基于單片機(jī)gsm的家居智能防盜控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的智能家居畢業(yè)設(shè)計(jì)
- 基于arduino單片機(jī)的智能家居設(shè)計(jì)
- 基于單片機(jī)的智能家居系統(tǒng)的研究.pdf
- 基于單片機(jī)的智能家居安保系統(tǒng)的設(shè)計(jì)研究.pdf
- 畢業(yè)設(shè)計(jì)-----基于單片機(jī)的智能家居控制系統(tǒng)設(shè)計(jì)
- 文獻(xiàn)綜述--基于單片機(jī)的智能家居控制設(shè)計(jì).doc
- 基于單片機(jī)的智能家居控制設(shè)計(jì)開題報(bào)告.doc
- 基于單片機(jī)的智能家居控制設(shè)計(jì)開題報(bào)告.doc
- 基于單片機(jī)的智能溫控系統(tǒng)課程設(shè)計(jì)
- 基于stm32單片機(jī)的智能家居系統(tǒng)設(shè)計(jì)(論文原稿)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的智能家居控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的智能家居控制系統(tǒng)設(shè)計(jì) 畢業(yè)設(shè)計(jì)(論文)
- 文獻(xiàn)綜述--基于單片機(jī)的智能家居控制設(shè)計(jì).doc
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的智能家居控制系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論