

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《通信原理》課程設計</p><p> 題 目 簡易藍牙門禁的設計與實現(xiàn) </p><p> 學院名稱 電氣工程學院 </p><p> 指導教師 </p><p> 職 稱 講師
2、 </p><p> 班 級 </p><p> 學 號 </p><p> 學生姓名 </p>
3、<p> 2017年6月14日</p><p> 《通信原理課程設計》任務書</p><p> 學 院: 電氣工程學院 </p><p> 題 目: 簡易藍牙門禁的設計與實現(xiàn)</p><p> 起止時間:2017年5月24日至2017年6月14日</p><p>
4、 學 生 姓 名: </p><p> 專 業(yè) 班 級: 通信1402 </p><p> 指 導 教 師: </p><p> 教研室主 任: </p><p> 院 長: </p><p&g
5、t; 2017年6 月14 日</p><p> 摘要:隨著電子產品向智能化和微型化的不斷發(fā)展,單片機已成為電子產品研制和開發(fā)中首選的控制器。隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機械鎖由于其構造的簡單,安全性能低,無法滿足人們的需要。本文從經濟實用的角度出發(fā),采用美國Atmel公司的單片機AT89S51與低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據存儲器單
6、元,結合外圍的鍵盤輸入、顯示、報警、開鎖等電路,用匯編語言編寫主控芯片的控制程序,設計了一款可以多次更改密碼具有報警功能的電子密碼鎖。經實驗證明,該密碼鎖具有設計方法合理,簡單易行,成本低,安全實用等特點,符合住宅、辦公室用鎖要求,具有推廣價值。</p><p> 關鍵詞:密碼鎖;單片機;報警</p><p> Abstract: With the continuous develop
7、ment of electronic products to the intelligent and miniaturization, single-chip microcomputer has become the preferred controller for the development and development of electronic products. With the improvement of people
8、's living standards, how to achieve the problem of home security has become particularly prominent, the traditional mechanical lock because of its simple structure, low safety performance, can not meet people's n
9、eeds. In this paper, the United</p><p> Key words: password lock ;microcontroller ;alarm</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p>
10、 1.1 電子密碼鎖簡介1</p><p> 1.2 電子密碼鎖的發(fā)展趨勢1</p><p> 1.3 本設計所要實現(xiàn)的目標2</p><p> 2 設計方案的選擇2</p><p> 2.1 方案一:采用數(shù)字電路控制2</p><p> 2.2 方案二:采用以單片機為核心的控制方案
11、2</p><p> 3 主要元器件介紹3</p><p> 3.1 主控芯片AT89S513</p><p> 3.1.1 AT89S51性能簡介3</p><p> 4 系統(tǒng)軟件設計4</p><p> 4.1主程序模塊5</p><p> 4.2 鍵盤掃描及識
12、別子程序6</p><p> 4.3 系統(tǒng)模塊密碼設置子程序7</p><p> 4.4 藍牙模塊及其程序8</p><p><b> 4.5程序調試9</b></p><p> 5 系統(tǒng)制作及調試11</p><p> 5.1焊接注意事項:12</p>&l
13、t;p> 5.2硬件調試問題及解決辦法13</p><p><b> 總結14</b></p><p><b> 參考文獻:15</b></p><p><b> 附錄1:元器件清單</b></p><p><b> 附錄2:系統(tǒng)原理圖</
14、b></p><p> 附錄3:系統(tǒng)PCB圖</p><p><b> 附錄4:系統(tǒng)仿真圖</b></p><p><b> 附錄5:系統(tǒng)實物圖</b></p><p><b> 附錄6:系統(tǒng)源程序</b></p><p><b>
15、; 1 引言</b></p><p> 1.1 電子密碼鎖簡介</p><p> 電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關的閉合,完成開鎖、閉鎖任務的電子產品。它的種類很多,有簡易的電路產品,也有基于芯片的性價比較高的產品。現(xiàn)在應用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下:</p&
16、gt;<p> 保密性好,編碼量多,遠遠大于彈子鎖。隨機開鎖成功率幾乎為零。 (2) 密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因 </p><p> 人員的更替而使鎖的密級下降。 (3) 誤碼輸入保護,當輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。</p><p> (4) 無活動零件,不會磨損,壽命長。</p><
17、p> ?。?) 使用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。</p><p> (6) 電子密碼鎖操作簡單易行,一學即會。</p><p> 1.2 電子密碼鎖的發(fā)展趨勢</p><p> 在日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機
18、械密碼鎖,其結構較為復雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前景。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關來實現(xiàn)的,制作簡單但很不安全,
19、在后為多是基于EDA來實現(xiàn)的,其電路結構復雜,電子元件繁多,也有使用早先的20引角的2051系列單片機來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強大,使用更加方便,安全保密性更強,由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應元件,實現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人對保密性需求的提高出現(xiàn)了越來</p><p>
20、 出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠程控制,只能適用于保密要求高且供個人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子防盜鎖獲得高度的保密性,如防范森嚴的金庫,需要使用復合信息密碼的電子防盜鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子防盜鎖獲得無窮擴展的可能
21、,使產品多樣化,對用戶而言是“千挑百選、自得其所”??梢钥闯鼋M合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。</p><p> 1.3 本設計所要實現(xiàn)的目標</p><p> 本設計采用單片機為主控芯片,結合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為了提高安全性,當密碼輸入錯誤三次將報警。密碼可以由用戶自己修改設定,鎖打
22、開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作。</p><p> 2 設計方案的選擇</p><p> 2.1 方案一:采用數(shù)字電路控制</p><p> 用以74LS112雙JK觸發(fā)器構成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,
23、鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設計的方案好處就是設計簡單但控制的準確性和靈活性差。故不采用</p><p> 2.2 方案二:采用以單片機為核心的控制方案</p><p>
24、由于單片機種類繁多,各種型號都有其一定的應用環(huán)境,因此在選用時要多加比較,合理選擇,以期獲得最佳的性價比。一般來說在選取單片機時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機內有無時鐘振蕩器、有無上電復位功能等。在開發(fā)過程中單片機還受到:開發(fā)工具、
25、編程器、開發(fā)成本、開發(fā)人員的適應性、技術支持和服務等等因素?;谝陨弦蛩乇驹O計選用單片機AT89S51作為本設計的核心元件,利用單片機靈活的編程設計和豐富的I/O端口,及其控制的準確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接LCD1602顯示器用于顯示作用。當用戶需要開鎖時,先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。密碼輸完后按下確認鍵,如果密
26、碼輸入正確則開鎖,不正確顯示密碼錯誤重新輸入密碼,當三次密碼錯誤則發(fā)出報警;當用戶需要修改密碼時,先按下鍵盤設置鍵后輸入</p><p> 可以看出方案二控制靈活準確性好且保密性強還具有擴展功能,根據現(xiàn)實生活的需要此次設計采用此方案</p><p> 3 主要元器件介紹</p><p> 3.1 主控芯片AT89S51</p><p&g
27、t; AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案
28、。</p><p> 3.1.1 AT89S51性能簡介</p><p> AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數(shù)據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。</p>
29、;<p> 此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數(shù)據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。其芯片引腳圖如圖3.1所示。</p><p> 圖3.1AT89S51
30、 芯片引腳圖</p><p><b> 4 系統(tǒng)軟件設計</b></p><p> 因設計主要是作用匯編語言來開發(fā)的51單片機項目程序,所以首先必須有一個可以在Windows XP或Windows vista操作系統(tǒng)下執(zhí)行的匯編語言編譯器,本設計采用Keil編譯器進行編程,因為它可以支持一系列的51單片機。該系統(tǒng)的主程序流程圖如圖4.1所示。</p>
31、<p> 圖4.1 主程序流程圖</p><p><b> 4.1主程序模塊</b></p><p> 主程序主要是完成系統(tǒng)初始化、設置中斷向量、檢查有無鍵按下、以及調用顯示等等。主程序部分如下所示:</p><p> en bit p3.5;將lcd的en管腳連接到單片機的p3.5口</p>&
32、lt;p> rw bit p3.4 ;將lcd的rw管腳連接到單片機的p3.4口</p><p> rs bit p3.3;將lcd的rs管腳連接到單片機的p3.3口</p><p> display equ p0;將lcd的顯示端口連接到p0口上</p><p> speaker bit p2.6;蜂鳴器
33、連接到p2.6口</p><p> led bit p2.7;與蜂鳴器共同作用的led燈連到p2.7口</p><p> open bit p2.0;開鎖電路的控制端連接到p2.0口</p><p> returnbit bit 20h.1;</p><p> ORG 0000h;程序開始地址<
34、/p><p> LJMP start;</p><p> ORG 000bh;</p><p> LJMP intermit_t0;</p><p> ORG 001bh;</p><p> LJMP intermit_t1;</p><p> ORG 0030h;</p>
35、<p><b> start:</b></p><p> MOV sp,#60h;</p><p> lcall sys_initialization;調用子程序sys_initialization</p><p> 4.2 鍵盤掃描及識別子程序</p><p> 鍵盤采用查詢的方式,放在主
36、程序中,當沒有按鍵按下的時候,單片機循環(huán)主程序,一旦有按鍵按下,便轉向相應的子程序處理,處理結束再返回。其程序流程如圖4.2所示 鍵盤部分程序如下所示: </p><p> key:;鍵盤程序名稱</p><p> call ks ;調用子程序ks</p><p> jnz k1 ;判斷是否有鍵按下&l
37、t;/p><p> jmp key ;跳回鍵盤程序</p><p> ks:mov p1,#0f0h;</p><p><b> mov a,p1;</b></p><p> xrl a,#0f0h;</p><p><b> ret;</b><
38、;/p><p> 圖4.2鍵盤掃描程序流程圖</p><p> 4.3 系統(tǒng)模塊密碼設置子程序 </p><p> 由于設計是分模塊化進行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化整為零,使其復雜簡單化,同時也方便閱讀,修改等,每個功能模塊都有它自己的子程序,在本設計中是用LCD顯示數(shù)據,所以就要用到顯示子程序,設計中用的是矩陣鍵盤,所以就用到鍵
39、盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯誤后的提示子程序等。密碼修改子程序流程圖如下圖4.3所示。 </p><p> 圖4.3設置密碼子程序</p><p> 4.4 藍牙模塊及其程序</p><p> 藍牙模塊是一種集成藍牙功能的PCBA板,用于短距離無線通
40、訊,按功能分為藍牙數(shù)據模塊和藍牙語音模塊。藍牙模塊可以避免射頻信號到中頻信號的變換,使系統(tǒng)結構簡單、實現(xiàn)簡單。這里使用藍牙模塊進行與手機間的連接,然后通過手機進行密碼的解鎖,當在手機上面輸入密碼后,藍牙模塊和單片機之間的相互信息傳送達到解鎖的目的,其程序如下圖4.4所示。</p><p> 圖4.4 藍牙模塊程序</p><p><b> 4.5程序調試</b>&
41、lt;/p><p> 在硬件支持的環(huán)境下,用proteus設計好的電路,Keil編好的程序編譯成芯片可識別的S51文件,利用PC機寫進proteus程序圖芯片內進行仿真測試,并對其出現(xiàn)的錯誤進行修改,如下圖4.5、4.6、4.7、4.8、4.9所示。</p><p> 圖4.5 keil編譯程序成功</p><p> 圖4.6 keil生成hex文件</
42、p><p> 圖4.7 proteus調用keil的hex文件進行仿真</p><p> 圖4.8 仿真成功密碼正確</p><p> 圖4.9 密碼正確綠燈亮</p><p> 5 系統(tǒng)制作及調試</p><p> 5.1焊接注意事項:</p><p> LCD的注意事項如下:
43、</p><p> 1. 采用焊接方法將金屬基PIN安裝于LCD時,從玻璃末端到萬用板的焊接位置的長度至少5mm,焊接溫度必須在260℃以下,且焊接時間必須在10秒以內,以免焊接過程中對裝置的損壞,確保焊接性能。在230℃,30秒條件下,90%的焊料須緊密附著于PIN上。</p><p> 2. 對LCD基板或基PIN焊接位置的調整必須在安裝前完成。嚴禁猛烈移動基P
44、IN,否則會機械地破壞LCD屏與基PIN之間的連接點。焊接時平放LCD,盡量不讓LCD受力。</p><p> 3. 焊接LCD基板時,將其小心、平衡地插入萬用板插槽,以避免損壞基PIN或LCD基板。</p><p> 4. 焊接時,LCD基板不應長時間置于焊錫蒸汽中,必須避免污染LCD基板,否則可能損壞顯示器表面的偏光片及封口膠。</p><p
45、> 5. 顯示器表面的保護膜直到焊接完成才可揭掉,禁止手指及其它硬物接觸偏光片,禁止水和其他化學物質沾污裝置,因為這些物質會污染顯示器表面。</p><p> 單片機焊接注意事項:</p><p> 80s51單片機與其它單片機,dsp,arm芯片相比較而言是脆弱的,如果焊接時不小心就很可能把芯片損壞!建議用比較好的恒溫可調的烙鐵,功率在30瓦左右,溫度控制在260到
46、300度,建議采用點焊而不用拉焊,焊接時烙鐵放在每個引腳的時間不能太長(最好低于3秒)。上邊提到的方法還不能確保芯片完好,對芯片有危害的還有帶電烙鐵的靜電感應!烙鐵質量不是太好的,焊接時可以把烙鐵電源插頭拔掉。</p><p> 其他的電子器件焊接須知:</p><p> 一般分四步驟進行。①準備焊接:清潔被焊元件處的積塵及油污,再將被焊元器件周圍的元器件左右掰一掰,讓電烙鐵頭可以觸到
47、被焊元器件的焊錫處,以免烙鐵頭伸向焊接處時燙壞其他元器件。焊接新的元器件時,應對元器件的引線鍍錫。②加熱焊接:將沾有少許焊錫和松香的電烙鐵頭接觸被焊元器件約幾秒鐘。若是要拆下印刷板上的元器件,則待烙鐵頭加熱后,用手或銀子輕輕拉動元器件,看是否可以取下。③清理焊接面:若所焊部位焊錫過多,可將烙鐵頭上的焊錫甩掉(注意不要燙傷皮膚,也不要甩到印刷電路板上!),用光烙錫頭"沾"些焊錫出來。若焊點焊錫過少、不圓滑時,可以用電烙
48、鐵頭"蘸"些焊錫對焊點進行補焊。④檢查焊點:看焊點是否圓潤、光亮、牢固,是否有與周圍元器件連焊的現(xiàn)象。</p><p> 5.2 硬件調試問題及解決方法</p><p> 本設計在焊接調試時遇到的問題以及解決方法:</p><p> 單片機的最小系統(tǒng)問題:</p><p> 電源、晶振電路和復位電路都無異常。<
49、;/p><p> LCD焊接時的問題:</p><p> ?。?)接通電源后LCD無反應,各個引腳均屬正常。推斷可能是初始化程序出現(xiàn)問題。</p><p> 經查找得知是LCD顯示器的15和16管腳控制背光功能,連接好之后還是不能顯示字符。</p><p> (2)接通電源開門燈和報警電路就會工作,分析原因是單片機剛開始各個管腳輸出高電平。
50、</p><p><b> 總結</b></p><p> 本設計從經濟實用的角度出發(fā),采用美國Atmel公司的單片機AT89S51與低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據存儲器單元,結合外圍的鍵盤輸入、顯示、報警、開鎖等電路并用匯編編寫主控芯片的控制程序,研制了一款可以多次更改密碼具有報警功能的電子密碼鎖。設計完全可行可以達到設計目地。使
51、用單片機制作的電子密碼鎖具有軟硬件設計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點,可應用于住宅、辦公室的保險箱及檔案柜等需要防盜的場所,有一定的實用性。該電路設計還具有按鍵有效提示,輸入錯誤提示,控制開鎖電平,控制報警電路,修改密碼等多種功能??稍谝馔庑姑艿那闆r下隨時修改密碼。保密性強,靈活性高,特別適用于家庭、辦公室、學生宿舍及賓館等場所。</p><p><b> 參考文獻</b&g
52、t;</p><p> [1] 何宏主編. 單片機原理與接口技術. 北京:國防工業(yè)出版社. 2006.07</p><p> [2] 楊西明, 朱騏主編 . 單片機編程與應用入門. 北京:機械工業(yè)出版社 .2004.06 </p><p> [3] 先鋒工作室編著. 單片機程序設計實例. 北京: 清華大學出版社 .200
53、3.01</p><p> [4] 謝宜仁主編 . 單片機實用技術問答. 北京: 人民郵電出版社 . 2003.02</p><p> [5] 梁麗.電子密碼鎖的計算機仿真設計.計算機仿真,2005</p><p> [6] 房小翠,王金鳳編著. 單片機實用系統(tǒng)設計技術. 北京: 國防工業(yè)出版社 . 1999.06</p&g
54、t;<p> [7] 各種網絡教程及其他</p><p> [8] 王寬仁. 可靠安全的智能密碼鎖. 電子技術應用 , 2001</p><p> [9] 李捷 , 陳典濤 , 陳建華 , 等. 一種基于單片機的電子密碼鎖的設計 [J]. 農機化研究 , 2004, 5</p><p> [10] 董繼成. 能防止多次試探密碼的單片機密碼鎖.國
55、外電子元器件 , 2004, 3 </p><p> [11]趙益丹,徐曉林,周振峰編著.電子密碼鎖的系統(tǒng)原理、設計程序及流程圖.嘉興學院學報,2003,15</p><p> [12] 張培仁. 基于 C語言編程 MCS- 51單片機原理與應用. 北京: 清華大學出版社 , 2002.12</p><p> [13] 李朝清. PC機及單片機數(shù)據通信技術.
56、北京:北京航空航天大學出版社 , 1999.</p><p> [14] 路而紅.專用集成電路設計與電子設計自動化.北京:清華大學出版社,2004</p><p> [15] 劉文濤.MCS-51單片機培訓教程(C51)版.電子工業(yè)出版社,2005.8 </p><p> [16] 王為青 程國鋼.單片機Keil Cx51 應用開發(fā)技術.人民郵電出版社,200
57、7.2 </p><p> [17] 范風強 蘭嬋麗.單片機語言C51應用實戰(zhàn)集錦.電子工業(yè)出版社,2003.3 </p><p> [18] 龔運新.單片機C語言開發(fā)技術.清華大學出版社,2006.10 </p><p> [19] 邵貝貝.單片機嵌入式應用的在線開發(fā)方法.清華大學出版社,2006.3 </p><p> [20]
58、王宜懷.單片機原理及其嵌入式應用教程.北京希望電子出版社,2002.8 </p><p><b> 附錄1:元器件清單</b></p><p><b> 附錄2:系統(tǒng)原理圖</b></p><p> 附錄3:系統(tǒng)PCB圖</p><p><b> 附錄4:系統(tǒng)仿真圖</b&g
59、t;</p><p><b> 附錄5:實物圖</b></p><p><b> 實物圖正面</b></p><p><b> 實物圖反面</b></p><p><b> 附錄6:系統(tǒng)源程序</b></p><p> L
60、ED1 EQU 6FH</p><p> BUFF EQU 6EH</p><p> TIMERS1 EQU 6DH ;輸入回車的次數(shù)</p><p> TIMERS2 EQU 6CH ;報警的次數(shù)</p><p> LED6 EQU 6AH ;密碼緩沖區(qū)<
61、/p><p> PS1 EQU 69H</p><p> PS2 EQU 78H</p><p> PS3 EQU 67H</p><p> PS4 EQU 66H</p><p> PS5 EQU 65H</p><p> PS6
62、EQU 64H</p><p> PS7 EQU 63H</p><p> PS8 EQU 62H ;AT24C02讀取緩沖區(qū)</p><p> AT1 EQU 61H</p><p> AT2 EQU 60H</p><p> AT3 EQU
63、 5FH</p><p> AT4 EQU 5EH</p><p> AT5 EQU 5DH</p><p> AT6 EQU 5CH</p><p> AT7 EQU 5BH</p><p> AT8 EQU 5AH ;按鍵標志位</
64、p><p> F_0 BIT 20H</p><p> F_1 BIT 21H</p><p> F_2 BIT 22H</p><p> F_3 BIT 23H</p><p> F_4 BIT 24H</p><p> F_5 B
65、IT 25H</p><p> F_6 BIT 26H</p><p> F_7 BIT 27H</p><p> F_8 BIT 28H</p><p> F_9 BIT 29H</p><p> CH_STATE BIT 2AH ;系統(tǒng)更改的狀態(tài)標志
66、位,為1表示busy</p><p> FLAG1 BIT 2BH ;功能鍵標志位,為1表示功能按鍵。</p><p> F_F1 BIT 2CH</p><p> F_F2 BIT 2DH</p><p> PSW_F BIT 2EH ;密碼是否正確的標志位 </p>&
67、lt;p> SPK BIT P2.1</p><p> WP BIT P3.5</p><p> SDA BIT P3.6 ;定義串口數(shù)據端</p><p> SCL BIT P3.7</p><p> ORG 0000H</p><p> AJM
68、P MAIN</p><p> ORG 000BH</p><p> AJMP TIMER0</p><p> ORG 001BH</p><p> AJMP TIMER1</p><p> ORG 0030H</p><p> MAIN:MOV SP,
69、#70H</p><p> MOV TMOD, #11H</p><p> MOV TH0, #3CH</p><p> MOV TL0, #0B0H</p><p> MOV TH1, #3CH</p><p> MOV TL1, #0B0H</p>&l
70、t;p> CLR F_0 ;清除標志位</p><p><b> CLR F_1</b></p><p><b> CLR F_2</b></p><p><b> CLR F_3</b></p><p><b>
71、 CLR F_4</b></p><p><b> CLR F_5</b></p><p><b> CLR F_6</b></p><p><b> CLR F_7</b></p><p><b> CLR F_8</b
72、></p><p><b> CLR F_9</b></p><p> CLR BUF_FULL</p><p> CLR CH_STATE</p><p> CLR FLAG1</p><p> CLR F_F1</p><p> C
73、LR F_F2</p><p> CLR PSW_F</p><p> MOV BUFF,#00H ;調用</p><p> LCALL INITPS ;初始化環(huán)境</p><p> LCALL INITAT</p><p> LCALL XSA
74、;調用默認顯示</p><p> MOV TIMERS1,#00H</p><p><b> NOP</b></p><p> MOV PS1, #11H ;初始化密碼830620</p><p> MOV PS2, #0AH</p><p> MOV P
75、S3, #02H</p><p> MOV PS4, #13H</p><p> MOV PS5, #0BH</p><p> MOV PS6, #02H</p><p> START:NOP ;程序開始</p><p> LCALL CH_KEY
76、 ;檢查鍵盤</p><p> AJMP START ;返回</p><p> CH_KEY:LCALL KS ;檢查有沒有按鍵按下</p><p><b> JNZ LK1</b></p><p> AJMP CH_KEY</p>&l
77、t;p><b> LK1:</b></p><p> LCALL T12MS</p><p><b> ACALL KS</b></p><p><b> JNZ LK2</b></p><p><b> RET</b></p&g
78、t;<p><b> LK2:</b></p><p><b> NOP</b></p><p> LCALL SBIE ;按鍵識別子程序</p><p> MOV BUFF, A ;送緩沖區(qū)以識別是數(shù)字鍵還是功能鍵?</p><p>
79、; LCALL CH_KF ;判斷按鍵功能。</p><p> JB FLAG1 ,KEY_FUN ;標志為1,則為功能鍵</p><p> ;***********數(shù)字按鍵輸入并且存放到緩沖區(qū)內等待比較***********</p><p> KEY_DIG:NOP ;設一標志,辨別輸入是否滿
80、</p><p> ;SETB TR0</p><p> INC TIMERS ;輸入數(shù)字的位數(shù)</p><p> MOV A, TIMERS</p><p><b> CLR C</b></p><p> SUBB A, #01H<
81、/p><p> JNZ PS_2</p><p> MOV PS1, BUFF ;依照順序存放密碼</p><p> AJMP NEXT</p><p> PS_2:MOV A, TIMERS</p><p> SUBB A, #02H</p><p>
82、;<b> CLR C</b></p><p> JNZ PS_3</p><p> MOV PS2, BUFF</p><p> AJMP NEXT</p><p> PS_3:MOV A, TIMERS</p><p><b> CLR C&
83、lt;/b></p><p> SUBB A, #03H</p><p> JNZ PS_4</p><p> MOV PS3, BUFF</p><p> AJMP NEXT</p><p> PS_4:MOV A, TIMERS</p><p>
84、;<b> CLR C</b></p><p> SUBB A, #04</p><p> JNZ PS_5</p><p> MOV PS4, BUFF</p><p> AJMP NEXT</p><p> PS_5:MOV A, TIMERS&l
85、t;/p><p><b> CLR C</b></p><p> SUBB A, #05</p><p> JNZ PS_6</p><p> MOV PS5, BUFF</p><p> AJMP NEXT</p><p> PS_6:MO
86、V A, TIMERS</p><p><b> CLR C</b></p><p> SUBB A, #06H</p><p> JNZ CH_KEY</p><p> MOV PS6, BUFF</p><p> NEXT:LCALL XSC</
87、p><p> MOV R7, TIMERS ;比較輸入的次數(shù)。</p><p> CJNE R7, #06H ,FULL</p><p> FULL:JC NEXT9</p><p> SETB BUF_FULL</p><p> MOV TIMERS,#06H</p&g
88、t;<p><b> CLR L3</b></p><p><b> NOP</b></p><p> CLR P2.1</p><p> LCALL T100MSD</p><p> SETB P2.1</p><p><b>
89、 NOP</b></p><p> AJMP CH_KEY</p><p> NEXT9:CLR P2.1 ;密碼輸入一位,鳴叫一聲。</p><p><b> CLR L3</b></p><p> LCALL T100MSD ;延時100ms<
90、;/p><p><b> SETB L3</b></p><p> SETB P2.1</p><p> AJMP CH_KEY</p><p> ;***************開門子程序 ********************************</p><p><b&g
91、t; CL:NOP</b></p><p><b> SETB L3</b></p><p> MOV BUFF, #00H ;消密碼緩沖</p><p> MOV TIMERS,#00H</p><p> LCALL INITPS ;消除AT緩
92、沖,調電存儲后一定要加上</p><p><b> LCALL XSC</b></p><p><b> LCALL BP</b></p><p><b> LCALL BP</b></p><p> LCALL T100MSD</p><p>
93、<b> LCALL BP</b></p><p> CLR FLAG1</p><p> AJMP CH_KEY</p><p><b> FU4:NOP</b></p><p><b> LCALL BP</b></p><p>
94、LCALL T100MSD</p><p><b> LCALL BP</b></p><p> LCALL T100MSD</p><p><b> LCALL BP</b></p><p> LCALL T100MSD</p><p><b> LCA
95、LL BP</b></p><p> LCALL T100MSD</p><p><b> LCALL BP</b></p><p> CLR FLAG1</p><p> AJMP CH_KEY</p><p><b> FU3:NOP</b>&
96、lt;/p><p><b> LCALL BP</b></p><p> LCALL T100MSD</p><p><b> LCALL BP</b></p><p> LCALL KILLXS ;關閉顯示</p><p> CLR FLAG1</p>
97、<p> AJMP CH_KEY</p><p><b> FU1:NOP</b></p><p><b> LCALL XSC</b></p><p> JB F_F1, NEXT_F1</p><p><b> CLR L1</b>&
98、lt;/p><p><b> LCALL BP</b></p><p> SETB F_F1</p><p> AJMP CH_KEY</p><p> NEXT_F1:SETB L1</p><p><b> LCALL BP</b></p>&l
99、t;p> CLR F_F1</p><p> ;LCALL CH_STATE ;查看現(xiàn)在的狀態(tài)以防誤按</p><p> ;SETB TR1 ;報警限制暫時不開</p><p> ;INC F_F1</p><p> CLR FLAG1</p>
100、<p> AJMP CH_KEY</p><p><b> FU2:NOP</b></p><p> JB F_F2, NEXT_F2</p><p><b> CLR L2</b></p><p><b> LCALL BP</b><
101、/p><p> SETB F_F2</p><p> AJMP CH_KEY</p><p> NEXT_F2:SETB L2</p><p><b> LCALL BP</b></p><p> CLR F_F2</p><p> CLR FLAG1
102、</p><p> AJMP CH_KEY</p><p> ;**************各類子程序********************************</p><p> ;**** 注意清楚緩沖區(qū)時AT1...AT8不應在初始化中執(zhí)行,以 ***</p><p> ;**** 防兩緩沖區(qū)都為0,相同開鎖
103、 ***</p><p> ;********************************************************</p><p> CLR_BUF:MOV R7, #06H</p><p> MOV R0, #6FH</p><p> LOOP1:MOV
104、A, #00H</p><p> MOV @R0, A</p><p><b> DEC R0</b></p><p> DJNZ R7,LOOP1</p><p><b> RET</b></p><p> ;*************初始化顯示緩沖
105、區(qū)以及其他緩沖區(qū)**************</p><p> INITPS:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV R7, #06H</p><p> MOV R1, #PS1</p><p> MOV A,
106、 #00H</p><p> INIT_PS:MOV @R1, A</p><p><b> DEC R1</b></p><p> DJNZ R7, INIT_PS</p><p><b> POP PSW</b></p><p><b>
107、; POP ACC</b></p><p><b> NOP</b></p><p><b> RET</b></p><p> INITAT:PUSH ACC</p><p><b> PUSH PSW</b></p><p&
108、gt; MOV R7,#06H</p><p> MOV R1,#AT1</p><p> MOV A, #00H</p><p> INIT_AT:MOV @R1, A</p><p><b> DEC R1</b></p><p> DJNZ R7, INI
109、T_AT</p><p> MOV TIMERS,#00H ;密碼輸入的次數(shù)清零。</p><p><b> POP PSW</b></p><p><b> POP ACC</b></p><p><b> RET</b></p>&
110、lt;p> ;****************檢驗密碼正誤******************************</p><p> C_PSW:PUSH PSW</p><p><b> PUSH ACC</b></p><p> MOV R2,#06H</p><p> MOV R0,#P
111、S1</p><p> MOV R1,#AT1</p><p> C_P:CLR C</p><p> MOV A,@R0</p><p> SUBB A,@R1</p><p> JNZ RETURN</p><p><b> DEC R0</b>&
112、lt;/p><p><b> DEC R1</b></p><p> DJNZ R2,C_P</p><p><b> NOP</b></p><p> SETB PSW_F</p><p> AJMP EXIT7</p><p> RETU
113、RN:CLR PSW_F</p><p><b> EXIT7:NOP</b></p><p><b> POP ACC</b></p><p><b> POP PSW</b></p><p><b> RET</b></p>
114、<p> ;×××××××××××××××××鎖定,鳴笛子程序××××××××××××</p><p> LO
115、CK_1M:MOV R4,#3CH ;鎖定1分鐘</p><p> M1_LOOP:LCALL SEC</p><p> DJNZ R4,M1_LOOP</p><p><b> NOP</b></p><p><b> RET</b></p><p>
116、; WARN2S:PUSH PSW</p><p><b> PUSH ACC</b></p><p> MOV R5, #14H ;調用20次BP,報警2s</p><p> WARN:LCALL BP</p><p> DJNZ R5,WARN</p><p>&
117、lt;b> NOP</b></p><p><b> POP ACC</b></p><p><b> POP PSW</b></p><p><b> NOP</b></p><p><b> RET</b></
118、p><p> BP:CLR SPK ;鳴笛子程序</p><p> LCALL T100MSD</p><p><b> SETB SPK</b></p><p><b> NOP</b></p><p><b> RET</
119、b></p><p> ;***************************</p><p> ;***** 顯示子程序 ********</p><p> ;***************************</p><p><b> ;鎖定狀態(tài)顯示。</b></p><p
120、> XSA:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV A, TIMERS1</p><p> MOV DPTR, #TAB</p><p> MOVC A, @A+DPTR</p><p> MOV SB
121、UF, A ;送已經輸入密碼的次數(shù)</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p> MOV SBUF, #0FEH ;送短線</p><p> JNB TI, $</p>
122、<p><b> CLR TI</b></p><p> MOV SBUF, #0FEH ;送短線</p><p> JNB TI, $</p><p> CLR TI ;送F</p><p> MOV S
123、BUF, #78H</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p> MOV SBUF, #78H</p><p> JNB TI, $</p><p><b> CLR TI</b></p>
124、;<p> MOV SBUF, #11H</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p><b> POP PSW</b></p><p><b> POP ACC</b></p>
125、;<p><b> RET</b></p><p><b> ;成功開鎖狀態(tài)顯示</b></p><p> XSB:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV A, TIMERS1</p&
126、gt;<p> MOV DPTR, #TAB</p><p> MOVC A, @A+DPTR</p><p> MOV SBUF, A</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p> MOV SBU
127、F, #0FEH</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p> MOV SBUF, #0FEH</p><p> JNB TI, $</p><p><b> CLR TI</b></p>
128、;<p> MOV SBUF, #10H</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p> MOV SBUF, #10H</p><p> JNB TI, $</p><p><b> CLR T
129、I</b></p><p> MOV SBUF, #10H</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p><b> POP PSW</b></p><p><b> POP AC
130、C</b></p><p> RET ;密碼輸入及修改狀態(tài)</p><p> XSC:PUSH ACC</p><p><b> PUSH PSW</b></p><p> LCALL KILLXS</p><p> SETB RS1 ;切換到第三組寄存器。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機藍牙門禁課程設計-簡易藍牙門禁的設計與實現(xiàn)
- 單片機課程設計---單片機門禁系統(tǒng)的設計
- 單片機課程設計--基于rfid的門禁系統(tǒng)
- 單片機課程設計--門禁電子密碼鎖
- 單片機課程設計--藍牙轉串口控制應用
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機智能藍牙小車課程設計
- 單片機課程設計
- 單片機課程設計
- 單片機課程設計
- 單片機課程設計
- 單片機課程設計--單片機串行通訊
- 單片機秒表單片機課程設計
- 單片機課程設計
- 單片機課程設計---單片機數(shù)字時鐘
- 單片機課程設計--單片機控制步進電機
- 單片機課程設計-單片機控制步進電機
- 單片機課程設計---單片機籃球計分器
- 單片機課程設計報告---單片機數(shù)字時鐘
- 單片機課程設計---單片機原理及應用
評論
0/150
提交評論