智能家居報警系統(tǒng)單片機課程設計_第1頁
智能家居報警系統(tǒng)單片機課程設計_第2頁
智能家居報警系統(tǒng)單片機課程設計_第3頁
智能家居報警系統(tǒng)單片機課程設計_第4頁
智能家居報警系統(tǒng)單片機課程設計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 目前市場上針對普通家庭的智能防盜、防火等產(chǎn) 品很多,但基于遠程報警系統(tǒng)的智能家居產(chǎn)品價格不菲。本次設計的基于AT89S52的智能家居報警系統(tǒng)實用性非常強,設計成本低廉,非常適合普通家庭使用。本產(chǎn)品采用的是 以ATMEL公 司 生 產(chǎn) 的 51系 列 單 片 機 AT89S52作為主控 芯片,AT24C02作為靜態(tài)存儲芯片,4*4 薄膜鍵盤和紅外熱式感應作為探測器,GSM和蜂鳴器的家庭報警模塊。 隨著信息技術(shù)的發(fā)展,實現(xiàn)家居的信息化、網(wǎng)絡化,是當前智能家居系統(tǒng)發(fā)展的新趨勢。本設計將通信技術(shù)與防盜系統(tǒng)緊密結(jié)合,為一款便敏小巧,低成本,適合普通室內(nèi)報警的智能報警系統(tǒng)。本系統(tǒng)通過傳感器獲取室內(nèi)人員信

2、息,并將信號發(fā)送到單片機微處理器。系統(tǒng)收到報警信息后通過辨認密碼的方式確定目標身份,并通過蜂鳴器報警的方式警示入侵者。另外,系統(tǒng)配備具手機通信功能的GSM模塊,能將室內(nèi)安全狀況第一時間發(fā)送至用戶手機終端。不僅大大提高系統(tǒng)安全性及智能性,也方便用戶的使用。 經(jīng)測試,本系統(tǒng)穩(wěn)定可靠,同時具有友好的人機界面,為用戶提供安全服務的同時,實現(xiàn)系統(tǒng)智能化管理。關(guān)鍵字:GSM 智能報警 存儲器 傳感器目 錄1 方案比較與選擇52 主要元器件介紹62.1 主芯片-AT89S5262.2 顯示屏-LCD160282.3 外部存儲芯片-AT24C0292.4 GSM-TC35i103模塊分析124硬件組成部分13

3、5仿真分析166.電路板的制作,焊接,調(diào)試167課程設計心得168討論及進一步研究和建議179課程設計心得18Abstract19參考文獻191方案比較與選擇方案一:本方案通過密碼鎖進行驗證,使用LCD模塊進行顯示,當密碼輸入錯誤次數(shù)大于三次并且輸入管理員密碼也錯誤時,視為非法入侵,并通過GSM模塊發(fā)送信息給用戶手機終端。若通過其他途徑非法侵入時并通過熱釋人體感應模塊進行報警??傮w系統(tǒng)框圖如圖1所示: 圖1方案一系統(tǒng)框圖密碼鎖模塊:實現(xiàn)密碼設置、密碼存儲、密碼驗證、密碼出錯報警。人體熱釋感應模塊:當檢測到非法入侵的人體時,啟動蜂鳴器報警顯示模塊:采用LCD顯示當前家居安全情況。報警模塊:通過蜂

4、鳴器和GSM手機終端通信功能報警。程序下載模塊:用于程序修改下載方案二:通過微處理器控制技術(shù)將雙音多頻電路與語音電路相結(jié)合,利用電話網(wǎng)絡技術(shù)和相關(guān)的傳感器,開發(fā)一種具有聯(lián)網(wǎng)功能的智能報警系統(tǒng)。該報警系統(tǒng)由傳感器終端、計算機控制中心、小區(qū)管理中心的接警主機及相關(guān)軟件組成。如圖2所示,主機電路由射頻接收模塊接收傳感器發(fā)來的報警信號,通過解碼電路解碼后得到報警傳感器預先設定的地址碼和數(shù)據(jù)碼類型。主機和傳感器兩者設定的地址碼相同時才能被主機接收。解碼輸出信號進入主控制器的中斷輸入端,觸發(fā)中斷處理程序。該系統(tǒng)適用于小區(qū)式管理,實現(xiàn)小區(qū)與物業(yè)管理中心的安全狀態(tài)保障,最終實現(xiàn)小區(qū)聯(lián)網(wǎng)控制。 圖2 方案二系統(tǒng)

