密碼鎖畢業(yè)論文_第1頁
密碼鎖畢業(yè)論文_第2頁
密碼鎖畢業(yè)論文_第3頁
密碼鎖畢業(yè)論文_第4頁
密碼鎖畢業(yè)論文_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河河 南南 科科 技技 學學 院院20162016 屆??飘厴I(yè)設(shè)計(論文)屆??飘厴I(yè)設(shè)計(論文)論文論文( (設(shè)計設(shè)計) )題目題目: :基于單片機控制的八路搶答器基于單片機控制的八路搶答器學生姓名:學生姓名: 軒安康軒安康 所在院系:所在院系: 高等職業(yè)技術(shù)學院高等職業(yè)技術(shù)學院 所學專業(yè):所學專業(yè): 電氣自動化技術(shù)專業(yè)電氣自動化技術(shù)專業(yè) 導師姓名:導師姓名: 李蘭云李蘭云 完成時間:完成時間: 20162016 年年 5 5 月月 1515 日日 目目 錄錄第一章第一章 緒論緒論.1 1 1.1、課題背景和意義.1 1.2、電子密碼鎖發(fā)展趨勢.2第二章第二章 設(shè)計思想設(shè)計思想.3.3第三章第

2、三章 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計 .3 33.13.1 硬件支持硬件支持.3.3 3.1.1STC89C52RC 單片機介紹.3 3.1.2 液晶顯示 LCD1602 的介紹.5 3.1.3 自鎖開關(guān)說明.5 3.1.4 上拉電阻介紹.6 3.1.5 三極管介紹.6 3.1.6 繼電器介紹.8 3.1.7 供電方式.9 3.2 功能單元模塊設(shè)計.10 3.2.1 開鎖機構(gòu).10 3.2.2 矩陣鍵盤設(shè)計電路.10 3.2.3 聲音提示電路設(shè)計.11 3.2.4 AT24C02 掉電存儲單元的設(shè)計.12第四章第四章 程序設(shè)計與系統(tǒng)仿真程序設(shè)計與系統(tǒng)仿真.13.13 4.1 模塊介紹.13 4.1.

3、1 主程序模塊.14 4.1.2 密碼比較判斷模塊.15 4.1.3 鍵盤掃描模塊.15 4.1.4 修改密碼模塊.16 4.2 電子密碼鎖原理圖.18 4.2.1 總店路圖.18 4.2.2 控制電路.18 4.2.3 實物圖.19 4.2.4 仿真圖.19第五章第五章 系統(tǒng)功能系統(tǒng)功能.19.19第第六六章章 設(shè)計總結(jié)設(shè)計總結(jié).20.20致謝致謝.20.20 參考文獻參考文獻.2.20 0附錄附錄.2.21 1a 電子密碼鎖元件清單.21b 源程序.220基于單片機的密碼鎖設(shè)計基于單片機的密碼鎖設(shè)計學生:楊宇,指導教師:李陽(安徽農(nóng)業(yè)大學 經(jīng)濟技術(shù)學院 合肥 09531013)摘摘 要要:

4、本設(shè)計提出了一種電子密碼鎖的設(shè)計方法。本系統(tǒng)由 STC89C52 單片機系統(tǒng)、44 矩陣鍵盤、LCD1602 顯示和報警系統(tǒng)等組成,具有設(shè)置、修改六位用戶密碼、超次報警、超次鎖定、密碼錯誤報警等功能。本系統(tǒng)成本低廉,功能實用。關(guān)鍵詞關(guān)鍵詞:單片機,電子密碼鎖,44 矩陣鍵盤 Abstract This paper presents a design method of the design of electronic password lock. The system consists of STC89C52 single-chip microcomputer system, 4 * 4 ma

5、trix keyboard, LCD1602 display and alarm system etc., has provided six, modify user password, the alarm, super lock, error alarm passwords and other functions. This system has the advantages of low cost, practical function.Key words :AT89S51 ,Electronic password lock ,44 keyboard第一章第一章 緒論緒論1.11.1 課題

