版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)論文(設計)</b></p><p> 題 目 基于單片機與GSM模塊的電子密碼鎖設計</p><p> 物理與信息工程 學 院 電子信息科學與技術 專 業(yè) 07級 1 班</p><p><b> 目 錄</b></p><p><b
2、> 摘要</b></p><p><b> 引言</b></p><p> 第1章 電子密碼鎖的總體設計方案的選擇</p><p> 第1.1節(jié) 方案一:采用數(shù)字控制電路</p><p> 第1.2節(jié) 方案二:采用單片機為主控制器的方案</p><p> 第1.
3、3節(jié) 方案三:采用單片機為主控制系統(tǒng),GSM模塊作為報警系統(tǒng)</p><p> 第2章 主要元器件說明</p><p> 第2.1節(jié) MCS-51單片機介紹</p><p> 第2.2節(jié) LCD1602顯示器介紹</p><p> 第2.3節(jié) AT24C02 串行EPROM介紹</p><p> 第
4、2.4節(jié) GSM模塊說明</p><p> 第3章 系統(tǒng)硬件設計</p><p> 第3.1節(jié) 系統(tǒng)硬件總設計</p><p><b> 第3.2節(jié) 電源</b></p><p> 第3.3節(jié) 按鍵輸入部分</p><p> 第3.4節(jié) 單片機與GSM模塊串行通信部分<
5、/p><p> 第4章 系統(tǒng)軟件設計</p><p> 第4.1節(jié) 主程序流程圖</p><p> 第4.2節(jié) 按鍵功能流程圖</p><p> 第4.3節(jié) 密碼設置流程圖及報警流程圖</p><p> 第5章 系統(tǒng)軟件設計</p><p> 第4.1節(jié) 主控制板的調試<
6、;/p><p> 第4.2節(jié) GSM模塊調試</p><p><b> 總結</b></p><p><b> 參考文獻</b></p><p><b> 致謝</b></p><p><b> 附錄圖</b><
7、;/p><p> 基于單片機與GSM的電子密碼鎖的設計</p><p> 物理與信息工程學院 電子信息科學與技術 </p><p><b> 指導老師 </b></p><p> 【摘要】:隨著科學技術的發(fā)展,電子密碼鎖已經越來越成為人們生活中不可或缺的安全防范利器。文章首先介紹了基于單片機和GSM模塊的密碼控制系
8、統(tǒng),然后簡要描述了設計電子密碼鎖系統(tǒng)的意義。文章采用分塊模式,對整個系統(tǒng)的硬件與軟件設計進行描述,其中硬件部分著重介紹了GSM模塊,單片機STC89C51作為MCU及其外圍電路,24C02 存儲電路,矩陣按鍵輸入電路,LCD顯示電路,GSM模塊與主控制板連接電路等。軟件部分用C語言編寫主控制器與GSM模塊的發(fā)送接收,24C02的讀寫。設計了一款可以多次修改密碼,自動鎖定按鍵等功能的電子密碼鎖。 </p><p>
9、 【關鍵詞】:電子密碼鎖;單片機;GSM;24C02;</p><p><b> 引言</b></p><p> 當今世界科技不斷發(fā)展,人們的安全意識越來越高,安全成了我們共同的話題。在銀行、酒店、商場、航天等各行各業(yè),防盜報警更是至關重要的,對環(huán)境要進行密切的監(jiān)視,以防止失竊的發(fā)生,當發(fā)生失竊時能第一時間報警。這里我就介紹一下我自己做的一款基于51單片機和GS
10、M模塊的電子密碼鎖。</p><p> 傳統(tǒng)的機械鎖被撬的事件屢見不鮮,因為其構造簡單,功能單一,沒智能化,位置固定,不能隨意換位置。而電子鎖克服了機械式密碼鎖設置密碼量少、安全性能差的缺點,并且其保密性高,使用靈活性好,密碼可變,安全系數(shù)高,使電子密碼鎖無論在技術上還是在方便性上都受到了廣大人們群眾的親愛。隨著大規(guī)模集成電路的出現(xiàn),特別是單片機的問世,出現(xiàn)了許多帶微處理器的智能密碼鎖。</p>
11、<p> 而我設計的電子密碼鎖是一種基于MCS-51和GSM模塊智能鎖的硬件和軟件設計及實現(xiàn)方案,綜合應用了所學的單片機、通信原理、電路設計等方面的知識。特別適用于家庭、辦公室、服務、學生宿舍及賓館等場所等的文檔、財務等安全報警。電路設計具有按鍵輸入有效提示,輸入錯誤提示,開鎖電路,控制報警電路,修改密碼等多種功能,可在意外泄密的情況下隨時修改密碼6位數(shù)密碼,保密性強,使用靈活性高。當密碼連續(xù)3次輸入錯誤時便會通過GSM模塊
12、自動報警并且蜂鳴器響。它是通過按鍵輸入與存儲密碼進行對比,從而控制電磁鎖的開關,具有推廣意義。</p><p> 本設計中采用了微處理器STC89C51芯片單片機為主控制芯片,采用LCD1602液晶顯示屏幕與矩陣式鍵盤,方便手動輸入與數(shù)字顯示。為了防止掉電等意外事件的發(fā)生,我們采用了AT24C02 作為掉電保護。用戶想打開鎖必須通過鍵盤輸入正確的密碼。密碼輸入錯誤有提示,為了提高安全性,當輸入密碼連續(xù)3次錯誤蜂
13、鳴器響起并通過GSM模塊報警。并且用戶可以隨時用手機向GSM模塊發(fā)出通信使密碼鎖處于鎖定狀態(tài)。鎖打開后才能修改密碼,輸入新密碼時需要2次確認,以防止誤操作。這些人性化設計使其更安全可靠、通過GSM模塊和單片機的組合運用使其具有一定的智能化,硬件電路簡單、易于實現(xiàn)、可以通過軟件對系統(tǒng)進行優(yōu)化,具有很好的市場推廣價值。</p><p> 電子密碼鎖的總體設計方案的選擇</p><p> 為
14、了使設計更具有針對性,可靠性更強,在做設計之前我想了2種不同的設計方案。</p><p> 1.1方案一:采用數(shù)字控制電路(基于用以74LS112)。</p><p> 利用雙JK觸發(fā)器74LS112構成數(shù)字邏輯電路控制, 555電路等實現(xiàn)對鎖的控制。設置9個按鍵,其中4個是有效按鍵,其它的都是干擾按鍵,如果按下干擾鍵,鍵盤輸入自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密
15、碼的時間超過20秒(一般情況下,用戶不會超過40秒,若用戶覺得不便,還可以修改)電路將報警30秒,若電路連續(xù)報警三次,電路將鎖定鍵盤5分鐘,防止他人的非法操作。該系統(tǒng)外圍電路少,功能單一并且不能通過編程來實現(xiàn),密碼一旦忘記或掉電就無法開鎖,輸入密碼無提示,準確性和靈活性差。所以不采用[1]。</p><p> 1.2方案二:采用單片機為主控制器的方案。</p><p> 由于單片機種類
16、多各種型號的功能不一,試用場合各不相同。因此要多加比較選擇一款適合做本設計的型號。我從以下幾個方面考慮:存儲器容量,指令系統(tǒng),串口通信,中斷系統(tǒng),此外還有中斷源優(yōu)先級個數(shù),工作電壓和溫度,時鐘震蕩等。再結合我們平時所學。以上各個因素我選擇89C51作為本設計的主控制器。利用其豐富的I/O口資源和靈活的程序設計,實現(xiàn)密碼鎖的基本功能。它把CPU、存儲器、及I/O口集成到一個芯片上,只要加少許外圍器件就能夠成控制系統(tǒng)。這樣就可以節(jié)省硬件成本
17、,通過程序來實現(xiàn)各種功能。單片機外圍接4*4矩陣鍵盤作為密碼輸入和功能鍵,用LCD1602作顯示器[2]。24C02作為外部存儲芯片,用于密碼掉電保護。鍵盤由0-9十個數(shù)字鍵、啟動、刪除、確認、修改密碼共14個鍵組成。用戶輸入密碼正確則開鎖,輸入錯誤LCD則會提示。如果連續(xù)3次輸入錯誤則蜂鳴器發(fā)出報警聲。用戶只有在輸入密碼正確時才能修改密碼,新密碼必須輸入2次以防止誤操作。</p><p> 1.3方案三:采用
18、單片機為主控制系統(tǒng),GSM模塊作為報警系統(tǒng)。</p><p> 在方案二的基礎上添加了GSM模塊,單片機通過RS-232與GSM模塊進行串行通信。當密碼3次輸入錯誤時單片機通過串口控制GSM模塊向用戶手機發(fā)送信息,提醒用戶此時密碼鎖有危險。用戶隨時可通過手機向密碼鎖發(fā)出信息將其鎖定,此時鍵盤被鎖定密碼鎖將無法打開,防止密碼鎖被打開。</p><p> 方案三在方案二的基礎上運用了移動通
19、信技術,使密碼鎖的安全性、可靠性、靈活性及可控制性得到了大大的提高,且有智能化的特點,現(xiàn)實生活中運用方便,因此選用方案三。</p><p> 第2章 主要元器件說明</p><p> 2.1 MCS-51單片機介紹</p><p> MCS-51系列單片機是Intel公司繼MCS-48系列單片機之后開發(fā)的一款8位單片機。它是一款高性能、高集成度、低功耗的單片機
20、,具有8位CPU,4K程序存儲器、128字節(jié)數(shù)據存儲器,外部可擴張60K程序存儲器和64K數(shù)據存儲器,2個16位定時/記數(shù)器,5個中斷優(yōu)先級,4個八位并行I/O口,最高時鐘頻率12MHZ。[3]在不連接外圍電路的情況下能實現(xiàn)很多邏輯功能,89C51單片機是一款不可多得的高性能單片機,它不僅適合用于簡單的測控,也適用于復雜的測控系統(tǒng)。</p><p> 2.1.1芯片STC89C51的性能及其常用參數(shù)的分析<
21、;/p><p> STC89C51內部具有2KB字節(jié)快閃存存儲器,采用DIP封裝,是目前在中小系統(tǒng)中應用最為普及的單片機。芯片引腳排列如圖3.1所示,8951單片機的端口都是準雙向口,每個I/O口都能獨立輸入輸出。每個I/O口都有一個鎖存器,一個輸出驅動器和輸入緩沖器。再無外部擴展存儲器系統(tǒng)中,這四個端口都可以作為準雙向I/O口使用。當有擴張外部存儲器時,P2口送出高8位地址P0口分時復用做雙向總線,分時送出低八位
22、地址和數(shù)據的輸入/輸出;P3口是一個多功能端口各個引腳具有第二功能[4]。(P3.0為串行數(shù)據接受端,P3.1位串行數(shù)據發(fā)送端,P3.2為外部中斷0請求,P3.3為外部中斷1請求,P3.4為定時器/計數(shù)器0的外部事件計數(shù)輸入,P3.5為定時器/計數(shù)器1的外部事件計數(shù)輸入,P3.6位片外數(shù)據存儲器“寫選通控制”輸出,P3.7為片外數(shù)據存儲器“讀選存儲器”輸出)。</p><p> 圖2.1 芯片引腳排列 &
23、lt;/p><p><b> 其主要功能特點:</b></p><p> ?。?)4K可反復擦寫的Flash ROM</p><p> ?。?)低功耗空閑和省電模式</p><p> ?。?)4.5-5.5V工作電壓,全靜態(tài)工作</p><p> ?。?)中斷喚醒省電模式</p>&l
24、t;p> ?。?)2個可編程定時/計數(shù)器</p><p> ?。?)3級程序存儲加密</p><p> ?。?)全雙工UART串行中斷口線</p><p> 可見STC89C51的功能齊全,體積小、可靠性高、成本低??捎?V電壓編程,不容易損壞器件,且擦寫時間只有10ms。STC89C51芯片提供了三級程序存儲器加密,能完全保證程序或系統(tǒng)不被仿制。同時,芯片
25、可降至0Hz靜態(tài)邏輯操作,并支持兩種省電模式。</p><p> 2.1.2 STC89C51引腳功能說明[3]</p><p> 采用HMOS工藝的51系列單片機都采用40條引腳的雙列直插封裝(DIP)方式,這里只對DIP封裝各引腳功能簡要說明。</p><p> Vss(20腳):電路低電平。</p><p> Vcc(40腳):
26、正常運行和編程校驗時為+5V電源。</p><p> RST:震蕩器工作時,由該引腳輸入2個機器周期的高電平時復位單片機。</p><p> ALE/PROG(30腳):ALE允許地址鎖存信號輸出。當訪問外部存儲器時,ALE信號的負跳變將P0口上的低8位地址送入鎖存器。在非訪問外部存儲器期間,ALE仍以1/6震蕩頻率固定不變的速率輸出,因此它能作外部時鐘或定時信號用。當訪問外部數(shù)據存儲
27、器時,將以1/2震蕩頻率輸出。PROG為編程脈沖輸入端。</p><p> PSEN(29腳):訪問外部程序存儲器選通信號,低電平有效。</p><p> Vpp/EA(31腳)):EA為訪問內部或外部程序存儲器選擇信號。當EA保持高電平時訪問內部存儲器。</p><p> P0口:8位漏極開路雙向并行I/O端口。當訪問外部存儲器時,它是地址總線(低8位)和數(shù)
28、據總線復用;外部不擴展而單片機應用時,則作雙向I/O口用;在進行片內程序效驗期間,作指令代碼輸出??山?個LSTTL負載[7]。</p><p> P1口:8位準雙向并行I/O口。在片內編程和程序效驗期間,作為低8位地址總線用。</p><p> P2口:8位準雙向并行I/O端口。當訪問外部存儲器時做高8位地址總線用;不作外部功能擴展(單片機應用)時,則作準雙向I/O口用;在片內程序效
29、驗期間作高8位地址線。它可帶4個LSTTL負載。</p><p> P3口:具有內部上拉電路的8位并行準雙向口。它還提供特殊的第2功能。它的每一位均可獨立定義為第一功能I/O口或第二功能。第二特殊功能具體含義為:</p><p> P3.0為串行數(shù)據接受端。</p><p> P3.1位串行數(shù)據發(fā)送端。</p><p> P3.2為外
30、部中斷0請求。</p><p> P3.3為外部中斷1請求。</p><p> P3.4為定時器/計數(shù)器0的外部事件計數(shù)輸入。</p><p> P3.5為定時器/計數(shù)器1的外部事件計數(shù)輸入。</p><p> P3.6位片外數(shù)據存儲器“寫選通控制”輸出。</p><p> P3.7為片外數(shù)據存儲器“讀選存儲
31、器”輸出。</p><p> 2.2 LCD1602顯示器介紹</p><p> LCD1602是一款專門用于顯示符號、數(shù)字、字母等點陣LCD顯示屏。它具有體積小、功耗低、顯示內容豐富、性價比高等特點。它可以顯示2行16個字符,有8位并行數(shù)據線和RS、R/W、EN三個控制口。LCD1602有背光和不背光兩種型號,且大部用HD44789作為控制器。背光的略厚些,是否背光在本設計中并無任何
32、差別。因此適合作為本設計的顯示模塊。</p><p> 圖2.2 LCD1602</p><p> 2.2.1 LCD1602各引腳說明[5]</p><p> 1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表:</p><p> 表1 LCD1602各引腳</p><p>
33、 2.2.2 LCD1602主要參數(shù)</p><p> 顯示容量:16×2個字符 </p><p> 芯片工作電壓:4.5—5.5V </p><p> 工作電流:2.0mA(5.0V) </p><p> 模塊最佳工作電壓:5.0V </p><p> 字符尺寸:2.95×4.35(W
34、×H)mm</p><p> 2.3 AT24C02 串行EPROM介紹</p><p> 因為89C51單片機沒有掉電保護功能,在程序掉電的情況下,如果不加外部存儲器,那么掉電以后數(shù)據就會丟失。如果不加外部存儲器,密碼鎖一旦掉電就無法保存數(shù)據,密碼鎖就無法實現(xiàn)修改密碼的功能(密碼一直是原始密碼)。所以我加了外部存儲芯片24C02,用來存儲密碼,無論是否掉電,數(shù)據一直保存在芯
35、片中永遠不會丟失。這樣安全性又提高了一些。[8]圖2.3為24C02引腳說明圖。</p><p> 圖2.3 24C02各引腳說明圖</p><p> AT24C02的封裝為DIP-8,提供電可擦除串行1024位存儲或可編程只讀存儲器(E2PROM)128字節(jié)。</p><p> 2.3.1 I2C總線說明[4]</p><p>
36、 I2C總線采用二線制傳輸,一根是數(shù)據線SDA,另一根是時鐘線SCL,所有I2C器件都連接在SDA和SCL上,每個器件有唯一的地址?!?】</p><p> SDA引腳通常要外部拉高,SDA上的數(shù)據只有在SCL低電平期間才能改變。數(shù)據線在SCL高電平期間改變定義為一個開始或停止信號。</p><p> 起始狀態(tài):在SCL為高時SDA產生一個下降沿。</p><p&g
37、t; 停止狀態(tài):在SCL為高時SDA產生一個上升沿。</p><p> 應答:I2C協(xié)議規(guī)定,在每個字節(jié)傳輸完畢后,必須有一個應答位。它由主機產生,發(fā)送設備把數(shù)據線SDA置為高電平;接收設備把數(shù)據線SDA置為低電平,并且在此期間保持低電平狀態(tài)?!?】</p><p> 2.4 GSM模塊說明[9]</p><p> 該部分采用的是西門子TC35i的GSM
38、模塊,如圖6所示。以下是TC35i的主要性能。</p><p> 圖2.4 TC35模塊</p><p> 表1 需要注意的芯片引腳</p><p><b> 系統(tǒng)硬件設計</b></p><p> 通過上面各主要芯片、器件的說明,我們對系統(tǒng)的各個硬件部分有了一定的認識。下面對系統(tǒng)的總體設計作簡要說明。<
39、/p><p> 3.1 系統(tǒng)硬件總設計</p><p> 本系統(tǒng)主要由89C51單片機,矩陣按鍵,LCD1602顯示器,24C02存儲芯片,GSM模塊組成。用戶通過矩陣按鍵輸入密碼。按下啟動鍵,輸入6位密碼,以確認鍵結束,若密碼正確,則顯示屏提示Welcom!!!,表示向電磁鎖通電,門打開,若輸入的密碼錯誤,則顯示屏提示重新輸入,若三次密碼錯誤,則系統(tǒng)蜂鳴器間斷式地響30秒,此時不能對系統(tǒng)
40、進行任何操作,同時單片機控制GSM模塊向用戶手機發(fā)送一條信息提醒用戶。用戶可以隨時通過手機向GSM模塊發(fā)送信息把密碼鎖置于鎖定狀態(tài),此時按鍵和顯示屏將被鎖定30分鐘,不能對系統(tǒng)進行任何操作。只有在密碼輸入正確后才能修改密碼。圖3-1為硬件設計總體原理圖。[5]</p><p> 圖3-1 硬件設計原理圖</p><p><b> 3.2 電源</b></p
41、><p> 89C51單片機需要+5V直流電源供電,我采用USB從電腦上采集電源,所以會有雜波。因此在電源和地之間加上一個22UF的電解電容和磁片電容104用于濾去雜波。其電路圖如圖3-2所示。</p><p> 3-2 電源部分電路</p><p> 3.3 按鍵輸入部分</p><p> 因為本設計使用到的按鍵比較多,若用獨自式按
42、鍵則需要占用大量I/O口資源。為了節(jié)省I/O口資源,我采用4*4矩陣式按鍵。矩陣式按鍵由行線和列線組成,按鍵位于行線和列線的交叉點上。按鍵包括0-9十個數(shù)字鍵,還包括清除、確認、啟動、修改密碼四個功能鍵,其余2個為無用按鍵。與單片機的技法大致如圖3-3所示。[6]</p><p> 圖3-3 按鍵輸入原理圖</p><p> 3.4 單片機與GSM模塊串行通信部分</p&
43、gt;<p> TC35的數(shù)據輸入/輸出接口實際上是一個串行異步收發(fā)器,符合ITU-T RS232接口標準。它有固定的參數(shù):8位數(shù)據位和1位停止位,無校驗位,波特率在300bps~115kbps之間可選,TC35模塊提供RS-232數(shù)據口,采用AT指令,內置微控制器將GPS接收機和GSM模塊結合在一起?!?】為了方便設置波特率,我選用11.0592MHz的晶振作為單片機的外部晶振,波特率設置為9600。RS232串口原理
44、圖如下所示。</p><p> 圖3-4 RS232原理圖</p><p> 第四章 系統(tǒng)軟件設計</p><p> 系統(tǒng)的主任務是通過對按鍵輸入的掃描與存儲在24C02里的密碼進行比對,若連續(xù)輸入錯誤3次則單片機控制GSM模塊通知用戶,用戶通過手機與GSM模塊聯(lián)系控制鎖定密碼鎖。軟件的重點在于單片機的編程和GSM模塊的通信。</p>&
45、lt;p> 4.1 主程序流程圖</p><p> 如圖4-1為主程序流程圖。單片機上電后按下啟動鍵程序進行初始化設定。按下按鍵輸入密碼,單片機根據對按鍵掃描,啟動程序。如果密碼正確則啟動程序,如果不正確則啟動再輸入程序。如果連續(xù)三次不正確則啟動報警程序。</p><p> 圖4-1 主程序流程圖</p><p> 4.2 按鍵功能流程圖&l
46、t;/p><p> 圖4-2為按鍵功能流程圖,按鍵分為0-9數(shù)字輸入按鍵、啟動、刪除、確認、設置按鍵。需要編寫與其功能相對應的程序,并按順序與輸入數(shù)值作比較。[11]</p><p> 圖4-2 按鍵功能流程圖</p><p> 4.3 密碼設置流程圖及報警流程圖</p><p> 圖4-3為密碼設置流程圖和報警流程圖,先按下啟動鍵輸
47、入舊密碼,如果連續(xù)三次輸入錯誤則報警。若輸入正確可以修改密碼。新密碼必須輸入兩次,防止誤操作。</p><p> 第五章 系統(tǒng)調試</p><p> 系統(tǒng)調試主要分為主控制板的調試和GSM模塊的調試。</p><p> 5.1 主控制板的調試</p><p> 畫完原理圖和PCB圖后,把各個元件焊接到電路板上。然后先用萬用表對
48、各個焊點進行檢測,看是否有短路、虛焊、斷路等問題。特別是芯片各個引腳容易短路和虛焊,應特別注意。還有就是要檢查按鍵是否損壞,有損壞應即時跟換,負責會影響到后面的調試。芯片的正負極不能接反。在保證了焊點和各個元件之間的連接都沒錯的情況下,才能上電檢測。</p><p> 然后給主控制板上電,導通開關。過幾秒用手觸摸各個芯片,是否有發(fā)燙現(xiàn)象。若有說明芯片的正負極接反了,應及時斷電。此時芯片很可能已經燒壞,應及時跟換
49、。如果沒有異?,F(xiàn)象,則可以先下載一小斷編譯好的程序到單片機里。若下載成功,則說明RS-232下載部分沒有問題。</p><p> 對STC89C51單片機的檢測可以下載一段程序。例如下載一段檢測芯片引腳的程序,把芯片的引腳逐個的拉高,過幾秒再拉低,使其產生一個下降沿。然后用萬用表檢查引腳電平的變化。如果沒有變化,可能是芯片沒連接好,也可能是芯片壞了。如果有變化,則說明單片機基本沒問題。</p>&
50、lt;p> 對24C02的檢測也是通過下載一段程序來檢測。例如下載一段24C02的讀寫程序,先通過按鍵輸入幾個鍵碼寫入24C02中。然后再下載一段讀24C02存儲器的程序,把存儲在24C02里的數(shù)據讀出來,顯示在LCD1602上。這樣不僅檢測了24C02的電路,同時也檢測了按鍵掃描電路、LCD1602顯示電路。如果沒有讀出數(shù)據,則可能是鍵盤或芯片問題。先逐個檢查按鍵,是否有接錯,然后再檢測24C02外圍電路。若沒問題可能是芯片壞
51、了。</p><p> 5.2 GSM模塊調試</p><p> 通過RS-232將GSM模塊和主控制板連接起來。這樣要注意要將RXD-RXD,TXD-TXD連接起來,不要憑經驗交叉連接。</p><p> 這里我采用串口調試助手,通過RS-232與電腦連接來調試。把串口波特率設置為9600,效驗為設置為NONE,數(shù)據位8位,停止位1位</p>
52、<p> 圖5-1 串口助手</p><p> 模塊有兩種發(fā)送方式:TEXT模式和PDU模式。PDU模式可以用Unicode編碼發(fā)送英文、漢字。采用PDU模式比較復雜,TEXT模式雖然只能發(fā)送英文,但其無需編碼,發(fā)送簡單,所以我在測試時采用TEXT模式。</p><p> TEXT 發(fā)送模式:(相對簡單很多。)</p><p><b>
53、 發(fā)送:AT<回車></b></p><p><b> 返回:AT<回車></b></p><p><b> OK</b></p><p> 發(fā)送:AT+CMGF=1<回車></p><p> 返回:AT+CMGF=1<回車>&l
54、t;/p><p><b> OK</b></p><p> 發(fā)送:AT+CSCA=+8613010130500<回車></p><p> 返回:AT+CSCA=+8613010130500<回車></p><p><b> OK</b></p><p&
55、gt; 發(fā)送:AT+CMGS=13132061066<回車></p><p> 返回:AT+CMGS=13132061066<回車></p><p><b> ></b></p><p> 發(fā)送:XXXXXX(0-9,A-Z)[XXXXX 是指阿拉伯數(shù)字0-9,英文26 個字母A-Z]</p>
56、<p> 返回:XXXXXX(0-9,A-Z)[XXXXX 是指阿拉伯數(shù)字0-9,英文26 個字母A-Z]</p><p> 發(fā)送:1A(十六進制發(fā)送)<回車></p><p> 返回:+CMGS: XXX</p><p><b> OK</b></p><p> 以上為 TEXT 方式
57、發(fā)送截圖:</p><p> 如果不能正常發(fā)送,返回ERROR,則說明需要格式化。可以發(fā)送AT&F 命令格式化。</p><p> 發(fā)送:AT&F<回車></p><p> 返回:AT&F<回車>【10】</p><p><b> OK</b></p>
58、<p> 圖5-2 TEXT調試</p><p><b> 總結</b></p><p> 以上為畢業(yè)設計期間我所設計的基于單片機和GSM模塊的電子密碼鎖,經過多次的修改完善,基本滿足設計要求。按下啟動鍵,輸入6位密碼,以確認鍵結束,若密碼正確,則顯示屏提示Welcom!!!,表示向電磁鎖通電,門打開,若輸入的密碼錯誤,則顯示屏提示重新輸入,若三次
59、密碼錯誤,則系統(tǒng)蜂鳴器間斷式地響30秒,此時不能對系統(tǒng)進行任何操作,同時單片機控制GSM模塊向用戶手機發(fā)送一條信息提醒用戶。用戶可以隨時通過手機向GSM模塊發(fā)送信息把密碼鎖置于鎖定狀態(tài),此時按鍵和顯示屏將被鎖定30分鐘,不能對系統(tǒng)進行任何操作。只有在密碼輸入正確后才能修改密碼。</p><p> 由于本人水平有限,此系統(tǒng)仍存在一些問題。例如忘記密碼后將很難再打開密碼鎖。我想這可以通過其他的辦法解決,但我還沒想到
60、。但是通過這次畢業(yè)設計,讓我重新學習了單片機和電路方面的知識,對之前所學有了更深刻的理解,特別是C語言有了比較深刻的理解。在自學GSM模塊的原理和編程過程中,掌握了一定的學習方法,也鍛煉了自己的意志,對今后的工作,生活有積極的意義。</p><p><b> 致謝</b></p><p> 衷心感謝*老師。本設計是在*老師精心指導下完成的,從論文的選題、設計方案選
61、擇、GSM模塊的選擇到系統(tǒng)的總體布局,各個方面都離不開吳老師悉心教導。在這一個多月畢業(yè)設計的時間里,*老師認真的工作態(tài)度,誠信寬厚的為人處世態(tài)度,都給我留下了深刻的印象。老師多次問我設計進度,并且為我指點迷津,當我遇到困難時,老師總能引導我走出困境。</p><p> 大學四年的生活即將結束,我將告別我的學校、老師、同學,在這里由衷的感謝大家陪我度過了這絢麗多彩的大學生活!謝謝!</p><
62、p><b> 參考文獻</b></p><p> [1] 孟慶濤 鄭鳳翼。電子控制電路,人民郵電出版社,2006.1</p><p> [2] 周立功等,增強型89C51單片機速成與實戰(zhàn),北京航空大學出版社,2003.7</p><p> [3] 孫育才等,單片微型計算機及其應用,東南大學出版社,2009.6</p>
63、<p> [4] 段晨東等,單片機原理及接口技術,清華大學出版社,2008.7</p><p> [5] 李明喜,新型電子密碼鎖的設計[J],機電產品開發(fā)與創(chuàng)新2004(3)</p><p> [6] 董繼成,一種新型單片機安全密碼鎖[J],電子技術2004(3)</p><p> [7] 楊茂濤,一種電子密碼鎖的實現(xiàn)[J],福建電腦,2004(
64、08).</p><p> [8] 王千,實用電子電路大全[M],電子工業(yè)出版社,2001.5</p><p> [11] 譚浩強.C程序設計(第三版)[M].清華大學出版社.2005.7</p><p> Based on MCU and GSM electronic combination lock design</p><p>
65、 【abstract】: with the development of science and technology, electronic combination lock has become an increasingly people essential to life security tool. This paper firstly introduces the GSM module based on microcontr
66、oller and password control system, and briefly describes design electronic combination lock system significance. This paper adopts block mode, the whole system hardware and software design, including hardware part descri
67、be introduces emphatically the GSM module, microcontroller ST</p><p> 【keyword】: electronic combination lock; microcontroller; GSM; 24C02;</p><p><b> 附錄一:總原理圖</b></p><p&
68、gt;<b> 附錄三:實物圖</b></p><p><b> 附錄二:程序</b></p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned
69、int</p><p> uchar code at[] = "AT\r";</p><p> uchar code cmgf[]="AT+CMGF=1\r";</p><p> uchar code csca[]="AT+CSCA=+8613890595500\r";</p><
70、p> uchar code cmgs[]="AT+CMGS=15260369536\r";</p><p> uchar code atd[]="ATD115260369536;\r";</p><p> uchar code af[]="AT&F"; </p><p> uchar
71、 code adata[]="!!!!woring!!!!";</p><p> uchar code adata1[]="ok!!";</p><p> uchar code table1[]="Please enter the"; </p><p> uchar code table2[]=&qu
72、ot;password:";</p><p> uchar code table3[]="Please press the";</p><p> uchar code table4[]="confirm key";</p><p> uchar code table5[]="Your passwor
73、d is"; </p><p> uchar code table6[]="incorrect";</p><p> uchar code table7[]="Welcome !!!" ;</p><p> uchar code table8[]="*****";</p>&l
74、t;p> uchar code table9[]={1,2,3,4,5,6};</p><p> uchar code table10[]={0,7,0,3,0,3,0,4,0};</p><p> uchar code table11[]="Senior Password"; </p><p> uchar code table1
75、2[]="new password:";</p><p> uchar code table13[]="password again:";</p><p> uchar code table14[]="Password changed"; </p><p> uchar code table15[]=
76、"successfully";</p><p> uchar code table16[]="********";</p><p> sbit sda=P0^1;</p><p> sbit scl=P0^0;</p><p> sbit lcdrs=P3^7;</p><p
77、> sbit lcdrw=P3^6;</p><p> sbit lcden=P3^5;</p><p> sbit fmq=P0^7;</p><p> bit flag,flag1,flag2,flag3,flag4,flag5,ok,ttt=0;</p><p> uchar kk,k=0; </p>&l
78、t;p> uchar num,num1,num2,num3,num4;</p><p> uchar aa[6],bb[9],cc[6],dd[6];</p><p> void send_c(uchar cc) //串口發(fā)送字符</p><p><b> { </b></p><p> SBUF
79、 =cc; </p><p> while(!TI ); </p><p><b> TI = 0; </b></p><p><b> } </b></p><p> void uart_init() //串口初始化</p><p>&
80、lt;b> {</b></p><p> SCON=0x50; //允許接收</p><p> PCON=0x00; //波特率不加倍</p><p> TMOD=0x20; //定時器1方式2</p><p> TH1=0xfd; // 波特率設置為9600</p><p>&
81、lt;b> TL1=0xfd;</b></p><p><b> TR1=1;</b></p><p> ES=1;//開串口終端</p><p><b> }</b></p><p> void delay_1(uint z)</p><p>&
82、lt;b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)for(y=110;y>0;y--);</p><p><b> }</b></p><p> void send(uchar
83、*tab) //串口發(fā)送字符串</p><p><b> { </b></p><p> while((*tab)!= '\0')</p><p><b> { </b></p><p> SBUF =*tab; </p><p> whil
84、e(!TI ); </p><p><b> TI = 0; </b></p><p><b> tab++; </b></p><p><b> } </b></p><p> send_c(0x0d);</p><p> send_c(
85、0x0a);</p><p><b> }</b></p><p> void delay() //At24c02延時</p><p><b> { ;; }</b></p><p> void delay1(uint i) </p>
86、<p><b> {</b></p><p><b> uint j;</b></p><p> for(;i>0;i--)</p><p> for(j=100;j>0;j--);</p><p><b> }</b></p>
87、<p> void write_com(uchar com) //lcd1602讀寫</p><p><b> {</b></p><p><b> lcdrs=0;</b></p><p><b> lcden=0;</b></p><p><
88、;b> P1=com;</b></p><p> delay1(5);</p><p><b> lcden=1;</b></p><p> delay1(5);</p><p><b> lcden=0;</b></p><p><b>
89、; }</b></p><p> void write_data(uchar dat)</p><p><b> {</b></p><p><b> lcdrs=1;</b></p><p><b> lcden=0;</b></p>&l
90、t;p><b> P1=dat;</b></p><p> delay1(5);</p><p><b> lcden=1;</b></p><p> delay1(5);</p><p><b> lcden=0;</b></p><p&g
91、t;<b> }</b></p><p> void lcall1() //請輸入密碼</p><p><b> { </b></p><p> write_com(0x01);</p><p> write_com(0x89);</p><p> for(nu
92、m=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table1[num]);</p><p> delay1(20);</p><p><b> }</b></p><p> write_com(
93、0xc4);</p><p> for(num=0;num<9;num++)</p><p><b> {</b></p><p> write_data(table2[num]);</p><p> delay1(20);</p><p><b> }</b>
94、;</p><p><b> }</b></p><p> void lcall2()//請按確認鍵</p><p><b> { </b></p><p> write_com(0x01);</p><p> write_com(0x89);</p>
95、<p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table3[num]);</p><p> delay1(20);</p><p><b> }</b></p>&l
96、t;p> write_com(0xc2);</p><p> for(num=0;num<11;num++)</p><p><b> {</b></p><p> write_data(table4[num]);</p><p> delay1(20);</p><p>&
97、lt;b> }</b></p><p><b> }</b></p><p> void lcall3()//你輸入的密碼有誤</p><p><b> { </b></p><p> write_com(0x01);</p><p> wri
98、te_com(0x89);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table5[num]);</p><p> delay1(20);</p><p><b> }&
99、lt;/b></p><p> write_com(0xc3);</p><p> for(num=0;num<9;num++)</p><p><b> {</b></p><p> write_data(table6[num]);</p><p> delay1(20);
100、</p><p><b> }</b></p><p><b> }</b></p><p> void lcall4() //歡迎光臨</p><p><b> { </b></p><p> write_com(0x01);</p&
101、gt;<p> write_com(0x82);</p><p> for(num=0;num<11;num++)</p><p><b> {</b></p><p> write_data(table7[num]);</p><p> delay1(20);</p><
102、;p><b> }</b></p><p><b> }</b></p><p> /* void lcall5()//請輸入管理者密碼</p><p><b> { </b></p><p> write_com(0x01);</p><
103、p> write_com(0x89);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table1[num]);</p><p> delay1(20);</p><p><
104、;b> }</b></p><p> write_com(0xc0);</p><p> for(num=0;num<15;num++)</p><p><b> {</b></p><p> write_data(table11[num]);</p><p>
105、 delay1(20);</p><p><b> }</b></p><p><b> } */</b></p><p> void lcall5()//請輸入管理者密碼</p><p><b> { </b></p><p> writ
106、e_com(0x01);</p><p> write_com(0x89);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table1[num]);</p><p> delay1(
107、20);</p><p><b> }</b></p><p> write_com(0xc0);</p><p> for(num=0;num<15;num++)</p><p><b> {</b></p><p> write_data(table11[
108、num]);</p><p> delay1(20);</p><p><b> }</b></p><p><b> EA=1;</b></p><p><b> RI=0;</b></p><p> delay1(2);</p>
109、<p> delay1(2);</p><p><b> } </b></p><p> void lcall6()//請輸入新密碼</p><p><b> { </b></p><p> write_com(0x01);</p><p> wr
110、ite_com(0x89);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table1[num]);</p><p> delay1(20);</p><p><b> }
111、</b></p><p> write_com(0xc2);</p><p> for(num=0;num<13;num++)</p><p><b> {</b></p><p> write_data(table12[num]);</p><p> delay1(2
112、0);</p><p><b> }</b></p><p><b> }</b></p><p> void lcall7()//請再輸入一次</p><p><b> { </b></p><p> write_com(0x01);<
113、;/p><p> write_com(0x89);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table1[num]);</p><p> delay1(20);</p>
114、<p><b> }</b></p><p> write_com(0xc2);</p><p> for(num=0;num<15;num++)</p><p><b> {</b></p><p> write_data(table13[num]);</p>
115、;<p> delay1(20);</p><p><b> }</b></p><p><b> }</b></p><p> void lcall8()//密碼已修改成功</p><p><b> { </b></p><p&g
116、t; write_com(0x01);</p><p> write_com(0x89);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_data(table14[num]);</p><p>
117、 delay1(20);</p><p><b> }</b></p><p> write_com(0xc2);</p><p> for(num=0;num<12;num++)</p><p><b> {</b></p><p> write_data
118、(table15[num]);</p><p> delay1(20);</p><p><b> }</b></p><p><b> }</b></p><p> void lcall9()//5*</p><p><b> { </b>
119、</p><p> write_com(0x01);</p><p> write_com(0x89);</p><p> for(num=0;num<5;num++)</p><p><b> {</b></p><p> write_data(table8[num]);<
120、/p><p> delay1(20);</p><p><b> }</b></p><p><b> }</b></p><p> void lcall10()//8*</p><p><b> { </b></p><p&
121、gt; write_com(0x01);</p><p> write_com(0x89);</p><p> for(num=0;num<8;num++)</p><p><b> {</b></p><p> write_data(table16[num]);</p><p>
122、 delay1(20);</p><p><b> }</b></p><p><b> }</b></p><p> /*********************at24c02讀寫*****************/</p><p> void starti2c()</p>
123、<p><b> {sda=1;</b></p><p><b> scl=1;</b></p><p><b> delay();</b></p><p><b> sda=0;</b></p><p><b> dela
124、y();</b></p><p><b> scl=0;</b></p><p><b> }</b></p><p> void stopi2c()</p><p><b> {sda=0;</b></p><p><b>
125、; scl=1;</b></p><p><b> delay();</b></p><p><b> sda=1;</b></p><p><b> delay();</b></p><p><b> scl=0;</b></
126、p><p><b> }</b></p><p> void mack()</p><p><b> { sda=0;</b></p><p><b> scl=1;</b></p><p><b> delay();</b>
127、</p><p><b> scl=0;</b></p><p><b> sda=1;</b></p><p><b> }</b></p><p> void mnack()</p><p><b> {sda=1;</b&
128、gt;</p><p><b> scl=1;</b></p><p><b> delay();</b></p><p><b> scl=0;</b></p><p><b> }</b></p><p> bit c
129、ack()</p><p> { bit ack;</p><p><b> sda=1;</b></p><p><b> scl=1;</b></p><p><b> delay();</b></p><p><b> ack
130、=sda;</b></p><p><b> scl=0;</b></p><p> return (ack);</p><p><b> }</b></p><p> void write_byteack(uchar dat)</p><p> {uc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計(論文)基于單片機的電子密碼鎖設計
- 基于單片機的電子密碼鎖畢業(yè)設計
- 畢業(yè)設計---基于單片機的電子密碼鎖
- 畢業(yè)設計---基于單片機的電子密碼鎖設計
- 畢業(yè)設計-- 基于單片機的電子密碼鎖設計
- 基于單片機的電子密碼鎖設計畢業(yè)設計
- 畢業(yè)設計----基于單片機的電子密碼鎖
- 畢業(yè)設計--基于單片機的電子密碼鎖設計
- 基于單片機的電子密碼鎖的畢業(yè)設計
- 畢業(yè)設計---基于單片機的電子密碼鎖的設計
- 基于單片機控制的電子密碼鎖畢業(yè)設計
- 基于單片機的紅外遙控電子密碼鎖設計畢業(yè)設計論文
- 畢業(yè)論文--基于單片機的電子密碼鎖設計
- 畢業(yè)論文---基于單片機的電子密碼鎖設計
- 基于單片機的紅外遙控電子密碼鎖設計畢業(yè)設計論文
- 單片機控制的電子密碼鎖設計畢業(yè)設計
- 單片機電子密碼鎖畢業(yè)設計論文
- 基于單片機的密碼鎖設計【畢業(yè)設計】
- 基于單片機電子密碼鎖畢業(yè)設計
- 基于單片機的電子密碼鎖畢業(yè)設計(論文)開題報告
評論
0/150
提交評論