5、框圖方案二的系統(tǒng)功能齊全,但是設計復雜,適合在小區(qū)管理用戶大規(guī)模使用。方案一雖然功能偏少,設計相對簡單,而且實現(xiàn)相對容易,適合于家庭個人用戶使用。綜上兩種方案,結(jié)合自身的設計水平,我們組選擇方案一作為我們的最終設計方案。2.主要元器件介紹 2.1主芯片-AT89S52AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atme公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾

6、多嵌入式控制應用系統(tǒng)中得到廣泛應用。 圖3 AT89S52AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復位為止。 2.2顯示器-LCD16021602液晶也叫1602字符型液晶它

7、是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形(用自定義CGRAM,顯示效果也不好)1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。 圖4 LCD1602編號 符號 引腳說明 編號 符號 引腳說明 1 VSS

8、 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù)/命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀/寫選擇 13 D6 數(shù)據(jù) 6 E 使能信號 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負極 圖5 LCD1602引腳說明 2.3外部存儲芯片-AT24C02AT24C02是一個2K位串行CMOS E2PROM, 內(nèi)部含有256個8位字節(jié),CATALYST公司的先進CMOS技術(shù)實質(zhì)上減少了器件的功耗。AT24C02有一個16字節(jié)頁寫緩沖器。該器件通過IIC總線接口進行操作,有一

9、個專門的寫保護功能。AT24C02芯片主要性能: 工作電壓:1.8V5.5V 輸入/輸出引腳兼容5V 應用在內(nèi)部結(jié)構(gòu): 128x8(1K),256x8(2K),512x8(4K),1024x8(8K),2048x8(16K) 二線串行接口 輸入引腳經(jīng)施密特觸發(fā)器濾波抑制噪聲 雙向數(shù)據(jù)傳輸協(xié)議 兼容400KHz(1.8V,2.5V,2.7V,3.6V ) 支持硬件寫保護 圖6 高可靠性:讀寫次數(shù):1,000,000 次 數(shù)據(jù)保存:100 年 (四)電平轉(zhuǎn)換芯片-MAX232MAX232芯片是美信(MAXIM)公司專為RS-232標準串口設計的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。 第一部分是

10、電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1

11、OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。 2.4GSM-TC35i TC35i新版西門子工業(yè)GSM模塊是一個支持中文短信息的工業(yè)級GSM模塊,工作在EGSM900和GSM1800雙頻段,電源范圍為直流3.34.8V ,電流消耗休眠狀態(tài)為3.5mA,空閑狀態(tài)為25mA,發(fā)射狀態(tài)為300mA(平均),2.5A峰值;可傳輸語音和數(shù)據(jù)信號, 功耗在EGSM900(4類)和GSM1800(1類)分別為2W和1W ,通過接口連接器和天線連接器分別連接SIM卡讀卡器和天線。SIM電壓為3V/1.8V,TC35i的數(shù)據(jù)接口(COM電平)通過AT命令可雙向傳輸指令和數(shù)據(jù),可

12、選波特率為300b/s115kb/s , 自動波特率為1.2kb/s115kb/s。它支持Text和PDU格式的SMS(Short Message Service,短消息),可通過AT命令或關(guān)斷信號實現(xiàn)重啟和故障恢復. TC35的數(shù)據(jù)輸入/輸出接口實際上是一個串行異步收發(fā)器,符合ITU-T RS232接口標準。它有固定的參數(shù):8位數(shù)據(jù)位和1位停止位,無校驗位,波特率在300bps115kbps之間可選,TC35模塊提供RS-232數(shù)據(jù)口,采用AT指令,內(nèi)置微控制器將GPS接收機和GSM模塊結(jié)合在一起。為了方便設置波特率,我選用11.0592MHz的晶振作為單片機的外部晶振,波特率設置為9600

