久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 27914|回復: 2
打印 上一主題 下一主題
收起左側

基于GSM的遠程家庭智能報警系統(tǒng)設計資料

[復制鏈接]
跳轉到指定樓層
樓主
ID:161768 發(fā)表于 2017-5-21 17:59 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
摘要
隨著生活水平的提高,人們對自我財產(chǎn)的保護意識逐漸增強,同時伴隨著現(xiàn)代科技逐步走進人們的生活,智能家居應運而生。報警系統(tǒng)作為智能家居的一部分備受人們重視,而市場上的報警系統(tǒng)的設計雖日漸成熟,但依然有缺陷。本設計獨辟蹊徑,運用加速度傳感器作為主要感知層,這樣不用限制門窗的材質,使報警系統(tǒng)更加完善。
              本設計針對現(xiàn)有的GSM無線網(wǎng)絡,介紹了基于GSM的遠程家庭智能報警系統(tǒng)的設計及實現(xiàn)方法。利用各種傳感器,如溫濕度傳感器、加速度傳感器等對家中可能出現(xiàn)的各種意外情況進行采集,并通過組建的家中內(nèi)部無線網(wǎng)絡及時向單片機進行中斷報警。GSM模塊在單片機控制下,利用GSM網(wǎng)絡,將各種報警信息通過短信的方式發(fā)送到預先設定的手機中,達到了遠程無線智能報警的功能。同時,本文在對加速度信號的處理上,采用新的方法,即使用加速度平均值,并設定參考點的思路和方法,有效避免了漏報、誤報現(xiàn)象的產(chǎn)生,是系統(tǒng)更加穩(wěn)定。經(jīng)過測試,該系統(tǒng)經(jīng)濟、可靠、穩(wěn)定性高。家庭無需為傳感器布線,具有廣泛的市場推廣價值。

目錄
1 引言
1.1 國內(nèi)外現(xiàn)狀
1.2 設計目的與意義
1.3 系統(tǒng)結構流程圖
2 硬件設計
2.1 傳感器的選型
2.1.1 MMA7455I加速度傳感器
2.1.2              DHT11溫度傳感器
2.2 PT2262/2272無線收發(fā)模塊
2.3 AT89S52單片機模塊
2.3.1              AT89S52單片機概述
2.3.2              AT89S52單片機的典型功能
2.4 GSM模塊
3 軟件設計
3.1系統(tǒng)軟件設計的總體思路
3.1.1主函數(shù)軟件設計流程圖
3.1.2 基于C語言的程序調(diào)試
3.2 系統(tǒng)各功能模塊的軟件設計
3.2.1 溫度傳感器DHT11的軟件設計
3.2.2 加速度傳感器MMA7455的軟件設計
3.2.3 IIC通訊協(xié)議
3.2.4 液晶顯示的軟件設計
3.2.5 GSM模塊中的AT指令
4 系統(tǒng)調(diào)試
4.1液晶顯示
4.2 GSM的調(diào)試
4.3加速度傳感器的調(diào)試
4.4 DHT11溫濕度傳感器
5 總結與展望
5.1總結
5.2展望
參考文獻
致謝
附錄一 原理圖
附錄二 程序



                            1 引言1.1 國內(nèi)外現(xiàn)狀
              在目前國內(nèi)現(xiàn)代化居住格局日益封閉的情況下,財產(chǎn)安全問題顯得尤為重要。當前安全防范及報警系統(tǒng)是確保住宅、財產(chǎn)安全的重要的途徑之一,同時也是數(shù)字化家庭的重要組成部分。當遇到盜竊、失火、煤氣泄漏等緊急情況時,及時通過通信系統(tǒng)完成報警以及提示就顯得尤為必要。
目前的、家居報警系統(tǒng)領域多用到開關振動、超聲波、紅外探測、門磁開關等類型的傳感器,其在應用過程中暴露出諸多的缺點:首先,傳感器價格昂貴,體積龐大,難以集成。比如超聲波傳感器,體積大,市場價在8 元左右,操作復雜,易受干擾;其次,誤報現(xiàn)象比較嚴重,困擾人們的生活,比如我們家里面電車或者汽車上常用的震動型傳感器,在人不小心碰到時就會發(fā)出刺耳的警笛聲,雖然起到了一定的報警作用,但是給人的生活帶來很大困擾,并且當人距離報警聲音傳播范圍之外時,亦無法知道車輛的安全狀況。另外,市場上并沒有一種專業(yè)的報警系統(tǒng),能讓人隨時隨地的知道家庭公司等安全狀況,并能夠顯示警情位置,警情級別等。
同時大多數(shù)的報警系統(tǒng)采用紅外傳感器和門磁開關配合使用,而門磁開關主要由開關和磁鐵兩部分組成,開關部分由磁簧開關經(jīng)引線連接。定型封裝而成;磁鐵部分由對應的磁場強度的磁鐵封裝于塑膠或合金殼體內(nèi)。當兩者分開或接近至一定距離后,引起開關的開斷從而感應物體。因而門磁開關只適合非鐵質的門或窗,但現(xiàn)代家居設計中,大部分使用的都是鐵質合金,門磁開關的應用范圍大大地受限。
1.2 設計目的與意義
              基于單片機的智能家居防盜系統(tǒng)著重于對家中涉及安全的因素進行監(jiān)控和報警,用到的傳感器有加速度傳感器、溫度傳感器、煙霧傳感器;控制期間使用AT89S51單片機;并且采用無線網(wǎng)絡GSM節(jié)點,采用直接發(fā)送短信或撥打電話的方式直接向戶主報警。使得報警更加快捷方便,同時不用布線,避免了維修的復雜性。
同時本設計介紹了一種由嵌入式報警主機、無線發(fā)射裝置,手機終端,無線傳感器網(wǎng)絡節(jié)點構成的智能報警系統(tǒng)。
首先本系統(tǒng)采用新型的加速度傳感器,能夠將門窗的震動和移動兩種狀態(tài)區(qū)別開來,當門窗產(chǎn)生震動而沒有發(fā)生位移時,通過程序計算沒有達到位移門限就判斷為沒有異常情況發(fā)生。當門窗發(fā)生移動時,說明家中可能已經(jīng)被盜處以較危險的情況,此時告知戶主,拉響警笛,這樣就解決了傳統(tǒng)報警系統(tǒng)給人們生活帶來的干擾。
同時我們將溫度傳感器布防在廚房、客廳的等地方,通過無線通信技術形成一個傳感器網(wǎng)絡,與家庭嵌入式主機系統(tǒng)通信。當某個傳感器被觸發(fā)時,就會向主機發(fā)送信號,主機通過接收到的信號判斷警情地址,警情級別做出相應的判斷后,通過GSM模塊兒發(fā)送相應的信息,信息被手機捕獲經(jīng)軟件分析后,發(fā)出語音告知機主。
1.3 系統(tǒng)結構流程
本設計主要由三大部分組成,分別為:感知網(wǎng)絡、控制主機、客戶終端。該框圖詳細的說明了該設計的工作流程,我們的產(chǎn)品分為兩部分,有家庭傳感器節(jié)點組成的感知網(wǎng)絡,傳感器信號經(jīng)MCU分析后由2262配置一個唯一的地址,將信號發(fā)給家庭主機,經(jīng)分析后經(jīng)GSM模塊向手機發(fā)射出相應的語音報警信息,告知機主。
                            圖1-1 系統(tǒng)結構流程圖


2 硬件設計
              本系統(tǒng)的硬件主要是由傳感器網(wǎng)路、PT2262/2267無線收發(fā)模塊、MCU控制器、GSM模塊組成。下圖是總體硬件結構:
圖2-1 系統(tǒng)硬件結構
傳感器部分主要是采集家中安全信息,如溫度、門窗的移動情況,而本設計最有特色的部分也在于傳感器的選擇,采用新型的加速度傳感器,使防盜模塊更完善;AT2262/2272是用于無線連接傳感器與單片機的部分,此部分避免了防盜系統(tǒng)大量的布線工作;單片機主要是對采集信息的處理、判斷并做出相應的處理過程,是整個系統(tǒng)的大腦;GSM模塊主要是用于聯(lián)系用戶,現(xiàn)代在手機十分普及的背景下,采用GSM模塊進行短息或語音通話直接通知戶主家庭安全情況,會非?旖,使得家中安全情況得到及時處理。下面對各部分硬件進行詳細說明。
2.1 傳感器的選型2.1.1 MMA7455I加速度傳感器
2.1.1.1MMA7455工作原理及引腳功能
本設計使用的是飛思卡爾公司的MMA7455I,飛思卡爾公司有穩(wěn)定的人員隊伍。該公司在全球30個國家擁有24000 多名研發(fā)和設計人員,人員結構知識化,年輕化,有穩(wěn)定的教師和輔助人員隊伍。其中,天津飛思卡爾公司擁有 40 多名研發(fā)和設計人員,90%以上擁有研究生學歷。
該公司在全球30個國家擁有多家公司。飛思卡爾全球有9個全資生產(chǎn)工廠,一個合營生產(chǎn)設施,還有與第三方生產(chǎn)商建立的諸多合作關系等。飛思卡爾根據(jù)輕資產(chǎn)(asset-light)戰(zhàn)略,有選擇地將內(nèi)部生產(chǎn)能力集中在處于領先地位的細分化或專業(yè)加工工藝上,由第三方工廠提供標準工藝技術,作為內(nèi)部資源的補充。1992 年,飛思卡爾公司開始在天津開展業(yè)務,包括在天津的封裝和測試運行部門,北京、蘇州和天津3個研發(fā)中心,北京、上海和深圳3個銷售辦事處。天津工廠成立于 1992 年,是飛思卡爾擁有的兩個大型芯片測試和封裝工廠之一。該工廠占地 400,000 平方英尺,從 2001 年開始投入生產(chǎn)。工廠每周生產(chǎn)超過 900 萬個微控制器、混合信號和射頻設備。該公司可提供生產(chǎn)實習、設計的實習設備和場地。
飛思卡爾公司有堅實的科研和技術生產(chǎn)活動。該公司的客戶包括摩托羅拉的個人通訊事業(yè)部,以及一些其它消費和汽車電子廠商。2006年,飛思卡爾在下列領域居于市場領先地位:汽車(全球汽車半導體產(chǎn)品市場份額位居第一)、網(wǎng)絡(全球網(wǎng)絡通信處理器市場份額第一;全球用于蜂窩基站的射頻功率產(chǎn)品市場份額位居第一)、工業(yè)控制器、消費電子產(chǎn)品(微控制器和嵌入式處理器市場份額位居第二)和無線產(chǎn)品(無線通信應用專用標準產(chǎn)品市場份額位居第四;蜂窩手機數(shù)字基帶半導體產(chǎn)品全球市場份額位居第四)。公司為客戶提供廣泛多樣的輔助設備,連接各種產(chǎn)品、網(wǎng)絡和真實世界的信號(如聲音、振動和壓力等)。產(chǎn)品包括傳感器、射頻半導體、功率管理及其它模擬和混和信號集成電路。飛思卡爾全球現(xiàn)有1萬個終端客戶,其中包括由公司自己的銷售隊伍服務的100多家知名的原始設備生產(chǎn)商,以及通過數(shù)千個代理商網(wǎng)絡服務的其他終端客戶。2004年,摩托羅拉半導體部成為飛思卡爾半導體。例如,開發(fā)出了許多關鍵產(chǎn)品類別,包括通信處理器、微控制器、固態(tài)加速度傳感器、蜂窩式半導體和模塊等。摩托羅拉半導體部一直引領加工工藝技術的發(fā)展,從率先使用200毫米硅片、銅連線技術、絕緣體上的硅芯片(SOI)到硅鍺碳,為客戶帶來了性能更高、性能更低的產(chǎn)品。因此選用飛思卡爾公司的傳感器是十分可靠的選擇。
MMA7455是一款數(shù)字輸出(I2C/SPI)、低功耗、緊湊型電容式微機械加速度計,具有信號調(diào)理、低通濾波器、溫度補償、自測、可配置通過中斷引腳(INT1或INT2)檢測0g,以及脈沖檢測(用于快速運動檢測)等功能。0g 偏置和靈敏度是出廠配置,無需外部器件?蛻艨墒褂弥付ǖ0g 寄存器和g-Select 量程選擇對0g 偏置進行校準, 量程可通過命令選擇 3 個加速度范圍(2g/4g/8g)。MMA745xL 系列具備待機模式,使它成為以電池為電源的手持式電子器件的理想選擇。MMA7455 數(shù)字三軸加速度傳感器模塊核心為飛思卡爾公司的MMA7455L數(shù)字三軸加速度傳感器,該模塊設計使用官方推薦設計,板卡線路經(jīng)過高電磁兼容設計和優(yōu)化,具有輸出精確,體積小,工作可靠,各種標識清晰,擴展性好等特點。MMA7455L 芯片安裝在帶DIP 插腳的印刷電路板(PCB)上,它允許客戶將其集成到特定的設計應用對產(chǎn)品進行評估。這樣客戶就能夠在他們自己硬件和軟件環(huán)境內(nèi)靈活地評估器件。
MMA7455I是三軸小量程加速傳感器是檢測物件運動和方向的傳感器,它根據(jù)物件運動和方向改變輸出信號的電壓值。后面的圖片示出了它們的關系。各軸的信號在不運動或不被重力作用的狀態(tài)下(0g),其輸出為1.65V。如果沿著某一個方向活動,或者受到重力作用,輸出電壓就會根據(jù)其運動方向以及設定的傳感器靈敏度而改變其輸出電壓。用單片機的IIC/SPI接口方式讀取數(shù)值,就可以檢測其運動和方向。
圖2-2 MMA7455實物圖
各引腳功能:
Pin:輸入電壓,同時可以接到單片機AD參考電壓端;
Pin2:(可選)5V電源;
Pin3、GND:電源地;
Pin456、NC:懸空管腳;
Pin7、CS:SPI片選管腳,低電平有效;
Pin8、INT1:中斷1/數(shù)據(jù)準備就緒;
Pin9、INT2:中斷2;
Pin10、MISO:SPI管腳MISO;
Pin11、MOSI:SPI管腳MOSI;
Pin12、CLK:SPI管腳CLK;

圖2-3 MMA7455的外圍電路

2.1.1.2用加速度傳感器測量位移的原理與誤差分析
              MMA7455I是一種差容式伺服加速度傳感器,它采用先進的集成電路表面加工技術,將敏感元件和信號調(diào)理電路集成在單片集成電路上,組成一個完整的加速度測量系統(tǒng).安裝時使加速度傳感器的敏感方向與門窗運動的方向平行,由于重力加速度g 的作用,當加速度傳感器不運動時,其輸出為1g,即傳感器的零點偏置不是0,此時加速度輸出值現(xiàn)對于參考點的位置有正有負。
              設a(t),v(t),d(t)和T分別是門或窗運動的加速度、速度、位移和采樣的總周期,g(t)為重力加速度。當門或窗運動時,水平方向的加速度傳感器的輸出為:
A(t)=a(t)(2-1)
此時g(t)的變化是很小的,可看做是常數(shù)。作零點校正一般采用測量前先存儲零點值,計算時將測量值減去零點值的方法。這里根據(jù)門窗運動的特點,提出一種簡單方便的方法,用這種方法可以實現(xiàn)加速度傳感器的動態(tài)零點校正。
由于加速度傳感器的輸出采用了零點校正,因而只需考慮門窗運動的加速度積分得門窗運動的速度。

                   (2-2)

若將看成下始點的初始速度,則于是同樣,位移可以通過對速度積分得到

                  (2-3)

那么門窗的相對位移用加速度傳感器測量位移的算法可簡要表述為:
將一個周期的加速度的測量值減去其平均值,令邊界條件為零,對修正后的加速度積分得到速度,將所求速度減去其平均值,令邊界條件為零,對修正后的速度積分即得到相對位移。
2.1.2              DHT11溫度傳感器
本設計使用的是溫濕度傳感器DHT11,DHT11 數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。它應用專用的數(shù)字模塊采集技術和溫濕度傳感技術,確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC 測溫元件,線性溫度傳感器是線性化輸出負溫度系數(shù)(簡稱NTC)熱敏元件,它實際上是一種線性溫度-電壓轉換元件,就是說通以工作電流(100ua)條件下,元件電壓值隨溫度呈線性變化,實現(xiàn)了非電量到電量線性轉換。并與一個高性能8 位單片機相連接。因此該產(chǎn)品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優(yōu)點。

圖2-4 DHT11實物圖
每個DHT11 傳感器都在極為精確的濕度校驗室中進行校準。校準系數(shù)以程序的形式儲存在OTP 內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20 米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。
綜上所述,DHT11可以測量相對濕度和溫度,可以全部校準,并且直接轉換成數(shù)字信號輸出,此模塊具有卓越的長期穩(wěn)定性,無需額外添加部件,可以實現(xiàn)超長的信號傳輸距離,超低能耗,是四腳安裝的,可以完全實現(xiàn)互換。
DHT11的應用范圍有暖通空調(diào)設備、汽車領域、消費品、氣象站、濕度調(diào)節(jié)器、測試及檢測設備、數(shù)據(jù)記錄器、自動控制、家電領域、醫(yī)療器械等等。在本設計中,DHT11主要是用來監(jiān)測室內(nèi)溫度狀況,當家中有火災發(fā)生時,居室中溫度升高,當溫度超過一定的溫度閥值時,溫度信號被傳感器采集到發(fā)送給單片機,單片機經(jīng)過處理、判斷,執(zhí)行報警,有效地避免災情進一步發(fā)生。
表2-1 DHT11的性能說明
參數(shù)
條件
Min
Typ
Max
單位
分辨率

1
1
1
8
8
8
Bit
重復性


±1

精度

±1

±2
量程范圍

0

50
響應時間
1/e(63%)
6

50
S
使用DHT11時需要注意避免結露情況下使用。長期保存條件是在10-40℃,同時濕度需在60%。超出建議的工作范圍可能導致高達3%RH的臨時性漂移信號。返回正常工作條后,傳感器會緩慢地向校準狀態(tài)恢復,要加速恢復進程。在非正常工作條件下長時間使用會加速產(chǎn)品的老化過程。
表2-2 DHT11各管腳功能
Pin
名稱
注釋
1
VDD
供電 3—5.5VDC
2
DATA
串行數(shù)據(jù),單總線
3
NC
空腳,懸空
4
GND
接地,電源負極
              氣體的相對濕度,在很大程度上依賴于溫度。因此在測量濕度時,應盡可能保證濕度傳感器在同一溫度下工作。如果與釋放熱量的電子元件共用一個印刷線路板,在安裝時應盡可能將DHT11遠離電子元件,并安裝在熱源下方,同時保持外殼的良好通風。為降低熱傳導,DHT11與印刷電路板其它部分的銅鍍層應盡可能最小,并在兩者之間留出一道縫隙。長時間暴露在太陽光下或強烈的紫外線輻射中會使性能降低。DATA信號線材質量會影響通訊距離和通訊質量,推薦使用高質量屏蔽線。手動焊接,在最高260℃的溫度條件下接觸時間須少于10秒。

圖2-5 DHT11應用電路

              此電路即為本設計中DHT11的應用電路。當傳輸距離小于20米時使用5K的上拉電阻,當傳輸距離大于20米時上拉電阻做相應的改變。
DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當前小數(shù)部分用于以后擴展,現(xiàn)讀出為零。操作流程如下:
一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和數(shù)據(jù)傳送正確時校驗和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結果的末8位。
  • 其通訊過程如下如所示

圖2-6 通訊過程

              總線空閑狀態(tài)為高電平,主機把總線拉低等待DHT11響應,主機把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結束,然后發(fā)送80us低電平響應信號。主機發(fā)送開始信號結束后,延時等待20-40us后,讀取DHT11的響應信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。
用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發(fā)送響應信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分數(shù)據(jù)。從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進行溫濕度采集。采集數(shù)據(jù)后轉換到低速模式。

圖2-7 開始傳送數(shù)據(jù)

總線為低電平,說明DHT11發(fā)送響應信號,DHT11發(fā)送響應信號后,再把總線拉高80us,準備發(fā)送數(shù)據(jù),每一位數(shù)據(jù)都以50us低電平時隙開始,高電平的長短定數(shù)據(jù)位是0還是1。格式見下面圖示,如果讀取響應信號為高電平,則DHT11沒有響應,請檢查線路是否連接正常。當最后一位數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高,進入空閑狀態(tài)。

圖2-8 數(shù)字0信號表示方法

圖2-9 數(shù)字1信號表示方法

測量分辨率分別為 8bit(溫度)、8bit(濕度)。上面各圖說明了DHT11在工作時的時序圖,也有助于之后編程時調(diào)用延時的時間。
2.2 PT2262/2272無線收發(fā)模塊
              由于本設計成本和本人的能力有限,在本設計的實際硬件中沒有用到此模塊,但這一模塊在原始設計的理念中是不可或缺的一部分,因為這一部分可以有效避免不必要的布線問題,同時也便于傳輸出現(xiàn)故障時進行有效快捷的維修。因此,在此文中對這一模塊進行詳細地說明是十分必要的,同時也可提高我的知識面。
              PT2262/2272是臺灣普城公司生產(chǎn)的一種CMOS工 藝制造的低功耗低價位通用編解碼電路,PT2262/2272最多可有12位(A0-A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441地址碼,PT2262最多可有6位(D0-D5)數(shù)據(jù)端管腳,設定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無線遙控發(fā)射電路。
編碼芯片PT2262發(fā)出的編碼信號由:地址碼、數(shù)據(jù)碼、同步碼組成一個完整的碼字,解碼芯片PT2272接收到信號后,其地址碼經(jīng)過兩次比較核對后,VT腳才輸出高電平,與此同時相應的數(shù)據(jù)腳也輸出高電平,如果發(fā)送端一直按住按鍵,編碼芯片也會連續(xù)發(fā)射。當發(fā)射機沒有按鍵按下時,PT2262不接通電源,其17腳為低電平,所以315MHz的高頻發(fā)射電路不工作。當有按鍵按下時,PT2262得電工作,其第17腳輸出經(jīng)調(diào)制的串行數(shù)據(jù)信號,當17腳為高電平期間315MHz的高頻發(fā)射電路起振并發(fā)射等幅高頻信號,當17腳為低平期間315MHz的高頻發(fā)射電路停止振蕩,所以高頻發(fā)射電路完全收控于PT2262的17腳輸出的數(shù)字信號,從而對高頻電路完成幅度鍵控(ASK調(diào)制)相當于調(diào)制度為100%的調(diào)幅。

圖2-10 PT2262 無線發(fā)射模塊

2262無線發(fā)射模塊電路圖,該電路由A0……A5可以配置該芯片地址,當2272的設置的地址與其相標配時,才能接收到信號?刂艱0……D7的高低電平配置可以發(fā)相應的數(shù)據(jù),比如我們可以經(jīng)D0口經(jīng)過模擬電路與單片機相連,此時若P1^0口為高電平此時2262工作,并將D0高電平的信號發(fā)射出,經(jīng)2272解碼后將信息翻譯處理來。發(fā)射電路有DOUT口經(jīng)驅動電路經(jīng)紅外發(fā)射頭發(fā)出。

圖2-11 PT2272無線接收模塊

U12為一體化紅外接收頭,接收到信號后,經(jīng)2272解碼,將信息經(jīng)D0……D3口輸出,我們通過電路設置使不同的傳感器電路,觸發(fā)2262不同的數(shù)據(jù)I/O口,這樣單片機通過采集2272的數(shù)據(jù)接口就可以知道報警傳感器的位置,從而坐車相應的處理。

圖2-12 PT2272 無線接收模塊

設置地址碼的原則是:同一個系統(tǒng)地址碼必須一致;不同的系統(tǒng)可以依靠不同的地址碼加以區(qū)分。
PT2262/2272芯片的地址碼的設定:在通常使用中,一般采用8位地址碼和4位數(shù)據(jù)碼,這時編碼電路PT2262和解碼PT2272的第1~8腳為地址設定腳,有三種狀態(tài)可供選擇:懸空、接正電源、接地三種狀態(tài),3的8次方為6561,所以地址編碼不重復度為6561組,只有發(fā)射端PT2262和接收端PT2272的地址編碼完全相同,才能配對使用,例如將發(fā)射機的PT2262的第2腳接地第3腳接正電源,其它引腳懸空,那么接收機的PT2272只要第2腳接地第3腳接正電源,其它引腳懸空就能實現(xiàn)配對接收。當兩者地址編碼完全一致時,接收機對應的D1~D4端輸出約4V互鎖高電平控制信號,同時VT端也輸出解碼有效高電平信號。用戶可將這些信號加一級三極管放大,便可驅動繼電器等負載進行遙控操縱。
2.3 AT89S52單片機模塊2.3.1              AT89S52單片機概述
單片機是把組成微型計算機的各個功能部件,如中央處理器、隨機存儲器、只讀存儲器、I/O接口電路、定時器/計數(shù)器以及串行通信接口電路等集成在一塊芯片上,構成
一個完整的微型計算機。通用計算機系統(tǒng)的技術要求是高速、海量的數(shù)值計算;技術發(fā)展方向是總線速度的無限提升,存儲容量的無限擴大。而嵌入式計算機系統(tǒng)的技術要求則是對象的智能化控制能力;技術發(fā)展方向是與對象系統(tǒng)密切相關的嵌入性能、控制能力與控制的可靠性。比較普通計算機和嵌入式計算機的差異,說明這是由于它們應用場合和應用環(huán)境的不同而造成的,而單片機則屬于低端嵌入式計算機。
單片機的硬件簡單,字長一般為8位,也有16位的,存儲空間最小。集成的片內(nèi)外設比較豐富。由于硬件的局限性,導致軟件上就不能太大,采集速度低。難以完成復雜的實時運算。單循環(huán)式,一般沒有操作系統(tǒng)。
單片機具有小巧靈活、成本低、易于產(chǎn)品化。它能方便地組裝成各種智能式控制設備以及各種智能儀表。面向控制,能針對性地解決從簡單到復雜的各類控制任務,從而獲得最佳性價比?垢蓴_能力強,適應溫度范圍寬,在各種惡劣條件下都能可靠地工作,這是其它機型所無法比擬的?梢院芊奖愕貙崿F(xiàn)多機和分布式控制,使整個系統(tǒng)的效率和可靠性大為提高。
單片機的應用場合也非常廣泛,小巧靈活、成本低、易于產(chǎn)品化。它能方便地組裝成各種智能式控制設備以及各種智能儀表。面向控制,能針對性地解決從簡單到復雜的各類控制任務,從而獲得最佳性價比?垢蓴_能力強,適應溫度范圍寬,在各種惡劣條件下都能可靠地工作,這是其它機型所無法比擬的?梢院芊奖愕貙崿F(xiàn)多機和分布式控制,使整個系統(tǒng)的效率和可靠性大為提高。機電一體化產(chǎn)品是集機械技術、微電子技術、自動化技術和計算機技術于一體,具有智能化特征的各種機電產(chǎn)品。單片機在機電一體化產(chǎn)品的開發(fā)中可以發(fā)揮巨大的作用。典型產(chǎn)品如機器人、數(shù)控機床、自動包裝機、點鈔機、醫(yī)療設備、打印機、傳真機、復印機等。家用電器是單片機的又一重要應用領域,前景十分廣闊。如空調(diào)器、電冰箱、洗衣機、電飯煲、高檔洗浴設備、高檔玩具等。另外,在交通領域中,汽車、火車、飛機、航天器等均有單片機的廣泛應用。如汽車自動駕駛系統(tǒng)、航天測控系統(tǒng)、黑匣子還有分式系統(tǒng)的前端模塊等等。
ATMEL公司生產(chǎn)的具有Flash ROM的增強型51系列單片機目前在市場上仍然十分流行,其中AT89S系列十分活躍。AVR單片機是ATMEL在90年代推出的精簡指令集RISC的單片機,跟PIC類似。使用哈佛結構。是增強型RISC內(nèi)載Flash的單片機。AVR的單片機廣泛應用于計算機外部設備,工業(yè)實時控制,儀器儀表,通訊設備,家用電器,宇航設備等各個領域。
近年來單片機的發(fā)展非常快,縱觀單片機的現(xiàn)狀及歷史,其發(fā)展趨勢正朝著大容量、
高性能化、小容量低價格化、外圍電路內(nèi)裝化、多品種化及增強I/O接口功能、降低功
耗等方面發(fā)展。為滿足不同的用戶要求,各公司競相推出能滿足不同需要的產(chǎn)品。
在CPU的功能上更加完善和強大,比如采用雙CPU結構,提高處理能力,增加數(shù)據(jù)總線的寬度,使處理數(shù)據(jù)的能力明顯優(yōu)于一般的8位單片機,同時采用流水線結構和RISC體系結構。在存儲器方面加大存儲容量,實行程序保密化。現(xiàn)在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,可實現(xiàn)的功能就越強大。甚至單片機廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機芯片。
MCS-51系列的8031推出時的功耗達630MW,而現(xiàn)在的單片機普遍都在100MW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。80C51就采用了HMOS(即高密度金屬氧化物半導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于在要求低功耗電池供電的應用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。
本設計中使用的是AT89S52單片機。AT89S52為 ATMEL 所生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flsah存儲器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。
AT89S52主要功能列舉如下:擁有靈巧的8位CPU和在系統(tǒng)可編程Flash晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)、內(nèi)部程序存儲器(ROM)為8KB、內(nèi)部數(shù)據(jù)存儲器(RAM)為256字節(jié)、32個可編程I/O口線、8個中斷向量源、三個16位定時器/計數(shù)器、三級加密程序存儲器、全雙工UART串行通道。
AT89S52單片機的特性是與MCS-51 兼容、擁有4K字節(jié)可編程閃爍存儲器,它的壽命一般為1000寫/擦循環(huán)、數(shù)據(jù)保留時間為10年、全靜態(tài)工作時工作頻率是0Hz-24Hz、擁有三級程序存儲器鎖定和128*8位內(nèi)部RAM、32可編程I/O線、兩個16位定時器/計數(shù)器、5個中斷源 、可編程串行通道、低功耗的閑置和掉電模式、片內(nèi)振蕩器和時鐘電路。

圖2-13 AT89S52單片機
2.3.1.1AT89S52單片機管腳說明
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口同時為閃爍編程和編程校驗接收一些控制信號。
表2-3 P3口特殊功能口
管腳
I/O口
備選功能
10
P3.0
RXD(串行輸入口)
11
P3.1
TXD(串行輸出口)
12
P3.2
INT0(外部中斷0)
13
P3.3
INT1(外部中斷1)
14
P3.4
T0(記時器0外部輸入)
15
P3.5
T1(記時器1外部輸入)
16
P3.6
WR(外部數(shù)據(jù)存儲器寫選通)
17
P3.7
RD(外部數(shù)據(jù)存儲器讀選通)
:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。
外部程序存儲器的選通信號。在由外部程序存儲器取指令期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。
:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,EA將內(nèi)部鎖定為RESET;當EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源。
:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。
:來自反向振蕩器的輸出。

2.3.1.2 AT89S52單片機的振蕩器特性和芯片擦除:
XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。
整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。
此外,AT89C52設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。
2.3.2              AT89S52單片機的典型功能
2.3.2.1 中斷系統(tǒng)
              中斷系統(tǒng)是計算機中的一項很重要的技術。中斷系統(tǒng)的主要功能是為了解決快速CPU與慢速的外設之間的矛盾,它是由硬件和軟件組成的。有了中斷系統(tǒng),能使計算機的功能更強、效率更高、使用更加靈活方便。下面簡單介紹中斷系統(tǒng)的組成、處理過程及其應用。
              52單片機總共有6個中斷源。外部中斷有/INT0、/INT1,其中中斷請求是由P3.3、P3.3引腳輸入的,可選擇低電平有效或沿下降沿有效。內(nèi)部中斷源有T0、T1、T2溢出中斷和串行口中斷源。不同的中斷源有不同的中斷矢量,當某個中斷源的中斷請求被響應后,CPU將通過硬件自動地把相應的中斷源的中斷入口地址裝入PC中,即從此地址開始執(zhí)行中斷服務程序。因此,使用時一般在此地址單元中存放一條跳轉指令,當CPU響應中斷是,使單片機自動執(zhí)行相應的入口地址的跳轉指令,然后再通過該跳轉指令至用戶安排的中斷服務程序的入口處。
表2-4 中斷入口地址
中斷源
中斷入口地址
/INT0(外部中斷0)
0003H
T0(定時器0)
000BH
/INT1(外部中斷1)
0013H
T1(定時器1)
001BH
串口輸入/輸出
0023H
定時器2
002BH
              中斷處理過程分為三個階段,即中斷響應、中斷處理、中斷返回。下圖為中斷響應過程中硬件自動完成的流程圖,如果中斷響應條件滿足,而且不存在中斷受阻,CPU將響應中斷呢。在此情況下,CPU首先使被響應中斷的“優(yōu)先級激活”觸發(fā)器置位,以阻斷同級和低級的中斷。

圖2-14 中斷響應過程
然后,根據(jù)中斷源的類別,在硬件的控制下內(nèi)部自動形成長調(diào)用指令,此指令的作用是:首先自動將斷點壓入堆棧,但不自動保存PSW的內(nèi)容,然后將對應的中斷源的入口地址裝入程序計數(shù)器。            
CPU中斷響應結束后即轉到中斷服務程序的入口地址,從執(zhí)行中斷服務程序的第一條指令開始到執(zhí)行RETI返回指令為止,這個過程成為中斷處理或中斷服務。

2.3.3.2單片機串行口
              串口通信是計算機與外界交換信息的一種基本通信方式。52單片機中的串行接口是一個全雙工通信接口,即能同時進行數(shù)據(jù)的發(fā)送和接收。它可作偽通用異步接收和發(fā)送器使用,也可以用作同步移位寄存器,其幀格式和波特率均可通過軟件編程設置,在使用上非常方便靈活。
              串行通信的基本特征是數(shù)據(jù)逐位順序進行傳送串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號電平等)不同,形成了多種串行通信的協(xié)議與接口標準。
              單片機接收數(shù)據(jù)的過程是:當CPU允許接收(即SCON的REN位置“1”)且接收中斷標志RI復位時,就啟動一次接收過程。接收數(shù)據(jù)時,外界數(shù)據(jù)通過引腳P3.0(RXD)串行輸入,數(shù)據(jù)的最低位首先進入輸入移位寄存器,一幀數(shù)據(jù)接收完畢再并行送入到緩沖器SBUF中,同時將接收中斷標志RI置“1”。當用軟件將輸入的數(shù)據(jù)讀走并將RI復位后,才能再開始下一幀數(shù)據(jù)的傳送。
              發(fā)送數(shù)據(jù)的過程為:當發(fā)送中斷標志位TI復位后,CPU執(zhí)行任何一條寫SBUF指令,就啟動一次發(fā)送過程。CPU在執(zhí)行寫SBUF指令的同時啟動發(fā)送控制器開始發(fā)送數(shù)據(jù),被發(fā)送的數(shù)據(jù)由TXD引腳串行輸出,首先輸出最低位,當一幀數(shù)據(jù)發(fā)送完即發(fā)送緩沖器空時,CPU自動將發(fā)送中斷標志TI置1,當軟件將TI復位時,同時又將下一個數(shù)據(jù)寫入數(shù)據(jù)緩沖器后,CPU再次重復上述過程直到數(shù)據(jù)發(fā)送完成。
