版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于短信回傳的溫度監(jiān)測節(jié)點設(shè)備設(shè)計</p><p><b> 摘 要</b></p><p> GSM模塊,是一個類似于手機(jī)通訊模塊。集成了手機(jī)若干功能于一塊電路板上,它可以實現(xiàn)收發(fā)短消息,通話等功能。擁有它就相當(dāng)于擁有了手機(jī)的核心部分。在很多領(lǐng)域都有應(yīng)用。本項目是基于TC35的GSM模塊遠(yuǎn)端監(jiān)測監(jiān)控節(jié)點溫度。其設(shè)備有單線溫度傳感器DS18
2、B20、試驗用單片機(jī)、GSM模塊TC35等構(gòu)成。首先單片機(jī)要實現(xiàn)溫度監(jiān)測的功能,通過單片機(jī)上的溫度傳感器采集到周圍溫度并顯示在顯示器上。其次實現(xiàn)單片機(jī)與GSM模塊的通信,手機(jī)發(fā)送短信給GSM模塊的SIM卡,GSM模塊收到單片機(jī)上當(dāng)時溫度,將其上傳至電腦或者網(wǎng)絡(luò),做數(shù)據(jù)分析和備份。GSM模塊是通過AT指令控制的。</p><p> 本文主要是從GSM模塊TC35模塊的使用著手研究。首先要清楚該模塊的功能。再了解該
3、模塊的使用方法。該模塊通過AT指令來收發(fā)短信,從而達(dá)到遠(yuǎn)程控制和測試的作用。其次,了解單片機(jī)的使用方法和作用。并自主編程,從而達(dá)到預(yù)期要求。最后了解整個設(shè)計流程的大體框架。做出電路圖和原理圖。</p><p> 關(guān)鍵詞: GSM模塊 TC35 單線溫度傳感器 DS18B20 電腦 試驗用單片機(jī) HD44780型</p><p> Return SMS-based temperature
4、 monitoring node device design</p><p><b> Major: XX</b></p><p> Student: XX Supervisor: XX</p><p><b> Abstract</b></p><p> The GSM modul
5、e is similar to the mobile communication module. Integration of several functions of the phone, he can receive and send calls and other functions in a circuit board. Has it the equivalent of a core part of the mobile pho
6、ne. Has applications in many fields. This project is based on remote monitoring of the TC35 GSM module to monitor the junction temperature. Their equipment has single-wire temperature sensor DS18B20 test of microcontroll
7、er, GSM module TC35. First single-chip temperat</p><p> Keyword: GSM module TC35 Single-wire temperature sensor DS18B20 Computer Experiment with single-chip HD44780 </p><p><b> 目 錄&
8、lt;/b></p><p><b> 1 緒論1</b></p><p> 2 系統(tǒng)組成和工作原理1</p><p> 2.1 實現(xiàn)過程2</p><p> 2.2 軟件流程圖2</p><p><b> 3 硬件介紹2</b></p>
9、<p> 3.1 GSM模塊模塊介紹2</p><p> 3.1.1 TC35引腳介紹3</p><p> 3.1.2 TC35通信4</p><p> 3.2 單線數(shù)字溫度傳感器DS18B204</p><p> 3.3 單片機(jī)介紹5</p><p> 3.3.1 STC89C51
10、RC單片機(jī)5</p><p> 3.3.2 STC89C51RC芯片引腳介紹6</p><p><b> 4 軟件部分7</b></p><p> 4.1 DS18B20與單片機(jī)的通信7</p><p> 4.2 TC35iGSM模塊與PC機(jī)的串行通信7</p><p> 4.
11、3 短信編碼7</p><p> 4.4 AT指令9</p><p> 6 STC芯片燒寫軟件12</p><p><b> 7 結(jié)論13</b></p><p><b> 附 錄14</b></p><p><b> 參考文獻(xiàn)28</
12、b></p><p><b> 致 謝29</b></p><p><b> 1 緒論</b></p><p> 隨著國民經(jīng)濟(jì)的發(fā)展,人身安全顯得越來越重要。無線短信測試設(shè)計作為一種現(xiàn)代新型多功能測試模塊已成為了主流趨勢。該設(shè)計的完成主要由兩個因素驅(qū)動,其一,滿足消費需求和領(lǐng)先性;其二,科學(xué)發(fā)展的趨勢。該設(shè)
13、計主要有以下幾個特點:1,由于其設(shè)計的原件成本很低,方便很多領(lǐng)域使用。2,該設(shè)計硬件體積較小,可針對各種環(huán)境作出改變,適用于不同地域。通過GSM模塊工作人員為記錄溫度無需到指定位置操作。只要通過短信激活設(shè)備,就能得到測試點的溫度。3,該設(shè)計無需人員監(jiān)督,只要做定期維護(hù),適用方便,具有很強(qiáng)的時域?qū)嵱眯浴9ぷ魅藛T可根據(jù)要求,在不同時間給模塊信息,激活該設(shè)備,設(shè)備將會根據(jù)當(dāng)時網(wǎng)絡(luò)情況,用很快很短的時間回復(fù)工作人員測試地點的溫度。</p&
14、gt;<p> 在實際生活操作中,面對一些嚴(yán)峻的工作環(huán)境,人們更多利用機(jī)器或者各方面?zhèn)鞲衅魍ㄟ^遠(yuǎn)程控制的方式來達(dá)到預(yù)期的目的。這樣既節(jié)省了人力(更科學(xué)、效率的完成工作),又保障了人員的自身安全,同時也降低了工作成本。</p><p> GSM在中國的發(fā)展:我國自從1992年在嘉興建立和開通第一個GSM演示系統(tǒng),并于1993年9月正式開放業(yè)務(wù)以來,全國各地的移動通信系統(tǒng)中大多采用GSM系統(tǒng),使得G
15、SM系統(tǒng)成為目前我國最成熟和市場占有量最大得一種數(shù)字蜂窩系統(tǒng)。此前一直是采用蜂窩模擬移動技術(shù),即第一代GSM技術(shù)。</p><p> 作為傳統(tǒng)的溫度測控,溫度計在各方面的運用占用主體地位。隨著社會發(fā)展,傳感器的出現(xiàn),給溫度測控帶來了很大的便利。本文采用單線數(shù)字溫度傳感器DS18B20。</p><p> 目前國內(nèi)對節(jié)點溫度的數(shù)據(jù)采樣,主要有:第一,多數(shù)測控系統(tǒng)必須有工作人員到現(xiàn)場進(jìn)行操
16、作,因此工作效率低。且不便于管理。第二,采用接入Internet或Intranet的方式實現(xiàn)遠(yuǎn)程監(jiān)控。這些方式已經(jīng)應(yīng)用在數(shù)據(jù)采集、視頻會議、遠(yuǎn)程加工或者遠(yuǎn)程診斷等領(lǐng)域。但是接入Internet按時間計費或租用專線,Intranet需要鋪設(shè)專用電纜,成本太高。鑒于這種本文設(shè)計一種了基于西門子GSM模塊TC35i的遠(yuǎn)程溫度監(jiān)測系統(tǒng),通過現(xiàn)有的GSM成熟網(wǎng)絡(luò)實現(xiàn)對現(xiàn)場的遠(yuǎn)程測控。系統(tǒng)具有結(jié)構(gòu)簡單、可靠性高、成本低等特點,在溫度要求高、比較分散
17、、偏遠(yuǎn)地區(qū)具有很高的使用價值??晒?jié)約大量人力、財力、時間。而且安全隱患底。可避免不必要的災(zāi)難。</p><p> 2 系統(tǒng)組成和工作原理</p><p> 圖1:系統(tǒng)組成和工作原理圖</p><p><b> 2.1 實現(xiàn)過程</b></p><p> 該系統(tǒng)分為兩部分:第一部分主要是單片機(jī)實現(xiàn)溫度采集、顯示、存
18、儲。主要由單線溫度傳感器DS18B20、STC89C51RC單片機(jī)實現(xiàn)。第二部分主要包括TC35GSM模塊對收集數(shù)據(jù)進(jìn)行傳送、處理。</p><p> 總體思路。對單片機(jī)初始化,將STC89C51RC單片機(jī)測試溫度以串口短信發(fā)送方式給GSM模塊。由此了解此時此地溫度狀況。</p><p><b> 2.2 軟件流程圖</b></p><p>
19、; 圖2:系統(tǒng)結(jié)構(gòu)總體框圖</p><p><b> 3 硬件介紹</b></p><p> 3.1 GSM模塊模塊介紹</p><p> TC35是Siemens公司推出的通信GSM模塊,它設(shè)計小巧、功耗很低、主要由GSM基帶處理器、GSM射頻部分、電源、閃存(Flash)4部分組成,可以快速安全可靠的實現(xiàn)數(shù)據(jù)、語音傳輸。模塊工作電壓
20、為3.3——5.5V,可以工作在900MHZ和1800MHZ兩個頻段,所在頻段功耗分別為2W和1W。GSM模塊是繼GSM手機(jī)外又一種非常重要的GSM移動通信系統(tǒng)的終端設(shè)備,即通常所說的GSM Modem,它以GSM網(wǎng)絡(luò)作為無線傳輸網(wǎng)絡(luò),不受地域、線路等影響,且運行成本低。</p><p> GSM基帶處理器是整個模塊的核心,它控制模塊內(nèi)各種信號的傳輸、轉(zhuǎn)換、放大的處理過程。GSM射頻部分是一個單片收發(fā)器,它完成
21、對射頻信號的收發(fā)等處理。GSM模塊電源是把外部輸入電源電壓進(jìn)行穩(wěn)壓處理后供GSM基帶處理器和射頻部分使用。Flash用來存儲一些用戶配置信息、電話本和其他信息。</p><p> TC35的數(shù)據(jù)輸入/輸出接口實際上是一個串行異步收發(fā)器、符合RS232接口標(biāo)準(zhǔn),有固定參數(shù):8位數(shù)據(jù)位和1位停止位,無校驗位,波特率在300bps——115bps之間可選,硬件握手信號用RTS0/CTS0,軟件流量控制用XON/XOF
22、F,CMOS電平,支持標(biāo)準(zhǔn)AT命令集。通過這一接口可以用AT命令切換操作模式,使它處于語音、數(shù)據(jù)、短消息或傳真模式。</p><p> 3.1.1 TC35引腳介紹</p><p> TC35i模塊有40個引腳,通過一個ZIF(Zero Insertion Force,零阻力插座)連接器引出。這40個引腳可以劃分為5類,即電源、數(shù)據(jù)輸入/輸出、SIM卡、音頻接口和控制。</p&g
23、t;<p> TC35i的第1~5引腳是正電源輸入腳通常推薦值4.2V,第6~10引腳是電源地。11、12為充電引腳,可以外接鋰電池,13為對外輸出電壓(共外電路使用),14為ACCU-TEMP接負(fù)溫度系數(shù)的熱敏電阻,用于鋰電池充電保護(hù)控制。</p><p> 15腳是啟動腳IGT,系統(tǒng)加電后為使TC35i進(jìn)入工作狀態(tài),必須給IGT加一個大于100ms的低脈沖,電平下降持續(xù)時間不可超過1ms。&
24、lt;/p><p> 16~23為數(shù)據(jù)輸入/輸出,分別為DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0 和DCD0。tc35i模塊的數(shù)據(jù)輸入/輸出接口實際上是一個串行異步收發(fā)器,符合ITU-T RS232接口標(biāo)準(zhǔn)。它有固定的參數(shù):8位數(shù)據(jù)位和1位停止位,無校驗位,波特率在300bps~115kbps之間可選,默認(rèn)9600。硬件握手信號用RTS0/CTS0,軟件流量控制用XON/XOFF,CM
25、OS電平,支持標(biāo)準(zhǔn)的AT命令集。</p><p> 其中18腳RxD0、19腳TxD0為TTL的串口通訊腳,需要和單片機(jī)或者PC通訊。</p><p> TC35i使用外接式SIM卡, 24~29為SIM卡引腳,SIM卡同TC35i是這樣連接的:SIM上的CCRST、CCIO、CCCL、CCVCC和CCGND通過SIM卡閱讀器與TC35i的同名端直接相連,ZIF連接座的CCIN引腳用來
26、檢測SIM卡是否插好,如果連接正確,則CCIN引腳輸出高電平,否則為低電平。</p><p> TC35i的第32腳SYNC引腳有兩種工作模式,一種是指示發(fā)射狀態(tài)時的功率增長情況,另一種是指示TC35i的工作狀態(tài),可用AT命令A(yù)T+SYNC進(jìn)行切換,本模塊使用的是后一種。當(dāng)LED熄滅時,表明TC35i處于關(guān)閉或睡眠狀態(tài);當(dāng)LED為600 ms亮/600ms熄時,表明SIM卡沒有插入或TC35i正在進(jìn)行網(wǎng)絡(luò)登錄;
27、當(dāng)LED為75 ms亮/3s熄時,表明TC35i已登錄進(jìn)網(wǎng)絡(luò),處于待機(jī)狀態(tài)。</p><p> 30、31、32腳為控制腳,其中30為RTC backup,31為Power down,32 為SYNC。</p><p> 35~38為語音接口,35、36接揚聲器放音。37、38可以直接接駐極體話筒來采集聲音(37是話筒正端,39是話筒負(fù)端)</p><p>
28、3.1.2 TC35通信</p><p> TC35的數(shù)據(jù)通信電路以MAX232為核心實現(xiàn)電平轉(zhuǎn)換及串口通信。MAX232的作用是實現(xiàn)TTL電平轉(zhuǎn)換。該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-23
29、2-F電平。其功能主要是實現(xiàn)串口通訊功能驅(qū)動與串口數(shù)據(jù)接收,MAX232CPE芯片必須+5V電源才會工作。它是116針SMD封裝IC,用于完成計算機(jī)232端口數(shù)據(jù)電平轉(zhuǎn)換。它的內(nèi)部電源才會工作。它是16針SMD封裝IC,用于完成計算機(jī)232端口電平轉(zhuǎn)換。它的內(nèi)部結(jié)構(gòu)基本可分三個部分:第一部分是電荷泵電路。由1、2、3、4、5、6、腳和4只電容構(gòu)成。功能是產(chǎn)生+12V和—12V兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換
30、通道。游7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(RIIN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9</p><p> 圖3:MAX232引腳圖</p><p> 3.2 單線數(shù)字溫度傳感器DS18B20</p><p> DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字
31、溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測試范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃,被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源即可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)3或者2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。</p><p> 圖
32、4:DS18B20引腳圖</p><p><b> 表1:引腳描述</b></p><p><b> 3.3 單片機(jī)介紹</b></p><p> 3.3.1 STC89C51RC單片機(jī)</p><p> STC89Cxx,最高頻率可達(dá)90MHz,片內(nèi)4K以上FLASH程序存儲器,8K左右的
33、片內(nèi)EEROM ,512B-1208B片內(nèi)RAM,36個IO口。</p><p> STC89C51單片機(jī)具有增強(qiáng)型12時鐘/機(jī)器周期、6時鐘機(jī)器/周期任意選擇,工作電壓為5.5V-3.4V(5V單片機(jī))/3.8V-2.0V(5V單片機(jī));工作頻率范圍:0-40MHZ,相當(dāng)于普通8051的0-80MHZ。實際頻率可達(dá)48MHZ。用戶應(yīng)用程序空間為4K/8K/13K/16K/20K/32K/64K字節(jié) ;片上集成
34、1280字節(jié)/512字節(jié)RAM;有32/36個通用I/O口,P1/P2/P3/P4是準(zhǔn)雙向口;集成ISP(在系統(tǒng)可編程)/IPA(在應(yīng)用可編程),無需專用的編程器/仿真器,可通過串行口(P3.0/P3.1)直接下載用戶程序,8K程序3秒就可以完成一片,具備EEPROM功能,共有3個16位定時器/計數(shù)器,其中定時器T0還可以當(dāng)成2個8位定時器使用。部分外圍電路如圖所示:</p><p> 圖5:部分外圍電路圖&l
35、t;/p><p> 3.3.2 STC89C51RC芯片引腳介紹</p><p> (1)I/O端口線輸入輸出引腳(引腳圖見附錄B)</p><p> P0.0-P0.7(39-32):P0口是一個漏極開路型準(zhǔn)雙向I/O口。</p><p> P1.0-P1.7(1-8):P1口是帶內(nèi)部上拉電阻的8位雙向I/O口。在EPROM編程和程序驗
36、證時接收8位地址。</p><p> P2.0-P2.7(21-28):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。在訪問外部存儲器時送出高8位地址。</p><p> P3.0-P3.7(10-17):P3口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。</p><p> (2)控制線控制引腳</p><p> ALE(30):地址鎖存
37、控制信號。用于控制P0口輸出的低8位地址鎖存起來,實現(xiàn)低位地址和數(shù)據(jù)的隔離。</p><p> PSEN(30):外部程序存儲器。在讀外部ROM時,低電平有效,以實現(xiàn)外部ROM單元的讀操作。</p><p> EA(31):訪問程序存儲控制信號。低電平時,對ROM的讀操作限定在外部程序存儲器;高電平時,對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。</p>
38、<p> RST/Vpp(9):復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個機(jī)器周期以上的高電平時即為有效,用以完成單片機(jī)的復(fù)位初始化操作。</p><p><b> (3)外部晶體線</b></p><p> XTAL1(19)和XTAL(18):外部晶體引線端。</p><p><b> (4)主電源引腳</b&
39、gt;</p><p> VCC(40):+5V電源。</p><p> VSS(20):地線GND。</p><p><b> 4 軟件部分</b></p><p> 4.1 DS18B20與單片機(jī)的通信</p><p> 根據(jù)DS18B20的初始化時序,寫時序和讀時序,分別編寫了3個
40、子程序:INIT為初始化子程序,WRITE為寫子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:初始化、ROM操作指令、存儲器操作指令。必須先啟動DS18B20開始轉(zhuǎn)換,再讀出溫度等轉(zhuǎn)換值。</p><p> 4.2 TC35iGSM模塊與PC機(jī)的串行通信</p><p> 上位機(jī)(PC機(jī))與TC35i GSM模塊的通信采
41、用RS232總線格式</p><p> 圖6:PC機(jī)與TC35i GSM模塊的通信原理圖</p><p> 要使用TC35模塊實現(xiàn)短信收發(fā),就必須理解串口通信、AT指令和短信的編碼、解碼。</p><p><b> 4.3 短信編碼</b></p><p> 對于短信的收發(fā)控制模式,按時間先后,共有三種模式:Bl
42、oke Mode、基于AT指令的Text Mode、基于AT指令的PDU mode(Protocol Data Unit)。使用Block模式需要生產(chǎn)廠家提供驅(qū)動支持。Text模式收發(fā)短信代碼簡單,但只能發(fā)送簡單英文短信(純文本格式)。而PDU模式可以實現(xiàn)中文、英文、聲音和圖像等的收發(fā)。我們這里介紹的就是利用AT指令在PDU模式下通過TC35模塊收發(fā)短消息。</p><p> 在PDU模式中,可以采用三種編碼方
43、式來編碼內(nèi)容,分別是7bit編碼、8bit編碼、16bit編碼。7bit編碼用于發(fā)送普通Ascill字符,如英文和數(shù)字,8bit編碼通常用于發(fā)送數(shù)據(jù)信息,如圖片和鈴聲,而16bit編碼用于發(fā)送Unicode字符,如中文和英文。三種編碼可以發(fā)送長度分別為160,14,和70.</p><p> 發(fā)送中文短信具體步驟如下:</p><p> 1>GB2312編碼到Unicode編碼轉(zhuǎn)
44、換</p><p> 2>Unicode編碼到16bit編碼轉(zhuǎn)換</p><p> 注意 這個轉(zhuǎn)換過程中Unicode編碼最開始的0xffff標(biāo)記要去掉,在0xffff之后內(nèi)容才是真正的Unicode字符。Unicode是雙字節(jié)。如果系統(tǒng)是小端字節(jié)序,則存儲時,先存地位再高位。如果是大端節(jié)序,就不需要轉(zhuǎn)換了。而且,請注意在PDU格式中,TYPE、TP-MR、TP-PID、TP-V
45、P分別設(shè)置為11、00、00、08、01(以上均為16進(jìn)制數(shù))。</p><p><b> 形成標(biāo)準(zhǔn)的發(fā)送包</b></p><p> 發(fā)送短信編碼格式為:服務(wù)中心地址、PDU類型、接收方地址、協(xié)議識別碼、數(shù)據(jù)譯碼方案、有效周期、用戶數(shù)據(jù)長度、用戶數(shù)據(jù)。</p><p> 接收短信編碼格式為:服務(wù)中心地址、PDU類型、發(fā)送方地址、協(xié)議識別
46、碼、數(shù)據(jù)譯碼方案、服務(wù)中心收到消息時間、用戶數(shù)據(jù)長度、用戶數(shù)據(jù)。</p><p> 系統(tǒng)加電后,為使TC35進(jìn)入工作狀態(tài),必須給IGT加以延時大于100MS的低脈沖,電平下降持續(xù)時間不可超過1MS。啟動后,IGT應(yīng)保持高電平(3V)否者TC35不會正常工作。IGT電平控制是通過單片機(jī)I/O控制的。</p><p> PC系列微機(jī)串行口RS232為標(biāo)準(zhǔn)接口,這與TC35末班接口不一致,他
47、們之間轉(zhuǎn)換采用MAX232接口芯片來完成。</p><p> 要發(fā)送“你好”到手機(jī)15828591132,通過串口調(diào)試助手發(fā)送過程如下:1,AT+CMCS=019<0x0D> 019為數(shù)據(jù)內(nèi)容的字節(jié)數(shù)</p><p> 2,等待返回的ASCII字符:“>”</p><p> 3,輸入數(shù)據(jù)00 11 00 0D 91 68 </p>
48、;<p> 3187173910F1</p><p> 00 08 A7 04</p><p> 4F60597D <0x1A> </p><p><b> 表2:數(shù)據(jù)說明</b></p><p><b> PDU數(shù)據(jù)格式分析</b></p>&l
49、t;p> 當(dāng)來一條短消息時,通過串口調(diào)試助手可以看見顯示+CMTI:“ME”,17。接收此條短消息使用接收指令A(yù)T+CMCR=17<CR>.可以閱讀短信內(nèi)容為08 91 683108701305F0 04 0D 91 68318637404F1 00 08 70113032015223 04 4F60597D</p><p><b> 表3:數(shù)據(jù)說明</b></p
50、><p><b> PDU數(shù)據(jù)格式分析</b></p><p> 短消息收發(fā)系統(tǒng)由GSM通信模塊、用戶手機(jī)、PC機(jī)、單片機(jī)系統(tǒng)等組成。如圖1。</p><p> GSM通信模塊由TC35模塊及其外圍電路組成,圖2為TC35模塊及其外圍電路。</p><p><b> 4.4 AT指令</b>&l
51、t;/p><p> 系統(tǒng)主要的任務(wù)是監(jiān)測被控對象的溫度.然后通過TC35i發(fā)送到監(jiān)測中心(手機(jī))。系統(tǒng)軟件設(shè)計的重點在于單片機(jī)的編程。向TC35i寫入不同的AT指令完成多種功能。單片機(jī)對TC35i所有的控制都是通過串口發(fā)送AT指令進(jìn)行的,TC35i的每一個動作都對應(yīng)了一個AT指令,而且每一個指令之后都要有一個回車符以告訴TC35i該條命令已經(jīng)發(fā)完。一些常用的AT指令下表。</p><p>
52、 表4:常用AT指令表</p><p> 圖7:應(yīng)用軟件界面圖</p><p> 使用前,我們要對板子進(jìn)行測試,測試模塊是否正常工作。用錄下的“TC35TIest.exe”測試程序來對實驗板進(jìn)行測試。</p><p><b> 測試步驟如下:</b></p><p> 1、先將SIM卡裝入開發(fā)板,擰上GSM天線。
53、</p><p> 2、將開發(fā)板上跳線設(shè)置成PC--TC35I通信模式。</p><p> 3、插上配套電源,然后按一下板上的開機(jī)按鍵,時間大于200ms即可。</p><p> 4、找到光盤“TC35I測試程序”目錄下的“TC35TIest.exe”測試程序來進(jìn)行測試。</p><p> 5、先點擊“打開端口”,然后點擊“TC35I
54、初始化”,如果連接成功后會出現(xiàn)“DSR信號線有問題”的提示,沒關(guān)系,不用管它,我們確實沒用到這條線。</p><p><b> 圖8:串口運行圖</b></p><p> 6、使用電話撥號板子上SIM卡的號碼,如果電話能打通,則表示模塊已正常工作,測試完成。</p><p> 關(guān)于通信跳線說明: </p><p>
55、 在通信過程中進(jìn)行了三種通信跳線方式的選擇:PC機(jī)與MCU通信;PC機(jī)與TC35I模塊通信;MCU與TC35I模塊通信。 1.如果要使用PC機(jī)來進(jìn)行模塊的測試,收發(fā)短信或進(jìn)行語音呼叫實驗,請將跳線設(shè)置成:PC與TC35I模塊通信。 2.如果要給單片機(jī)芯片燒寫程序,即完成ISP下載功能, 請將跳線設(shè)置成:PC與MCU通信。</p><p> 3.如果要使用MCU來控制TC35I模塊,請將跳線設(shè)置
56、成:MCU與TC35I模塊通信</p><p><b> 圖9:硬件實物圖</b></p><p> 6 STC芯片燒寫軟件</p><p> 首先要把編寫完成的程序燒到STC89C51RC里,寫軟件的使用步驟:</p><p> 1、打開STC芯片燒寫軟件的窗口STC-ISP.exe→選擇單片機(jī)型號STC89C
57、51RC;</p><p> 2、打開文件Open File→選擇通過編譯生成的HEX文件;</p><p><b> 圖10:燒寫設(shè)置</b></p><p> 3、選擇串行口,最高波特率等參數(shù)選擇默認(rèn)值;</p><p> 4、點擊下載Download,再給MCU上電,程序的燒寫工作完成。</p>
58、<p><b> 7 結(jié)論</b></p><p> 通過本次畢業(yè)設(shè)計我學(xué)到了不少的知識,進(jìn)一步鞏固了單片機(jī)的基礎(chǔ)知識,實際動手能力有所提高,能夠?qū)⒗碚撆c實際相結(jié)合。</p><p> 該畢業(yè)設(shè)計主要由GSM模塊TC35i、STC89C51單片機(jī)、DSl8B20溫度傳感器等構(gòu)成。過程是:首先單片機(jī)要實現(xiàn)測溫功能,通過單片機(jī)上的溫度傳感器DSl8B2
59、0采集到周圍的溫度。其次實現(xiàn)單片機(jī)與GSM模塊的通信,手機(jī)發(fā)送短信給GSM模塊的SIM卡,GSM模塊接收信息后收集單片機(jī)上當(dāng)時的溫度,并把該溫度發(fā)給手機(jī),這樣就實現(xiàn)了遠(yuǎn)程溫控。GSM模塊是用AT指令控制的。(如果有短信來,GSM模塊會通過串口向單片機(jī)發(fā)送字符串,單片機(jī)讀取短信,發(fā)信息給手機(jī)回復(fù)溫度)</p><p> 在設(shè)計過程中,由于以前課程有所涉及,接觸各方面時間比較長,但由于缺乏自己動手實際操作,在實際制
60、作硬件和軟件編寫過程中遇到了不少的麻煩,但在指導(dǎo)老師的幫助下,通過有針對性地查找資料,了解了些相關(guān)方面的資料,既增長了自己見識,補(bǔ)充最新的專業(yè)知識,又提高了自己的應(yīng)用能力,能夠自行解決一些基本的問題。</p><p> 在大學(xué)四年的時間,大多在學(xué)習(xí)理論基礎(chǔ)知識,實踐的機(jī)會并不是太多。經(jīng)過這次畢業(yè)設(shè)計,我積累了相關(guān)的使用調(diào)試經(jīng)驗,發(fā)現(xiàn)了自己很多不足之處,體會到了所學(xué)理論知識的重要性,知識掌握得越多,設(shè)計得就更全面
61、、更順利、更好。</p><p> 總之,這次畢業(yè)設(shè)計讓我能把理論知識和工程實踐相結(jié)合、基礎(chǔ)知識與創(chuàng)新意識相結(jié)合,培養(yǎng)了自己的全面素質(zhì)。這些在我今后的學(xué)習(xí)和工作當(dāng)中都會有很大的幫助。</p><p><b> 附 錄</b></p><p><b> 軟件程序設(shè)計</b></p><p>
62、 #include<reg52.h></p><p> #include<intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define RxIn 100 //定義接收的數(shù)組長
63、度為100</p><p> char s[20]="Temperature= 0C";</p><p> uchar code AT[]="AT";//握手信號</p><p> uchar code ATE[]="ATE"; //關(guān)回顯</p><p> u
64、char code AT_CNMI[]="AT+CNMI=2,1";//設(shè)置這組參數(shù)來了新信息直接顯示到串口,不作存儲</p><p> uchar code AT_CSCA[]="AT+CSCA=\"+8613800510500\"";//設(shè)置服務(wù)中心號碼</p><p> uchar code AT_CMGF[]=&quo
65、t;AT+CMGF=1";//設(shè)置短信的格式為text格式</p><p> uchar code AT_CMGR[]="AT+CMGR=";//讀取短信指令</p><p> uchar code AT_CMGS[]="AT+CMGS=";//發(fā)送短信指令</p><p> uchar code AT_CMG
66、D[]="AT+CMGD=";//發(fā)送短信指令</p><p> uchar code successfully[]="Operate Successfully!";//發(fā)送操作成功信息到目標(biāo)號碼</p><p> uchar code fail[]="Operate failed,try again!";//發(fā)送操作失敗信
67、息到目標(biāo)號碼</p><p> uchar AT_delete[12];</p><p> uchar AT_Read[12];//用來存儲發(fā)送讀取短信指令 </p><p> uchar AT_SendNumber[25]; //用來存儲發(fā)送短信號碼指令</p><p> uchar numberbuf[3]; //用來保存
68、短信條數(shù) </p><p> uchar idata SystemBuf[RxIn]; //儲存出口接收數(shù)據(jù) </p><p> uchar CommandBuf[6]; //用來儲存指令 </p><p> uchar idata state[17]; //用來存儲IO口狀態(tài) </p><p> uchar idata st
69、ate1[17]; //用來存儲IO口狀態(tài) </p><p> uchar Rx=0;</p><p> uint temp;//記錄狀態(tài) </p><p> uchar temp1;// 用于記錄P0口狀態(tài)</p><p> uchar temp2; // 用于記錄P2口狀態(tài) </p><p>
70、; bit check=0;//查詢標(biāo)志位 </p><p> bit receiveready=0; //接收短信標(biāo)志位</p><p> bit sendready=0; //發(fā)送短信準(zhǔn)備標(biāo)志位</p><p> bit send=0; //發(fā)送短信標(biāo)志位</p><p> bit flag=0;
71、 //指令標(biāo)志位</p><p> sbit P3_7=P3^7;//啟動GSM的啟動線連IGT</p><p> sbit realy0=P0^0;//繼電sbit realy1=P0^1;//繼電器2</p><p> sbit realy2=P0^2; //繼電器3</p><p> sbit realy3=P0^3;//
72、繼電器4</p><p> sbit realy4=P0^4; //繼電器5</p><p> sbit realy5=P0^5; //繼電器6</p><p> sbit realy6=P0^6; //繼電器7</p><p> sbit realy7=P0^7;//繼電器8</p><p> sb
73、it key1=P2^0; //開關(guān)1</p><p> sbit key2=P2^1; //開關(guān)2</p><p> sbit key3=P2^2; //開關(guān)3</p><p> sbit key4=P2^3; //開關(guān)4</p><p> sbit key5=P2^4; //開關(guān)5</p><
74、;p> sbit key6=P2^5; //開關(guān)6</p><p> sbit key7=P2^6; //開關(guān)7</p><p> sbit key8=P2^7;//開關(guān)8</p><p> void Delay_ms(uint i);</p><p> void Start_GSM(void);</p>
75、;<p> void UART_init (void);</p><p> void sendchar(uchar ch);</p><p> void sendstring(uchar *p);</p><p> void GSM_INIT(void);</p><p> void receive_ready(voi
76、d);</p><p> void message_read(void);</p><p> void read_message(void);</p><p> void sendmessage(void);</p><p> sbit DQ=P3^3; //溫度輸入
77、口</p><p> uint h; </p><p> uint tempX;</p><p> //**************溫度小數(shù)部分用查表法***********//</p><p> uchar code ditab[16]=</p><p> {0x00,0x01,0x01,0
78、x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};</p><p> uchar code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};</p><p> //共陽LED段碼表 "0"
79、"1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" </p><p> uchar data temp_data[2]={0x00
80、,0x00}; //讀出溫度暫放</p><p> uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //顯示單元數(shù)據(jù),共4個數(shù)據(jù)和一個運算暫用</p><p> /*****************11us延時函數(shù)*************************/</p><p&g
81、t; void delay(uint t)</p><p> {for (;t>0;t--);}</p><p> /****************DS18B20復(fù)位函數(shù)************************/</p><p> ow_reset(void)</p><p> {char presence=1;&l
82、t;/p><p> while(presence)</p><p> {while(presence)</p><p> {DQ=1;_nop_();_nop_();//從高拉倒低</p><p> DQ=0; </p><p> del
83、ay(50); //550 us</p><p> DQ=1; </p><p> delay(6); //66 us</p><p> presence=DQ; } //presence=0 復(fù)位成功,繼續(xù)下一步 </
84、p><p> delay(45); //延時500 us</p><p> presence=~DQ;}</p><p> DQ=1; } //拉高電平</p><p> /****************DS18B20寫命令函數(shù)************************/&
85、lt;/p><p> //向1-WIRE 總線上寫1個字節(jié)</p><p> void write_byte(uchar val)</p><p> { uchar i;</p><p> for(i=8;i>0;i--)</p><p> {DQ=1;_nop_();_nop_();
86、 //從高拉倒低</p><p> DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 us</p><p> DQ=val&0x01; //最低位移出</p><p> delay(6); //6
87、6 us</p><p> val=val/2;} //右移1位</p><p><b> DQ=1;</b></p><p> delay(1);}</p><p> /****************DS18B20讀1字節(jié)函數(shù)**************
88、**********/</p><p> //從總線上取1個字節(jié)</p><p> uchar read_byte(void)</p><p><b> {uchar i;</b></p><p> uchar value=0;</p><p> for(i=8;i>0;i--)&
89、lt;/p><p> {DQ=1;_nop_();_nop_();</p><p> value>>=1;</p><p> DQ=0;_nop_();_nop_();_nop_();_nop_(); //4 us</p><p> DQ=1;_nop_();_nop_();_nop_();_nop_();
90、 //4 us</p><p> if(DQ)value|=0x80;</p><p> delay(6);}//66 us</p><p><b> DQ=1;</b></p><p> return(value);}</p><p> /****************讀
91、出溫度函數(shù)************************/</p><p> uint read_temp()</p><p> { ow_reset(); //總線復(fù)位</p><p> delay(200);</p><p> write_byte(0xcc); //發(fā)命令
92、</p><p> write_byte(0x44); //發(fā)轉(zhuǎn)換命令</p><p> ow_reset(); </p><p> delay(1) write_byte(0xcc); //發(fā)命令</p><p> write_byte(0xbe);</p><p>
93、; temp_data[0]=read_byte(); //讀溫度值的第字節(jié)</p><p> temp_data[1]=read_byte(); //讀溫度值的高字節(jié)</p><p> tempX=temp_data[1];</p><p> tempX<<=8;
94、 </p><p> tempX=tempX|temp_data[0]; // 兩字節(jié)合成一個整型變量。</p><p> return tempX;} //返回溫度值</p><p> /****************溫度數(shù)據(jù)處理函數(shù)************************/<
95、/p><p> //二進(jìn)制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個</p><p> //字節(jié)的二進(jìn)制轉(zhuǎn)換為十進(jìn)制后,就是溫度值的百、十、個位值,而剩</p><p> //下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制后,就是溫度值的小數(shù)部分</p><p> /***************************************
96、*****************/</p><p> work_temp(uint tem)</p><p> {uchar n=0;</p><p> if(tem>6348) // 溫度值正負(fù)判斷</p><p> {tem=65536-tem;n=1;}
97、 // 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1</p><p> display[4]=tem&0x0f; // 取小數(shù)部分的值</p><p> display[0]=ditab[display[4]]; // 存入小數(shù)部分顯示值</p><p> s[16]=display[0]+0x30;</p><p> di
98、splay[4]=tem>>4; // 取中間八位,即整數(shù)部分的值</p><p> display[3]=display[4]/100; // 取百位數(shù)據(jù)暫存</p><p> s[12]=display[3]+0x30;</p><p> display[2]=display[4]/10%10; //
99、取十位數(shù)據(jù)暫存</p><p> s[13]=display[2]+0x30;</p><p> display[1]=display[4]%10; // 取個位數(shù)據(jù)暫存</p><p> s[14]=display[1]+0x30;</p><p> s[15]=0x2e;</p><p> /***
100、***************符號位顯示判斷**************************/</p><p> if(!display[3]) </p><p> {display[3]=0x0a; //最高位為0時不顯示</p><p> s[12]=display[3];</p><p> if(!dis
101、play[2])</p><p> {display[2]=0x0a; //次高位為0時不顯示</p><p> s[13]=display[2];}}</p><p> if(n){display[3]=0x2d;</p><p> s[12]=display[3];}}//負(fù)溫度時最高位顯示"-"
102、</p><p> /********************************************************************/</p><p> 函數(shù)void Delay_ms(uint i);實現(xiàn)功能:進(jìn)行毫秒延時</p><p> /*********************************************
103、***********************/</p><p> void Delay_ms(uint i)</p><p> { unsigned int j;</p><p> for(;i>0;i--){</p><p> for(j=0;j<125;j++)</p><p><b&
104、gt; {;}}}</b></p><p> /********************************************************************/</p><p> 函數(shù)void Start_GSM(void);實現(xiàn)功能:對TC35I進(jìn)行啟動,開啟TC35I</p><p> //功能詳述:單片機(jī)上的P3_
105、7管腳是跟TC35I的IGT管腳相連;需要啟動TC35I必須在 15腳(/IGT)加時長至少為100ms的低電平信號,</p><p> //且該信號下降沿時間小于1ms。啟動后,15 腳的信號應(yīng)保持高電平.</p><p> /********************************************************************/</p>
106、<p> void Start_GSM(void)</p><p> { P3_7=0;</p><p> Delay_ms(1000);</p><p><b> P3_7=1;</b></p><p> Delay_ms(1000);}</p><p> /****
107、****************************************************************/</p><p> 函數(shù)void UART_init;實現(xiàn)功能:對串口進(jìn)行初始化/********************************************************************/</p><p> void UART
108、_init (void)</p><p> { TMOD=0x20; //選擇定時器1</p><p> PCON=0x00;///波特率不加倍</p><p> SCON=0x50;//串行工作方式1允許串行接收</p><p> TH1=0xFD;//實驗板上晶振位11.0592MHZ,選擇波特率為9600</
109、p><p> TL1=0xFD;//在相應(yīng)計數(shù)器上賦值</p><p> EA=1;//總中斷開啟</p><p> ES=1;//串行中斷開啟</p><p> TR1=1; }//開啟定時器1</p><p> /*****************************************
110、***************************/</p><p> 函數(shù)void sendchar(uchar ch);實現(xiàn)功能:發(fā)送一字節(jié)數(shù)據(jù)</p><p> /********************************************************************/</p><p> void sendchar(u
111、char ch)</p><p> { SBUF=ch;</p><p> while(TI==0);</p><p><b> TI=0;}</b></p><p> /********************************************************************/&
112、lt;/p><p> 函數(shù)void sendstring(uchar *p);實現(xiàn)功能:通過串口發(fā)送字符串</p><p> /********************************************************************/</p><p> void sendstring(uchar *p)</p><
113、;p> { while(*p)</p><p> {sendchar(*p);</p><p><b> p++;}</b></p><p> sendchar(0x0D);</p><p> sendchar(0x0A);}</p><p> /***************
114、*****************************************************/</p><p> 函數(shù)void receive(void) interrupt 4 using 1;實現(xiàn)功能:通過串口接收數(shù)據(jù)</p><p> /*****************************************************************
115、***/</p><p> void receive(void) interrupt 4 using 1</p><p><b> { if(RI)</b></p><p> { if(Rx<RxIn)</p><p> {SystemBuf[Rx]=SBUF;</p><p>
116、<b> Rx++;}</b></p><p><b> RI=0;}}</b></p><p> /********************************************************************/</p><p> 函數(shù)void GSM_INIT(void);實現(xiàn)功能:初
117、始化TC35I模塊</p><p> /********************************************************************/</p><p> void GSM_INIT(void)</p><p><b> { LOOP:</b></p><p> De
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文基于短信回傳的溫度監(jiān)測節(jié)點設(shè)備設(shè)計
- 管道監(jiān)測系統(tǒng)畢業(yè)論文(含外文翻譯)
- android畢業(yè)論文--基于android短信平臺的管理與開發(fā)(含外文翻譯)
- 基于單片機(jī)的溫度檢測系統(tǒng)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文---基于單片機(jī)的數(shù)字溫度計設(shè)計(含外文翻譯)
- 畢業(yè)論文--基于單片機(jī)的數(shù)字溫度計設(shè)計(含外文翻譯)
- 畢業(yè)論文--基于單片機(jī)的溫度檢測系統(tǒng)(含外文翻譯)
- 畢業(yè)論文----基于fpga的uart設(shè)計(含外文翻譯)
- 煤礦用排水設(shè)備畢業(yè)論文 (含外文翻譯)
- 畢業(yè)論文--基于fpga的uart設(shè)計(含外文翻譯)
- 畢業(yè)論文---基于單片機(jī)的數(shù)字溫度計(含外文翻譯)
- 畢業(yè)論文---基于單片機(jī)的數(shù)字溫度計(含外文翻譯)
- 基于單片機(jī)的數(shù)字溫度計畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文--基于單片機(jī)的紅外溫度測量系統(tǒng)(含外文翻譯)
- 畢業(yè)設(shè)計--dvd生產(chǎn)線自動裝箱設(shè)備設(shè)計(含外文翻譯)
- 溫室大棚環(huán)境溫度的控制畢業(yè)論文(含外文翻譯)
- 畢業(yè)設(shè)計 —dvd生產(chǎn)線自動裝箱設(shè)備設(shè)計(含外文翻譯)
- 溫度控制系統(tǒng)的設(shè)計-畢業(yè)論文外文翻譯
- 機(jī)床夾具設(shè)計畢業(yè)論文(含外文翻譯)
- flash畢業(yè)論文(含外文翻譯)
評論
0/150
提交評論