13、。RS232串口原理圖如下所示。3.模塊分析 1.主芯片-AT89S52模塊 圖7 2.串口通信和下載模塊 圖8 3存儲芯片AT24C02模塊 圖94.系統(tǒng)硬件組成部分本系統(tǒng)的硬件部分主要由單片機AT89S52、晶振電路、報警電路、MXA232程序下載電路、4×4矩陣鍵盤和LCD1602顯示電路和人體熱釋感應模塊組成;其中報警電路使用蜂鳴器和GSM手機終端通信功能功能相結(jié)合報警。總的來說,智能家居系統(tǒng)主要由微處理器模塊(MCU)、記憶模塊、人體紅外檢測報警模塊、鍵盤模塊、程序下載模塊和顯示模塊構(gòu)成。·微處理器模塊,也就是AT89S52單片機,因為本系統(tǒng)要實現(xiàn)密碼檢測、密碼設

14、定、聲光提示等功能,要求微處理器必須能提供很多I/O口,而且由于系統(tǒng)體積限制,很難擴展I/O口和使用外部程序存儲器,所以選用AT89S52單片機。·記憶模塊,本系統(tǒng)的記憶模塊是通過單片機編程實現(xiàn),這樣的話就可以節(jié)約硬件開支。因為我們選用的AT89S52單片機運用了I2C技術(shù)在內(nèi)部集成了的EEPROM,用戶可以對其進行操作。通過編程實現(xiàn)了修改密碼后的斷電保存。·報警模塊,通過蜂鳴器和GSM手機終端通信功能報警,當密碼輸入錯誤次數(shù)大于三次,或者有非法侵入等行為,系統(tǒng)會用蜂鳴器實現(xiàn)聲音報警,同時通過GSM模塊發(fā)送警告信息給主人。 ·鍵盤模塊,鍵盤模塊的作用是讓用戶輸入密

15、碼和修改密碼。考慮到本系統(tǒng)需要用到大量的按鍵,鍵盤模塊采用薄膜鍵盤。·通信接口模塊,為了用實現(xiàn)單片機與GSM的通信,我們采用采用MXA232和九針的串接口組成通信模塊。·顯示模塊,考慮到友好的人機界面,采用LCD1602液晶顯示。顯示模塊的作用主要是顯示提示信息和輸入的密碼,以方便用戶使用。5.仿真分析(1)總分析圖 圖10 (2) GSM模塊調(diào)試通過RS-232將GSM模塊和主控制板連接起來。這樣要注意要將RXD-RXD,TXD-TXD連接起來,不要憑經(jīng)驗交叉連接。這里我采用串口調(diào)試助手,通過RS-232與電腦連接來調(diào)試。把串口波特率設置為9600,效驗為設置為NONE,

16、數(shù)據(jù)位8位,停止位1位 圖11 串口助手模塊有兩種發(fā)送方式:TEXT模式和PDU模式。PDU模式可以用Unicode編碼發(fā)送英文、漢字。采用PDU模式比較復雜,TEXT模式雖然只能發(fā)送英文,但其無需編碼,發(fā)送簡單,所以我在測試時采用TEXT模式。TEXT 發(fā)送模式:(相對簡單很多。)發(fā)送:AT<回車>返回:AT<回車>OK發(fā)送:AT+CMGF=1<回車>返回:AT+CMGF=1<回車>OK發(fā)送:AT+CSCA=+8613010130500<回車>返回:AT+CSCA=+8613010130500<回車>OK發(fā)送:AT+CM

17、GSlt;回車>返回:AT+CMGSlt;回車>>發(fā)送:XXXXXX(0-9,A-Z)XXXXX 是指阿拉伯數(shù)字0-9,英文26 個字母A-Z返回:XXXXXX(0-9,A-Z)XXXXX 是指阿拉伯數(shù)字0-9,英文26 個字母A-Z發(fā)送:1A(十六進制發(fā)送)<回車>返回:+CMGS: XXXOK以上為 TEXT 方式發(fā)送截圖:如果不能正常發(fā)送,返回ERROR,則說明需要格式化??梢园l(fā)送AT&F 命令格式化。發(fā)送:AT&F<回車>返回:AT&F<回車>【6.電路板制