2.4 GSM模塊
              本設計使用的是西門子公司生產(chǎn)的TC35i。TC35i是Siemens公司推出的無線通信GSM模塊,可以快速安全可靠的實現(xiàn)數(shù)、語音傳輸、短消息服務(SMS)和傳真。模塊工作電壓為3.3—5.5V,可以工作在900MHz和1800MHz兩個頻段,所在頻段功耗分別為2W(900MHz)和1W(1800MHz)。模塊有AT命令集接口,支持文本和PDU模式的短消息、第三組的二類傳真、以及2.4K、4.8K、9.6K的非透明模式。此外,該模塊還具有電話簿功能、多方通話、漫游檢測功能,常用的工作模式由省電模式、IDLE、TALK等模式。通過獨特的40引腳的ZIF連接器,可分別連接SIM卡支架和天線。TC35i模塊主要由GSM基帶處理器、GSM射頻模塊、供電模塊、閃存、ZIF連接器、天線接口留部分組成。作為TC35i的核心,基帶處理器主要處理GSM終端內(nèi)的語音、數(shù)據(jù)信號,并涵蓋了蜂窩射頻設備中的所有的模塊和數(shù)字功能。在不需要額外硬件電路的前提下,可支持FR、HR、EFR語音信道編碼。
目前,國內(nèi)已經(jīng)開始使用的GSM模塊有很多,而且這些模塊的功能、用法差別不大。本設計采用西門子TC35 系列的TC35i,這種無線模塊功能上與TC35 兼容,設計緊湊,大大縮小了用戶產(chǎn)品的體積。TC35i 與GSM2/2 兼容、雙頻(GSM900/GSM1800)、RS232 數(shù)據(jù)接口,該模塊及射頻電路和基帶與一體,向用戶提供標準的AT 命令接口,為數(shù)據(jù)、語音、短消息和傳真提供快速、可靠、安全的傳輸,方便用戶的應用開發(fā)及設計。
              TC35i 模塊主要由GSM基于處理器、GSM射頻模塊、供電模塊、閃存、ZIF 連接器、天線接口六部分組成。通過ZIF 連接器與單片機實現(xiàn)電路接口,該接口讀取或發(fā)送TC35i 模塊中的數(shù)據(jù),將是本文論述的重點,也是TC35i 應用的核心。