6、課題背景和意義背景和意義隨著電子技術(shù)和計算機技術(shù)的飛速發(fā)展,單片機性能不斷完善,性能價格比顯著提高,技術(shù)日趨完善。由于單片機具有體積小、重量輕、價格便宜、功耗低、控制功能強及運算速度快等特點,因而在國民經(jīng)濟建設(shè)、軍事及家用電器等各個領(lǐng)域均得到了廣泛的應用。本設(shè)計利用單片機及附加電子元器件實現(xiàn)數(shù)據(jù)采集和控制算法,來完成某一實際功能。隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應運而生,電子密碼鎖就是其中之一。電子鎖是通過鍵盤輸入

7、一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的1種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC 卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。20 世紀 80 年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。目前,在西方發(fā)達國家,電子密

8、碼鎖技術(shù)相對先進,種類齊全,電子密碼鎖已被廣泛應用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術(shù)實現(xiàn)大門的管理。國內(nèi)的不少企業(yè)也引進了世界上先進的技術(shù),發(fā)展前景非??捎^。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。1.21.2 電子密碼鎖發(fā)展趨勢電子密碼鎖發(fā)展趨勢 電子密碼鎖應用于金融業(yè),其根本的作用是“授權(quán)”,即被“授權(quán)”的人才可以存取錢、物。廣義上講,金融業(yè)的“授權(quán)”主要包括以下三種層次的內(nèi)容:1、授予保管權(quán),如使用保管箱、保險箱和保險柜;2、授予出入權(quán),如出入金庫、運鈔車和保管室;3、授予流通權(quán),如自動存取款。目前,金融行業(yè)電子密碼鎖的應用主要集中在前兩個層面上。下面將介

9、紹幾種在金融行業(yè)中使用較多的電子密碼鎖以及它們的技術(shù)發(fā)展方向。當然,以上所說的授權(quán)技術(shù)再高超,都必須由精良的“鎖具”擔當承載結(jié)構(gòu)部件,實現(xiàn)開啟、閉鎖的功能,而且承擔實體防護作用,抵抗住或盡量延遲破壞行為,讓電子密碼鎖“軟、硬不吃”。一般情況下,鎖具防盜的關(guān)鍵是鎖身外殼、閉鎖的部件的強度、鎖止型式、配合間隙和布局。提高電子密碼鎖之防護能力的必然途徑是報警,在金融業(yè)的許多場所有人值守、有電視監(jiān)控,具有報警功能,可以綜合物理防范和人力防范兩種作用。報警的前提是具備探測功能,根據(jù)電子密碼鎖的使用場所和防護要求,可選擇多種多樣的探測手段。在中國的城市金融業(yè)中,實現(xiàn)聯(lián)網(wǎng)報警已經(jīng)成為對各金融網(wǎng)點的基本要求。

10、根據(jù)國內(nèi)外的實踐經(jīng)驗,金融業(yè)實行安全防范風險等級很有必要,即依據(jù)使用的防盜報警器材的性能、安裝布局和人員值守狀況等,可以評估被防護物或區(qū)域的防護能力,得出風險等級,其中,電子密碼鎖的性能至關(guān)重要。由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子密碼鎖獲得高度的保密性,如防范森嚴的金庫,需要使用復合信息密碼的電子密碼鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子密碼鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。 2 單顯示 鍵盤 片 機 開鎖 圖圖 1.11.1 總體框圖總體框圖工作過程(1)按鍵

11、設(shè)置 6 位密碼,輸入密碼,通過單片機判斷,若密碼正確,通過則鎖打開,顯示 open?。?)首次使用時輸入:131420,對密碼進行初始化,當顯示:initpassword,證明密碼初始化完成,此時的密碼為:000000。第第 2 2 章章 設(shè)計思想設(shè)計思想(1)本設(shè)計為了防止密碼被竊取要求在輸入密碼時在 LCD 屏幕上顯示*號。(2)設(shè)計開鎖密碼位六位密碼的電子密碼鎖。(3)能夠 LCD 顯示在密碼正確時顯示 open!,密碼錯誤時顯示 ERROR,輸入密碼時顯示 initpassword。(4)實現(xiàn)輸入密碼錯誤超過限定的三次電子密碼鎖定。(5)44 的矩陣鍵盤其中包括 0-9 的數(shù)字鍵和

