




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)密碼鎖設(shè)計(匯編語言 )帶原理圖電路圖什么是密碼鎖電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。硬件設(shè)計基于AT89C51為核心的單片機(jī)控制的電子密碼鎖設(shè)計。本設(shè)計能完成開鎖,修改密碼,密碼錯誤報警,LCD顯示密碼等基本的密碼鎖功能。設(shè)計的電路框如圖1。報警控制電路LCD顯示電路AT89C51單片機(jī)開鎖控制電路矩陣鍵盤控制指示電路 圖一 電路的功能單元設(shè)計1.單片機(jī)AT89C51組成基本框圖 P0AT89C51CPU程序存儲器 ROM并行接口串行接口數(shù)據(jù)存儲器 RAM中斷系統(tǒng)定時器/計數(shù)器時鐘電路P3P1P2TxDINT0RxD
2、INT1T0T1外中斷內(nèi)中斷單片機(jī)引腳介紹P0:P0口是一個漏極開路的8位雙向I/O口。在訪問片外存儲器時P0分時提供低8位地址線和8位雙向數(shù)據(jù)線。當(dāng)不接片外存儲器或不擴(kuò)展I/O口時,P0可作為一個通用輸入/輸出口。P0口作輸入口使用時,應(yīng)先向口鎖存器寫“1”,P0口作輸出口時,需接上拉電阻。P1:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,因此它作為輸出口使用時,無需再外接上拉電阻,當(dāng)作為輸入口使用時,同樣也需先向其鎖存器寫“1”。P2:P2口也是一個內(nèi)部提供上拉電阻的8位雙向I/O口,在訪問片外存儲器時,輸出高8位地址。P3:P3口除了一般的準(zhǔn)雙向通用I/O口外,還有第二功能。VCC:
3、+5V電源VSS:接地 ALE:地址鎖存器控制信號。在系統(tǒng)擴(kuò)展時,ALE用于控制把P0口輸出的低8位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用。 /PSEN:外部程序存儲器讀選通信號。在讀外部ROM時,/PSEN有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。 /EA:訪問程序存儲控制信號。當(dāng)/EA信號為低電平時,對ROM的讀操作限定在外部程序存儲器;當(dāng)/EA信號為高電平時,對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。 RST:復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個機(jī)器周期以上的高電平時即
4、為有效,用完成單片機(jī)的復(fù)位初始化操作。XTAL1和XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時鐘時,此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。2.單片機(jī)外圍電路設(shè)計(1)單片機(jī)復(fù)位電路: 采用按鍵手動復(fù)位方式中的電平復(fù)位方式,復(fù)位電平是通過使RST端經(jīng)電阻與VCC電源接通而實(shí)現(xiàn)的。(2)單片機(jī)時鐘電路:AT89C51內(nèi)部有時鐘電路,需外接石英晶體和微調(diào)電容,本設(shè)計的晶振頻率為11.0592MHz。3.矩陣鍵盤的設(shè)計本設(shè)計中用到4*4的鍵盤。鍵盤掃描方式,鍵盤的列線與P1口的低4位相接,行線與P1口的高3位相接。首先使P1.0為低電平“0”,其余三根列線為高
5、電平“1”,讀行線狀態(tài)。如果行線都為高電平狀態(tài),則P1.0這列上沒鍵按下,如果讀出的行線不全為高電平狀態(tài),則為低電平的行線與P1.0相交的鍵處于閉合狀態(tài)。如果P1.0上沒有鍵閉合,接著使P1.1為低電平,其余列線為高電平,用同樣的方法檢查P1.1這列上有沒有按鍵閉合。一直到使P1.3為低電平掃描完成。這一過程稱為一次掃描過程。由于按鍵是利用機(jī)械觸電的合、斷原理,存在彈性的影響,機(jī)械觸點(diǎn)在閉合及斷開瞬間均有抖動過程,從而使電壓信號波動,為了保證CPU對鍵的穩(wěn)定閉合僅作一次鍵輸入處理,必須采用消除抖動影響。本設(shè)計采用軟件辦法,在檢測到有鍵按下時,執(zhí)行一個延時程序后,確認(rèn)該鍵是否保持閉合狀態(tài)電平。若
6、仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài),從而消除抖動影響。若有按鍵被按下時,就將該按鍵譯碼出來,本設(shè)計采用雙重循環(huán)做計數(shù)編號,當(dāng)某一按鍵按下時,其按鍵編號便是計數(shù)編號,有關(guān)按鍵編號,掃描信號及讀取按鍵數(shù)據(jù)返回碼整理如表1。編號按鍵數(shù)據(jù)輸入碼P1.7 P1.6 P1.5 P1.4掃描輸出信號P1.3 P1.2 P1.1 P1.0所偵測的按鍵01 1 1 01 1 1 0K0 鍵11 1 0 11 1 1 0K1 鍵21 0 1 11 1 1 0K2 鍵30 1 1 11 1 1 0K3 鍵41 1 1 01 1 0 1K4 鍵51 1 0 11 1 0 1K5 鍵61 0 1 11 1 0
7、1K6 鍵70 1 1 11 1 0 1K7 鍵81 1 1 01 0 1 1K8 鍵91 1 0 11 0 1 1K9 鍵101 0 1 11 0 1 1K10 鍵110 1 1 11 0 1 1K11 鍵 表14.電路總體設(shè)計下面是本次實(shí)驗(yàn)的程序;*;以下8個字節(jié)存放8位數(shù)碼管的段碼LED_BIT_1EQU30HLED_BIT_2EQU31HLED_BIT_3EQU32HLED_BIT_4EQU33HLED_BIT_5EQU34HLED_BIT_6EQU35HLED_BIT_7EQU36HLED_BIT_8EQU37H;以下6個字節(jié)存放初始密碼WORD_1EQU38HWORD_2EQU39
8、HWORD_3EQU3AHWORD_4EQU3BHWORD_5EQU3CHWORD_6EQU3DH;以下6個字節(jié)存放用戶輸入的6位密碼KEY_1EQU3EHKEY_2EQU3FHKEY_3EQU40HKEY_4EQU41HKEY_5EQU42HKEY_6EQU43H;*CNT_AEQU44HCNT_BEQU45HKEY_CNTEQU46H;已輸出的密碼位數(shù)LINEEQU47H;按鍵行號ROWEQU48H;按鍵列號VALEQU49H;鍵值;*;以下為初始化程序,包括數(shù)據(jù)存儲空間初始化,設(shè)置初始密碼ORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVCNT_A,#00H
9、;程序初始化MOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HSETBP1.0MOVLED_BIT_1,#00H;段碼存儲區(qū)清0MOVLED_BIT_2,#00HMOVLED_BIT_3,#00HMOVLED_BIT_4,#00HMOVLED_BIT_5,#00HMOVLED_BIT_6,#00HMOVLED_BIT_7,#79HMOVLED_BIT_8,#73HMOVKEY_1,#00H;輸入密碼存儲區(qū)清0MOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMOVKEY_5,#00HMOVKE
10、Y_6,#00HMOVWORD_1,#6;設(shè)置初始密碼為"123456"MOVWORD_2,#5MOVWORD_3,#4MOVWORD_4,#3MOVWORD_5,#2MOVWORD_6,#1MOVTMOD,#01HMOVTH0,#(65536-700)/256MOVTL0,#(65536-700)/256MOVIE,#82HA0:LCALLDISP;*;以下為鍵盤掃描程序,計算鍵值并存入VALLSCAN:MOVP3,#0F0H;掃描行碼L1:JNBP3.0,L2LCALLDLY_SJNBP3.0,L2MOVLINE,#00HLJMPRSCANL2:JNBP3.1,L3LC
11、ALLDLY_SJNBP3.1,L3MOVLINE,#01HLJMPRSCANL3:JNBP3.2,L4LCALLDLY_SJNBP3.2,L4MOVLINE,#02HLJMPRSCANL4:JNBP3.3,A0LCALLDLY_SJNBP3.3,A0MOVLINE,#03HRSCAN:MOVP3,#0FH;掃描列碼C1:JNBP3.4,C2MOVROW,#00HLJMPCALCUC2:JNBP3.5,C3MOVROW,#01HLJMPCALCUC3:JNBP3.6,C1MOVROW,#02HCALCU:MOVA,LINE;計算鍵值MOVB,#03HMULABADDA,ROWMOVVAL,A;
12、*;以下為按鍵處理程序,對不同的按鍵作出響應(yīng)CJNEA,#0AH,J1;是否為"CLR"鍵MOVR1,KEY_CNTCJNER1,#00H,J2LCALLALARM_1LJMPSTART J2:LCALLSHIFTR DECKEY_CNTW00:LCALLDISP;等待按鍵抬起MOVA,P3CJNEA,#0FH,W01LJMPA0W01:MOVA,P3CJNEA,#0F0H,W02LJMPA0W02:SJMPW00J1:MOVA,VALCJNEA,#0BH,J3;判斷是否為"ENTER"鍵MOVR1,KEY_CNTCJNER1,#06H,J4MOVA,W
13、ORD_1;比較密碼CJNEA,3EH,J5MOVA,WORD_2CJNEA,3FH,J5MOVA,WORD_3CJNEA,40H,J5MOVA,WORD_4CJNEA,41H,J5MOVA,WORD_5CJNEA,42H,J5MOVA,WORD_6CJNEA,43H,J5CLRP1.0LCALLDLY_LLJMPFINIJ5:LCALLALARM_2LJMPSTARTJ4:LCALLALARM_1LJMPSTARTJ3:INCKEY_CNT;按下數(shù)字鍵MOVA,KEY_CNTCJNEA,#07H,K1LCALLALARM_1W10:LCALLDISP;等待按鍵抬起MOVA,P3CJNEA,#
14、0FH,W11LJMPSTARTW11:MOVA,P3CJNEA,#0F0H,W12LJMPSTARTW12:SJMPW10LJMPSTARTLJMPSTARTK1:LCALLSHIFTLW20:LCALLDISP;等待按鍵抬起MOVA,P3CJNEA,#0FH,W21LJMPA0W21:MOVA,P3CJNEA,#0F0H,W22LJMPA0W22:SJMPW20LJMPA0ALARM_1:SETBTR0;操作錯誤報警JBTR0,$RETALARM_2:SETBTR0;密碼錯誤報警JBTR0,$LCALLDLY_LRET;*;定時器中斷服務(wù)程序,用于聲音報警INT_T0:CPLP1.7MOV
15、TH0,#(65536-700)/256MOVTL0,#(65536-700)/256INCCNT_AMOVR1,CNT_ACJNER1,#30,RETUNEMOVCNT_A,#00HINCCNT_BMOVR1,CNT_BCJNER1,#20,RETUNEMOVCNT_A,#00HMOVCNT_B,#00HCLRTR0RETUNE:RETI;*;段碼,輸入密碼左移子程序SHIFTL:MOVLED_BIT_6,LED_BIT_5MOVLED_BIT_5,LED_BIT_4MOVLED_BIT_4,LED_BIT_3MOVLED_BIT_3,LED_BIT_2MOVLED_BIT_2,LED_BI
16、T_1MOVLED_BIT_1,#40HMOVKEY_6,KEY_5MOVKEY_5,KEY_4MOVKEY_4,KEY_3MOVKEY_3,KEY_2MOVKEY_2,KEY_1MOVKEY_1,VALRET;*;段碼,輸入密碼右移子程序SHIFTR:MOVLED_BIT_1,LED_BIT_2MOVLED_BIT_2,LED_BIT_3MOVLED_BIT_3,LED_BIT_4MOVLED_BIT_4,LED_BIT_5MOVLED_BIT_5,LED_BIT_6MOVLED_BIT_6,#00HMOVKEY_1,KEY_2MOVKEY_2,KEY_3MOVKEY_3,KEY_4MOVK
17、EY_4,KEY_5MOVKEY_5,KEY_6MOVKEY_6,#00HRET;*;以下為數(shù)碼顯示子程序DISP:CLRP2.7MOVP0,LED_BIT_8LCALLDLY_SSETBP2.7CLRP2.6MOVP0,LED_BIT_7LCALLDLY_SSETBP2.6CLRP2.5MOVP0,LED_BIT_6LCALLDLY_SSETBP2.5CLRP2.4MOVP0,LED_BIT_5LCALLDLY_SSETBP2.4CLRP2.3MOVP0,LED_BIT_4LCALLDLY_SSETBP2.3CLRP2.2MOVP0,LED_BIT_3LCALLDLY_SSETBP2.2CLRP2.1MOVP0,LED_BIT_2LCA
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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ī)構(gòu)講師團(tuán)隊合作協(xié)議
- 公司文員勞動協(xié)議
- 全球環(huán)境治理項(xiàng)目資金捐贈協(xié)議
- 中國地理讀后感
- 《數(shù)學(xué)競賽題庫設(shè)計與復(fù)習(xí)教學(xué)教案》
- 大宗商品貿(mào)易管理流程手冊
- 委托貸款借款合同
- 農(nóng)產(chǎn)品質(zhì)量安全追溯手冊
- 互聯(lián)網(wǎng)軟件開發(fā)合同協(xié)議
- 綠化工程承包合同協(xié)議
- 2025年服裝制版師(中級)職業(yè)技能鑒定考試題(附答案)
- 高考模擬作文“中國游”“city不city”導(dǎo)寫及范文
- 福建省福州市2024-2025學(xué)年九年級上學(xué)期期末語文試題(解析版)
- 一年級下冊綜合實(shí)踐活動教案2
- 九年級主題班會課件:遇見最好的自己(開學(xué)第一課)
- 2025版股權(quán)投資基金股份收購與退出機(jī)制協(xié)議3篇
- 【營銷方案】2025小紅書平臺營銷通案
- 2025年棗莊科技職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 護(hù)苗行動安全教育課件
- 2024年山西同文職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 油品庫房管理規(guī)定(2篇)
評論
0/150
提交評論