單片機與TC35i 的軟件接口其實就是單片機通過AT 指令控制手機的控制技術,首先設置TC35i 模塊的工作模式:AT+CMGF=n,n=0 為PDU模式;n=1 為文本模式;通常設置為PDU 模式,在這種模式下,能傳送或接受透明數(shù)據(jù)(用戶自定義數(shù)據(jù))。AT+CMGR=n 為讀TC35i 模塊短消息數(shù)據(jù),n 為短消息號。AT+CMGL=n為列出TC35i 模塊內(nèi)的短消息,n=0 是未讀的短消息,n=1 位已讀的短消息,n=2 位未發(fā)送的短消息,n=3為已發(fā)送的短消息n=4 為所有短消息。AT+CMGD=n 為刪除TC35i 模塊的短消息,n 為短消息編號。
軟件編程通過向TC35i 寫入不同的AT 指令能完成多種功能,如網(wǎng)絡登陸、讀取SIM卡上電話號碼、發(fā)送SMS 消息、接收SMS 消息等。常用的AT指令我們將在軟件設計中詳細說明。
3 軟件設計3.1系統(tǒng)軟件設計的總體思路3.1.1主函數(shù)軟件設計流程圖
              整個系統(tǒng)主要的分為兩個狀態(tài):主人在家狀態(tài)、主人不在家狀態(tài)。當主人在家時,報警系統(tǒng)僅對溫度傳感器和煙霧傳感器進行監(jiān)視;當按下主人不在家的按鍵時,系統(tǒng)就進入到主人不在家狀態(tài),對家中的門窗、溫度、煙霧等作一系列的監(jiān)控,一旦有意外發(fā)生能及時通知戶主采取急救措施,有效避免災情進一步發(fā)生。
              程序是由主程序、開機初始化模塊、主人在家狀態(tài)模塊、延時和定時器模塊、無人在家狀態(tài)模塊、傳感器檢測模塊、串口初始化和GSM通信模塊組成。
(1)主程序。單片機上電后即執(zhí)行主程序。主程序調(diào)用開機初始化模塊,之后確定用主人是否在家模塊,確定要工作的狀態(tài)。
(2)開機初始化模塊。該模塊控制所有模塊的指示燈點亮以確定所有模塊都正常工作,同時對單片機內(nèi)部特殊寄存器進行賦值,設置完畢后進入主人在家狀態(tài),只有當系統(tǒng)復位后此模塊才會再次被調(diào)用。
(3)主人在家狀態(tài)模塊。該模塊調(diào)用對輸入的定時掃描,在家中溫度或煙霧濃度出現(xiàn)異常情況是報警,同時可在按鍵控制下轉入到無人在家模塊。該模塊桶用探測器檢測模塊、延時和定時器模塊相結合防止探測器的誤觸發(fā),提高系統(tǒng)可靠性。
(4)延時和定時器模塊。該模塊包含軟件延時子函數(shù)及設置并啟動定時器的子函數(shù)以達到對鍵盤的定時掃描。
(5)無人在家狀態(tài)模塊。該模塊調(diào)用傳感器檢測模塊、延時和定時模塊對外部輸入
進行檢測,在傳感器被觸發(fā)的情況下發(fā)出警報并進入發(fā)送短信模塊。
(6)傳感器檢測模塊。采用定時掃描的方式進行實時檢測防止報警被誤觸發(fā),想主人在家狀態(tài)模塊和無人在家狀態(tài)模塊返回各輸入口狀態(tài)。
(7)傳感器檢測模塊。傳感器主要是由MMA7455i加速度傳感器、溫度傳感器和煙霧傳感器組成,對家中情況進行監(jiān)控,并做簡單的信號處理。
(8)串口初始化和通信模塊。該模塊對在進入發(fā)送短信狀態(tài)時對串口進行初始化,負責與串口數(shù)據(jù)的收發(fā),并在發(fā)送短信完畢時對特殊寄存器和全局變量進行設置。防止由于某些傳感器一直處在觸發(fā)狀態(tài)而引起的短信重復發(fā)送。
(9)GSM發(fā)送短信模塊。該模塊通過調(diào)用串口初始化和通信模塊與GSM模塊發(fā)送AT指令控制其發(fā)送短信。

圖3-1 系統(tǒng)程序結構
3.1.2 基于C語言的程序調(diào)試
C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所于1972年推出。1978后,C語言已先后被移植到大、中、小及微型機上。它可以作為工作系統(tǒng)設計語言,編寫系統(tǒng)應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。具體應用比如單片機以及嵌入式系統(tǒng)開發(fā)。
C是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。 C也是一種結構式語言。結構式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結構化。 C語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現(xiàn)決策目的的游戲。同時C語言適用范圍大,適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機型。C語言對編寫需要硬件進行操作的場合,明顯優(yōu)于其它高級語言,有一些大型應用軟件也是用C語言編寫的。
指針是C語言的一大特色,可以說是C語言優(yōu)于其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬件的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由于這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低于C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。
              而匯編語言是面向機器的程序設計語言。在匯編語合中,用助記符代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。于是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語言處理系統(tǒng)。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。
大多數(shù)情況下Linux程序員不需要使用匯編語言,因為即便是硬件驅動這樣的底層程序在Linux操作系統(tǒng)中也可以完全用C語言來實現(xiàn),再加上GCC這一優(yōu)秀的編譯器目前已經(jīng)能夠對最終生成的代碼進行很好的優(yōu)化,的確有足夠的理由讓我們可以暫時將匯編語言拋在一邊了。但實際情況是Linux程序員有時還是需要使用匯編,或者不得不使用匯編,理由很簡單:精簡、高效和lib無關性。假設要移植Linux到某一特定的嵌入式硬件環(huán)境下,首先必然面臨如何減少系統(tǒng)大小、提高執(zhí)行效率等問題,此時或許只有匯編語言能幫上忙了。匯編語言比機器語言易于讀寫、調(diào)試和修改,同時具有機器語言全部優(yōu)點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。
綜上所述,本設計使用的是C語言進行程序的編寫。AT89S52的C語言編程和C51系列的相同,因此以下用51系列來說明。
由于8051系列是8 位機,因而不存在字節(jié)校準問題。這意味著數(shù)據(jù)結構成員是順序放置的。數(shù)據(jù)類型的轉換:當計算結果隱含著另外一種數(shù)據(jù)類型時,數(shù)據(jù)類型可以自動進行轉換,例如,將一個位變量賦給L:一個整型變量時,位型值自動轉換為整型值,有符號變量的符號也能自動進行處理。這些轉換也可以用C 語言的標準指令進行人工轉換。編譯器支持下列數(shù)據(jù)類型:
表3-1數(shù)據(jù)類型
數(shù)據(jù)類型
長度
值域
bit
1字節(jié)
0或1
signed char
1字節(jié)
-128~+127
unsigned char
1字節(jié)
0~255
signed int
2字節(jié)
-32768~+32867
unsigned int
2字節(jié)
0~65535
signed long
4字節(jié)
-2147483648~+2147483647
unsigned long
4字節(jié)
0~4294967295
float
4字節(jié)
±1.176E-38~±3.40E+38
指針
1-3字節(jié)
對象地址
sbit
1位
0 或 1
sfr
1字節(jié)
0~255
sfr16
2字節(jié)
0~65535
51系列包括多種寄存器,其中一些具有特殊功能,如定時器,端口的控制寄存器等,為了能夠直接訪問這些寄存器,C51 編譯器提供了一種定義的自主形式,這是必要的,因為這些定義與標準C 語言是不兼容的。為了支持這些特殊功能寄存器(SFR)的聲明,引入了關鍵詞“sfr”。
必須注意的是“sfr”后不是一個地址而是一個名字。因此上例中名字P0 和P1(port0和port1)定義為特殊功能寄存器并被賦予相應的絕對地址,名字可按意愿自由選取,源文件中不應有先定義的sfr 名字。“=”號后的地址必須是常數(shù),不允許帶有運算符的表達式,這個常數(shù)表達式必須在特殊功能寄存器的地址范圍內(nèi),位于0X80 到0XFF 之間。
8051 系列寄存器數(shù)量和類型是極其不同的,因此將所有特別的“sfr”聲明放入一個頭文件,頭文件包括8051 一些系列成員中的SFR 定義。進一步的定義可由用戶由文件編輯器產(chǎn)生。
在新的8051 系列產(chǎn)品中,SFR 在功能上經(jīng)常組合為16 位的,為了有效的訪問這類SFR,使用定義“sfr16”,當“SFR”的高端直接位于低端后時,對SFR16 位的訪問是可能的。例如8052 的定時器2 就是這種情況,16 位聲明的語法與“sfr”相同,SFR 低地址部分必須作為sfr16 的地址。
T2(由T2L 和T2H 組成)和RCAP2(由RCAP2L 和RCAP2H 組成)被定義為16位SFR,即使在這種情況下,聲明中的名字后仍不是賦值語句,而是一個SFR 地址,高字節(jié)必須直接位于低字節(jié)之后,這種聲明適用于所有新的SFR,但不能用于Timer0 和Timer1。

3.1.2.1中斷服務程序
              C51 編譯器及其對C 語言的擴充允許編程者對中斷的所有方面進行控制。這種支持能使系統(tǒng)編程者創(chuàng)建高效的中斷服務程序,用戶只需在普通和高級方式下關心中斷及必要的寄存器組切換操作,C51 編譯器將產(chǎn)生最合適的代碼。