12、A-D 的功能鍵(6)本產(chǎn)品具備報警功能,當輸入密碼錯誤時蜂鳴器響并且 LED 燈亮。(7)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作 第三章第三章 系統(tǒng)的硬件設(shè)計系統(tǒng)的硬件設(shè)計3.13.1 硬件支持硬件支持 .1 STC89C52RCSTC89C52RC 單片機介紹單片機介紹STC89C52 是一種低功耗、高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash,使得3STC89C51 為眾多嵌入式控制應用系統(tǒng)提供高

13、靈活、超有效的解決方案。 具有以下標準功能: 8k 字節(jié) Flash,512 字節(jié) RAM, 32 位 I/O 口線,看門狗定時器,內(nèi)置 8KB EEPROM,MAX810 復位電路,三個 16 位 定時器/計數(shù)器,一個 6 向量 2 級中斷結(jié)構(gòu),全雙工串行口。另外 STC89X51 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許 RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率 35Mhz,6T/12T 可選。EA/VP31X119X2

14、18RESET9P37/RD17P36WR16P32/INT012P33/INT113P34/T 014P35/T 115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE /P30P31/T XD11P30/RX D10GND20VCC40U1ST C89C52圖 3-1 STC89C52 單片機引腳圖 主要特性如下: (1) 增強型 8051 單片機,6 時鐘/機器周期和 12 時鐘/機器周期可以任

15、意選擇,指令代碼完全兼容傳統(tǒng) 8051. (2)工作電壓:5.5V3.3V(5V 單片機)/3.8V2.0V(3V 單片機) (3) 工作頻率范圍:040MHz,相當于普通 8051 的 080MHz,實際工 作頻率可達 48MHz (4) 用戶應用程序空間為 8K 字節(jié) (5) 片上集成 512 字節(jié) RAM (6) 通用 I/O 口 (32 個) 復位后為: , P1/P2/P3/P4 是準雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。 (7)ISP(在系統(tǒng)可編程)/IAP(在應用可編程) ,無需專用編程器,無 需專用仿真器

16、,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片(8)具有 EEPROM 功能 4(9)具有看門狗功能 (10)共 3 個 16 位定時器/計數(shù)器。即定時器 T0、T1、T2(11)外部中斷 4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒 (12)通用異步串行口(UART) ,還可用定時器軟件實現(xiàn)多個 UART (13) 工作溫度范圍:-40+85(工業(yè)級)/075(商業(yè)級) (14) PDIP 封裝 .2 液晶顯示液晶顯示 LCD1602LCD1602 的介紹的介紹(1)LM1602 字

17、符型模塊的性能重量輕:100g;體積?。篘?Y未超過 N 次輸入密碼?密碼設(shè)置完畢N設(shè)置新密碼Y按鍵N判斷按鍵值返回主界面NY設(shè)置解碼次數(shù)產(chǎn)生隨機密碼輸入密碼N=0 x84N=0 x82N=0 x11 圖圖 4-14-1 系統(tǒng)程序流程圖系統(tǒng)程序流程圖 .1 主程序模塊主程序模塊主程序主要用于定義全局變量,給全局變量賦初值,初始化 E2PROM,啟動定時器以及 從 AT24C02 中讀取密碼,為整個程序提供數(shù)據(jù);檢測按鍵;調(diào)用顯示等功能。.2 密碼比較判斷模塊密碼比較判斷模塊該模塊的功能是將鍵盤輸入的密碼利用 if 語句與設(shè)定的密碼進行逐個比較,若密碼完全正確