18、作、焊接、調(diào)試此次電路板的制作是運用熱轉(zhuǎn)印法來實現(xiàn),首先就是通過DXP進行原理圖的繪制,然后就是PBC圖的布線和連接,再者就是制版。制版的步驟又包括打印和熱轉(zhuǎn)印,腐蝕和清洗,鉆孔和焊接電路。熱轉(zhuǎn)印法比用油膜法成功率更高,實現(xiàn)的效果更加好,同時更加有助于同學們帶動同學們的熱情。而在焊接的過程中,由于焊盤偏小而且我們的板是設置地板覆銅,分布比較密集,大大提高了焊接的難度。小部分的虛焊會導致整個電路出現(xiàn)問題,所以我們在焊接各個元器件的時候,都要一一檢測焊點是否導通,而且在吸焊的過程中要十分注意保護焊盤。并且焊完之后要逐個進行檢查,避免短路斷路等不合理的電線連接的出現(xiàn)。在電路板調(diào)試的過程中,我們是分模

19、塊進行調(diào)試,同時軟件和硬件相結(jié)合,最開始的是檢查LCD模塊的實現(xiàn),在接上各元器件之后,整個電路表面運行良好,屏幕也無法顯示。我們再次檢查電路,最開始以為是焊接出現(xiàn)問題,便再進行一次電路的檢查,同時調(diào)節(jié)液晶顯示的對比度,以希望得到最好的我亮度顯示。最終經(jīng)反復檢查,發(fā)現(xiàn)時液晶接口的第三口的滑動變阻器的封裝問題導致該滑動變阻器無法正常工作,經(jīng)過討論我們將其進行跳線連接。然后進行蜂鳴器報警功能的檢查,通過改變限流電阻的大小并燒寫合適程序,我們是蜂鳴器達到預想期的效果。第三就是進行人體紅外感應模塊的調(diào)試,該電路和程序較為簡單,較為容易實現(xiàn)。第四GSM功能的測試,該測試主要通過在單片機燒寫程序,向GSM發(fā)

20、送指令,GSM收到指令后進行相應的操作,包括向指定手機發(fā)送電話或者撥號。調(diào)試模塊的方法是通過RS-232將GSM模塊和主控制板連接起來,這樣要注意要將RXD-RXD,TXD-TXD連接起來,不要憑經(jīng)驗交叉連接。采用串口調(diào)試助手,通過RS-232與電腦連接來調(diào)試。把串口波特率設置為9600,效驗為設置為NONE,數(shù)據(jù)位8位,停止位1位。第五總系統(tǒng)的調(diào)試,經(jīng)過前一輪的奮戰(zhàn),我們將所有模塊按設想結(jié)合起來,修改程序并經(jīng)過多次測試終于實現(xiàn)了預定功能。7. 討論及進一步研究建議本設計的功能主要包括,手動修改密碼、手動清除密碼、輸入密碼錯誤3次報警、人體紅外檢測入侵及入侵報警、密碼斷電保護、GSM短信報警、

21、串口通信、手動復位。應該特別提到的是密碼斷電保護,由于修改密碼后,如果沒有斷電保護裝置的話,在下一次啟動電路的時候,上一次的密碼是不會保存的,這對密碼的安全性有很大的威脅;在此次設計中,我們是通過I2C運用TC35i芯片可實現(xiàn)密碼的存儲,進行掉電保護。同時GSM短信報警可以實現(xiàn)遠距離監(jiān)控。8.課程設計心得我們主要是運用單片機設計了一個報警系統(tǒng),并且用模塊化的設計方法來實現(xiàn)這個電路。在程序編寫結(jié)束后,我們還對該程序進行了調(diào)試, 能按預期的效果進行模擬,基本完成課程設計的要求。通過這次單片機課程設計,我們收獲了很多:首先是對單片機的整個認識和把握,這個過程包括選題,利用c語言設計程序,選元器件,畫

22、電路原理圖和PCB電路圖,制板,到最后利用自制的板進行下載調(diào)試和檢驗,整個過程哪怕有一個細節(jié)錯了,整個設計也就失敗。我們一開始編好程序后,出現(xiàn)一些小錯誤導致無法完成編譯。在解決程序設計問題之后,我們開始畫電路原理圖和PCB電路圖,特別是在畫PCB的時候,元器件的放置,布線出現(xiàn)很多問題。通過查閱相關(guān)資料,完成PCB之后我們又在制板的過程中遇到很多問題,如PCB線寬設置、焊盤直徑設置等等,因為這些小問題會影響制板后電路板的制作效果,甚至會影響元器件的焊接。在焊接完程序片機后用單開發(fā)板進行下載調(diào)試和檢驗,最后才完成了這個課程設計。因為一開始沒有經(jīng)驗,所以在整個過程中遇到了很多錯誤和麻煩,然而我們對一

