基于51單片機的密碼鎖設計


摘要
密碼鎖是一種常見的安全設備,它通過輸入正確的密碼來解鎖。本文以基于51單片機的密碼鎖設計為中心,從硬件設計、軟件設計、功能實現(xiàn)和安全性等四個方面進行詳細闡述。
一、硬件設計
在基于51單片機的密碼鎖設計中,硬件部分主要包括鍵盤模塊、液晶顯示屏模塊和電路板等。首先,我們需要選擇合適的鍵盤模塊,并與51單片機進行連接;其次,在電路板上布置好各個元器件,并根據(jù)需求添加其他功能模塊;最后,將液晶顯示屏與51單片機相連,并確保正常工作。
在硬件設計過程中,需要考慮到電路穩(wěn)定性、可靠性和擴展性等因素。同時還需要注意功耗控制和防止干擾等問題。
二、軟件設計
基于51單片機的密碼鎖軟件部分主要包括輸入檢測、數(shù)據(jù)處理和輸出控制三個方面。首先,在輸入檢測方面,我們需要對鍵盤輸入進行掃描并判斷是否按下了正確的按鍵;其次,在數(shù)據(jù)處理方面,我們需要將輸入的密碼與預設的密碼進行比對,并根據(jù)結果進行相應的處理;最后,在輸出控制方面,我們需要通過液晶顯示屏等方式將解鎖結果反饋給用戶。
在軟件設計過程中,需要考慮到代碼效率、可讀性和可維護性等因素。同時還需要注意異常情況處理和錯誤提示等問題。
三、功能實現(xiàn)
基于51單片機的密碼鎖可以實現(xiàn)多種功能,如設置密碼、修改密碼、開鎖和報警等。首先,在設置密碼方面,用戶可以通過按鍵輸入新的密碼,并將其保存在存儲器中;其次,在修改密碼方面,用戶可以按照一定流程輸入舊的密碼并驗證成功后再輸入新的密碼;最后,在開鎖和報警方面,當用戶輸入正確的解鎖碼時,系統(tǒng)會自動解除鎖定狀態(tài)并發(fā)出解鎖提示音。
功能實現(xiàn)過程中需考慮到操作流程合理性、界面友好性和響應速度等因素。同時還需注意數(shù)據(jù)安全保護和防止非法操作等問題。
四、安全性
基于51單片機的密碼鎖設計要確保系統(tǒng)具有較高水平的安全性。首先,在物理層面上,我們可以采用加密芯片或防拆裝置等措施來增加密碼鎖的安全性;其次,在軟件層面上,我們可以采用哈希算法和隨機數(shù)生成等技術來提高密碼的安全性;最后,在用戶層面上,我們可以要求用戶定期更換密碼,并設置復雜度要求。
在安全性設計過程中需考慮到攻擊手段多樣化、防護措施完備性和系統(tǒng)穩(wěn)定性等因素。同時還需注意數(shù)據(jù)加密和防止破解等問題。
五、總結
基于51單片機的密碼鎖設計具有硬件設計簡單、軟件設計靈活、功能實現(xiàn)豐富和安全性較高等特點。通過合理的硬件與軟件配合,可以實現(xiàn)一個穩(wěn)定可靠且功能強大的密碼鎖系統(tǒng)。
然而,在實際應用中仍需要不斷改進與完善,以滿足不同場景下對密碼鎖系統(tǒng)的需求。希望本文能夠為基于51單片機的密碼鎖設計提供一些參考與啟示。
請問怎樣去設計一種基于51單片機的密碼鎖?
本次的項目是基于51單片機的密碼鎖,適合用來作為課程設計
主要實現(xiàn)了:密碼鎖功能,通過矩陣按鍵輸入密碼,輸入范圍為0-F,共有四位;同時,也可以使用更改按鍵更改密碼,在更改時需要輸入原密碼來進入更改模式,四位密碼顯示H標識,成功修改后,紅綠指示燈會同時閃爍;在輸入密碼正確后,綠色指示燈點亮,舵機啟動,模擬密碼鎖的打開過程;錯誤時則會紅色指示燈亮起。
本項目的優(yōu)點在于加入了舵機來仿真密碼鎖的開關,這就意味著這不是個單純的仿真了,至少是在PCB打樣焊接后,這是個可以使用的東西,而不是現(xiàn)在網(wǎng)上那些沒法出東西的虛擬仿真!!
同時,這次的設計還加入了AT24C02,這是個IIC接口的EEPROM器件,通過這個內存芯片,我們就可以儲存密碼,這樣就可以實現(xiàn)每次上電后,自動加載修改過后的密碼。但是!!!由于Proteus的破解問題,在A版的仿真中,寫入內存無法實現(xiàn),但是實際在實物中可以實現(xiàn),B版不包含掉電寫入功能,初始密碼均為1121。
本項目的文件夾里包含了兩個版本的PCB,可以直接打樣來制作實物
注意!!在PCB中有兩個貼片電阻,這兩個電阻的作用是防止舵機驅動芯片L298N的電流傳感引腳直接接地,可以選擇焊接0歐電阻,或者是選擇使用一根飛線連接,但是不可以不焊接。相關文章解析:AD原理圖編譯ERROR:GND contains Output Pin and Power Pin objects
B版的設計也帶有PCB,也是需要這兩個電阻,不同點就在于不帶有內存芯片,這對于一些要求較低的課設來說,可以有效的降低成本和難度,便于貼合實際設計能力。
部分代碼如下所示:
void main() //主函數(shù){ uchar i; uchar x;//存放內存讀取的標識 uint temp1,temp2; EA=1; EX0=1; IT0=1; x=At24c02Read(1); if(x==3) { temp1=At24c02Read(4); temp2=At24c02Read(7); password[0]=smgduan[(temp1/10)]; password[1]=smgduan[(temp1%10)]; password[2]=smgduan[(temp2/10)]; password[3]=smgduan[(temp2%10)]; } while(1) { if((time==0)&&(state!=1)) //初始化狀態(tài) { LED_Green=1; LED_Red=1; for(i=0;i《4;i++) { disp=0xbf; //寫入橫杠 } } keys_scan(); //掃描有無按鍵按下 }} 本設計包含:Proteus仿真原理圖、仿真設計;keil5的C語言代碼;ad的原理圖,PCB;產(chǎn)品說明書,所有代碼都含有注釋,這樣便于理解,而且還有技術答疑!!
基于51單片機的密碼鎖設計
第一章 緒論
1.1 課題背景和意義
隨著電子技術和計算機技術的飛速發(fā)展,單片機性能不斷完善,性能價格比顯著提高,技術日趨完善。由于單片機具有體積小、重量輕、價格便宜、功耗低、控制功能強及運算速度快等特點,因而在國民經(jīng)濟建設、軍事及家用電器等各個領域均得到了廣泛的應用。本設計利用單片機及附加電子元器件實現(xiàn)數(shù)據(jù)采集和控制算法,來完成某一實際功能。
隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術的發(fā)展,各類電子產(chǎn)品應運而生,電子密碼鎖就是其中之一。電子鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。
20世紀80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。
目前,在西方發(fā)達國家,電子密碼鎖技術相對先進,種類齊全,電子密碼鎖已被廣泛應用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術實現(xiàn)大門的管理。國內的不少企業(yè)也引進了世界上先進的技術,發(fā)展前景非??捎^。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。
1.2 電子密碼鎖發(fā)展趨勢
電子密碼鎖應用于金融業(yè),其根本的作用是“授權”,即被“授權”的人才可以存取錢、物。廣義上講,金融業(yè)的“授權”主要包括以下三種層次的內容:1、授予保管權,如使用保管箱、保險箱和保險柜;2、授予出入權,如出入金庫、運鈔車和保管室;3、授予流通權,如自動存取款。目前,金融行業(yè)電子密碼鎖的應用主要集中在前兩個層面上。下面將介紹幾種在金融行業(yè)中使用較多的電子密碼鎖以及它們的技術發(fā)展方向。當然,以上所說的授權技術再高超,都必須由精良的“鎖具”擔當承載結構部件,實現(xiàn)開啟、閉鎖的功能,而且承擔實體防護作用,抵抗住或盡量延遲破壞行為,讓電子密碼鎖“軟、硬不吃”。一般情況下,鎖具防盜的關鍵是鎖身外殼、閉鎖的部件的強度、鎖止型式、配合間隙和布局。提高電子密碼鎖之防護能力的必然途徑是報警,在金融業(yè)的許多場所有人值守、有電視監(jiān)控,具有報警功能,可以綜合物理防范和人力防范兩種作用。報警的前提是具備探測功能,根據(jù)電子密碼鎖的使用場所和防護要求,可選擇多種多樣的探測手段。在中國的城市金融業(yè)中,實現(xiàn)聯(lián)網(wǎng)報警已經(jīng)成為對各金融網(wǎng)點的基本要求。根據(jù)國內外的實踐經(jīng)驗,金融業(yè)實行安全防范風險等級很有必要,即依據(jù)使用的防盜報警器材的性能、安裝布局和人員值守狀況等,可以評估被防護物或區(qū)域的防護能力,得出風險等級,其中,電子密碼鎖的性能至關重要。
由于數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息能夠使電子密碼鎖獲得高度的保密性,如防范森嚴的金庫,需要使用復合信息密碼的電子密碼鎖,這樣對盜賊而言是“道高一尺、魔高一丈”。組合使用信息也能夠使電子密碼鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。
圖1.1 總體框圖