18、則開鎖;若不正確,則開啟報警電路,復位后重新輸入密碼。其密碼輸入和比較判決流程圖下圖所示。 輸入密碼核對鍵盤鎖定,開啟報警電路開鎖,燈亮,可密碼修改NY復位 圖圖 4-24-2 密碼輸入和比較判決流程圖密碼輸入和比較判決流程圖.3 鍵盤掃描模塊鍵盤掃描模塊 鍵盤使用矩陣式鍵盤,由行和列組成,CPU 對所有鍵盤進行監(jiān)視,從而實現(xiàn)逐列掃描鍵盤確定被按鍵的具體位置、判斷鍵盤上有無鍵按下、消除去抖動、判斷閉合的鍵是否釋放等功能。如下圖所示,為鍵盤掃描流程圖 15 開始 延時去抖動計算輸入鍵值鍵值送入單片機有按鍵輸入?有按鍵輸入?有按鍵輸入?返回NNYY 圖圖 4-34-3 鍵盤掃描流程

19、圖鍵盤掃描流程圖.4 修改密碼模塊修改密碼模塊在密碼輸入正確情況下,可以按下“重置密碼”對密碼進行重新設(shè)置,每設(shè)定一位就將密碼送給 AT24C02 存儲起來,當設(shè)置 6 位密碼完畢后,系統(tǒng)將自動跳到程序開始,調(diào)用新設(shè)置的密碼。下圖為修改密碼流程圖。16開始輸入原密碼密碼比較比較正確?輸入新密碼再次輸入新密碼調(diào)用 AT24C02 中密碼比較正確修改成功返回菜單鍵盤鎖定,啟動報警電路復位YN 圖圖 4-44-4 修改密碼流程圖修改密碼流程圖174.24.2 電子密碼鎖原理圖電子密碼鎖原理圖 .1 總電路圖總電路圖 P1.01P1.12P1.23P1.34P1.45P

20、1.56P1.67P1.78RST9P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20(A8)P2.021(A9)P2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(A15)P2.728PSEN29ALE/PROG30EA/VPP31(AD7)P0.732(AD6)P0.633(AD5)P0.534(AD4)P0.435(AD3)P0.336(AD2)P0.237(

21、AD1)P0.138(AD0)P0.039VCC40U189C51/C52bceQ29012VCCR51KY112MHzC230C330R110KVCCKEYALAMKEYbceQ19012VCCR42.2KALAMLS1GND1VCC2V03RS4R/W5EN6D07D18D29D310D411D512D613D714A15K161602D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7RSRSWRWRENENVCCVCCA01A12A23GND4SDA5SCL6WP7VCC8AT24C02R210KR310K+C110uF12345 J1JDQ-DC51234KRRESET1

22、23CON3VCCQ39013RG1KA1234K11234K21234K31234A1234K41234K51234K61234B1234K71234K81234K91234C1234*1234K01234#1234DP10P11P12P13P14P15P16P17P10P11P12P13P14P15P16P17R71.5kR610k321P1POWERVCC112233445566S112J1CON2COM1R12R23R34R45R56R67R78R89RP110KRT1104R92.2KD1LED 圖圖 4-54-5 總電路圖總電路圖 .2 控制電路控制電路P1.01P

23、1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20(A8)P2.021(A9)P2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(A15)P2.728PSEN29ALE/PROG30EA/VPP31(AD7)P0.732(AD6)P0.633(AD5)P0.534(AD4)P0.435(AD

24、3)P0.336(AD2)P0.237(AD1)P0.138(AD0)P0.039VCC40U189C51/C52bceQ29012VCCR51KY112MHzC230C330R110KVCCKEYALAMKEYbceQ19012VCCR42.2KALAMLS1GND1VCC2V03RS4R/W5EN6D07D18D29D310D411D512D613D714A15K161602D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7RSRSWRWRENENVCCVCCA01A12A23GND4SDA5SCL6WP7VCC8AT24C02R210KR310K+C110uF12345 J

25、1JDQ-DC51234KRRESET123CON3VCCQ39013RG1KAP10P11P12P13P14P15P16P17R71.5kR610k321P1POWERVCC112233445566S112J1CON2COM1R12R23R34R45R56R67R78R89RP110KRT1104R92.2KD1LED 圖圖 4-64-6 控制電路圖控制電路圖 .3 實物圖實物圖 圖圖 4-74-7 實物圖實物圖 .4 仿真圖仿真圖五五 系統(tǒng)功能系統(tǒng)功能本設(shè)計中系統(tǒng)可實現(xiàn)功能如下:(1)對輸入的 6 位密碼進行隱藏;(2)通過發(fā)光二極管和蜂鳴器,對解密正確