23、些錯誤卻不能一步到位的判斷出來,這就告訴我們設計一個實驗或者做一件事情時,首先有一個大局意識,而且能夠預見出現(xiàn)的問題和能夠快速作出對這些問題或錯誤的反應與處理。同時通過這個實驗,我們也深刻的發(fā)現(xiàn)理論與實際的區(qū)別,特別是電路的仿真與實際電路的運行有著很大的差別,往往能夠在電腦進行成功仿真的電路在實際電路上卻相差甚遠。其次是通過寫實驗報告,我們也學到了一些東西,例如我們把我們的實驗過程和成果弄出來了,如何把它們展示給其他人看,這就是規(guī)則的問題,雖然我們寫的時候有時候會很麻煩,但是這也是方便大家交流的一種好方法。最后,通過這次設計實驗,我們發(fā)現(xiàn)了編程軟件有時候并不很好的放映實踐情況,因此我們應該設計

24、一個更好的軟件來仿真,一個好的仿真軟件可以減少對試驗箱的依賴而且更方便仿真調(diào)試與程序的修改??傊?,這次實驗不僅僅加強了我們的動手編程能力,也大大加強了我們團隊合作以及設計的能力,使我們在理論學習和編程練習方面都獲得了較大的收獲。 致謝 在經(jīng)過接近兩個星期的努力,克服了查閱資料,繪制原理圖,制板,焊接,調(diào)試等難關(guān)之后,我們終于完成了蛋騙雞的課程設計。這個經(jīng)歷就好像一部現(xiàn)實版的西游記,“取經(jīng)”的成功雖說有我們“三師兄弟”的相互合作,但也離不開“佛祖菩薩”的幫助,這里的“佛祖菩薩”當然指的是老師您。想在設計方案之初,我們由于肚子里的墨水不夠但又想多搞點模塊來加分,所以多次想找您幫忙,但是想到這個課程

25、設計設立的目的,我們還是放下手中的電話,最終還是跌跌撞撞地走過來了。但到了制板的時候,我們連打印紙都拿錯,而且在打印紙卡在打印機都不會弄,還是要老師您幫忙,腐蝕的時候也幸虧老師您。再次感謝老師您對于我們這次課程設計的指導與幫助,這次課程設計讓我們受益匪淺,同時也感謝在這個過程中幫助過我的同學,希望大家繼續(xù)努力。 Abstract For ordinary families on the market at present the intelligence of guard against theft, fire prevention products a lot, but remote ala

26、rm system based on intelligent household products the price does not poor. Based on the design of the AT89C52 intelligent household alarm system practical very strong, design cost is low, very suitable for ordinary families use. This product USES is ATMEL company in male birth to 51 department liste

27、d monolithic machine AT89852 as the master chip, AT24C04 as static memory chips, and 4 * 4 film keyboard and red WaiReShi induction as detector, GSM and a buzzer family alarm module. Along with the development of information technology, realize the household of information, network, is the current i

28、ntelligence lives in the new trend of development of the system. This design will communication technology and security systems closely, for a small and sensitivity, low cost, suitable for common indoor alarm intelligent alarm system. The system through the sensor for indoor personnel information, a

29、nd will signal sent to single chip microprocessor. System information received alarm by recognizing the password after determined by means of identity, and through the way buzzer alarm warning invaders. In addition, the system is equipped with a mobile communication function of GSM module, can will

30、indoor security in the first mobile phone users send to the terminal. It not only greatly improve the system security and intelligence, also facilitate the use of user. By test, this system is stable and reliable, and has friendly interface, to provide security services at the same time, realize int

31、elligent management system.Key word: GSM Intelligent Alarm Memory Sensor參考文獻1.李廣第等.單片機基礎.北京航天航空大學出版.2.吳國敬等.單片機應用和技術(shù).中國電力出版.3. 王衛(wèi)星等.單片機原理與應用開發(fā)技術(shù).中國水利水電出版社.4. 康華光等.電子技術(shù)基礎模擬部分.高等教育出版社.5. 康華光等.電子技術(shù)基礎數(shù)字部分.高等教育出版社.附:總原理圖源程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned int/-TC35i