工作過程
(1)按鍵設置6位密碼,輸入密碼,通過單片機判斷,若密碼正確,通過則鎖打開,顯示open!
(2)首次使用時輸入:131420,對密碼進行初始化,當顯示:initpassword,證明密碼初始化完成,此時的密碼為:000000。
第二章 設計思想
(1)本設計為了防止密碼被竊取要求在輸入密碼時在LCD屏幕上顯示*號。
(2)設計開鎖密碼位六位密碼的電子密碼鎖。
(3)能夠LCD顯示在密碼正確時顯示open!,密碼錯誤時顯示ERROR,輸入密碼時顯示initpassword。
(4)實現(xiàn)輸入密碼錯誤超過限定的三次電子密碼鎖定。
(5)4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-D的功能鍵
(6)本產(chǎn)品具備報警功能,當輸入密碼錯誤時蜂鳴器響并且LED燈亮。
(7)密碼可以由用戶自己修改設定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作
第三章 系統(tǒng)的硬件設計
3.1硬件支持
3.1.1 STC89C52RC 單片機介紹
STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置8KB EEPROM,MAX810復位電路,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口。另外 STC89X51 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35Mhz,6T/12T可選。

圖3-1 STC89C52單片機引腳圖
主要特性如下:
(1) 增強型 8051 單片機,6 時鐘/機器周期和 12 時鐘/機器周期可以任 意選擇,指令代碼完全兼容傳統(tǒng) 8051.
(2)工作電壓:5.5V~3.3V(5V 單片機)/3.8V~2.0V(3V 單片機)
(3) 工作頻率范圍:0~40MHz,相當于普通 8051 的 0~80MHz,實際工 作頻率可達 48MHz
(4) 用戶應用程序空間為 8K 字節(jié)
(5) 片上集成 512 字節(jié) RAM
(6) 通用 I/O 口 (32 個) 復位后為: , P1/P2/P3/P4 是準雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。
(7)ISP(在系統(tǒng)可編程)/IAP(在應用可編程) ,無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片
(8)具有 EEPROM 功能
(9)具有看門狗功能
(10)共 3 個 16 位定時器/計數(shù)器。即定時器 T0、T1、T2
(11)外部中斷 4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒
(12)通用異步串行口(UART) ,還可用定時器軟件實現(xiàn)多個 UART
(13) 工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)
(14) PDIP 封裝
3.1.2液晶顯示LCD1602的介紹
(1)LM1602字符型模塊的性能
重量輕:<100g;
體積小:<11mm 厚;
功耗低:10—15mW;
顯示內容:192 種字符(5×7 點字型);
32 種字符(5×10 點字型);
可自編8(5×7)或許(5×10)種字符;
指令功能強:可組合成各種輸入、顯示、移位方式以滿足不同的要求;
接口簡單方便:可與8 位微處理器或微控制器相聯(lián);
工作溫度寬:0—50oC
可靠性高:壽命為50,000 小時(25oC)
圖3-2 液晶原理圖
3.1.3自鎖開關說明
自鎖開關電路中起到電源的開關作用,常開的其中一腳接DC電源插口電源腳,常開的另一腳接電路的VCC
圖3-3自鎖開關原理圖 圖3-4 自鎖開關硬件圖
3.1.4上拉電阻介紹
其實排阻就是由8個電阻組成的,其中一端全部接在一起,103為8個10K電阻,
102為8個1K電阻,他們在電路中起到“上拉”的作用,又稱上拉電阻。
上拉就是將不確定的信號通過一個電阻嵌位在高電平,電阻同時起限流作用,下拉同理.
上拉是對器件注入電流,下拉是輸出電流,弱強只是上拉電阻的阻值不同,沒有什么嚴格區(qū)分,對于非集電極(或漏極)開路輸出型電路(如普通門電路)提升電流和電壓的能力是有限的,上拉電阻的功能主要是為集電極開路輸出型電路輸出電流通道。
上拉,就是把電位拉高,比如拉到VCC
下拉,就是把電壓拉低,拉到GND
一般就是剛上電的時候,端口電壓不穩(wěn)定,為了讓他穩(wěn)定為高或低,就會用到上拉或下拉電阻。
有些芯片內部集成了上拉電阻(如單片機的P1、2、3口),所以外部就不用上拉電阻了。但是有一些開漏的(如單片機的P0口),外部必須加上拉電阻。
3.1.5三極管介紹
常見的三極管為9012、s8550、9013、s8050.單片機應用電路中三極管主要的作用就是開關作用。
其中9012與8550為pnp型三極管,可以通用。
其中9013與8050為npn型三極管,可以通用。
區(qū)別引腳:三極管向著自己,引腳從左到右分別為ebc,原理圖中有箭頭的一端為e,與電阻相連的為b,另一個為c。箭頭向里指為PNP(9012或8550),箭頭向外指為NPN(9013或8050)。
三極管的工作原理
三極管是電流放大器件,有三個極,分別叫做集電極C,基極B,發(fā)射極E。分成NPN和PNP兩種。我們僅以NPN三極管的共發(fā)射極放大電路為例來說明一下三極管放大電路的基本原理。
(1)電流放大
下面的分析僅對于NPN型硅三極管。如上圖所示,我們把從基極B流至發(fā)射極E的電流叫做基極電流Ib;把從集電極C流至發(fā)射極E的電流叫做集電極電流 Ic。這兩個電流的方向都是流出發(fā)射極的,所以發(fā)射極E上就用了一個箭頭來表示電流的方向。三極管的放大作用就是:集電極電流受基極電流的控制(假設電源 能夠提供給集電極足夠大的電流的話),并且基極電流很小的變化,會引起集電極電流很大的變化,且變化滿足一定的比例關系:集電極電流的變化量是基極電流變 化量的β倍,即電流變化被放大了β倍,所以我們把β叫做三極管的放大倍數(shù)(β一般遠大于1,例如幾十,幾百)。如果我們將一個變化的小信號加到基極跟發(fā)射 極之間,這就會引起基極電流Ib的變化,Ib的變化被放大后,導致了Ic很大的變化。如果集電極電流Ic是流過一個電阻R的,那么根據(jù)電壓計算公式 U=R*I 可以算得,這電阻上電壓就會發(fā)生很大的變化。我們將這個電阻上的電壓取出來,就得到了放大后的電壓信號了。
(2)偏置電路
三極管在實際的放大電路中使用時,還需要加合適的偏置電路。這有幾個原因。首先是由于三極管BE結的非線性(相當于一個二極管),基極電流必須在輸入電壓 大到一定程度后才能產(chǎn)生(對于硅管,常取0.7V)。當基極與發(fā)射極之間的電壓小于0.7V時,基極電流就可以認為是0。但實際中要放大的信號往往遠比 0.7V要小,如果不加偏置的話,這么小的信號就不足以引起基極電流的改變(因為小于0.7V時,基極電流都是0)。如果我們事先在三極管的基極上加上一 個合適的電流(叫做偏置電流,上圖中那個電阻Rb就是用來提供這個電流的,所以它被叫做基極偏置電阻),那么當一個小信號跟這個偏置電流疊加在一起時,小 信號就會導致基極電流的變化,而基極電流的變化,就會被放大并在集電極上輸出。另一個原因就是輸出信號范圍的要求,如果沒有加偏置,那么只有對那些增加的 信號放大,而對減小的信號無效(因為沒有偏置時集電極電流為0,不能再減小了)。而加上偏置,事先讓集電極有一定的電流,當輸入的基極電流變小時,集電極 電流就可以減小;當輸入的基極電流增大時,集電極電流就增大。這樣減小的信號和增大的信號都可以被放大了。
(3)開關作用
下面說說三極管的飽和情況。像上面那樣的圖,因為受到電阻 Rc的限制(Rc是固定值,那么最大電流為U/Rc,其中U為電源電壓),集電極電流是不能無限增加下去的。當基極電流的增大,不能使集電極電流繼續(xù)增大 時,三極管就進入了飽和狀態(tài)。一般判斷三極管是否飽和的準則是:Ib*β〉Ic。進入飽和狀態(tài)之后,三極管的集電極跟發(fā)射極之間的電壓將很小,可以理解為 一個開關閉合了。這樣我們就可以拿三極管來當作開關使用:當基極電流為0時,三極管集電極電流為0(這叫做三極管截止),相當于開關斷開;當基極電流很 大,以至于三極管飽和時,相當于開關閉合。如果三極管主要工作在截止和飽和狀態(tài),那么這樣的三極管我們一般把它叫做開關管。
(4)工作狀態(tài)
如果我們在上面這個圖中,將電阻Rc換成一個燈泡,那么當基極電流為0時,集電極電流為0,燈泡滅。如果基極電流比較大時(大于流過燈泡的電流除以三極管 的放大倍數(shù) β),三極管就飽和,相當于開關閉合,燈泡就亮了。由于控制電流只需要比燈泡電流的β分之一大一點就行了,所以就可以用一個小電流來控制一個大電流的通 斷。如果基極電流從0慢慢增加,那么燈泡的亮度也會隨著增加(在三極管未飽和之前)。
3.1.6繼電器介紹
電磁繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。
繼電器的線圈和接線端子是分立的,互補影響的~~~~繼電器的觸點只相當于開關

責任編輯:David
【免責聲明】
1、本文內容、數(shù)據(jù)、圖表等來源于網(wǎng)絡引用或其他公開資料,版權歸屬原作者、原發(fā)表出處。若版權所有方對本文的引用持有異議,請聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業(yè)目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經(jīng)允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。