26、或者錯誤進行聲光報警;(3)6 位密碼修改;(4)在密碼遺失情況下,通過初始密碼進行密碼再設(shè)置;(5)采用 AT24C02 外部存儲器,完成斷電密碼保護功能;19六六 設(shè)計總結(jié)設(shè)計總結(jié)從基本方案的制定,到硬件電路的選擇,再到電路的焊接,最后進行程序調(diào)試在此期間我們遇到很多困難,但經(jīng)過不懈努力,終于擊破了各個難點,達到的所需要的效果。在這次設(shè)計中,我深刻認識到自身的不足缺少實戰(zhàn)經(jīng)驗。與此同時,也因為這次設(shè)計,我得到一定的鍛煉,體會到理論與實踐相結(jié)合的重要意義。由于本次設(shè)計時間有限,一些設(shè)想沒有完全實現(xiàn),比如說:電子密碼鎖的網(wǎng)絡(luò)通信擴展,人機界面智能化等。期待以后有機會對以上設(shè)想進行進一步研究實踐

27、。致謝致謝非常感謝*老師,老師在我大學的最后學習階段 畢業(yè)設(shè)計階段給自己的指導,從最初的定題,到資料收集,到寫作、修改,到論文定稿,她們給了我耐心的指導和無私的幫助。為了指導我們的畢業(yè)論文,他甚至放棄了自己的休息時間,他的這種無私奉獻的敬業(yè)精神令人欽佩,在此我向他表示我誠摯的謝意。同時,感謝所有任課老師和所有同學在這四年來給自己的指導和幫助,是他們教會了我專業(yè)知識,教會了我如何學習,教會了我如何做人。正是由于他們,我才能在各方面取得顯著的進步,在此向他們表示我由衷的謝意,并祝所有的老師培養(yǎng)出越來越多的優(yōu)秀人才,桃李滿天下參考文獻參考文獻1 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)M.北京:高等教育出版

28、社,2006.2江曉安,董秀峰,楊頌華.數(shù)字電子技術(shù)基礎(chǔ)M.西安:電子科技大學出版社,2008.3黃友銳.單片機原理及應用M. 合肥:合肥工業(yè)大學出版社 2006.4徐科軍.傳感器京:電子工業(yè)出版社,2011.5孫力.C 語言程序設(shè)計M.北京:中與檢測技術(shù)M.北國農(nóng)業(yè)出版社,2008.6陳曉鴿,昂軍,胡仁喜.Protel 99SE 標準實例教程M.北京:機械工業(yè)出版社,2010.7金桂,向國梁.基于C語言STC89C52單片機電子密碼鎖的設(shè)計與仿真J.現(xiàn)代電子技術(shù),2010,19:176-182.208 George Lee,Karina Ng,Edmond Kwang.Design of r

29、ing oscillator based voltage controlled oscillator. Project Final ReportR. 20059 T. C. Weigandt,B. Kim,and P. R. Gray.Analysis of Timing Jitter in CMOS Ring Oscillators. IEEE International Symposium on Circuits and Systems. 1994附錄:附錄:a a、電子密碼鎖元件清單、電子密碼鎖元件清單1) 9*15 萬用板2) 矩陣按鍵或 16 個小按鍵3) 1602 液晶4) 16p

30、 插針*25) 16p 單排母座*26) 光敏電阻7) 104 可調(diào)電阻8) 2.2k 電阻*29) 1k 電阻10) 10k 電阻*411) 1.5k 電阻12) 103 排阻13) 9012*214) 901315) 接線端子 3p16) 無源蜂鳴器17) 40 腳座18) 89c5219) 10uf 電容20) 30pf 電容*221) 小按鍵22) 自鎖開關(guān)23) 8 腳座24) 24c022125) 12m 晶振26) Led(3MM 紅色)27) 繼電器28) 電源接口29) 導線若干30) 焊錫若干31) usb 電源線(電池盒+DC 插頭)b b、源程序、源程序#include

