版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TianjinUniversityofTechnologyandEducation畢業(yè)設(shè)計(jì)論文基于GSM網(wǎng)絡(luò)的現(xiàn)代化智能家居監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)ThedesignandimplementationofRemotehouseintelligentmonitoringandcontrolsystembasedonGSMnetwork2010年6月摘要隨著GSN網(wǎng)絡(luò)的迅速普及移動(dòng)通信技術(shù)的飛速發(fā)展,新技術(shù)和新業(yè)務(wù)的開(kāi)發(fā)和應(yīng)用已提到十分重要的位置。將GSM技術(shù)運(yùn)用于實(shí)現(xiàn)家庭智能報(bào)警具有實(shí)際應(yīng)用價(jià)值。該系統(tǒng)以單片機(jī)AT89S52為核心作為控制模塊,由GSM無(wú)線通信模塊、傳感器數(shù)據(jù)信息采集模塊、液晶顯示模塊和報(bào)警模塊組成。通過(guò)傳感器模塊中光電傳感器和溫度傳感器采集相關(guān)信號(hào),經(jīng)A/D轉(zhuǎn)換模塊轉(zhuǎn)換成單片機(jī)可處理的數(shù)字信號(hào),經(jīng)過(guò)語(yǔ)音報(bào)警模塊發(fā)出相關(guān)報(bào)警信號(hào),將該信號(hào)通過(guò)GSM短信模塊,借助GSM移動(dòng)網(wǎng)絡(luò),以中文短消息,直接把報(bào)警地點(diǎn)的情況反映到您的屏幕上。該系統(tǒng)具有安全保密性高,又不需要組建專(zhuān)用網(wǎng)絡(luò)和維護(hù)網(wǎng)絡(luò),網(wǎng)絡(luò)覆蓋面廣,因此與傳統(tǒng)的監(jiān)控系統(tǒng)相比有著其獨(dú)特的優(yōu)勢(shì)。關(guān)鍵詞:智能監(jiān)控;AT89S52單片機(jī);GSM網(wǎng)絡(luò);傳感器;報(bào)警系統(tǒng);
ABSTRACTWiththerapidpopularizationofGSMnetworksandthefastdevelopmentofmobilecommunicationtechnology,newtechnologiesandserviceshavebeensteppeduptoanall-importantposition.GSMtechnologywillbeappliedtoachievepracticalapplicationofintelligentalarmhomevalue.ThesystemisMCUAT89S52thecoreasacontrolmodule,whichisconsistoftheGSMwirelesscommunicationmodule,sensordataacquisitionmodule,LCDmoduleandalarmmodule.Photoelectricsensormodulethroughthesensorandtemperaturesensoracquisition-relatedsignals,throughtheA/Dconvertermoduleintodigitalsignalswhichasinglechipcanhandle,afterissuingtherelevantalarmvoicealarmmodulesignals,thesignalisthroughtheGSMSMSmodule,withGSMmobilenetwork,throughChineseshortmessage,directlytothealarmlocationisreflectedtoyourmobilephonescreen.Thetheoryisverysimpleandhashighsecurity,andthereisnoneedtosetupspecialnetworksandtomaintainthem,moreovertheareaofGSMnetworkscoveringisverywide,sothismethodhasmanyparticularadvantagesoverconventionalmonitoringsystem.KeyWords:Intelligentmonitoring;AT89S52singlechipmicrocomputer;GSMnetworks;Sensor;Alarmsystem
目錄MACROBUTTONInsertCrossReference1 引言 ④P3端口,該口是帶有內(nèi)部上拉電阻的8位雙向I/O端口,P3口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸入。對(duì)端口寫(xiě)“1”時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,此時(shí)可用作輸入口。P3口作輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。在AT89S52中,同樣P3口還用于一些復(fù)用功能,如表1-2所列。在對(duì)Flash編程和程序校驗(yàn)期間,P3口還接收一些控制信號(hào)。表3-1-3-2P3端口引腳與復(fù)用功能表端口引腳復(fù)用功能RXD(串行輸入口)TXD(串行輸出口)(外部中斷0)(外部中斷1)T0(定時(shí)器0的外部輸入)T1(定時(shí)器1的外部輸入)(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)(外部數(shù)據(jù)存儲(chǔ)器讀選通)RST復(fù)位輸入端。在振蕩器運(yùn)行時(shí),在此腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使其單片機(jī)復(fù)位??撮T(mén)狗定時(shí)器(Watchdog)溢出后,該引腳會(huì)保持98個(gè)振蕩周期的高電平。在SFRAUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽這種功能。DISRTO位的默認(rèn)狀態(tài),是復(fù)位高電平輸出功能使能。ALE/地址鎖存允許信號(hào)。在存取外部存儲(chǔ)器時(shí),這個(gè)輸出信號(hào)用于鎖存低字節(jié)地址。在對(duì)Flash存儲(chǔ)器編程時(shí),這條引腳用于輸入編程脈沖PROG。一般情況下,ALE是振蕩器頻率的6分頻信號(hào),可用于外部定時(shí)或時(shí)鐘。但是,在對(duì)外部數(shù)據(jù)存儲(chǔ)器每次存取中,會(huì)跳過(guò)一個(gè)ALE脈沖。在需要時(shí),可以把地址8EH中的SFR寄存器的0位置為“1”,從而屏蔽ALE的工作;而只有在MOVX或MOVC指令執(zhí)行時(shí)ALE才被激活。在單片機(jī)處于外部執(zhí)行方式時(shí),對(duì)ALE屏蔽位置“1”并不起作用。程序存儲(chǔ)器允許信號(hào)。它用于讀外部程序存儲(chǔ)器。當(dāng)AT89S52在執(zhí)行來(lái)自外部存儲(chǔ)器的指令時(shí),每一個(gè)機(jī)器周期PSEN被激活2次。在對(duì)外部數(shù)據(jù)存儲(chǔ)器的每次存取中,PSEN的2次激活會(huì)被跳過(guò)。/Vpp外部存取允許信號(hào)。為了確保單片機(jī)從地址為0000H~FFFFH的外部程序存儲(chǔ)器中讀取代碼,故要把EA接到GND端,即地端。但是,如果鎖定位1被編程,則EA在復(fù)位時(shí)被鎖存。當(dāng)執(zhí)行內(nèi)部程序時(shí),EA應(yīng)接到Vcc。在對(duì)Flash存儲(chǔ)器編程時(shí),這條引腳接收12V編程電壓Vpp。XTAL1振蕩器的反相放大器輸入,內(nèi)部時(shí)鐘工作電路的輸入。XTAL2振蕩器的反相放大器輸出。GSM無(wú)線通信模塊——TC35i目前,國(guó)內(nèi)已經(jīng)開(kāi)始使用的GSM模塊有很多,而且這些模塊的功能、用法差別不大。本設(shè)計(jì)采用的是西門(mén)子TC35系列的TC35i。這種無(wú)線模塊功能上與TC35兼容,設(shè)計(jì)緊湊,大大縮小了用戶(hù)產(chǎn)品的體積。TC35i與GSM2/2兼容、雙頻(GSM900/GSM1800)、RS232數(shù)據(jù)接口,該模塊及射頻電路和基帶與一體,向用戶(hù)提供標(biāo)準(zhǔn)的AT命令接口,為數(shù)據(jù)、語(yǔ)音、短消息和提供快速、可靠、安全的傳輸,方便用戶(hù)的應(yīng)用開(kāi)發(fā)及設(shè)計(jì)。設(shè)計(jì)選用GSM模塊TC35i,給出其和PC機(jī)的通信電路,實(shí)現(xiàn)遠(yuǎn)地?cái)?shù)據(jù)的傳輸。其工作模式如圖1、圖2所示。GSM模塊中電源電路分為充電電池和穩(wěn)壓電源模塊兩部分:充電電池主要為整個(gè)系統(tǒng)提供3.6V工作電壓,同時(shí)產(chǎn)生MAX3238所需要的高電平;三端電源模塊LM7806將外部+12V直流電源轉(zhuǎn)換為+6V,連到ZIF連接器的11、12引腳,在充電模式下,為T(mén)C35i提供+6V、500mA的充電電源。啟動(dòng)電路由開(kāi)漏極三極管和上電復(fù)位電路組成。模塊上電10ms后(電池電壓須大于3V),為使之正常工作,必須在15腳()加時(shí)長(zhǎng)至少為100ms的低電平信號(hào),且該信號(hào)下降沿時(shí)間小于1ms。啟動(dòng)后,15腳的信號(hào)應(yīng)保持高電平。TC35i外圍電路如下圖所示:圖3-2-5TC35i外圍電路AT指令說(shuō)明常用AT指令如下:AT指令功能AT+CMGCSendanSMScommend(發(fā)出一條短信息命令)AT+CMGDDeleteSMSmessage(刪除SIM卡內(nèi)存的信息)AT+CMGFSelectSMSmessageformat(選擇短消息信息格式:0-PDU;1-文本)AT+CMGLListSMSmessagefrompreferredstore(列出SIM卡中的短消息格式PDU/TEXT:0“RECUNREAD”為未讀,1“RECREAD”為已讀,2“STOUNSENT”為待發(fā),3“STOSENT”為已發(fā),4“ALL”為全部AT+CMGRReadSMSmessage(讀短消息)AT+CMGSSendSMSmessage(發(fā)短消息)AT+CMGWWriteSMSmessagetomemory(向SIM內(nèi)存中寫(xiě)入待發(fā)的短消息)AT+CNMINewSMSmessagestorage(顯示新收到的短消息)AT+CPMSPreferredSMSmessagestorage(選擇短消息內(nèi)存)AT+CSCASMSservicecenteraddress(短消息中心地址)AT+CSCBSelectcellbroadcastmessagemessages(選擇蜂窩廣播信息)AT+CSMPSetSMStextmodeparameters(設(shè)置短消息文本模式參數(shù))PDU編碼規(guī)則目前,發(fā)送短消息常用Text和PDU(ProtocolDataUnit,協(xié)議數(shù)據(jù)單元)模式。使用Text模式收發(fā)短信代碼簡(jiǎn)單,實(shí)現(xiàn)起來(lái)十分容易,但最大的缺點(diǎn)是不能收發(fā)中文短信;而PDU模式不僅支持中文短信,也能發(fā)送英文短信。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。7-bit編碼用于發(fā)送普通的ASCII字符,8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,UCS2編碼用于發(fā)送Unicode字符。一般的PDU編碼由ABCDEFGHIJKLM十三項(xiàng)組成。A:短信息中心地址長(zhǎng)度,2位十六進(jìn)制數(shù)(1字節(jié))B:短信息中心號(hào)碼類(lèi)型,2位十六進(jìn)制數(shù)。C:短信息中心號(hào)碼,B+C的長(zhǎng)度將由A中的數(shù)據(jù)決定。D:文件頭字節(jié),2位十六進(jìn)制數(shù)。E:信息類(lèi)型,2位十六進(jìn)制數(shù)。F:被叫號(hào)碼長(zhǎng)度,2位十六進(jìn)制數(shù)。G:被叫號(hào)碼類(lèi)型,2位十六進(jìn)制數(shù),取值同B。H:被叫號(hào)碼,長(zhǎng)度由F中的數(shù)據(jù)決定。I:協(xié)議標(biāo)識(shí),2位十六進(jìn)制數(shù)。J:數(shù)據(jù)編碼方案,2位十六進(jìn)制數(shù)。K:有效期,2位十六進(jìn)制數(shù)。L:用戶(hù)數(shù)據(jù)長(zhǎng)度,2位十六進(jìn)制數(shù)。M:用戶(hù)數(shù)據(jù),其長(zhǎng)度由L中的數(shù)據(jù)決定。J中設(shè)定采用UCS2編碼,這里是中英文的Unicode字符。單片機(jī)與TC35i的軟件接口及控制原理單片機(jī)與TC35i的軟件接口其實(shí)就是單片機(jī)通過(guò)AT指令控制的控制技術(shù),首先設(shè)置TC35i模塊的工作模式:AT+CMGF=n,n=0為PDU模式;n=1為文本模式;通常設(shè)置為PDU模式,在這種模式下,能傳送或接受透明數(shù)據(jù)(用戶(hù)自定義數(shù)據(jù))。AT+CMGR=n為讀TC35i模塊短消息數(shù)據(jù),n為短消息號(hào)。AT+CMGL=n為列出TC35i模塊內(nèi)的短消息,n=0是未讀的短消息,n=1位已讀的短消息,n=2位未發(fā)送的短消息,n=3為已發(fā)送的短消息n=4為所有短消息。AT+CMGD=n為刪除TC35i模塊的短消息,n為短消息編號(hào)。RS-232串行接口RS-232是在任何時(shí)候都常用的接口之一。它不僅已經(jīng)被內(nèi)置于每臺(tái)PC,而且已被內(nèi)置于從微控制器到主機(jī)的多種類(lèi)型的電腦和與它們連接的設(shè)備。RS-232的最通常得用處是連接到一個(gè)Modem,其他擁有RS-232接口的設(shè)備包括打印機(jī),數(shù)據(jù)采集模塊,測(cè)試裝置和控制回路。你也可以將RS-232用在任何類(lèi)型得計(jì)算機(jī)之間的簡(jiǎn)單連接中。RS-232是設(shè)計(jì)來(lái)處理兩臺(tái)設(shè)備之間的通信的,距離限制為50到100f,這決定于波特率和電纜類(lèi)型。因?yàn)镽S-232端口被廣泛應(yīng)用,它的另一個(gè)用途是與一個(gè)將這個(gè)接口轉(zhuǎn)換成另一種類(lèi)型的適配器相連。例如,一個(gè)簡(jiǎn)單的回路將一個(gè)RS-232端口轉(zhuǎn)換成一個(gè)RS-485端口,這個(gè)端口可以和多臺(tái)設(shè)備相連并且可以使用更長(zhǎng)的導(dǎo)線連線。RS-232連接使用非平衡導(dǎo)線。盡管一個(gè)非平衡的狀態(tài)聽(tīng)起來(lái)像是一些應(yīng)該避免的東西,在這里它僅僅是指導(dǎo)線中的信號(hào)的電氣特性。在一條非平衡導(dǎo)線中,信號(hào)電壓加到一條導(dǎo)線上,所有的信號(hào)電壓都使用一個(gè)公共的接地線。這種類(lèi)型的接口的另一個(gè)術(shù)語(yǔ)是單端。特性RS232有幾個(gè)優(yōu)點(diǎn):它是無(wú)處不在的。每一臺(tái)PC機(jī)都有一個(gè)或更多的RS232端口。更新的計(jì)算機(jī)現(xiàn)在支持其他諸如USB這樣的串行接口,但是RS232可以做很多USB無(wú)法做的事情。在微控制器中,接口芯片使得將一個(gè)5V串口轉(zhuǎn)換成RS-232變得很容易。連接距離可以達(dá)到50到100ft。大多數(shù)的外設(shè)接口都不會(huì)用于太長(zhǎng)的距離。USB連接最長(zhǎng)可以達(dá)到16ft,PC機(jī)的并口打印機(jī)接口與主機(jī)的距離可以達(dá)到10到15ft,或者利用IEEE-1284B型驅(qū)動(dòng)器可以達(dá)到30ft。但是RS-232可以使用更長(zhǎng)的電纜。如果每一個(gè)RS-232端口與一個(gè)Modem相連,你可以使用網(wǎng)在世界范圍內(nèi)發(fā)送數(shù)據(jù)。對(duì)于一個(gè)雙向連接,你只需要3條導(dǎo)線。一個(gè)并行連接一般需要8條數(shù)據(jù)線,兩條或者更多的控制信號(hào)線,和幾條接地線。所有的導(dǎo)線和更大的連接器使得價(jià)格累計(jì)起來(lái)就比較高了。RS-232的缺點(diǎn)包括以下這些:如果連接的另一頭需要并行數(shù)據(jù),它不得不將這個(gè)串口數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。但是利用一個(gè)UART,這很容易實(shí)現(xiàn)。串口是如此的有用,以至于尋找一個(gè)未用的串口可能會(huì)比較困難。PC機(jī)可以有多個(gè)串口,但是一個(gè)系統(tǒng)可能無(wú)法為每一個(gè)串口分配一個(gè)唯一的中斷請(qǐng)求信號(hào)。大多數(shù)的微控制器只有一個(gè)硬件串口。其中,RS-232電平轉(zhuǎn)換電路如下所示:圖3-2-4RS-232電平轉(zhuǎn)換電路在一個(gè)連接中不能有超過(guò)2臺(tái)以上的設(shè)備。指定的最大數(shù)據(jù)傳輸速率是每秒20000位。但是,很多接口芯片可以超過(guò)這個(gè)數(shù)值,尤其是在短程連接上。很長(zhǎng)的連接需要一個(gè)不同的接口。雙向RS-232通信的3個(gè)基本信號(hào)如下:TD:將數(shù)據(jù)從DCE傳輸?shù)紻CE也被稱(chēng)作TX和TXD。RD:將數(shù)據(jù)從DCE傳輸?shù)紻TE。也被稱(chēng)作RX和RXD。SG:信號(hào)地。也被稱(chēng)作GND和SGND。電壓RS-232的邏輯電平用正負(fù)電壓表示,而不是只用5VTTL和CMOS邏輯的正電壓信號(hào)表示。在一個(gè)RS-232的數(shù)據(jù)輸出(TD),一個(gè)邏輯0被定義為等于或者高于+5V,而一個(gè)邏輯1被定義為等于-5V或者比低于-5V。換言之,信號(hào)使用負(fù)邏輯,在這種邏輯中,負(fù)的電壓為邏輯1??刂菩盘?hào)使用相同的電壓,但是使用的是正邏輯。一個(gè)正的電壓表示這項(xiàng)功能為開(kāi),而一個(gè)負(fù)的電壓表示這個(gè)功能為關(guān)。RS-232接口芯片反向轉(zhuǎn)換這些信號(hào)。在一個(gè)UART的輸出引腳,一個(gè)邏輯1數(shù)據(jù)位或者一個(gè)關(guān)控制信號(hào)接近于5V,它在RS-232的接口產(chǎn)生一個(gè)負(fù)電壓。一個(gè)邏輯0數(shù)據(jù)位或者一個(gè)開(kāi)控制信號(hào)接近于0V,它在RS-232接口產(chǎn)生一個(gè)正電壓。因?yàn)橐粋€(gè)RS-232接收器可能位于一條長(zhǎng)電線纜的末端,等到信號(hào)到達(dá)接收者的時(shí)候,它的電壓可能已經(jīng)削弱了或者加載了噪聲信號(hào)??紤]到這種情況,在接受方最低要求的電壓要比在驅(qū)動(dòng)器處要低。一個(gè)比+3V高得多的輸入在RD處是一個(gè)邏輯0,或者在一個(gè)控制輸入處是一個(gè)開(kāi)。一個(gè)比-3V要低得多的輸入在RD處為一個(gè)邏輯1,或者在一個(gè)控制輸入處為一個(gè)關(guān)。根據(jù)這個(gè)標(biāo)準(zhǔn),在-3V和+3V之間的一個(gè)輸入的邏輯電平?jīng)]有定義。噪聲容限,或者電壓容限,是輸出電壓和輸入電壓的區(qū)別所在。RS-232的大電壓波動(dòng)導(dǎo)致一個(gè)比5VTTL邏輯寬得多的噪聲容限。例如,即便一個(gè)RS-232驅(qū)動(dòng)器的輸出為最小的+5V,它也會(huì)在接受方削弱或者噪聲峰值大到2V,并且仍舊是一個(gè)有效邏輯0。很多RS-232輸出有更寬的電壓波動(dòng):±9V和12V是很平常的事情。這些都導(dǎo)致更寬的噪聲容限。最大允許的電壓波動(dòng)是15V,盡管接受方必須不受任何損害地處理高達(dá)25V的電壓。使用的另外兩個(gè)與RS-232有關(guān)的術(shù)語(yǔ)是Mark和Space。Space是邏輯0,而Mark是邏輯1。這兩個(gè)術(shù)語(yǔ)是多年以前機(jī)械記錄儀二進(jìn)制數(shù)據(jù)的,他們分別代表物理標(biāo)記和空白。計(jì)時(shí)限制TIA/EIA-232包括最小和最大計(jì)時(shí)規(guī)定。所有的RS-232接口芯片都符合這個(gè)規(guī)定。指定的旋轉(zhuǎn)速度限制了接口的最大比特率。旋轉(zhuǎn)率是當(dāng)輸出切換時(shí)電壓變化的快慢的量度,并且描述了一個(gè)輸出的電壓變化的瞬間速度。一個(gè)RS-232驅(qū)動(dòng)器的旋轉(zhuǎn)速度必須是每毫秒30V或者更少。限制旋轉(zhuǎn)速度的好處是它通過(guò)事實(shí)上消除由于電壓偏轉(zhuǎn)引發(fā)的問(wèn)題來(lái)改進(jìn)信號(hào)質(zhì)量,電壓偏移發(fā)生在傳輸有著快速上升和下降節(jié)拍的信號(hào)的長(zhǎng)距離連線上。但是旋轉(zhuǎn)速度也限制了一個(gè)連接的最大速度。在30V/us的速度下,一個(gè)輸出需要0.3us從+5V切換到-5V。RS-232的規(guī)定的最大波特率為20kbps,這個(gè)速度轉(zhuǎn)換成一個(gè)比特寬度為50us,或者在允許的最快旋轉(zhuǎn)速度下為166倍的切換時(shí)間。事實(shí)上,因?yàn)閁ART在位的中間附近讀取輸入數(shù)據(jù),并且還因?yàn)榇蠖鄶?shù)的時(shí)間參考時(shí)鐘是非常準(zhǔn)確的,你可以安全的使用短到5到10倍的切換時(shí)間的位的寬度??紤]到這些,有的接口芯片允許115kbps或者更高的波特率,即使這違反了這個(gè)標(biāo)準(zhǔn)的建議。除了有一個(gè)最大的切換速度之外,RS-232驅(qū)動(dòng)器還必須符合最低標(biāo)準(zhǔn)以確保信號(hào)不在邏輯狀態(tài)之間的未定義區(qū)域停留。對(duì)于控制信號(hào)和其他40bps和更低的信號(hào),信號(hào)線必須花費(fèi)不超過(guò)1ms的時(shí)間在有效的邏輯1和邏輯0之間的傳送區(qū)域,對(duì)于其他數(shù)據(jù)和時(shí)間信號(hào),這個(gè)限制是4%的位寬,或者在20bps下為2us。信號(hào)的上升和下降次數(shù)也要盡可能的接近相等。在5V邏輯和RS-232之間轉(zhuǎn)換很多微控制器有異步串口,但是它們的輸出和輸入使用5V邏輯而不是使用RS-232電壓。將5V落連接到一個(gè)RS-232端口需要轉(zhuǎn)換到RS-232電平和從RS-232電平轉(zhuǎn)換到5V邏輯。利用5V邏輯,我假定了TTL或者CMOS邏輯芯片使用的邏輯電平,這些芯片是由一個(gè)單一的+5V電源供電,信號(hào)電平以接地電平作為參考。對(duì)于TTL邏輯,一個(gè)邏輯低輸入不高于0.8V。一個(gè)邏輯高輸出必須至少為2.4V,而一個(gè)邏輯高輸入必須至少為2V。利用這些邏輯電平,一個(gè)接口可以有0.4V的噪聲信號(hào)而不至于產(chǎn)生錯(cuò)誤。這些邏輯電平應(yīng)用在初期的,標(biāo)準(zhǔn)的7400系列的TTL邏輯和他的派生系列,包括74LS74F和74ALSTTL。較早的利用NMOS技術(shù)制造的微控制器也使用這些邏輯電平。大多數(shù)的CMOS芯片定義了不同的邏輯電平,并且有更寬的噪聲容限。一個(gè)邏輯低CMOS輸出不高于0.1V,而一個(gè)邏輯低輸入可以高達(dá)20%的電源電壓,或者對(duì)于5V的電源輸入可以達(dá)到1V。一個(gè)邏輯高輸出至少為4.9V,而一個(gè)邏輯高輸入必須至少達(dá)到電源電壓的70%,或者對(duì)于5V電源輸入而言達(dá)到3.5V。使用這樣的邏輯電平的系列包括4000系列,74HC和74AC。有的CMOS芯片有TTL兼容輸出。這使得他們可以直接和CMOS或者TTL邏輯項(xiàng)鏈。遵循這個(gè)慣例的芯片包括74HCT邏輯系列和大多數(shù)的微控制器。傳感器數(shù)據(jù)信息采集模塊傳感器數(shù)據(jù)信息采集模塊主要是采集外部信息:溫度傳感器是用來(lái)感測(cè)外界溫度,若超過(guò)溫度限制,則會(huì)出現(xiàn)“有火災(zāi)”報(bào)警信息;光電傳感器是用來(lái)感測(cè)是否有異物進(jìn)入,若出現(xiàn)感應(yīng),則會(huì)出現(xiàn)“有人闖入”報(bào)警信息。再將這些信息傳輸?shù)紸T89S52單片機(jī)控制模塊,以進(jìn)行后面的報(bào)警操作。圖3-3傳感器采集模塊電路原理圖溫度傳感器1、DS18B20特點(diǎn)(1)單線結(jié)構(gòu),只需一根信號(hào)線和CPU相連。(2)不需要外部元件,直接輸出串行數(shù)據(jù)。(3)可不需要外部電源,直接通過(guò)信號(hào)線供電,電源電壓范圍為3.3V~5V。(4)測(cè)溫精度高,測(cè)溫范圍為:一55℃~+125℃,在-10℃~+85℃(5)測(cè)溫分辨率高,當(dāng)選用12位轉(zhuǎn)換位數(shù)時(shí),溫度分辨率可達(dá)0.0625℃(6)數(shù)字量的轉(zhuǎn)換精度及轉(zhuǎn)換時(shí)間可通過(guò)簡(jiǎn)單的編程來(lái)控制:9位精度的轉(zhuǎn)換時(shí)間為93.75ms:10位精度的轉(zhuǎn)換時(shí)間187.5ms:12位精度的轉(zhuǎn)換時(shí)間750ms。(7)具有非易失性上、下限報(bào)警設(shè)定的功能,用戶(hù)可方便地通過(guò)編程修改上、下限的數(shù)值。(8)可通過(guò)報(bào)警搜索命令識(shí)別哪片DS18B20采集的溫度超越上、下限。2、DS18B20引腳及管腳功能介紹DS18B20的常用封裝有3腳、8腳等幾種形式,如圖1所示。各腳含義如下:DQ:數(shù)字信號(hào)輸入/輸出端。GND:電源地端。VDD:外接供電電源輸入端(在寄生電源接線時(shí)此腳應(yīng)接地)。3、DS18B20內(nèi)部結(jié)構(gòu)簡(jiǎn)要介紹:DS18B20的內(nèi)部結(jié)構(gòu)主要有64位光刻ROM、溫度傳感器、非易失性溫度報(bào)警觸發(fā)器TH和TL、配置寄存器等組成。(1)64位光刻ROM是生產(chǎn)廠家給每一個(gè)出廠的DS18820命名的產(chǎn)品序列號(hào),可以看作為該器件的地址序列號(hào)。其作用是使每一個(gè)出廠的DS18820地址序列號(hào)都各不相同,這樣,就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18820的目的。(2)DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,輸出格式為:16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼。當(dāng)測(cè)溫精度設(shè)置為12位時(shí),分辨率為O.0625℃,即O.0625其中,S為符號(hào)位,S=1,表示溫度為負(fù)值;S=0,表示溫度為正值。例如+125℃的數(shù)字輸出為07D0H,-55(3)DS18B20中的低溫觸發(fā)器TL、高溫觸發(fā)器TH,用于設(shè)置低溫、高溫的報(bào)警數(shù)值。DS18B20完成一個(gè)周期的溫度測(cè)量后,將測(cè)得的溫度值和TL、TH相比較,如果小于TL,或大于TH,則表示溫度越限,將該器件內(nèi)的告警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的告警搜索命令做出響應(yīng)。需要修改上、下限溫度值時(shí),只需使用一個(gè)功能命令即可對(duì)TL、TH寫(xiě)入,十分方便。(4)DS18B20中的高速暫存器是一個(gè)9字節(jié)的存儲(chǔ)器。開(kāi)始兩個(gè)字節(jié)為被測(cè)溫度的數(shù)字量,第3、4、5字節(jié)分別為T(mén)H、TL、配置寄存器的復(fù)制,每一次上電復(fù)位時(shí)被重寫(xiě)。配置寄存器有R0、R1組成,其值決定溫度轉(zhuǎn)換的精度位數(shù)、轉(zhuǎn)換時(shí)間等。第7字節(jié)為測(cè)溫計(jì)數(shù)的剩余值。第8字節(jié)為測(cè)溫時(shí)每度的計(jì)數(shù)值。第9字節(jié)讀出的是前8個(gè)字節(jié)的CRC校驗(yàn)碼,通過(guò)此碼,可判斷通訊是否正確。4、DS18B20的測(cè)溫原理DS18B20的測(cè)溫原理圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨著溫度變化時(shí)其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-555、DS18B20的讀寫(xiě)操作介紹(1)ROM操作命令:=1\*GB3①讀命令(33H):通過(guò)該命令主機(jī)可以讀出DS18B20的ROM中的8位系列產(chǎn)品代碼、48位產(chǎn)品序列號(hào)和8位CRC校驗(yàn)碼。該命令僅限于單個(gè)DS18B20在線的情況。=2\*GB3②選擇定位命令(55H):當(dāng)多片DS18B20在線時(shí),主機(jī)發(fā)出該命令和一個(gè)64位數(shù),DS18B20內(nèi)部ROM與主機(jī)一致者,才響應(yīng)命令。該命令也可用于單個(gè)DS18B20的情況。=3\*GB3③查詢(xún)命令(0F0H):該命令可查詢(xún)總線上DS18B20的數(shù)目及其64位序列號(hào)。=4\*GB3④跳過(guò)ROM序列號(hào)檢測(cè)命令(OCCH):該命令允許主機(jī)跳過(guò)ROM序列號(hào)檢測(cè)而直接對(duì)寄存器操作,該命令僅限于單個(gè)DS18B20在線的情況。=5\*GB3⑤報(bào)警查詢(xún)命令(0ECH):只有報(bào)警標(biāo)志置位后,DS18B20才相應(yīng)該命令。(2)存儲(chǔ)器操作命令:=1\*GB3①寫(xiě)入命令(4EH):該命令可寫(xiě)入寄存器的第2、3、4字節(jié),即高低溫寄存器和配置寄存器。復(fù)位信號(hào)發(fā)出之前,三個(gè)字節(jié)必須寫(xiě)完。=2\*GB3②讀出命令(0BEH):該命令可讀出寄存器中的內(nèi)容,復(fù)位命令可終止讀出。=3\*GB3③開(kāi)始轉(zhuǎn)換命令(44H):該命令使DS18B20立即開(kāi)始溫度轉(zhuǎn)換,當(dāng)溫度轉(zhuǎn)換正在進(jìn)行時(shí),主機(jī)這時(shí)讀總線將收到O;當(dāng)溫度轉(zhuǎn)換結(jié)束時(shí),主機(jī)這時(shí)讀總線將收到1。若用信號(hào)線給DS18820供電,則主機(jī)發(fā)出轉(zhuǎn)換命令后,必須提供至少相應(yīng)于分辨率的溫度轉(zhuǎn)換時(shí)間的上拉電平。=4\*GB3④回調(diào)命令(088H):該命令把EEROM中的內(nèi)容寫(xiě)到寄存器TH、TL及配置寄存器中。DS18b20上電時(shí)能自動(dòng)寫(xiě)入。=5\*GB3⑤復(fù)制命令(48H):該命令把寄存器TH、TL及配置寄存器中的內(nèi)容寫(xiě)到EEROM中。=6\*GB3⑥讀電源標(biāo)志命令(084H):主機(jī)發(fā)出該命令后,DS18B20將進(jìn)行響應(yīng),發(fā)送電源標(biāo)志,信號(hào)線供電發(fā)O,外接電源發(fā)1。(3)DS18B20的復(fù)位及讀寫(xiě)時(shí)序:=1\*GB3①?gòu)?fù)位:對(duì)DS18B20操作之前,首先要將它復(fù)位。復(fù)位時(shí)序?yàn)椋?a)主機(jī)將信號(hào)線置為低電平,時(shí)間為480~960μS。(b)主機(jī)將信號(hào)線置為高電平,時(shí)間為15~60μS。(c)DS18B20發(fā)出60~240μS的低電平作為應(yīng)答信號(hào)。主機(jī)收到此信號(hào)后,才能對(duì)DS18B20作其它操作。=2\*GB3②寫(xiě)操作:主機(jī)將信號(hào)線從高電平拉至低電平,產(chǎn)生寫(xiě)起始信號(hào)。從信號(hào)線的下降沿開(kāi)始,在15~60μS的時(shí)間內(nèi)DS18B20對(duì)信號(hào)線檢測(cè),如信號(hào)線為高電平,則寫(xiě)1,如信號(hào)線為O,則寫(xiě)0,從而完成了一個(gè)寫(xiě)周期。在開(kāi)始另一個(gè)寫(xiě)周期前,必須有1μS以上的高電平恢復(fù)期。=3\*GB3③讀操作:主機(jī)將信號(hào)線從高電平拉低至低電平1μS以上,再使數(shù)據(jù)線升為高電平,產(chǎn)生讀起始信號(hào)。從主機(jī)將信號(hào)線從高電平拉低至低電平起15~60μS的時(shí)間內(nèi),DS18B20將數(shù)據(jù)放到信號(hào)線上,供主機(jī)讀取。從而完成了一個(gè)讀周期。在開(kāi)始另一個(gè)讀周期前,必須有1μS以上的高電平恢復(fù)期。6、DS18B20與單片機(jī)的典型接口設(shè)計(jì)以MCS51單片機(jī)為例,圖3-3-6中采用寄生電源供電方式,P1-1口接單線總線為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管和89S51的P1-0來(lái)完成對(duì)總線的上拉。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)3個(gè)步驟:初始化、ROM操作指令、存儲(chǔ)器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,分別編寫(xiě)3個(gè)子程序:INIT為初始化子程序,WRITE為寫(xiě)(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫(xiě)均由最低位開(kāi)始,實(shí)際在實(shí)驗(yàn)中不用這種方式,只要在數(shù)據(jù)線上加一個(gè)上拉電阻4.7kΩ,另外2個(gè)腳分別接電源和地。圖3-3-6DS18B20與處理器連接圖光電傳感器光電傳感器是一種小型電子設(shè)備,它可以檢測(cè)出其接收到的光強(qiáng)的變化。早期的用來(lái)檢測(cè)物體有無(wú)的光電傳感器.光電傳感器是一種小的金屬圓柱形設(shè)備,發(fā)射器帶一個(gè)校準(zhǔn)鏡頭,將光聚焦射向接收器,接收器出電纜將這套裝置接到一個(gè)真空管放大器上。在金屬圓筒內(nèi)有一個(gè)小的白熾燈作為光源。這些小而堅(jiān)固的白熾燈傳感器就是今天光電傳感器'>光電傳感器的雛形。圖3-3-2光電傳感器的介紹工作原理=1\*GB2⑴光電傳感器是通過(guò)把光強(qiáng)度的變化轉(zhuǎn)換成電信號(hào)的變化來(lái)實(shí)現(xiàn)控制的。光電傳感器在一般情況下,有三部分構(gòu)成,它們分為:發(fā)送器、接收器和檢測(cè)電路。=2\*GB2⑵發(fā)送器對(duì)準(zhǔn)目標(biāo)發(fā)射光束,發(fā)射的光束一般來(lái)源于半導(dǎo)體光源,發(fā)光二極管(LED)、激光二極管及紅外發(fā)射二極管。光束不間斷地發(fā)射,或者改變脈沖寬度。=3\*GB2⑶接收器有光電二極管、光電三極管、光電池組成。在接收器的前面,裝有光學(xué)元件如透鏡和光圈等。在其后面是檢測(cè)電路,它能濾出有效信號(hào)和應(yīng)用該信號(hào)。此外,光電開(kāi)關(guān)的結(jié)構(gòu)元件中還有發(fā)射板和光導(dǎo)纖維。=4\*GB2⑷三角反射板是結(jié)構(gòu)牢固的發(fā)射裝置。它由很小的三角錐體反射材料組成,能夠使光束準(zhǔn)確地從反射板中返回,具有實(shí)用意義。它可以在與光軸0到25的范圍改變發(fā)射角,使光束幾乎是從一根發(fā)射線,經(jīng)過(guò)反射后,還是從這根反射線返回。分類(lèi)和工作方式⑴槽型光電傳感器把一個(gè)光發(fā)射器和一個(gè)接收器面對(duì)面地裝在一個(gè)槽的兩側(cè)的是槽形光電。發(fā)光器能發(fā)出紅外光或可見(jiàn)光,在無(wú)阻情況下光接收器能收到光。但當(dāng)被檢測(cè)物體從槽中通過(guò)時(shí),光被遮擋,光電開(kāi)關(guān)便動(dòng)作。輸出一個(gè)開(kāi)關(guān)控制信號(hào),切斷或接通負(fù)載電流,從而完成一次控制動(dòng)作。槽形開(kāi)關(guān)的檢測(cè)距離因?yàn)槭苷w結(jié)構(gòu)的限制一般只有幾厘米。⑵對(duì)射型光電傳感器若把發(fā)光器和收光器分離開(kāi),就可使檢測(cè)距離加大。由一個(gè)發(fā)光器和一個(gè)收光器組成的光電開(kāi)關(guān)就稱(chēng)為對(duì)射分離式光電開(kāi)關(guān),簡(jiǎn)稱(chēng)對(duì)射式光電開(kāi)關(guān)。它的檢測(cè)距離可達(dá)幾米乃至幾十米。使用時(shí)把發(fā)光器和收光器分別裝在檢測(cè)物通過(guò)路徑的兩側(cè),檢測(cè)物通過(guò)時(shí)阻擋光路,收光器就輸出一個(gè)開(kāi)關(guān)控制信號(hào)。⑶反光板型光電開(kāi)關(guān)把發(fā)光器和收光器裝入同一個(gè)裝置內(nèi),在它的前方裝一塊反光板,利用反射原理完成光電控制作用的稱(chēng)為反光板反射式(或反射鏡反射式)光電開(kāi)關(guān)。正常情況下,發(fā)光器發(fā)出的光被反光板反射回來(lái)被收光器收到;一旦光路被檢測(cè)物擋住,收光器檢測(cè)不到光時(shí),光電開(kāi)關(guān)就動(dòng)作,輸出一個(gè)開(kāi)關(guān)控制信號(hào)。⑷擴(kuò)散反射型光電開(kāi)關(guān)它的檢測(cè)頭里也裝有一個(gè)發(fā)光器和一個(gè)收光器,但前方?jīng)]有反光板。正常情況下發(fā)光器發(fā)出的光收光器是找不到的。當(dāng)檢測(cè)物通過(guò)時(shí)擋住了光,并把光部分反射回來(lái),收光器就收到光信號(hào),輸出一個(gè)開(kāi)關(guān)信號(hào)。電氣連接圖圖3-3-3光電傳感器電氣連接圖液晶顯示模塊方案1——采用LED液晶顯示屏采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見(jiàn),但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用LED液晶顯示屏.方案2——采用點(diǎn)陣式數(shù)碼管顯示采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種顯示.3.4.3方案3——采用1602液晶顯示器LCD1602液晶模塊主要實(shí)現(xiàn)時(shí)間顯示,最大程度上的方便大家,使得該系統(tǒng)更加人性化。采用1602液晶顯示器,微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),且在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。故采用1062液晶顯示器。它與單片機(jī)的電路連接圖如下:圖3-4-3單片機(jī)與液晶電路連接圖根據(jù)顯示的容量可以分為1行16個(gè)字、2行16個(gè)字、2行20個(gè)字等字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。1、主要功能:A、40通道點(diǎn)陣LCD驅(qū)動(dòng);B、可選擇當(dāng)作行驅(qū)動(dòng)或列驅(qū)動(dòng);C、輸入/輸出信號(hào):輸出,能產(chǎn)生20×2個(gè)LCD驅(qū)動(dòng)波形;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號(hào),偏壓(V1∽V6);D、通過(guò)單片機(jī)控制將所測(cè)的頻率信號(hào)讀數(shù)顯示出來(lái)。2、初始化方法用戶(hù)所編的顯示程序,開(kāi)始必須進(jìn)行初始化,否則模塊無(wú)法正常顯示,下面介紹兩種初始化方法;(1)利用內(nèi)部復(fù)位電路進(jìn)行初始化:下面指令是在初始化過(guò)程中執(zhí)行的。清屏(DISPLAYCLEAR);功能設(shè)置(FUNCTIONSET);DL=1:8Bit接口數(shù)據(jù);N=0:1行顯示;F=0:5×7dot字形;顯示開(kāi)/關(guān)控制(DISPLAYON/OFFCONTROL)D=0:顯示關(guān);C=0:光標(biāo)關(guān);B=0:消隱關(guān)表輸入方式設(shè)置(ENTRYMODESET)I/D=1:(增量):S=0:無(wú)移位:(2)軟件復(fù)位如果電路電源不能滿(mǎn)足復(fù)位電路的要求的話,那么初始化就要用軟件來(lái)實(shí)現(xiàn)。清顯示0000000001光標(biāo)返回000000001*置輸入模式00000001I/DS顯示開(kāi)/關(guān)控制0000001DCB光標(biāo)或字符移位000001S/CR/L**置功能00001DLNF**置字符發(fā)生存儲(chǔ)地址0001字符發(fā)生儲(chǔ)存器地址(AGG)置字符存儲(chǔ)器地址001顯示數(shù)據(jù)存儲(chǔ)器地址(ADD)讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址(AC)寫(xiě)數(shù)到CGRAM或DDRAM10要寫(xiě)的數(shù)從CGRA或DDRAM讀數(shù)11讀出的數(shù)據(jù)其中,1602液晶模塊內(nèi)部的控制器的11條控制指令如下表所示。表3-4-31602液晶模塊內(nèi)部的控制器的11條控制指令報(bào)警模塊蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車(chē)電子設(shè)備、機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。簡(jiǎn)單易懂,還易用音樂(lè)作為其報(bào)警聲音,所以我選擇用蜂鳴器作為本次設(shè)計(jì)的報(bào)警系統(tǒng)。圖3-5-1報(bào)警電路原理圖蜂鳴器的介紹1.蜂鳴器的分類(lèi)蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類(lèi)型。2.蜂鳴器的電路圖形符號(hào)蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。蜂鳴器方案選擇方案一:壓電式蜂鳴器=1\*GB2⑴壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。=2\*GB2⑵多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。方案二:電磁式蜂鳴器=1\*GB2⑴電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。=2\*GB2⑵接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性的振動(dòng)發(fā)聲。經(jīng)過(guò)論證,方案二更易于實(shí)現(xiàn),且原理易于掌握,所以用電磁式蜂鳴器作為報(bào)警系統(tǒng),其驅(qū)動(dòng)原理是:電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)生的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)I0引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路,最終選擇通過(guò)三極管C8550來(lái)放大驅(qū)動(dòng)蜂鳴器。將蜂鳴器正極接到VCC電源上,負(fù)極接到三極管的發(fā)射極E,三極管的基極B經(jīng)過(guò)限流電阻10K后由單片機(jī)的P引腳控制,當(dāng)P輸出高電平時(shí),三極管截止,沒(méi)有電流流過(guò)線圈,蜂鳴器不發(fā)聲;當(dāng)P輸出低電平時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。程序中改變單片機(jī)引腳P輸出波形的頻率,就可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色音調(diào)的聲音;另外改變P輸出高低電平的占空比,則可以控制蜂鳴器的聲音大小。系統(tǒng)程序的設(shè)計(jì)該系統(tǒng)的軟件設(shè)計(jì)采用C語(yǔ)言實(shí)現(xiàn)。分主程序與子程序,子程序中又主要包括傳感器采集信息程序、單片機(jī)最系統(tǒng)控制程序、液晶顯示程序、報(bào)警程序、GSM短消息程序等幾個(gè)子程序模塊。主程序流程圖單片機(jī)與GSM模塊的通信程序按歐洲GSM的AT命令協(xié)議要求編寫(xiě)程序,AT指令使用方法參見(jiàn)前文,其程序流程如圖4-1。開(kāi)始開(kāi)始AT89S52初始化SIM卡在否TC35i初始化是否收到短信命令處理短信并刪除等待TC35i啟動(dòng)完畢傳感器采樣采樣值正常與否調(diào)用液晶顯示子程序判斷故障類(lèi)型調(diào)用蜂鳴器報(bào)警子程序調(diào)用短信報(bào)警子程序YYYNNN圖4-1主程序流程圖中斷子程序流程圖溫度傳感器子程序DS18B20的操作中,延時(shí)分兩種:短時(shí)間延時(shí)和較長(zhǎng)時(shí)間延時(shí)。片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,分別編寫(xiě)3個(gè)子程序:INIT為初始化子程序,WRITE為寫(xiě)(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫(xiě)均由最低位開(kāi)始。開(kāi)始開(kāi)始初始化DS18B20存在ROM操作命令存儲(chǔ)操作命令YN讀取溫度值返回圖4-2-1液晶顯示子程序根據(jù)系統(tǒng)需要設(shè)計(jì)相應(yīng)的1602顯示程序,在Proteus中可以先仿真成功后在燒制到單片機(jī)AT89S52中。漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占32B,分左右兩半,各占16B,送上要顯示的漢字根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),直到32B顯示完就可以LCD上得到一個(gè)完整漢字。圖圖4-2-2液晶顯示程序流程圖開(kāi)始在第一行顯示超出行尾設(shè)置顯示位置為第二行第一列在第二行顯示結(jié)束顯示字符到行尾或到字符串結(jié)束字符串顯示完畢顯示字符到行尾或到字符串結(jié)束YYYYNNN系統(tǒng)調(diào)試根據(jù)方案設(shè)計(jì)要求,調(diào)試過(guò)程共分三大部分,硬件調(diào)試,軟件調(diào)試,軟件和硬件聯(lián)調(diào)(即系統(tǒng)調(diào)試)。電路按模塊逐個(gè)調(diào)試,各模塊調(diào)試通過(guò)后再聯(lián)調(diào)。程序先在最小系統(tǒng)板調(diào)試,通過(guò)后再軟硬聯(lián)調(diào)。硬件測(cè)試靜態(tài)調(diào)試線路的檢查:通過(guò)目測(cè)和使用萬(wàn)用表,檢查線路連接的正確性,有無(wú)斷路或短路,有無(wú)虛焊的存在等。檢查各主要元器件是否因?yàn)楹附佣鴵p壞,比如數(shù)碼管等。核對(duì)元件:檢察元件是否安裝正確,有無(wú)損壞等。檢查電源系統(tǒng):在加入集成電路之前,應(yīng)檢查加入電源的品質(zhì),包括電源的電壓以及負(fù)載能力等。只有當(dāng)電源滿(mǎn)足要求后,才能加上所有的元器件進(jìn)行上電調(diào)試。聯(lián)機(jī)調(diào)試雖然經(jīng)過(guò)了靜態(tài)測(cè)試,但仍有不少的硬件故障要在軟硬件聯(lián)機(jī)調(diào)試中才能發(fā)現(xiàn)。所以聯(lián)機(jī)調(diào)試很有必要,具體操作如下:測(cè)試晶振電路和復(fù)位電路:這是單片機(jī)應(yīng)用系統(tǒng)工作的最基本的條件,可用示波器或邏輯筆進(jìn)行檢查。測(cè)試存儲(chǔ)器:將數(shù)據(jù)寫(xiě)入存儲(chǔ)單元并讀回比較,寫(xiě)入與讀出的數(shù)據(jù)如果是一致的則表示存儲(chǔ)單元能正常工作,否則有短路,斷路或器件損壞的情況。測(cè)試I/O口和I/O設(shè)備:編寫(xiě)簡(jiǎn)單的測(cè)試程序,單獨(dú)支持某一I/O口和與之相連的I/O設(shè)備,如果能自如的支配或控制,則表明I/O通道的工作正常。將GSM模塊接上電源后,插上SIM卡,看電源燈是否閃爍,用USB串口線與電腦連接,利用串口工具測(cè)試GSM模塊是否能成功發(fā)送短信。測(cè)試成功后用串口線與單片機(jī)連接進(jìn)行整個(gè)系統(tǒng)調(diào)試。通過(guò)以上的檢測(cè),如果各個(gè)測(cè)試環(huán)節(jié),如果最終各環(huán)節(jié)都正常,那么硬件測(cè)試應(yīng)該沒(méi)問(wèn)題了。軟件測(cè)試程序模塊編寫(xiě)完成后,首先通過(guò)匯編和編譯。有些開(kāi)發(fā)軟件的功能比較強(qiáng),能夠模仿單片機(jī)的運(yùn)行模式,直接在pc機(jī)上就可以調(diào)試編寫(xiě)的軟件。對(duì)于大多數(shù)情況,還是需要把程序裝入單片機(jī)系統(tǒng)中進(jìn)行聯(lián)機(jī)調(diào)試。直到每一個(gè)程序模塊調(diào)試成功。本設(shè)計(jì)中用C51編程軟件KeiluVision3進(jìn)行編寫(xiě)AT89S52單片機(jī)的源程序(匯編語(yǔ)言和C語(yǔ)言),對(duì)其中的部分電路進(jìn)行仿真,Keil編譯器把匯編語(yǔ)言編寫(xiě)的源程序與Keil內(nèi)涵的庫(kù)函數(shù)裝配在一起,然后分別有C51編譯器編譯生成目標(biāo)文件(.obj)最后產(chǎn)生.hex程序代碼,利用C51下載軟件ISP將程序代碼下載到目標(biāo)單片機(jī)AT89S52的Flash中。系統(tǒng)調(diào)試焊接完所有模塊后,就要對(duì)系統(tǒng)的靜態(tài)測(cè)試,就是對(duì)組成系統(tǒng)的各個(gè)模塊分別進(jìn)行功能測(cè)試,使其實(shí)現(xiàn)預(yù)定功能。在對(duì)各個(gè)模塊調(diào)試完畢之后,再對(duì)整個(gè)系統(tǒng)進(jìn)行整機(jī)聯(lián)調(diào)。連接好電源,注意正負(fù)極性,連接好所有的I/O口,編寫(xiě)簡(jiǎn)單的測(cè)試程序,單獨(dú)支持某一I/O口和與之相連的I/O設(shè)備,如果能自如的支配或控制,則表明I/O通道的工作正常。通過(guò)以上的檢測(cè),如果各個(gè)測(cè)試環(huán)節(jié),如果最終各環(huán)節(jié)都正常,那么硬件測(cè)試應(yīng)該沒(méi)問(wèn)題了。程序模塊編寫(xiě)完成后,首先通過(guò)匯編和編譯。有些開(kāi)發(fā)軟件的功能比較強(qiáng),能夠模仿單片機(jī)的運(yùn)行模式,直接在pc機(jī)上就可以調(diào)試編寫(xiě)的軟件。對(duì)于大多數(shù)情況,還是需要把程序裝入單片機(jī)系統(tǒng)中進(jìn)行聯(lián)機(jī)調(diào)試。直到每一個(gè)程序模塊調(diào)試成功。當(dāng)硬件調(diào)試和軟件模塊調(diào)試之后,就可以進(jìn)行系統(tǒng)調(diào)試。在系統(tǒng)調(diào)試時(shí),應(yīng)將全部硬件電路都接上,應(yīng)用程序模塊也都組合好,進(jìn)行全系統(tǒng)軟硬件調(diào)試。系統(tǒng)調(diào)試的任務(wù)是排除軟硬件中的殘留錯(cuò)誤。使整個(gè)系統(tǒng)能夠完成預(yù)定的工作任務(wù),達(dá)到要求的技術(shù)性能指標(biāo)。測(cè)試結(jié)果基于GSM網(wǎng)絡(luò)的家庭報(bào)警系統(tǒng),通過(guò)利用GSM的SMS傳輸數(shù)據(jù)。經(jīng)過(guò)我多次模擬試驗(yàn),證明上述系統(tǒng)設(shè)計(jì)性能良好,沒(méi)有出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象。證明上述設(shè)計(jì)是正確的。但在調(diào)試和試用階段也遇到了如下問(wèn)題:(1)接口電平的電纜接口電平一般是3V左右,單片機(jī)系統(tǒng)的工作電壓一般為2.7~5.5V,范圍較寬,為保證數(shù)據(jù)傳輸?shù)恼_,需在接口加RS-232電平轉(zhuǎn)換電路。(2)部分地區(qū)無(wú)法使用一些城市的SMS平臺(tái)不允許使用缺省短消息服務(wù)中心號(hào)碼的協(xié)議,只需在發(fā)送的PDU數(shù)據(jù)前面幾個(gè)字節(jié)加上中心號(hào)碼即可,詳見(jiàn)本文發(fā)送實(shí)例。(3)不能接收已正確發(fā)送的短消息除GSM的SMS信道擁塞原因外,主要是PDU中PID字節(jié)的設(shè)置,使得收到的信息要存入SIM卡,而SIM卡已滿(mǎn),故不再接收信息。改變PID的設(shè)置即可。(4)收不到開(kāi)機(jī)前的短消息主要是發(fā)送數(shù)據(jù)時(shí),對(duì)短消息有效時(shí)間VP值設(shè)置不當(dāng)造成的??傊?,通過(guò)硬件仿真的交叉調(diào)試平臺(tái)并借助硬件測(cè)試工具ProteusISIS和Keilvsion3完成了對(duì)部分硬件電路的測(cè)試,為實(shí)現(xiàn)整個(gè)監(jiān)控模塊的功能奠定了基礎(chǔ)。通過(guò)對(duì)GSM模塊中短信實(shí)現(xiàn)協(xié)議的理解,使用相應(yīng)的AT指令完成了短信的發(fā)送,并確定了短信收發(fā)雙方所遵從的協(xié)議規(guī)定。整個(gè)設(shè)計(jì)基本有效完成。結(jié)論本設(shè)計(jì)借助最可靠、最成熟的GSM移動(dòng)網(wǎng)絡(luò),以最直觀的中文短信息形式,直接把報(bào)警信息反映到您的上。當(dāng)家中出現(xiàn)緊急信息時(shí),安裝在相應(yīng)部位的傳感器馬上就能檢測(cè)到,并且會(huì)立即把信號(hào)傳送到控制中心,經(jīng)過(guò)一系列信號(hào)轉(zhuǎn)化后,轉(zhuǎn)換后的信號(hào)通過(guò)GSM網(wǎng)絡(luò)傳送到你的上,即是先把信息送到SMS服務(wù)平臺(tái),而后通過(guò)基站傳送出去。整個(gè)傳送過(guò)程只需幾秒種的時(shí)間,能夠準(zhǔn)確地通知家中被檢測(cè)的那一部分出了問(wèn)題,以便于主人能夠及時(shí)的采取補(bǔ)救措施。首先,硬件部分我們從五個(gè)模塊著手,首先是通過(guò)傳感器模塊采集到家中的緊急信息,將信息傳到微處理器上,由核心控制模塊AT89S52單片機(jī),轉(zhuǎn)而控制報(bào)警模塊、液晶顯示模塊,這樣,同時(shí)發(fā)出報(bào)警聲音和顯示報(bào)警具體信息,再通過(guò)GSM模塊以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控功能,將報(bào)警信息發(fā)送到事主上,保證事主能夠及時(shí)根據(jù)報(bào)警信息進(jìn)行搶救。其次,軟件部分在對(duì)芯片的管腳功能和用法以及整個(gè)GSM網(wǎng)絡(luò)有充分的了解后,根據(jù)設(shè)計(jì)要求設(shè)計(jì)硬件電路,包括傳感器采集信息電路、單片機(jī)控制電路、GSM模塊連接電路,再編寫(xiě)所需要的程序,然后通過(guò)軟件編程,實(shí)現(xiàn)了對(duì)家庭系統(tǒng)的遠(yuǎn)程監(jiān)控和報(bào)警功能,這樣,基本實(shí)現(xiàn)了預(yù)期的目標(biāo)??偟膩?lái)說(shuō),系統(tǒng)設(shè)計(jì)結(jié)構(gòu)清晰,資源利用合理,不失為一款高性?xún)r(jià)比的方案。
參考文獻(xiàn)[1]張?。甋MS短消息傳輸?shù)倪h(yuǎn)端控制技術(shù)及其實(shí)現(xiàn)I-j-]儀器儀表學(xué)報(bào),2003,[2]胡漢才.單片機(jī)原理及其接口技術(shù).清華大學(xué)出版社,1996[3]吳興惠.傳感器與信號(hào)處理.電子工業(yè)出版社,1998[4]何希才.傳感器及其應(yīng)用電路.電子工業(yè)出版社,2001[5]魯昌華.基于GSM無(wú)線防盜報(bào)警系統(tǒng)的研制[J].電子測(cè)量與儀器學(xué)報(bào),2006[6]趙繼文.傳感器與應(yīng)用電路設(shè)計(jì).科學(xué)出版社,2002[7]房小翠.單片微型計(jì)算機(jī)與機(jī)電接口技術(shù).國(guó)防工業(yè)出版社,2003[8]劉迎春,葉湘濱.《傳感器原理》.國(guó)防科技大學(xué)出版社,2005.[9]梁廷貴.現(xiàn)代集成電路實(shí)用手冊(cè).科學(xué)技術(shù)文獻(xiàn)出版社,2002[10]李建忠.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版,2002[11]秦大興.基于GPRS模塊MC35i的監(jiān)測(cè)系統(tǒng)設(shè)計(jì)EJ].儀表技術(shù)與傳感器,2007[12]沈旭日.電子系統(tǒng)設(shè)計(jì)實(shí)踐.華中科技大學(xué)出版社,2004[13]吳金戌.,2001[14]李良隙.如何使用AT命令來(lái)控制Modem工作[J].電腦新時(shí)代,2002[15]唐桃波,陳玉林.基于AT89C52的智能無(wú)線安防報(bào)警器.電子設(shè)計(jì)應(yīng)用,2003[16]楊治潔.單片機(jī)原理與應(yīng)用.中國(guó)人民大學(xué)出版社,2009[17](美)拉帕波特《無(wú)線通信原理與應(yīng)用》北京航空航天大學(xué)出版社,2002[18]李廣弟,朱月秀.冷祖.單片機(jī)基礎(chǔ)第3版.北京航空航天大學(xué)出版,2007[19]]王福瑞等.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全.北京航空航天大學(xué)出版社,1998[20]李肇慶,韓濤.《串口技術(shù)》.國(guó)防工業(yè)出版社,2005附錄一:電路原理圖附錄二:控制源程序#include"GSMgn.h"#include"GSMhead.h"/***********主程序***************/voidmain(void){ system_server=SYS_SMSR; LED_tc=0;LED_1=1;LED_2=1;LED_3=1;LED_4=1; Sys_Init(); Initialize_Model();delay1ms(2000);//延時(shí)2S start();send_sms();//發(fā)一次短信 while(1){}}ucharF=0,chinit,chping,chname;sbitLED1=P1^0;sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitLED=P1^4;uintTime,Time1;voiddelay1ms(uintx){ for(Time=0;Time<x;Time++)for(Time1=0;Time1<120;Time1++);}/**********************************************************************C51中字符串函數(shù)的擴(kuò)充**********************************************************************/ucharstrsearch(uchar*ptr2){//查字符串*ptr2在*ptr1中的位置//本函數(shù)是用來(lái)檢查字符串*ptr2是否完全包含在*ptr1中//返回:0沒(méi)有找到//1-255從第N個(gè)字符開(kāi)始相同uchari,j,k;ucharflag;if(ptr2[0]==0)return(0);flag=0;for(i=0,j=0;i<MAX_TM-2;i++){if(uart_buff[i]==ptr2[j]){//第一個(gè)字符相同for(k=i;k<MAX_TM-2;k++,j++){if(ptr2[j]==0)//比較正確return(i+1);//返回值是整數(shù),不含0if(uart_buff[k]!=ptr2[j])break;}j=0;}}return(0);}/**********************************************************************AT指令發(fā)送程序**********************************************************************/ucharSend_AT_Command(uchartype){//發(fā)送AT指令//其他用para_tempAT_Command_Type=type;send_count=0;switch(type){caseRESET_TC35: //復(fù)位TC35strcpy(uart_buff,"AT+CFUN=1,1");break;caseCHECK_PIN: //檢查當(dāng)前是否要輸入PIN碼strcpy(uart_buff,"AT+CPIN?");break;caseTC35_INIT: //TC35初始化命令strcpy(uart_buff,"ATE0V0");break;//0D0A544333350D0AcaseSIM_ID:strcpy(uart_buff,"ATE0V0+CMGF=1+CNMI=2,1");break;caseAT_IPR:strcpy(uart_buff,"AT+IPR=9600"); break;caseSMSS_ID:strcpy(uart_buff,"ATE0V0^SSMSS=1+CNMI=2,1");break;caseSMS_CMGF: //SMS接收方式,strcpy(uart_buff,"ATE0V0+CMGF=0");break;casePHONE_WRITE: //存號(hào)碼strcpy(uart_buff,"AT+CPBW=");strcat(uart_buff,para_temp);break;casePHONE_READ: //讀本strcpy(uart_buff,"AT+CPBR=");strcat(uart_buff,&read_tmp);uart_buff[9]=0x0d; uart_buff[10]=0x0a;uart_buff[11]=0x00; uart_buff[12]=0x00;break;caseSMS_CMGR: //讀一個(gè)短信strcpy(uart_buff,"AT+CMGR=");strcat(uart_buff,para_temp);break;caseSMS_CMGS: //寫(xiě)一個(gè)短信strcpy(uart_buff,"AT+CMGS=");strcat(uart_buff,para_temp);break;caseSMS_CMGD: //刪除一個(gè)短信strcpy(uart_buff,"AT+CMGD=");strcat(uart_buff,para_temp);break;caseCMGS_MUB://發(fā)報(bào)警短信內(nèi)容strcpy(uart_buff,para_temp);break;caseAT_COMMAND:break;default:receive_count=0;return(TRUE);}ES=1;strcat(uart_buff,"\x0d\x00");//在命令后加入CRsend_count=0; //設(shè)置發(fā)送指針receive_count=0;AT_Command_Status=COMMAND_WAIT; //設(shè)置接收成功標(biāo)志timer_S_cnt=0;txd_rxd_bit=0;at_send_bit=0;TI=1; //開(kāi)始發(fā)送數(shù)據(jù)RI=0; //清除接收標(biāo)志if(type==TC35_INIT){while(timer_S_cnt<6){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)return(TRUE);}}elseif((type==SMS_CMGR)){while(timer_S_cnt<6){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)return(TRUE);}}elseif((type==CALL_ID)){while(timer_S_cnt<2){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)return(TRUE);}}else{while(timer_S_cnt<6){if(AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1){return(TRUE); }}}return(FALSE);}voidSys_Init(void){//話機(jī)啟動(dòng)的初始化程序,包含鍵盤(pán)與定時(shí)器,串口等 //TH0=(65536-46080)/256;//重新裝入定時(shí)25mS的初值到TH0,TL056320 //TL0=(65536-46080)%256; //65536-(11.0592/12)*20MS*1000=To1843247104 //1ms定時(shí)0.9216M(記數(shù)頻率) //1ms記數(shù)次 //16位2^16-x=922x=64614FC66 //定時(shí)器里不斷放fc66,不用懷疑51定時(shí)器得到的1ms的精確性嗎//TH0=0xf6;//TL0=0x50;TH0=0xB8;TL0=0x00;//20ms的時(shí)鐘基準(zhǔn)//串口中斷TI=0;RI=0;SCON=0x50; //選用方式1TMOD=0x20;TMOD=(TMOD&0xf0)|1;//MODE1TH1=0xfd;//波特率為9600TL1=0xfd;PCON=0x00;//倍頻0x80IE=0xb0; //EAXXET2ESET0EX0ET1EX111000000TR1=1; //enableTIMER1ES=1;TR0=1;ET0=1;ET1=0;EA=1;timer_1S_cnt=0;receive_count=0;send_count=0xff; //表示禁止發(fā)送,可以接收}//======================================================================//========================進(jìn)行SIM卡中的1到20條短信號(hào)碼的讀==============================================//======================================================================ucharREAD_TEL(ucharr){//讀短信號(hào)碼1-20個(gè)//ucharr;para_temp[0]=(r/10)+0x30;para_temp[1]=(r%10)+0x30;para_temp[2]=0x0d;para_temp[3]=0x00;para_temp[4]=0x00;para_temp[5]=0x00;para_temp[6]=0x00;para_temp[7]=0x00;para_temp[8]=0x00;para_temp[9]=0x00;para_temp[10]=0x00;para_temp[11]=0x00;//timer_S_cnt=0;while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;Send_AT_Command(SMS_CMGR);timer_S_cnt=0;//while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear;send_count=0;if(strsearch("CMGR:0,,0")){//+CMGR:0,,0沒(méi)有短信返回 //timer_S_cnt=0;while(timer_S_cnt<1)watch_dog_clear;ES=1; //設(shè)置發(fā)送指針receive_count=0; send_count=0xff; RI=0;return(FALSE);}elseif(uart_buff[1]==0x0d&&uart_buff[0]==0x34){ return(FALSE);}else{if(AT_Command_Status==COMMAND_ERROR) return(FALSE);elsereturn(TRUE);}}//============================================//==========讀寫(xiě)短信程序//====================================================voidread_sms(){uchari,r,j,t;for(r=1;r<20;r++){timer_tmp=0;// while(timer_tmp<15)watch_dog_clear;//if(strsearch("+CMTI:"))return;//是否有新短信num_tmp1=r;if(READ_TEL(r)!=1){//讀一個(gè)短信at+cmgr=1-19讀指令if(strsearch("+CMTI:"))return;continue;}//TEL_temp[18]讀出對(duì)方號(hào)碼t=2; i=0; for(j=15;j<25;j++){ if((uart_buff[j]==0x22)&&(uart_buff[j+1]==',')&&uart_buff[j+2]==0x22) break;}j=j+3;if(uart_buff[j]=='+')j=j+3; for(;j<40;j++){ if(uart_buff[j]==0x22) break; para_temp[t++]=uart_buff[j]; TEL_temp[i++]=uart_buff[j]; } TEL_temp[i++]=0x0d; TEL_temp[i++]=0x00; para_temp[t++]=0x0d; para_temp[t++]=0x00;para_temp[t++]=0x00;//號(hào)碼設(shè)置 if((i=strsearch("CHN"))){//發(fā)中文//有些比較重要的東西你可以存到卡就,重新開(kāi)機(jī)也沒(méi)有問(wèn)題 system_server=SYS_ALARM; return; } elseif((i=strsearch("TLA"))){//存號(hào)碼1para_temp[0]=0x31; para_temp[1]=',';Send_AT_Command(PHONE_WRITE);//PHONE_WR//IO_OUT=0; system_server=SYS_NUMSAVE;//儲(chǔ)存號(hào)碼標(biāo)志 return; } elseif((i=strsearch("TLB"))){//存號(hào)碼2para_temp[0]=0x32; para_temp[1]=',';Send_AT_Command(PHONE_WRITE);//PHONE_WR//IO_OUT=0; system_server=SYS_NUMSAVE;//儲(chǔ)存號(hào)碼標(biāo)志 return; } elseif((i=strsearch("TLC"))){//存號(hào)碼3para_temp[0]=0x32; para_temp[1]=',';Send_AT_Command(PHONE_WRITE);//PHONE_WR//IO_OUT=0; system_server=SYS_NUMSAVE;//儲(chǔ)存號(hào)碼標(biāo)志 return; }else{para_temp[0]=(num_tmp1/10)+0x30; para_temp[1]=(num_tmp1%10)+0x30; para_temp[2]=0x0d;para_temp[3]=0x00; Send_AT_Command(SMS_CMGD); timer_S_cnt=0;// while(timer_S_cnt<10&&(AT_Command_Status==COMMAND_WAIT))watch_dog_clear; for(i=10;i<=MAX_TM-3;i++){ uart_buff[i]=0;}Send_AT_Command(SIM_ID); return; }}}voidsend_sms(){//發(fā)送短信 ucharj=1,i=1;Send_AT_Command(SIM_ID);switch(sms_tmp){casesmss_save://發(fā)送英文TMP_BUF=0; do{ para_temp[TMP_BUF]=TEL_temp[TMP_BUF]; TMP_BUF++;}while(TMP_BUF<=18);para_temp[TMP_BUF]=0x00; Send_AT_Command(SMS_CMGS);j=0; para_temp[j++]='S';para_temp[j++]='A'; para_temp[j++]='V';para_temp[j++]='E';para_temp[j++]=':';para_temp[j++]=0x20;para_temp[j++]='O';para_temp[j++]='K';para_temp[j++]=0x1a;para_temp[j++]=0x0d; para_temp[j++]=0x00;para_temp[j]=0x00;Send_AT_Command(CMGS
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024副食品保障供應(yīng)合同
- 農(nóng)產(chǎn)品采購(gòu)合作協(xié)議書(shū)
- 社區(qū)物業(yè)管理服務(wù)合同
- 小額民間借款合同范本
- 建筑行業(yè)材料購(gòu)銷(xiāo)協(xié)議模板
- 2023年高考地理復(fù)習(xí)精題精練-區(qū)域發(fā)展對(duì)交通運(yùn)輸布局的影響(解析版)
- 2024年售房的合同范本
- 建筑工地物資租賃合同書(shū)
- 房產(chǎn)抵押擔(dān)保協(xié)議參考
- 2024年勞務(wù)協(xié)議書(shū)樣本
- 企業(yè)如何利用新媒體做好宣傳工作課件
- 如何培養(yǎng)孩子的自信心課件
- 中醫(yī)藥膳學(xué)全套課件
- 頸脊髓損傷-匯總課件
- 齒輪故障診斷完美課課件
- 2023年中國(guó)鹽業(yè)集團(tuán)有限公司校園招聘筆試題庫(kù)及答案解析
- 大班社會(huì)《特殊的車(chē)輛》課件
- 野生動(dòng)物保護(hù)知識(shí)講座課件
- 早教托育園招商加盟商業(yè)計(jì)劃書(shū)
- 光色變奏-色彩基礎(chǔ)知識(shí)與應(yīng)用課件-高中美術(shù)人美版(2019)選修繪畫(huà)
- 前列腺癌的放化療護(hù)理
評(píng)論
0/150
提交評(píng)論