使用中斷服務函數(shù)的完整語法如下:
返回值 函數(shù)名([參數(shù)])[模式][再入] interrupt n[using n]。“interrupt”后接一個0~31 的常數(shù),不允許使用表達式。中斷不允許用于外部函數(shù),它對函數(shù)目標代碼的影響如下:
1. 當使用函數(shù)時,SFR 中的ACC、B、DPH、DPL 和PSW(當需要時)入棧;
2. 如不使用寄存器組切換,甚至中斷函數(shù)所需的所有工作寄存器(Rn)都入棧;
3. 函數(shù)退出前,所有的寄存器內(nèi)容出棧;
4. 函數(shù)由8051 控制命令“RETI”終止;
中斷控制部分是由4個專用寄存器組成的,分別為TCON、SCON、IE和IP。五個中斷源的中斷請求標志位及定時器/計數(shù)器的控制位,均設置在定時控制寄存器TCON和串口控制寄存器SCON中。
其中TCON用于控制定時器/計算器的啟、停和外部中斷源的觸發(fā)方式以及存放定時器的溢出中斷標志和外部中斷源的中斷請求標志。其地址為88H,各位的定義為:
表3-2 TCON各位的定義
D7
D6
D5
D4
D3
D2
D1
D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1和TF0:分別為定時器1和定時器0的溢出標志。當定時器加1計滿產(chǎn)生溢出時,由硬件自動置“1”,并申請中斷。進入中斷服務程序后,由硬件自動清“0”。這兩位也可作為程序查詢的標志位,在查詢方式下應由軟件來清“0”。
TR1和TR0:分別為定時器1和定時器0的啟?刂莆弧.斢绍浖䦟Ri清0后,可停止定時器的工作,將該位置“1”后,可啟動定時器工作。
IE1和IE0:分別為外部中斷1和外部中斷0的觸發(fā)方式選擇位。當外部中斷源有請求時,相應的中斷標志位由硬件置“1”。
IT1和IT0:分別為外部中斷1和外部中斷0的觸發(fā)方式選擇位。IT1設置為“0”時,相應的外部中斷為低電平觸發(fā)方式,設置為“1”時,相應的外部中斷為邊沿觸發(fā)方式。
同時在單片機中,設有一個專用寄存器IE(稱中斷允許寄存器),其作用是控制各中斷源的開放或屏蔽。各個位的定義如下:
表3-3 IE各位的定義
D7
D6
D5
D4
D3
D2
D1
D0
EA
-
ET2
ES
ET1
EX1
ET0
EX0
EA為CPU中斷允許控制位。EA=1,CPU開放中斷,EA=0,CPU禁止響應一切中斷。當EA=1時,僅使CPU對所有中斷開放,但每個中斷源被允許還是被屏蔽由各自的允許位確定。
ES為串行口中斷允許位。ES=1,允許串行口接收和發(fā)送中斷;ES=0,禁止串行口中斷。
ET1為定時器1的中斷允許控制位。ET1=1允許T1中斷,否則禁止中斷。
              EX1為外部中斷1的中斷允許控制位。EX1=1,允許外部中斷1中斷,否則禁止中斷。
              ET0為定時器0的中斷允許控制位。ET0=1,允許定時器T0中斷,否則禁止中斷。
              EX0為定時器0的中斷允許控制位。ET2為定時器2中斷允許控制位,僅用于52子系列單片機。
在本設計中,使用的是內(nèi)部中斷。單片機對采集到的加速度傳感器和溫度傳感器的數(shù)據(jù)進行分析判斷,當符合報警條件時再申請中斷,執(zhí)行中斷服務程序。
              在中斷響應過程中需要利用軟件實現(xiàn)以下中斷服務:

圖3-2 中斷服務程序

3.1.2.2 串口通信的軟件設置
              51系列的串行口主要是由兩個數(shù)據(jù)緩沖器SBUF、一個輸入移位寄存器、一個串行控制寄存器SCON和一個波特率發(fā)生器T1等組成。特殊功能寄存器SCON用來存放串行口的控制和狀態(tài)信息。定時器/計數(shù)器T1作串行口的波特率發(fā)生器,其波特率是否增倍由特殊功能寄存器PCON的最高位控制。
              在本設計中串口通訊是工作在方式2下的,方式1為11位異步通訊方式,即一個起始位、8個有效數(shù)據(jù)和一個停止位,還有一個附加位,波特率可以改變(由定時器              T1的溢出率決定,并可由SMOD加倍)。發(fā)送操作在T1=0時,發(fā)送電路自動在8位發(fā)送數(shù)據(jù)前后分別添加一位起始位和停止位,并在移位脈沖作用下由TXD引腳依次發(fā)送一幀數(shù)據(jù),發(fā)送完后自動維持TXD引腳為高電平.TI也由硬件在發(fā)送停止位時自動置“1”,需要由軟件將其請“0”。第9位數(shù)字是SCON中的T8,這位數(shù)據(jù)可由用戶安排,在這里我設定為奇偶校驗位。
3.2 系統(tǒng)各功能模塊的軟件設計3.2.1 溫度傳感器DHT11軟件設計
              在本設計中MMA7455主要是實現(xiàn)對家中門窗的動態(tài)運動進行監(jiān)控,進而作為防盜報警的依據(jù)。DHT11采用的是單線雙向串行通訊,當收到單片機讀信號后,DHT11發(fā)送響應信號,并送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,在本設計中只讀取其中的溫度信息數(shù)據(jù),如果DHT11沒有收到單片機發(fā)送開始信號,DHT11不會主動進行溫度采集。具體的軟件設計流程圖如下:

圖3-3 DHT11軟件設計流程圖

3.2.2 加速度傳感器MMA7455的軟件設計
              MMA7455加速度傳感器主要是采集門窗的運動狀況,測出其運動的加速度,單片機再進一步得出門窗運動的位移,進而可判定是否有竊賊進入到家中。當單片機調(diào)用加速度信息子模塊時,首先發(fā)出讀加速度信號,7455進行初始化并把自身的地址和單片機發(fā)出的地址相比較,如果符合即反饋應答信號,單片機分別發(fā)出X、Y、Z軸地址采集不同軸上的加速度信息,7455按相應的地址發(fā)送信息,單片機收到信息后進行校驗,并返回加速度數(shù)據(jù)的返回值,退出調(diào)用。

圖3-4 7455子函數(shù)流程圖

3.2.3 IIC通訊協(xié)議
在現(xiàn)代電子系統(tǒng)中,有為數(shù)眾多的IC需要進行相互之間以及與外界的通信。為了提供硬件的效率和簡化電路的設計,PHILIPS開發(fā)了一種用于內(nèi)部IC控制的簡單的雙向兩線串行總線IIC。IIC總線支持任何一種IC制造工藝,并且 PHILIPS和其他廠商提供了種類非常豐富的IIC兼容芯片。作為一個專利的控制總線,IIC已經(jīng)成為世界性的工業(yè)標準。
每個器件都有一個唯一的地址,而且可以是單接收的器件(例如:LCD驅動器)或者可以接收也可以發(fā)送的器件(例如:存儲器)。發(fā)送器或接收器可以在主模式或從模式下操作,這取決于芯片是否必須啟動數(shù)據(jù)的傳輸還是僅僅被尋址。IIC是一個多主 總線,即它可以由多個連接的器件控制。
基本的IIC總線規(guī)范于20年前發(fā)布,其數(shù)據(jù)傳輸速率最高為100Kbits/s,采用7位尋址。但是由于數(shù)據(jù)傳輸速率和應用功能的迅速增加,IIC總線也增強為快速模式(400Kbits/s)和10位尋址以滿足更高速度和更大尋址空間的需求。
IIC總線始終和先進技術保持同步,但仍然保持其向下兼容性。并且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得IIC總線能夠支持現(xiàn)有以及將來的高速串行傳輸應用,例如EEPROM和Flash存儲器。
在IIC總線傳輸過程中,將兩種特定的情況定義為開始和停止條件(見圖3):當SCL保持“高”時,SDA由“高”變?yōu)椤暗汀睘殚_始條件;當SCL保持“高”且SDA由“低”變?yōu)椤案摺睍r為停止條件。開始和停止條件均由主控制器產(chǎn)生。使用硬件接口可以很容易地檢測到開始和停止條件,沒有這種接口的微機必須以每時鐘周期至少兩次對SDA取樣,以檢測這種變化。
SDA線上的數(shù)據(jù)在時鐘“高”期間必須是穩(wěn)定的,只有當SCL線上的時鐘信號為低時,數(shù)據(jù)線上的“高”或“低”狀態(tài)才可以改變。輸出到SDA線上的每個字節(jié)必須是8位,每次傳輸?shù)淖止?jié)不受限制,但每個字節(jié)必須要有一個應答ACK。如果一接收器件在完成其他功能(如一內(nèi)部中斷)前不能接收另一數(shù)據(jù)的完整字節(jié)時,它可以保持時鐘線SCL為低,以促使發(fā)送器進入等待狀態(tài);當接收器準備好接受數(shù)據(jù)的其它字節(jié)并釋放時鐘SCL后,數(shù)據(jù)傳輸繼續(xù)進行。
數(shù)據(jù)傳送具有應答是必須的。與應答對應的時鐘脈沖由主控制器產(chǎn)生,發(fā)送器在應答期間必須下拉SDA線。當尋址的被控器件不能應答時,數(shù)據(jù)保持為高并使主控器產(chǎn)生停止條件而終止傳輸。在傳輸?shù)倪^程中,在用到主控接收器的情況下,主控接收器必須發(fā)出一數(shù)據(jù)結束信號給被控發(fā)送器,從而使被控發(fā)送器釋放數(shù)據(jù)線,以允許主控器產(chǎn)生停止條件。
IIC總線在開始條件后的首字節(jié)決定哪個被控器將被主控器選擇,例外的是“通用訪問”地址,它可以在所有期間尋址。當主控器輸出一地址時,系統(tǒng)中的每一器件都將開始條件后的前7位地址和自己的地址進行比較。如果相同,該器件即認為自己被主控器尋址,而作為被控接收器或被控發(fā)送器則取決于R/W位。
3.2.4 液晶顯示的軟件設計
              本設計中采用液晶顯示,使數(shù)據(jù)更加直觀。液晶顯示屏選用1602,它主要用于顯示加速度傳感器采集到的X、Y、Z軸的加速度值以及溫度傳感器DHT11采集到的室內(nèi)溫度值,以便更清晰直觀地感受到報警系統(tǒng)的工作狀態(tài)。其軟件的主要思路如下圖所示:

圖3-5 液晶屏的軟件設計
3.2.5 GSM模塊中的AT指令
單片機與TC35 i的軟件接口通過AT指令完成,控制手機的短消息有關的AT指令有:
A.單片機與TC35i模塊由串口建立連接:AT;
B.設置TC35i模塊工作模式:AT + CMGF = n, n = 0: PDU模式; n = 1:文本模式,通常要設置為PDU模式,在這種模式下,能傳送或接受透明數(shù)據(jù)(用戶自定義數(shù)據(jù));
C.讀TC35i模塊短消息數(shù)據(jù):AT + CMGR = n, n為短消息號(十進制);
D.列出TC35i模塊內(nèi)的短消息:AT =CMGL = n, n = 0:未讀的短消息;n = 1:已讀的短消息;n = 2:未發(fā)送的短消息;n= 3:已發(fā)送的短消息;n = 4:所有的短消息;
E.刪除TC35i模塊短消息:AT + CMGD = n,n為短消息號(十進制) 。
根據(jù)設置不同,GSM模塊將收到的短消息保存在緩存單元或存入SIM卡,單片機從GSM模塊中接收短消息實質上就是從SIM或緩存中讀出信息。這主要利用AT + CMGR和AT +CMGL兩條指令來完成。由于不同的廠商對AT指令集的解釋代碼和響應信息不一樣,所以單片機首先要確認能否與GSM模塊建立起通信,一般用ATE指令完成此確認;然后用AT + CMGF指令選定短消息的數(shù)據(jù)格式;在收到GSM模塊的正確回答后以AT指令完成讀出功能。一般用AT +CMGL讀取以前的信息,在收到手機的R ING(振鈴)數(shù)據(jù)時,用AT +CMGR讀取實時信息。
              AT 指令的指令符號、常數(shù)、PDU 數(shù)據(jù)等都是以ASCII 編碼形式傳送;傳送透明數(shù)據(jù)必須把TC35i 模塊的工作模式設置為PDU模式;單片機向TC35i 模塊發(fā)送每一條指令后,必須以回車符作為該條指令的結束,例如單片機向手機發(fā)送“AT+CMGF=0”這條指令,其ASCII編碼序列為“41H、54H、2BH、42H、4DH、47H、46H、3DH、30H、0DH”,最后一個字節(jié)0DH 就是回車符,表示該條指令結束,如果沒有這個回車符,手機將不識別這條指令。當TC35i 模塊接收到一條完整的AT 指令后,TC35i 模塊并不立即執(zhí)行該條指令,而是先把剛才接收到的AT 指令的ASCII 編碼序列全部反發(fā)送出來(含0DH);其次發(fā)送一個回車符和一個換行符的ASCII 編碼,即0DH 和0AH;然后執(zhí)行該指令。

圖3-6 短消息收發(fā)流程

單片機讀取TC35i模塊的PDU 數(shù)據(jù)時,原始數(shù)據(jù)應該是16進制數(shù),但讀回的數(shù)據(jù)仍然是ASCII表示的16進制數(shù)。這樣一個字節(jié)的16進制數(shù)就變成了2 個字節(jié)的ASMII 碼。但是PDU 數(shù)據(jù)包中的數(shù)據(jù)字節(jié)長度部分仍然是實際字符長度。而不是變成ASCII 碼的字節(jié)長度,這在編程時應特別注意,否則,接收的數(shù)據(jù)就不完整。單片機接收到PDU 數(shù)據(jù)包數(shù)據(jù)后,必須將其恢復成16 進制數(shù)據(jù),其算法如下:設a 為接收的ASCII碼,b為轉換后的16進制數(shù)。那么如果a<39H,則b=a-30H;如果a=39H,則b=a-30h-07H。最后把前后兩個數(shù)合并為一個字節(jié)。TC35i 模塊向單片機應答PDU數(shù)據(jù)包的字節(jié)數(shù)時不包括前9個字節(jié)數(shù)據(jù),但向單片機傳送PDU 數(shù)據(jù)包時,包括這9個字節(jié)的數(shù)據(jù)。例如,如果TC35i模塊應答的PDU 數(shù)據(jù)長度為50,而實際向單片機傳送的16 進制數(shù)據(jù)為59 字節(jié),ASCII碼為2×59字節(jié),所以單片機必須按2×59個字節(jié)接收PDU 數(shù)據(jù)。
常用的AT指令如下表:
表3-4 常用AT指令
AT指令
功能
AT命令
設置不回顯命令
ATEO
查詢網(wǎng)絡是否已經(jīng)注冊
AT+CREG?
設置短信到達提醒方式
AT+CPMS=
設置短信存儲在模塊
AT+CPBS=SM
設置電話薄位置SIM卡
AT+CMGF=0/1
設置短信模式。0:PDU 1:TEXT
AT+CMGS=
發(fā)送新短信
AT+CMGSS=1
發(fā)送存在SIM卡的短信
AT+CMSR=1
讀取模塊1號位置短信
AT+CMGD=1
刪除模塊1號位置
AT+CPBR=1
讀取卡1號位置電話號碼
ATH
掛斷電話
AT指令在本設計中的應用可詳細參看附錄中的程序部分。

4 系統(tǒng)調(diào)試
本設計由以下幾部分組成:單片機最小系統(tǒng)、加速度傳感器、溫濕度傳感器、GSM及其控制板、供電電源、顯示等六部分組成。由于本設計采用的都是數(shù)字傳感器,通訊方式是串行通信模式,故本系統(tǒng)的調(diào)試過程基本上是程序的調(diào)試。
4.1液晶顯示
首先進行調(diào)試的是顯示程序,只有有了顯示,才能觀察到讀取的各個傳感器的數(shù)據(jù),才能直觀的判定其他部分工作是否正常。
顯示部分采用的是1602液晶顯示,1602液晶是字符型的顯示屏,只能顯示字母和符號。顯示屏上需要顯示溫度值、濕度值、加速度傳感器的三軸加速度值。加速度單位為g。在1602液晶的子程序的開始,定義了一系列的數(shù)組用于顯示的調(diào)用。當傳感器沒有插好,或者忘記供電時,液晶屏的第一行將會顯示“No acceleration!”以提示出現(xiàn)故障,當正常工作時液晶的第一行將顯示溫度值,濕度值以及加速度的X軸的數(shù)據(jù),第二行將會顯示Y軸和Z軸的加速度值。顯示的加速度值是在程序中經(jīng)過處理轉化的。在讀取X軸的數(shù)據(jù)后,需要將數(shù)據(jù)按照數(shù)據(jù)手冊上的值進行轉換,并將每一位轉化成字符型的值放到數(shù)組中,通過1602液晶的控制字送到屏幕上顯示。顯示效果如下圖所示:
圖4-1 液晶顯示調(diào)試結果
有了顯示部分,就好像有了一只眼,這樣就能在程序中設置標識,通過顯示屏來判斷程序運行是否正常,就能夠直觀的判斷調(diào)試結果,給調(diào)試過程帶來了很大的方便。
4.2 GSM的調(diào)試
GSM和單片機最小系統(tǒng)是整個系統(tǒng)的神經(jīng)中樞和大腦,動作的執(zhí)行和處理都過這兩部分來組成,因此是調(diào)試中的重中之重。
對于單片機最小系統(tǒng)來說,首先是正常工作,單片機使用的AT89S52單片機,在焊接過程中,由于EA引腳沒有接高電平,在用流水燈測試單片機最小系統(tǒng)時對IO口單獨賦值時電平輸出有效,當讓流水燈循環(huán)流動時,卻沒有達到預期的效果。由于當EA為高電平時,單片機先訪問內(nèi)部程序存儲器,當尋址范圍超出內(nèi)部程序存儲器的最大尋址空間時,就自動跳向外部程序存儲器。因此才會出現(xiàn)上出現(xiàn)的情況。此外就是P0口的輸出問題,當作為傳輸數(shù)據(jù)口時是不用接上拉電阻的,當作為驅動時就這排上拉電阻就會非常重要。
調(diào)試好最小系統(tǒng)后就要與GSM模塊進行聯(lián)調(diào)了。在這里利用的是GSM發(fā)短信和打電話的功能,對GSM模塊的控制是通過單片機和GSM進行串口通信,通過串口通信發(fā)送AT指令給GSM,GSM進會按照相應的指令進行工作。在這個過程中,程序的編寫都需要參考GSM數(shù)據(jù)手冊中的AT指令表,這樣編寫出的程序才能按照預期進行工作。
圖4-2 GSM與單片機相連接
在單片機與GSM進行聯(lián)調(diào)的過程,遇到了兩個經(jīng)常犯的錯誤,一個是串口通信的端口連接,另一個就是晶振的選取。在串口通訊時必須將單片機的TXD和RXD端子和對應GSM的RXD和TXD相連,而且要共地。否則數(shù)據(jù)不能正常傳輸,也達不到預期的效果。晶振的選取是以通信的波特率為準進行參數(shù)設置的。GSM與單片機通訊的波特率是9600,因此需要選擇11.0592MHz的晶振,不能選擇12MHz的晶振。這是因為標準的51單片機晶振是1.2M~12M,由于一個機器周期是12個時鐘周期,所以使用12M的晶振時,一個機器周期是1us,在進行定時時容易計算,而且速度相對是最高的。之所以使用11.0592M的晶振是因為在進行通信時,12M的頻率進行串行通信不容易實現(xiàn)標準的波特率,比如9600,4800等。而11.0952MHZ的晶振在計算時鐘、串口通信的波特率等運算中能夠得到一個整數(shù),計算的結構更加的精確和方便。12M的容易出現(xiàn)累積誤差,因此在這里需要使用11.0592MHz的晶振才能保證精確的波特率,才能保證在傳輸數(shù)據(jù)的過程中不發(fā)生錯誤。
4.3加速度傳感器的調(diào)試
加速度傳感器采用的是MMA7455I,是一款數(shù)字傳感器,具有三個自由度,通過對CS端子進行賦值可以選擇通信方式即SPI和IIC兩種通信方式,當CS為高電平時采用的是IIC通訊方式,低電平時為SPI通訊方式。IIC通信為串行通信,可通過一個時鐘線和數(shù)據(jù)線讀取加速度傳感器內(nèi)的數(shù)據(jù)。
              MMA7455I加速度傳感器的測量范圍為 0- 2g/4g/8g,可通過mode control register來設置工作模式(g為重力加速度),這里選擇量程為4g。通過IIC協(xié)議來讀取加速度的值。每個軸上的加速度值的長度都是一個字節(jié)(8bit),由于滿量程為4g,因此MMA7455I的分辨率為 ,也就是滿63為1g的加速度。按照這個方法送到顯示屏上顯示,顯示單位為g,可以精確到小數(shù)點后兩位。讀取加速度后就可以進行位移的計算了。在程序調(diào)試時設置當加速度大于 時,開始采集加速度數(shù)據(jù),并打開定時器開始計時,并在循環(huán)采集程序中設置采集次數(shù)標志位,當加速度小于的時候,退出循環(huán)采集程序,然后求和,求平均算出加速度的平均值。有個平均加速度值,運動時間,由于初始加速度值為0,有公式