31、 #include#define LCM_Data P0#define uchar unsigned char #define uint unsigned int#define w 6/定義密碼位數(shù)sbit lcd1602_rs=P27;sbit lcd1602_rw=P26;sbit lcd1602_en=P25;sbit Scl=P34;/24C02 串行時鐘sbit Sda=P35;/24C02 串行數(shù)據(jù)sbit ALAM = P21;/報警sbit KEY = P36;/開鎖sbit open_led=P22;/開鎖指示燈bit operation=0;/操作標志位bit pass=0

32、;/密碼正確標志bit ReInputEn=0;/重置輸入充許標志bit s3_keydown=0;/3 秒按鍵標志位bit key_disable=0;/鎖定鍵盤標志unsigned char countt0,second;/t0 中斷計數(shù)器,秒計數(shù)器22void Delay5Ms(void);unsigned char code a=0 xFE,0 xFD,0 xFB,0 xF7; /控盤掃描控制表unsigned char code start_line= password: ;unsigned char code name = =Coded Lock=;/顯示名稱unsigned ch

33、ar code Correct = correct ; /輸入正確unsigned char code Error = error ; /輸入錯誤unsigned char code codepass= pass ; unsigned char code LockOpen= open ;/OPENunsigned char code SetNew = SetNewWordEnable;unsigned char code Input = input: ;/INPUTunsigned char code ResetOK = ResetPasswordOK ;unsigned char code

34、initword= Init password.;unsigned char code Er_try= error,try again!;unsigned char code again= input again ;unsigned char InputData6;/輸入密碼暫存區(qū)unsigned char CurrentPassword6=1,3,1,4,2,0; /當前密碼值unsigned char TempPassword6;unsigned char N=0;/密碼輸入位數(shù)記數(shù)unsigned char ErrorCont;/錯誤次數(shù)計數(shù)unsigned char CorrectCo

35、nt;/正確輸入計數(shù)unsigned char ReInputCont; /重新輸入計數(shù)unsigned char code initpassword6=0,0,0,0,0,0;/=5ms 延時=void Delay5Ms(void)23unsigned int TempCyc = 5552;while(TempCyc-);/=400ms 延時=void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-); /=/

36、=24C02=/=void mDelay(uint t) /延時 uchar i; while(t-) for(i=0;i125;i+) ; void Nop(void) /空操作24 _nop_(); _nop_(); _nop_(); _nop_();/*起始條件*/void Start(void) Sda=1; Scl=1; Nop(); Sda=0; Nop(); /*停止條件*/void Stop(void) Sda=0; Scl=1; Nop(); Sda=1; Nop();/*應答位*/void Ack(void)Sda=0;Nop();Scl=1;25Nop();Scl=0;/

