南江萍 鄭凱 謝國坤 劉珺蕙 王娟娟 王亞亞



摘?要:本文主要研究的是基于AT89C51單片機的子琴,設計了系統的主要電路模塊,并應用Proteus仿真軟件和Keil軟件編程軟件,使用單片機C語言對單片機進行編程,實現了使電子密碼鎖按照需要動作的要求,一定程度上保證了財產安全。
關鍵詞:AT89C51單片機;AT24C02記憶芯片;電子票密碼鎖
隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。因此,鎖具就成為人們防盜的最重要工具,到目前為止絕大多數人使用的仍然是傳統的機械鎖。然而,由于目前機械鎖具的互開率較高,即使是那些質量控制嚴密的機械鎖具,也可以通過某種特定的手段打開,而不會因緊急解鎖而破壞鎖具,正是由于機械鎖出現的這些弊端,為出現了這種新型鎖——電子密碼鎖,而創造了非常大的發展空間。
隨著電子技術和計算機技術的飛速發展,單片機性能不斷完善,性能價格比顯著提高,技術日趨完善。由于單片機具有體積小、重量輕、價格便宜、功耗低、控制功能強及運算速度快等特點,因而在國民經濟建設、軍事及家用電器等各個領域均得到了廣泛的應用。本設計選用單片機及其外圍電路元器件實現系統的設計。
1 系統總體設計
本設計采用AT89C51單片機為主控芯片,通過軟件程序組成電子密碼鎖系統,能夠實現以下功能:
1)正確輸入密碼前提下,開鎖提示;
2)錯誤輸入密碼情況下,蜂鳴器報警;
3)密碼可以根據用戶需要更改;
4)斷電存儲功能。
本設計主要由單片機、行列式鍵盤、LED顯示器和密碼存儲器以及蜂鳴器組成。電子密碼鎖系統設計總框架如圖1所示。
2 系統硬件設計
2.1 AT24C02記憶芯片
現在的AT24C02芯片,都是含有2k位串行的CMOS E2PROM,如果用8位字節來計算的話可以存儲256個。CMOS技術是單片機的領域的又一重大突破,它的問世大大減少了元器件的損耗。AT24C02內部的書寫緩存器可以運行16個字節,這個元器件在工作的時候會通過IIC總線的接口進入,而且為了保護這個元器件,我們寫出了一個專屬于它的寫保護程序。
2.2 鍵盤電路的設計
本設計所使用的鍵盤為4×4的矩陣鍵盤,該矩陣鍵盤可以很有效的減少鍵盤和單片機接口I/O線數的占用,當按鍵有點多時,一般使用這種方法。其整體模框圖如圖2所示。
在設計時每一條水平(行線)和垂直線(列線)的交叉處不直接接通,而是選擇通過一個按鍵來加以連接,此時只需要P條水平線和Q條垂直線來加以貫通就能夠組成P×Q的矩陣鍵盤。
當它確認存在這種按鍵時,下一步那就要看到底哪個按鍵是被按下的。常常會有兩種方法來甄別這個按鍵:一種方法是我們經常用的按行掃描的查詢方法;另一種是更快的線反轉方法。
對照圖2所示的4×4矩陣鍵盤,說明線反轉的工作原理。第一步我們先要確定鍵盤上是否存在按鍵,單片機的I/O口是不是發送了相對齊全的掃描字符到鍵盤,第二步我們要看一下線路的狀態來進行識別。具體的操作方法為:將所有的掃描字00H輸出到行線,然后將全部的列線設置為低電平,接著我們將列線的電平此時的狀態讀入累加器A.如果確實有按鍵的話,那么終究會有一根行線的電平被順勢拉到至低電平從而會讓行線不全為1。
通過將列線調整為低電平來判斷鍵盤上的哪些鍵被按下從而檢驗該行的輸入狀態。具體的操作方法是:逐個將低電平發送到相對應的列線,然后通過檢查所有的行線此時的狀態。如果都是1,則按下的鍵不會在這個列中;如果不都是1,則按下的鍵一定在這個列中,并且這個鍵是與零平行線的交匯處的鍵。具體的功能設計如上表。
2.3 顯示電路模塊
在這個硬件系統設計中,系統里的顯示電路為了給使用的人提供提示用的。為了達到用戶友好界面的目的,顯示部分由LED顯示器完成。插上電源后,程序自動調入初始密碼,此時依次輸入:123456,然后按[#](確認)鍵,此時鎖會打開,可以看到顯示true,密碼鎖打開。當顯示出現:password,證明密碼初始化完成,此時初始密碼即為:123456,顯示電路的原理圖如下的圖3所示。
2.4 開鎖電路模塊
在系統設計中,使用發光二極管來指示用于帶動電子密碼鎖動作的電機是否工作,如果發光二級管點亮,說明已解鎖;如果發光二級管不亮,則證明鎖并沒有被打開。下面的圖4為開鎖電路指示圖。當P2.0輸出為低電平時,二極管點亮,表示電子密碼鎖的電機動作,密碼鎖打開。
3 系統軟件設計
3.1 系統軟件設計
根據系統的軟硬件需求,為硬件設計匹配相符合的軟件設施,在軟件設計的一開始,對程序的總框圖進行了設計。圖5是系統的總設計流程圖。
3.2 鍵盤及子程序的設計
在鍵盤使用過程中,當按鍵沒有被按下的時候,單片機就會自動在主程序中循壞工作。當我們隨意按下其中的任何一個鍵時,系統立即會尋找與此相匹配的子程序來進行運行,直到運行結束后自動返回。程序流程如圖6所示。鍵盤掃描的部分程序如下:
4 結論
本系統仿真是在Proteus軟件上進行,在使用該軟件進行仿真之前,首先要在Keil 軟件來進行系統軟件的調試。目的檢測軟件程序是否能夠流暢、準確的運行,各個子程序的運行順序是否正確,各子程序之間的銜接是否順暢。系統程序調試結果能夠實現系統設計要求。
通過本系統的軟硬件設計,電子密碼鎖系統功能能夠達到預計性能要求,能夠實現如下內容:正確輸入密碼前提下,開鎖提示;錯誤輸入密碼情況下,蜂鳴器報警;密碼可以根據用戶需要更改以及斷電存儲功能。
參考文獻:
[1]袁軼珂.基于單片機的紅外遙控電子密碼鎖設計[J].電子制作,2017(Z1):14-16.
[2]肖萌萌.電子密碼鎖控制電路設計[J].黑龍江科技信息,2017(15):38.
[3]汪國強,李尚甫,王飛,謝麗麗,王欽,孫柏.基于FPGA的四位電子密碼鎖設計與實現[J].無線電通信技術,2016,42(04):95-98.
[4]阮忠.基于單片機的電子密碼鎖設計[J].農業網絡信息,2015(10):38-39.
[5]張恒坤.基于單片機的電子密碼鎖系統設計[J].黑龍江科技信息,2015(29):134.
[6]姜彬,居小琴.基于AT89C51單片機的電子密碼鎖系統設計[J].無線互聯科技,2014(12):30+32.
[7]張霞.基于AT89C51單片機的電子密碼鎖系統設計[J].無線互聯科技,2014(06):53.
[8]倪剛.基于AT89C51電子密碼鎖研究與設計[J].河南科技,2014(15):103-104.