32、-uchar code at = "ATr" /聯(lián)機指令 “r”-“enter” uchar code cmgf="AT+CMGF=1r" /選擇短信息信息格式-文本uchar code csca="AT+CSCA=+8613800200500r" / 廣州信息中心號碼uchar code cmgs="AT+CMGS" / 短信接受者號碼uchar code atd="ATr" / 電話接受者號碼 uchar code af="AT&

33、amp;F" / 格式化uchar code adata="!warning!"uchar code adata1="ok!"uchar code table1="Please enter the" uchar code table2="password:"uchar code table3="Please press the"uchar code table4="confirm key"uchar code table5="Your password i

34、s" uchar code table6="incorrect"uchar code table7="Welcome !" ;uchar code table8="*"uchar code table9=1,2,3,4,5,6;uchar code table10=1,2,3,4,5,6,7,8,9;uchar code table11="Senior Password" uchar code table12="new password:" uchar code table13=&qu

35、ot;password again:"uchar code table14="Password changed" uchar code table15="successfully"uchar code table16="*"sbit sda=P01; /24C02sbit scl=P00;sbit lcdrs=P34; /LCDsbit lcdrw=P33;sbit lcden=P32;sbit rsd=P36; /紅外熱釋電sbit fmq=P07;bit flag,flag1,flag2,flag3,flag4,flag

36、5,ok,ttt=0;/*ttt-GMS是否發(fā)送警報 ok-密碼輸入正確*/uchar kk; uchar num,num1,num2,num3,num4;uchar aa6,bb9,cc6,dd6; void send_c(uchar cc) /串口發(fā)送字符 SBUF =cc; while(!TI ); TI = 0; void uart_init() /串口初始化 SCON=0x50; /允許接收 -串口工作方式1 REN=1 PCON=0x00; /波特率不加倍 TMOD=0x20; /定時器1方式2 TH1=0xfd; / 波特率設置為9600 TL1=0xfd; TR1=1; ES=

37、1; /開串口終端void delay_1(uint z) /Zms延時uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void send(uchar *tab) /串口發(fā)送字符串 while(*tab)!= '0') SBUF =*tab; while(!TI ); TI = 0; tab+; send_c(0x0d); /結(jié)束字符 00001101send_c(0x0a); /00001010void delay() /At24c02延時 ; void delay1(uint i) /Ims延時uint j;for(;i>

38、;0;i-)for(j=100;j>0;j-);void write_com(uchar com) /lcd1602讀寫lcdrs=0; /低電平表示輸入指令lcden=0;P1=com; /送給P1口delay1(5);lcden=1;/EN電平由高變低,表示執(zhí)行指令,所以先拉高delay1(5);lcden=0;void write_data(uchar dat)lcdrs=1; /高電平表示輸入數(shù)據(jù)lcden=0; /先置低電平P1=dat;delay1(5);lcden=1; /先置高電平,后置低電平,執(zhí)行指令delay1(5);lcden=0; void lcall1() /請

39、輸入密碼 write_com(0x01); / 清屏幕指令,將以前的顯示內(nèi)容清除 write_com(0x80); /第一行-0x80+for(num=0;num<16;num+)write_data(table1num); /顯示"Please enter the"delay1(20);write_com(0xc4); /第二行-0xc0+ 第四位寫入for(num=0;num<9;num+)write_data(table2num); /顯示"password:"delay1(20);void lcall2() /請按確認鍵 write_

40、com(0x01); write_com(0x80); for(num=0;num<16;num+)write_data(table3num); /顯示"Please press the"delay1(20);write_com(0xc2);for(num=0;num<11;num+)write_data(table4num); /顯示"confirm key"delay1(20);void lcall3() /你輸入的密碼有誤 write_com(0x01); write_com(0x80);for(num=0;num<16;num+

41、)write_data(table5num); /顯示"Your password is"delay1(20);write_com(0xc3);for(num=0;num<9;num+)write_data(table6num); /顯示 "incorrect"delay1(20);void lcall4() /歡迎光臨 write_com(0x01); write_com(0x82); for(num=0;num<11;num+)write_data(table7num); /顯示"Welcome !"delay1(20

42、); void lcall5()/請輸入管理者密碼 write_com(0x01); write_com(0x80);for(num=0;num<16;num+)write_data(table1num); /顯示"Please enter the"delay1(20);write_com(0xc0);for(num=0;num<15;num+)write_data(table11num); /顯示"Senior Password"delay1(20); EA=1;/ RI=0;/ delay1(2); delay1(2); void lca