上面公式中的加速度值和時間就可以求出移動的大致距離。
在采集的過程中,加速度值是帶有符號的,在相加的過程中如果出現(xiàn)來回的抖動,有符號的只想加加速度值就會變小,甚至最終導致和位移為0。這樣就可以消除抖動帶來的誤報現(xiàn)象。這就是這個過程的位移算法。
芯片的工作電壓是3.3V,因此需要通過電壓轉化來進行供電,轉換芯片采用RT9161,它具有很小的失調(diào)電壓,電流大,驅動能力強,用此款芯片來對傳感器進行供電,可靠性高。
在調(diào)試過程總最容易忽略,最容易犯錯的就是單片機最小系統(tǒng)和傳感器共地的問題,如果不共地,單片機讀取的數(shù)據(jù)就有錯誤,只有共地后才有了統(tǒng)一的電平參考標準,才能正確的傳輸數(shù)據(jù),設計上一般不會忽略這個問題,但是在調(diào)試過程中由于接線等問題,經(jīng)常會忘了共地而對調(diào)試帶來很大的麻煩。
圖4-3 防盜報警電話
4.4 DHT11溫濕度傳感器
              在本設計中DHT11用于采集溫濕度信息,可單總線串行輸出數(shù)字信號。DHT11總共有四個管腳,在焊接電路時,第一個管腳接VCC,第二個管腳為數(shù)據(jù)傳輸管腳,直接接到單片機的p2.0口,同時為了加強傳輸信號,在此管腳上加一個5k的上拉電阻,等待數(shù)據(jù)傳輸。
              總線空閑狀態(tài)為高電平,主機把總線拉低等待DHT11響應,主機把總線拉低必須大于18毫秒,此時調(diào)用一個18毫秒的延時子函數(shù),保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結束,然后調(diào)用一個80us低電平響應信號。主機發(fā)送開始信號結束后,延時等待20-40us后, 讀取DHT11的響應信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。
圖4-4 DHT11接上拉電阻
用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發(fā)送響應信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分數(shù)據(jù)。送出的40bit數(shù)據(jù),是由兩個字節(jié)的濕度數(shù)據(jù)、兩個字節(jié)的溫度數(shù)據(jù)和一個字節(jié)的校驗和數(shù)據(jù),同時,溫、濕度數(shù)據(jù)是以一個字節(jié)按由高位到低位傳輸、一個由低位到高位傳輸,因此在程序中分別將一個字節(jié)的數(shù)移位后,將前四個字節(jié)相加,再和第五個字節(jié)相比較,如果相同即判定數(shù)據(jù)傳輸正確。
圖4-5 火災報警短信
在連接好電路后,向DHT11哈氣,觀察液晶屏上濕度值是否增加,以此來判斷DHT11是否能實現(xiàn)對濕度信息采集的功能。同時把電烙鐵加熱,等達到一定的溫度后,放置在DHT11的旁邊,從液晶屏中觀察溫度值的變化,同時但溫度升高到45°時,觀察單片機是否會通過GSM給指定手機發(fā)送短信。
圖4-6 系統(tǒng)總體圖
5 總結與展望5.1總結
本文設計了基于單片機的智能家居報警系統(tǒng),通過近段時間的努力研究,主要完成以下內(nèi)容:
  • 通過分析家居生活中可能遇到的安全隱患,選擇了其中的兩個(防盜、防火災)進行報警設計;
  • 通過分析把整個系統(tǒng)分為若干個模塊;
  • 分別對每個模塊進行了分析和設計(軟硬件設計);
  • 使用Altium Designer Summer09繪制了系統(tǒng)原理圖;
  • 焊接、調(diào)試實物模型。
5.2展望
中國經(jīng)濟經(jīng)過30 年的高速發(fā)展,居民的生活水平和消費能力有了很大提高,新需求的增長以及信息化對人們傳統(tǒng)生活的改變,讓許多人尤其是先富起來的一部分人,對智能家居的需求日益強烈。由此,智能化小區(qū)建設近年來也是如火如荼,“智能家居”更是被炒得炙手可熱。智能家居要走進尋常百姓家中是指日可待的發(fā)展趨勢。中國是一個具有巨大的消費潛力的市場,國內(nèi)的智能控制理念推廣不夠,是由于這是一個新興行業(yè),不同于普通消費品市場的建設,消費觀念的形成還需要時間,現(xiàn)在只是在部分高端市場得到應用,并且主要是被國外品牌所占據(jù),為此我們通過與國外公司的合作學習先進的企業(yè)管理和品質控制理念,相信未來國內(nèi)智能化產(chǎn)品市場一定會擁有美好的前景,智能化也將成為人們?nèi)粘I畹幕緲藴省?/div>
然而對于家居生活中存在的安全隱患,本設計并沒有做到十分全面,例如:關于甲醛等有害氣體檢測、管道泄漏情況檢測、電路安全狀況的監(jiān)測等,都沒有涉及,因此本系統(tǒng)還有很大的擴展空間。隨著信息時代來臨,智能監(jiān)控進入高速發(fā)展時期,智能防盜報警系統(tǒng)作為智能化系統(tǒng)中的子系統(tǒng)之一,同樣承載著智能監(jiān)控所面臨的挑戰(zhàn)與機遇。針對居住的環(huán)境不同,用戶對于防盜報警系統(tǒng)的要求也不是一成不變的。因而智能防盜報警系統(tǒng)的設計中要考慮這些因素。既要易于使用,又要易于安裝和維護,還要有利于擴張和升級,還要考慮與其他系統(tǒng)的集成和信息共享,還要關注計算機、通信技術的發(fā)展對系統(tǒng)帶來的影響。
目前,智能家居“錢”途無量,但目前國內(nèi)仍處于向國外企業(yè)學習階段。這里的學習并非統(tǒng)統(tǒng)照搬,而是根據(jù)我們國家的環(huán)境、政策,學習國外的成功經(jīng)驗,借“機”生蛋,增加國內(nèi)企業(yè)成功的“籌碼”,使得國內(nèi)智能家居產(chǎn)業(yè)發(fā)展的風生水起。
因此智能報警系統(tǒng)可作為智能家居的一部分進行擴展,本設計只是做了單方面的報警,如果繼續(xù)拓展的話,可通過GSM對家中的一些電器進行雙向的控制。例如:在烈日炎炎的夏日,當主人準備回家時可查看家中溫度,如果超過了主人需求的溫度,則可通過手機直接和家中安裝的GSM模塊實現(xiàn)遠程無線連接,進一步可控制空調(diào)的開放和關閉來實現(xiàn)對家中溫度的調(diào)節(jié),這樣當主人到家時立刻就能享受到家中的溫馨清涼。
              基于單片機的智能家居報警系統(tǒng)是智能家居中的一部分,為智能家居正常工作提供有力的保障,但如果融入智能家居設計中,本設計會得到進一步的完善、更廣泛的應用,實現(xiàn)更可觀的價值。

附錄二 程序
主程序(在壓縮包里面下載)

所有資料下載地址(含完整文檔+程序+ppt文件):
http://www.zg4o1577.cn/bbs/dpj-85476-1.html



1.024.jpg (771 Bytes, 下載次數(shù): 105)

1.024.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:291647 發(fā)表于 2018-3-15 13:51 | 只看該作者
有沒有電路原路圖和PCB圖呢?
回復

使用道具 舉報

板凳
ID:454284 發(fā)表于 2018-12-26 16:43 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色一级大片视频 | 在线视频一区二区三区 | 亚洲一区二区三区国产 | 国产激情视频在线观看 | 国产福利视频 | 精品欧美视频 | 久久人体视频 | 日韩免费视频一区二区 | 在线日韩 | 成人免费在线视频 | 亚洲毛片在线观看 | 日本免费一区二区三区四区 | www.888www看片 | 久久久久久av | 天天拍天天操 | 国产免费一区二区三区最新6 | 人人玩人人添人人澡欧美 | 在线亚洲人成电影网站色www | 日本欧美国产在线观看 | 97人人爱| 久久国产精品-久久精品 | 久久精品成人 | 国产高清在线观看 | www.天堂av.com| 一区二区三区高清不卡 | 成人欧美一区二区三区黑人孕妇 | 91精品国产91久久久久久密臀 | 国产成人精品一区二区在线 | 一区二区免费在线观看 | 黄色国产在线视频 | 日韩在线中文字幕 | 国产亚洲精品精品国产亚洲综合 | 久草福利 | 日韩一二三 | 久久精品国产一区二区三区不卡 | 国产精品成人一区 | 亚洲逼院| 九九九久久国产免费 | 91社影院在线观看 | 精品视频久久久久久 | 免费人成在线观看网站 |