37、*反向應答位*/void NoAck(void) Sda=1; Nop(); Scl=1; Nop(); Scl=0; /*發(fā)送數(shù)據(jù)子程序,Data 為要求發(fā)送的數(shù)據(jù)*/void Send(uchar Data) uchar BitCounter=8; uchar temp; do temp=Data; Scl=0; Nop(); if(temp&0 x80)=0 x80) Sda=1; else Sda=0; Scl=1; temp=Data1; Data=temp; BitCounter-; while(BitCounter); Scl=0;26/*讀一字節(jié)的數(shù)據(jù),并返回該字節(jié)值*

38、/uchar Read(void) uchar temp=0;uchar temp1=0;uchar BitCounter=8;Sda=1;doScl=0;Nop();Scl=1;Nop();if(Sda)temp=temp|0 x01;elsetemp=temp&0 xfe;if(BitCounter-1)temp1=temp1;temp=temp1;BitCounter-;while(BitCounter);return(temp);void WrToROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PDa

39、ta=Data; for(i=0;iNum;i+)27 Start(); Send(0 xa0); Ack(); Send(Address+i); Ack(); Send(*(PData+i); Ack(); Stop(); mDelay(20); void RdFromROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PData=Data; for(i=0;i0;x-) for(y=110;y0;y-);/-寫指令-write_1602com(uchar com)/*液晶寫入指令函數(shù)*lcd1602_rs=0;/數(shù)據(jù)

40、/指令選擇置為指令lcd1602_rw=0; /讀寫選擇置為寫P0=com;/送入數(shù)據(jù)delay(1);lcd1602_en=1;/拉高使能端,為制造有效的下降沿做準備delay(1);lcd1602_en=0;/en 由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令/-寫數(shù)據(jù)-write_1602dat(uchar dat)/*液晶寫入數(shù)據(jù)函數(shù)*lcd1602_rs=1;/數(shù)據(jù)/指令選擇置為數(shù)據(jù)lcd1602_rw=0; /讀寫選擇置為寫29P0=dat;/送入數(shù)據(jù)delay(1);lcd1602_en=1; /en 置高電平,為制造下降沿做準備delay(1);lcd1602_en=0; /en 由高變

41、低,產(chǎn)生下降沿,液晶執(zhí)行命令/-初始化-void lcd_init(void)write_1602com(0 x38);/設(shè)置液晶工作模式,意思:16*2 行顯示,5*7 點陣,8 位數(shù)據(jù)write_1602com(0 x0c);/開顯示不顯示光標write_1602com(0 x06);/整屏不移動,光標自動右移write_1602com(0 x01);/清顯示/=/=/=將按鍵值編碼為數(shù)值=unsigned char coding(unsigned char m) unsigned char k;switch(m)case (0 x11): k=1;break;case (0 x21):

42、k=2;break;case (0 x41): k=3;break;case (0 x81): k=A;break;case (0 x12): k=4;break;case (0 x22): k=5;break;case (0 x42): k=6;break;case (0 x82): k=B;break;case (0 x14): k=7;break;case (0 x24): k=8;break;30case (0 x44): k=9;break;case (0 x84): k=C;break;case (0 x18): k=*;break;case (0 x28): k=0;break;

43、case (0 x48): k=#;break;case (0 x88): k=D;break;return(k);/=按鍵檢測并返回按鍵值=unsigned char keynum(void) unsigned char row,col,i; P1=0 xf0; if(P1&0 xf0)!=0 xf0) Delay5Ms(); Delay5Ms(); if(P1&0 xf0)!=0 xf0) row=P10 xf0; /確定行線i=0;P1=ai; /精確定位while(i4) if(P1&0 xf0)!=0 xf0) col=(P1&0 xff); /確定列

44、線 break; /已定位后提前退出 else i+;31 P1=ai; else return 0;while(P1&0 xf0)!=0 xf0); return (row|col); /行線與列線組合后返回 else return 0; /無鍵按下時返回 0/=一聲提示音,表示有效輸入=void OneAlam(void)ALAM=0;Delay5Ms(); ALAM=1;/=二聲提示音,表示操作成功=void TwoAlam(void)ALAM=0;Delay5Ms(); ALAM=1; Delay5Ms();ALAM=0;Delay5Ms(); ALAM=1;/=三聲提示音,表

45、示錯誤=void ThreeAlam(void)32ALAM=0;Delay5Ms(); ALAM=1; Delay5Ms();ALAM=0;Delay5Ms(); ALAM=1; Delay5Ms();ALAM=0;Delay5Ms(); ALAM=1;/=顯示輸入的 N 個數(shù)字,用 H 代替以便隱藏=void DisplayOne(void)/DisplayOneChar(9+N,1,*);write_1602com(yi+5+N);write_1602dat(*);/=顯示提示輸入=void DisplayChar(void)unsigned char i;if(pass=1)/Disp

46、layListChar(0,1,LockOpen);write_1602com(er);for(i=0;i16;i+)write_1602dat(LockOpeni);else33if(N=0)/DisplayListChar(0,1,Error);write_1602com(er);for(i=0;i16;i+)write_1602dat(Errori);else/DisplayListChar(0,1,start_line);write_1602com(er);for(i=0;i16;i+)write_1602dat(start_linei);void DisplayInput(void)

47、unsigned char i;if(CorrectCont=1)/DisplayListChar(0,0,Input);write_1602com(er);for(i=0;i16;i+)write_1602dat(Inputi);34/=重置密碼=/=void ResetPassword(void)unsigned char i;unsigned char j;if(pass=0)pass=0;DisplayChar();ThreeAlam();else if(ReInputEn=1)if(N=6)ReInputCont+;if(ReInputCont=2)for(i=0;i6;)if(Te

48、mpPasswordi=InputDatai)/將兩次輸入的新密碼作對比i+;else/DisplayListChar(0,1,Error);write_1602com(er);for(j=0;j16;j+)write_1602dat(Errorj);ThreeAlam();/錯誤提示35pass=0;ReInputEn=0;/關(guān)閉重置功能,ReInputCont=0;DisplayChar();break; if(i=6)/DisplayListChar(0,1,ResetOK);write_1602com(er);for(j=0;j16;j+)write_1602dat(ResetOKj)

49、;TwoAlam();/操作成功提示 WrToROM(TempPassword,0,6);/將新密碼寫入 24C02 存儲ReInputEn=0;ReInputCont=0;CorrectCont=0;elseOneAlam();/DisplayListChar(0, 1, again); /顯示再次輸入一次write_1602com(er);for(j=0;j16;j+)write_1602dat(againj);for(i=0;i6;i+)TempPasswordi=InputDatai;/將第一次輸入的數(shù)據(jù)暫存起來36N=0;/輸入數(shù)據(jù)位數(shù)計數(shù)器清零 /=輸入密碼錯誤超過三過,報警并鎖死

50、鍵盤=void Alam_KeyUnable(void)P1=0 x00;ALAM=ALAM;Delay5Ms();/=取消所有操作=void Cancel(void)unsigned char i;unsigned char j;/DisplayListChar(0, 1, start_line); write_1602com(er);for(j=0;j16;j+)write_1602dat(start_linej);37TwoAlam();/提示音for(i=0;i6;i+)InputDatai=0;KEY=1;/關(guān)閉鎖ALAM=1;/報警關(guān)operation=0;/操作標志位清零pass

51、=0;/密碼正確標志清零ReInputEn=0;/重置輸入充許標志清零ErrorCont=0;/密碼錯誤輸入次數(shù)清零CorrectCont=0;/密碼正確輸入次數(shù)清零ReInputCont=0;/重置密碼輸入次數(shù)清零 open_led=1;s3_keydown=0;key_disable=0;N=0;/輸入位數(shù)計數(shù)器清零/=確認鍵,并通過相應標志位執(zhí)行相應功能=void Ensure(void)unsigned char i,j;RdFromROM(CurrentPassword,0,6); /從 24C02 里讀出存儲密碼 if(N=6) if(ReInputEn=0)/重置密碼功能未開啟f

52、or(i=0;i6;) if(CurrentPasswordi=InputDatai)i+;38else ErrorCont+;if(ErrorCont=3)/錯誤輸入計數(shù)達三次時,報警并鎖定鍵盤write_1602com(er);for(i=0;i16;i+)write_1602dat(Errori);doAlam_KeyUnable();while(1);elseTR0=1;/開啟定時key_disable=1;/鎖定鍵盤pass=0;break;if(i=6)CorrectCont+;if(CorrectCont=1)/正確輸入計數(shù),當只有一次正確輸入時,開鎖,/DisplayListC

53、har(0,1,LockOpen);write_1602com(er);for(j=0;j16;j+)write_1602dat(LockOpenj);39TwoAlam();/操作成功提示音KEY=0;/開鎖pass=1;/置正確標志位TR0=1;/開啟定時open_led=0;/開鎖指示燈亮for(j=0;j6;j+)/將輸入清除InputDatai=0;else/當兩次正確輸入時,開啟重置密碼功能/DisplayListChar(0,1,SetNew);write_1602com(er);for(j=0;j16;j+)write_1602dat(SetNewj);TwoAlam(); /操作成功提示ReInputEn=1;/允許重置密碼輸入CorrectCont=0;/正確計數(shù)器清零 else/=當?shù)谝淮问褂没蛲浢艽a時可以用 131420 對其密碼初始化=if(InputData0=1)&(InputData1=3)&(InputData2=1)&(InputData3=4)&(InputData4=2)&(InputData5=0) WrToROM(initpas

溫馨提示

  • 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

提交評論