43、ll6()/請輸入新密碼 write_com(0x01); write_com(0x80);for(num=0;num<16;num+)write_data(table1num);delay1(20); write_com(0xc2);for(num=0;num<13;num+)write_data(table12num); /顯示"new password:"delay1(20);void lcall7()/請再輸入一次 write_com(0x01); write_com(0x80);for(num=0;num<16;num+)write_data(t

44、able1num); delay1(20); write_com(0xc2);for(num=0;num<15;num+)write_data(table13num);/顯示"password again:"delay1(20);void lcall8() /密碼已修改成功 write_com(0x01); write_com(0x89);for(num=0;num<16;num+)write_data(table14num); /顯示"Password changed"delay1(20); write_com(0xc2);for(num=

45、0;num<12;num+)write_data(table15num); /顯示"successfully"delay1(20);void lcall9() /5* write_com(0x01); write_com(0x89);for(num=0;num<5;num+)write_data(table8num); /顯示5個“*”delay1(20); void lcall10() /8* write_com(0x01); write_com(0x89);for(num=0;num<8;num+)write_data(table16num);/顯示

46、8個“*”delay1(20); void lcall11() write_com(0x01); write_com(0x80);for(num=0;num<14;num+)write_data(adatanum); /"!worning!"delay1(20); delay_1(2000); /*at24c02讀寫*/閱讀at24c02資料void starti2c() /當 SCL為高,SDA由高到低的變化被視為起始命令,必須以起始命令作為任何一次讀/寫操作命令 sda=1; scl=1; delay(); sda=0; delay(); scl=0;void s

47、topi2c() /當 SCL為高,SDA 由低到高的變化被視為停止命令,在一個讀操作后,停止命令會使 EEPROM進入等待態(tài)低功耗模式sda=0; scl=1; delay(); sda=1; delay(); scl=0;void mack()/開始寫字節(jié) sda和scl電平變化的順序不同 sda=0;/sda=0,scl由高變低,開始輸入 scl=1; delay(); scl=0; sda=1; void mnack()/字節(jié)傳送完 sda=1; /sda=1,scl由高變低,表示輸入完一個位 scl=1; delay(); scl=0; bit cack() /應答位檢測 0表示數(shù)據(jù)

48、傳送完成 bit ack; sda=1;/sda=1,scl=1表示輸入數(shù)據(jù) scl=1; delay(); ack=sda; scl=0;/sda=1,scl由高變低,表示輸入完一個位 return (ack);void write_byteack(uchar dat)uchar i,temp; temp=dat; for(i=0;i<8;i+) dat=dat<<1; sda=CY; scl=1; delay(); scl=0; while(cack()=1) /應答位為1,數(shù)據(jù)沒成功,重新寫入 dat=temp ; for(i=0;i<8;i+) dat=dat&

49、lt;<1; sda=CY; scl=1; delay(); scl=0; uchar read_byte()/輸出字節(jié)uchar i,k; sda=1; delay();for(i=0;i<8;i+) scl=1; delay(); k=(k<<1)|sda;/ scl=0; delay(); return (k);void write_6byte(uchar address,uchar *p) uchar i; starti2c(); write_byteack(0xa0); /1010 0000 write_byteack(address); for (i=0;i

50、<6;i+) write_byteack(*p); p+; stopi2c();void read_nbyte(uchar address,uchar n) uchar i; starti2c(); write_byteack(0xa0);write_byteack(address); starti2c(); write_byteack(0xa1); for(i=0;i<n;i+) aai=read_byte(); /把從存儲器讀出的數(shù)據(jù)存入aa if(i=(n-1) mnack(); else mack(); stopi2c(); void initi2c() write_6byte(0x60,table9); /1 2 3 4 5 6 delay1(100); void init() /LCD初始化 /initi2c();lcdrw=0;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論