版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《通信原理》課程設(shè)計</p><p> 題 目 簡易藍(lán)牙門禁的設(shè)計與實現(xiàn) </p><p> 學(xué)院名稱 電氣工程學(xué)院 </p><p> 指導(dǎo)教師 </p><p> 職 稱 講師
2、 </p><p> 班 級 </p><p> 學(xué) 號 </p><p> 學(xué)生姓名 </p>
3、<p> 2017年6月14日</p><p> 《通信原理課程設(shè)計》任務(wù)書</p><p> 學(xué) 院: 電氣工程學(xué)院 </p><p> 題 目: 簡易藍(lán)牙門禁的設(shè)計與實現(xiàn)</p><p> 起止時間:2017年5月24日至2017年6月14日</p><p>
4、 學(xué) 生 姓 名: </p><p> 專 業(yè) 班 級: 通信1402 </p><p> 指 導(dǎo) 教 師: </p><p> 教研室主 任: </p><p> 院 長: </p><p&g
5、t; 2017年6 月14 日</p><p> 摘要:隨著電子產(chǎn)品向智能化和微型化的不斷發(fā)展,單片機(jī)已成為電子產(chǎn)品研制和開發(fā)中首選的控制器。隨著人們生活水平的提高,如何實現(xiàn)家庭防盜這一問題也變的尤其的突出,傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡單,安全性能低,無法滿足人們的需要。本文從經(jīng)濟(jì)實用的角度出發(fā),采用美國Atmel公司的單片機(jī)AT89S51與低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據(jù)存儲器單
6、元,結(jié)合外圍的鍵盤輸入、顯示、報警、開鎖等電路,用匯編語言編寫主控芯片的控制程序,設(shè)計了一款可以多次更改密碼具有報警功能的電子密碼鎖。經(jīng)實驗證明,該密碼鎖具有設(shè)計方法合理,簡單易行,成本低,安全實用等特點(diǎn),符合住宅、辦公室用鎖要求,具有推廣價值。</p><p> 關(guān)鍵詞:密碼鎖;單片機(jī);報警</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 本設(shè)計所要實現(xiàn)的目標(biāo)2</p><p> 2 設(shè)計方案的選擇2</p><p> 2.1 方案一:采用數(shù)字電路控制2</p><p> 2.2 方案二:采用以單片機(jī)為核心的控制方案
11、2</p><p> 3 主要元器件介紹3</p><p> 3.1 主控芯片AT89S513</p><p> 3.1.1 AT89S51性能簡介3</p><p> 4 系統(tǒng)軟件設(shè)計4</p><p> 4.1主程序模塊5</p><p> 4.2 鍵盤掃描及識
12、別子程序6</p><p> 4.3 系統(tǒng)模塊密碼設(shè)置子程序7</p><p> 4.4 藍(lán)牙模塊及其程序8</p><p><b> 4.5程序調(diào)試9</b></p><p> 5 系統(tǒng)制作及調(diào)試11</p><p> 5.1焊接注意事項:12</p>&l
13、t;p> 5.2硬件調(diào)試問題及解決辦法13</p><p><b> 總結(jié)14</b></p><p><b> 參考文獻(xiàn):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> 電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機(jī)械鎖。其特點(diǎn)如下:</p&
16、gt;<p> 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零。 (2) 密碼可變,用戶可以隨時更改密碼,防止密碼被盜,同時也可以避免因 </p><p> 人員的更替而使鎖的密級下降。 (3) 誤碼輸入保護(hù),當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。</p><p> (4) 無活動零件,不會磨損,壽命長。</p><
17、p> ?。?) 使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開鎖。</p><p> ?。?) 電子密碼鎖操作簡單易行,一學(xué)即會。</p><p> 1.2 電子密碼鎖的發(fā)展趨勢</p><p> 在日常生活和工作中,住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。目前門鎖主要用彈子鎖,其鑰匙容易丟失;保險箱主要用機(jī)
18、械密碼鎖,其結(jié)構(gòu)較為復(fù)雜,制造精度要求高,成本高,且易出現(xiàn)故障,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。針對這些鎖具給人們帶來的不便若使用機(jī)械式鑰匙開鎖,為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。它的出現(xiàn)為人們的生活帶來了很大的方便,有很廣闊的市場前景。由于電子器件所限,以前開發(fā)的電子密碼鎖,其種類不多,保密性差,最基本的就是只依靠最簡單的模擬電子開關(guān)來實現(xiàn)的,制作簡單但很不安全,
19、在后為多是基于EDA來實現(xiàn)的,其電路結(jié)構(gòu)復(fù)雜,電子元件繁多,也有使用早先的20引角的2051系列單片機(jī)來實現(xiàn)的,但密碼簡單,易破解。隨著電子元件的進(jìn)一步發(fā)展,電子密碼鎖也出現(xiàn)了很多的種類,功能日益強(qiáng)大,使用更加方便,安全保密性更強(qiáng),由以前的單密碼輸入發(fā)展到現(xiàn)在的,密碼加感應(yīng)元件,實現(xiàn)了真真的電子加密,用戶只有密碼或電子鑰匙中的一樣,是打不開鎖的,隨著電子元件的發(fā)展及人對保密性需求的提高出現(xiàn)了越來</p><p>
20、 出于安全、方便等方面的需要許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點(diǎn)是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠(yuǎn)程控制,只能適用于保密要求高且供個人使用的箱、柜、房間等。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子防盜鎖獲得高度的保密性,如防范森嚴(yán)的金庫,需要使用復(fù)合信息密碼的電子防盜鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子防盜鎖獲得無窮擴(kuò)展的可能
21、,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”??梢钥闯鼋M合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。</p><p> 1.3 本設(shè)計所要實現(xiàn)的目標(biāo)</p><p> 本設(shè)計采用單片機(jī)為主控芯片,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯誤有提示,為了提高安全性,當(dāng)密碼輸入錯誤三次將報警。密碼可以由用戶自己修改設(shè)定,鎖打
22、開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認(rèn),以防止誤操作。</p><p> 2 設(shè)計方案的選擇</p><p> 2.1 方案一:采用數(shù)字電路控制</p><p> 用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,
23、鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單但控制的準(zhǔn)確性和靈活性差。故不采用</p><p> 2.2 方案二:采用以單片機(jī)為核心的控制方案</p><p>
24、由于單片機(jī)種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較,合理選擇,以期獲得最佳的性價比。一般來說在選取單片機(jī)時從下面幾個方面考慮:性能、存儲器、運(yùn)行速度、I/O口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機(jī)內(nèi)有無時鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機(jī)還受到:開發(fā)工具、
25、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素?;谝陨弦蛩乇驹O(shè)計選用單片機(jī)AT89S51作為本設(shè)計的核心元件,利用單片機(jī)靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,實現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接LCD1602顯示器用于顯示作用。當(dāng)用戶需要開鎖時,先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密
26、碼輸入正確則開鎖,不正確顯示密碼錯誤重新輸入密碼,當(dāng)三次密碼錯誤則發(fā)出報警;當(dāng)用戶需要修改密碼時,先按下鍵盤設(shè)置鍵后輸入</p><p> 可以看出方案二控制靈活準(zhǔn)確性好且保密性強(qiáng)還具有擴(kuò)展功能,根據(jù)現(xiàn)實生活的需要此次設(shè)計采用此方案</p><p> 3 主要元器件介紹</p><p> 3.1 主控芯片AT89S51</p><p&g
27、t; AT89S51是一個低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強(qiáng)大的微型計算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案
28、。</p><p> 3.1.1 AT89S51性能簡介</p><p> AT89S51具有如下特點(diǎn):40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。</p>
29、;<p> 此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。其芯片引腳圖如圖3.1所示。</p><p> 圖3.1AT89S51
30、 芯片引腳圖</p><p><b> 4 系統(tǒng)軟件設(shè)計</b></p><p> 因設(shè)計主要是作用匯編語言來開發(fā)的51單片機(jī)項目程序,所以首先必須有一個可以在Windows XP或Windows vista操作系統(tǒng)下執(zhí)行的匯編語言編譯器,本設(shè)計采用Keil編譯器進(jìn)行編程,因為它可以支持一系列的51單片機(jī)。該系統(tǒng)的主程序流程圖如圖4.1所示。</p>
31、<p> 圖4.1 主程序流程圖</p><p><b> 4.1主程序模塊</b></p><p> 主程序主要是完成系統(tǒng)初始化、設(shè)置中斷向量、檢查有無鍵按下、以及調(diào)用顯示等等。主程序部分如下所示:</p><p> en bit p3.5;將lcd的en管腳連接到單片機(jī)的p3.5口</p>&
32、lt;p> rw bit p3.4 ;將lcd的rw管腳連接到單片機(jī)的p3.4口</p><p> rs bit p3.3;將lcd的rs管腳連接到單片機(jī)的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;調(diào)用子程序sys_initialization</p><p> 4.2 鍵盤掃描及識別子程序</p><p> 鍵盤采用查詢的方式,放在主
36、程序中,當(dāng)沒有按鍵按下的時候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。其程序流程如圖4.2所示 鍵盤部分程序如下所示: </p><p> key:;鍵盤程序名稱</p><p> call ks ;調(diào)用子程序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)模塊密碼設(shè)置子程序 </p><p> 由于設(shè)計是分模塊化進(jìn)行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化整為零,使其復(fù)雜簡單化,同時也方便閱讀,修改等,每個功能模塊都有它自己的子程序,在本設(shè)計中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計中用的是矩陣鍵盤,所以就用到鍵
39、盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯誤后的提示子程序等。密碼修改子程序流程圖如下圖4.3所示。 </p><p> 圖4.3設(shè)置密碼子程序</p><p> 4.4 藍(lán)牙模塊及其程序</p><p> 藍(lán)牙模塊是一種集成藍(lán)牙功能的PCBA板,用于短距離無線通
40、訊,按功能分為藍(lán)牙數(shù)據(jù)模塊和藍(lán)牙語音模塊。藍(lán)牙模塊可以避免射頻信號到中頻信號的變換,使系統(tǒng)結(jié)構(gòu)簡單、實現(xiàn)簡單。這里使用藍(lán)牙模塊進(jìn)行與手機(jī)間的連接,然后通過手機(jī)進(jìn)行密碼的解鎖,當(dāng)在手機(jī)上面輸入密碼后,藍(lán)牙模塊和單片機(jī)之間的相互信息傳送達(dá)到解鎖的目的,其程序如下圖4.4所示。</p><p> 圖4.4 藍(lán)牙模塊程序</p><p><b> 4.5程序調(diào)試</b>&
41、lt;/p><p> 在硬件支持的環(huán)境下,用proteus設(shè)計好的電路,Keil編好的程序編譯成芯片可識別的S51文件,利用PC機(jī)寫進(jìn)proteus程序圖芯片內(nèi)進(jìn)行仿真測試,并對其出現(xiàn)的錯誤進(jì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調(diào)用keil的hex文件進(jìn)行仿真</p><p> 圖4.8 仿真成功密碼正確</p><p> 圖4.9 密碼正確綠燈亮</p><p> 5 系統(tǒng)制作及調(diào)試</p><p> 5.1焊接注意事項:</p><p> LCD的注意事項如下:
43、</p><p> 1. 采用焊接方法將金屬基PIN安裝于LCD時,從玻璃末端到萬用板的焊接位置的長度至少5mm,焊接溫度必須在260℃以下,且焊接時間必須在10秒以內(nèi),以免焊接過程中對裝置的損壞,確保焊接性能。在230℃,30秒條件下,90%的焊料須緊密附著于PIN上。</p><p> 2. 對LCD基板或基PIN焊接位置的調(diào)整必須在安裝前完成。嚴(yán)禁猛烈移動基P
44、IN,否則會機(jī)械地破壞LCD屏與基PIN之間的連接點(diǎn)。焊接時平放LCD,盡量不讓LCD受力。</p><p> 3. 焊接LCD基板時,將其小心、平衡地插入萬用板插槽,以避免損壞基PIN或LCD基板。</p><p> 4. 焊接時,LCD基板不應(yīng)長時間置于焊錫蒸汽中,必須避免污染LCD基板,否則可能損壞顯示器表面的偏光片及封口膠。</p><p
45、> 5. 顯示器表面的保護(hù)膜直到焊接完成才可揭掉,禁止手指及其它硬物接觸偏光片,禁止水和其他化學(xué)物質(zhì)沾污裝置,因為這些物質(zhì)會污染顯示器表面。</p><p> 單片機(jī)焊接注意事項:</p><p> 80s51單片機(jī)與其它單片機(jī),dsp,arm芯片相比較而言是脆弱的,如果焊接時不小心就很可能把芯片損壞!建議用比較好的恒溫可調(diào)的烙鐵,功率在30瓦左右,溫度控制在260到
46、300度,建議采用點(diǎn)焊而不用拉焊,焊接時烙鐵放在每個引腳的時間不能太長(最好低于3秒)。上邊提到的方法還不能確保芯片完好,對芯片有危害的還有帶電烙鐵的靜電感應(yīng)!烙鐵質(zhì)量不是太好的,焊接時可以把烙鐵電源插頭拔掉。</p><p> 其他的電子器件焊接須知:</p><p> 一般分四步驟進(jìn)行。①準(zhǔn)備焊接:清潔被焊元件處的積塵及油污,再將被焊元器件周圍的元器件左右掰一掰,讓電烙鐵頭可以觸到
47、被焊元器件的焊錫處,以免烙鐵頭伸向焊接處時燙壞其他元器件。焊接新的元器件時,應(yīng)對元器件的引線鍍錫。②加熱焊接:將沾有少許焊錫和松香的電烙鐵頭接觸被焊元器件約幾秒鐘。若是要拆下印刷板上的元器件,則待烙鐵頭加熱后,用手或銀子輕輕拉動元器件,看是否可以取下。③清理焊接面:若所焊部位焊錫過多,可將烙鐵頭上的焊錫甩掉(注意不要燙傷皮膚,也不要甩到印刷電路板上!),用光烙錫頭"沾"些焊錫出來。若焊點(diǎn)焊錫過少、不圓滑時,可以用電烙
48、鐵頭"蘸"些焊錫對焊點(diǎn)進(jìn)行補(bǔ)焊。④檢查焊點(diǎn):看焊點(diǎn)是否圓潤、光亮、牢固,是否有與周圍元器件連焊的現(xiàn)象。</p><p> 5.2 硬件調(diào)試問題及解決方法</p><p> 本設(shè)計在焊接調(diào)試時遇到的問題以及解決方法:</p><p> 單片機(jī)的最小系統(tǒng)問題:</p><p> 電源、晶振電路和復(fù)位電路都無異常。<
49、;/p><p> LCD焊接時的問題:</p><p> ?。?)接通電源后LCD無反應(yīng),各個引腳均屬正常。推斷可能是初始化程序出現(xiàn)問題。</p><p> 經(jīng)查找得知是LCD顯示器的15和16管腳控制背光功能,連接好之后還是不能顯示字符。</p><p> ?。?)接通電源開門燈和報警電路就會工作,分析原因是單片機(jī)剛開始各個管腳輸出高電平。
50、</p><p><b> 總結(jié)</b></p><p> 本設(shè)計從經(jīng)濟(jì)實用的角度出發(fā),采用美國Atmel公司的單片機(jī)AT89S51與低功耗CMOS型E2PROM AT24C02作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的鍵盤輸入、顯示、報警、開鎖等電路并用匯編編寫主控芯片的控制程序,研制了一款可以多次更改密碼具有報警功能的電子密碼鎖。設(shè)計完全可行可以達(dá)到設(shè)計目地。使
51、用單片機(jī)制作的電子密碼鎖具有軟硬件設(shè)計簡單,易于開發(fā),成本較低,安全可靠,操作方便等特點(diǎn),可應(yīng)用于住宅、辦公室的保險箱及檔案柜等需要防盜的場所,有一定的實用性。該電路設(shè)計還具有按鍵有效提示,輸入錯誤提示,控制開鎖電平,控制報警電路,修改密碼等多種功能??稍谝馔庑姑艿那闆r下隨時修改密碼。保密性強(qiáng),靈活性高,特別適用于家庭、辦公室、學(xué)生宿舍及賓館等場所。</p><p><b> 參考文獻(xiàn)</b&g
52、t;</p><p> [1] 何宏主編. 單片機(jī)原理與接口技術(shù). 北京:國防工業(yè)出版社. 2006.07</p><p> [2] 楊西明, 朱騏主編 . 單片機(jī)編程與應(yīng)用入門. 北京:機(jī)械工業(yè)出版社 .2004.06 </p><p> [3] 先鋒工作室編著. 單片機(jī)程序設(shè)計實例. 北京: 清華大學(xué)出版社 .200
53、3.01</p><p> [4] 謝宜仁主編 . 單片機(jī)實用技術(shù)問答. 北京: 人民郵電出版社 . 2003.02</p><p> [5] 梁麗.電子密碼鎖的計算機(jī)仿真設(shè)計.計算機(jī)仿真,2005</p><p> [6] 房小翠,王金鳳編著. 單片機(jī)實用系統(tǒng)設(shè)計技術(shù). 北京: 國防工業(yè)出版社 . 1999.06</p&g
54、t;<p> [7] 各種網(wǎng)絡(luò)教程及其他</p><p> [8] 王寬仁. 可靠安全的智能密碼鎖. 電子技術(shù)應(yīng)用 , 2001</p><p> [9] 李捷 , 陳典濤 , 陳建華 , 等. 一種基于單片機(jī)的電子密碼鎖的設(shè)計 [J]. 農(nóng)機(jī)化研究 , 2004, 5</p><p> [10] 董繼成. 能防止多次試探密碼的單片機(jī)密碼鎖.國
55、外電子元器件 , 2004, 3 </p><p> [11]趙益丹,徐曉林,周振峰編著.電子密碼鎖的系統(tǒng)原理、設(shè)計程序及流程圖.嘉興學(xué)院學(xué)報,2003,15</p><p> [12] 張培仁. 基于 C語言編程 MCS- 51單片機(jī)原理與應(yīng)用. 北京: 清華大學(xué)出版社 , 2002.12</p><p> [13] 李朝清. PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).
56、北京:北京航空航天大學(xué)出版社 , 1999.</p><p> [14] 路而紅.專用集成電路設(shè)計與電子設(shè)計自動化.北京:清華大學(xué)出版社,2004</p><p> [15] 劉文濤.MCS-51單片機(jī)培訓(xùn)教程(C51)版.電子工業(yè)出版社,2005.8 </p><p> [16] 王為青 程國鋼.單片機(jī)Keil Cx51 應(yīng)用開發(fā)技術(shù).人民郵電出版社,200
57、7.2 </p><p> [17] 范風(fēng)強(qiáng) 蘭嬋麗.單片機(jī)語言C51應(yīng)用實戰(zhàn)集錦.電子工業(yè)出版社,2003.3 </p><p> [18] 龔運(yùn)新.單片機(jī)C語言開發(fā)技術(shù).清華大學(xué)出版社,2006.10 </p><p> [19] 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法.清華大學(xué)出版社,2006.3 </p><p> [20]
58、王宜懷.單片機(jī)原理及其嵌入式應(yīng)用教程.北京希望電子出版社,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 ;按鍵標(biāo)志位</
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)標(biāo)志
66、位,為1表示busy</p><p> FLAG1 BIT 2BH ;功能鍵標(biāo)志位,為1表示功能按鍵。</p><p> F_F1 BIT 2CH</p><p> F_F2 BIT 2DH</p><p> PSW_F BIT 2EH ;密碼是否正確的標(biāo)志位 </p>&
67、lt;p> SPK BIT P2.1</p><p> WP BIT P3.5</p><p> SDA BIT P3.6 ;定義串口數(shù)據(jù)端</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 ;清除標(biāo)志位</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 ;調(diào)用</p><p> LCALL INITPS ;初始化環(huán)境</p><p> LCALL INITAT</p><p> LCALL XSA
74、;調(diào)用默認(rèn)顯示</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 ;標(biāo)志為1,則為功能鍵</p><p> ;***********數(shù)字按鍵輸入并且存放到緩沖區(qū)內(nèi)等待比較***********</p><p> KEY_DIG:NOP ;設(shè)一標(biāo)志,辨別輸入是否滿
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、沖,調(diào)電存儲后一定要加上</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 ;關(guān)閉顯示</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不應(yīng)在初始化中執(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 ;調(diào)用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 ;送已經(jīng)輸入密碼的次數(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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)藍(lán)牙門禁課程設(shè)計-簡易藍(lán)牙門禁的設(shè)計與實現(xiàn)
- 單片機(jī)課程設(shè)計---單片機(jī)門禁系統(tǒng)的設(shè)計
- 單片機(jī)課程設(shè)計--基于rfid的門禁系統(tǒng)
- 單片機(jī)課程設(shè)計--門禁電子密碼鎖
- 單片機(jī)課程設(shè)計--藍(lán)牙轉(zhuǎn)串口控制應(yīng)用
- 單片機(jī)課程設(shè)計-單片機(jī)課程設(shè)計---電子時鐘
- 單片機(jī)智能藍(lán)牙小車課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計--單片機(jī)串行通訊
- 單片機(jī)秒表單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計---單片機(jī)數(shù)字時鐘
- 單片機(jī)課程設(shè)計--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計---單片機(jī)籃球計分器
- 單片機(jī)課程設(shè)計報告---單片機(jī)數(shù)字時鐘
- 單片機(jī)課程設(shè)計---單片機(jī)原理及應(yīng)用
評論
0/150
提交評論