引言
以往個人資料保存、部門文件檔案多用機械鎖,需攜帶多把鑰匙,使用極不方便,鑰匙丟失后安全性差。
隨著科學技術的不斷發展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對門鎖的使用要求、增加其安全性,電子密碼鎖應運而生,它具有防試探按鍵輸入,智能控制上鎖、報警、修改密碼等多種功能f1剖。鑒于以往單片機的內部程序存儲器不能由單片機自身修改,要完成修改密碼功能,多采用片外串行E2PRoM實現。宏基公司生產的STC89系列單片機,高速、低功耗、新增在系統/在應用可編程(ISP,IAP)功能,使不具有E2PRoM的單片機具有了E2PRoM的功能,可以在線對現場歷史數據的存儲功能,適用于一些需經常改變數據的應用產品(如計費器、門禁系統等)及需遠距離改變設備參數的產品(遙控設備等)。采用STC89C52單片機設計的電子密碼鎖,利用內部E2PROM資源,不需要外接程序存儲器就能完成修改密碼等多種功能,并且保密性高、成本低、簡單易行,符合住宅、部門辦公安全要求。
1 設計思路及軟硬件實現
電子密碼鎖工作時分為兩種工作狀態,分別是正常狀態和鎖定狀態。鎖定狀態時,輸出鎖定信號,供外部執行機構使用,實現上鎖功能;正常狀態時,鎖定信號消失,供外部執行機構使用,允許用戶進行密碼修改。
電子密碼鎖設計分硬件和軟件部分。硬件電路見圖1,包括穩壓、晶振、復位、3×4鍵盤、指示燈、報警和電機驅動電路。軟件編程思路如圖1所示。
用1個無符號字符型數組Val—Code和1個無符號字符型變量Val—Num來存放鍵盤輸入的數據大小和輸入個數。程序啟動或復位后,清空數組Val—Code和變量Val—Num,并初始化定時器、報警器;進入鎖定狀態時,啟動報警功能,如發現用戶按下“開鎖”鍵,則讀入從微鍵盤輸入的數字序列,更新數組Val Code和變量Val Num;然后比較數組Val Code與單片機內部E2PRoM中的密碼是否相同,如密碼相同則開鎖、執行開鎖動作、輸出開鎖信號、進入正常狀態,否則繼續等待用戶開鎖(為防止非法用戶惡意多次試探密碼,可在程序中設置當連續三次輸入錯誤密碼后自動報警。直至開鎖后解除)。在正常狀態時,可以進行重新設置密碼、上鎖等操作。重新設置密碼時,首先驗證原始密碼,如相同則可進行密碼更改,然后將新密碼保存至單片機。內部E2PROM中。
2 STC89C52單片機內部E2PROM及使用
2.1 STC89C52RC單片機內部E2PROM
在STC89C52單片機中有2 kB的E2PROM存儲器,分8個扇區,每個扇區512 B,擦寫次數可達10萬次以上,寫入數據有效保存時間可達100年。片內DataFlash(E2PROM)地址如表1所示。
2.2 相關特殊功能寄存器
與使用STC89C52RC單片機內部E2PROM有關的特殊功能寄存器見表2。
2.2.1 ISP CONTR控制寄存器
ISP CONTR控制寄存器的功能見表3。
ISPEN:功能允許位。0禁止改變FI.ASH內容;1允許改變內容。
SWBS:軟件選擇從用戶區啟動還是從ISP啟動。
0從用戶區啟動;1從ISP啟動。
SWRST:軟件復位操作。0不操作;1產生軟件系統復位,硬件自動清零。
讀、寫、擦除扇區時間由控制寄存器設置。
2.2.2 ISP TRIG命令觸發寄存器
在ISP CONTR最高位ISPEN=1時,對ISPTRIG先寫46H,再寫B9H,讀寫E2PROM的命令才會生效。
2.2.3 ISP CMD命令寄存器
ISP CMD對讀寫或擦除FLASH進行控制,其功能見表4。
2.2.4 ISP—DATA,ISP—ADDRH,ISP—ADDRL
使用單片機內部FLASH E2PROM寫入數據或擦除數據時,需要用專門的存儲器存放處理的數據和地址,ISP DATA用來存放數據,ISP ADDRH用來存放地址高字節,ISP ADDRL用來存放地址低字節。
2.2.5 特殊功能寄存器的聲明
2.3主要功能模塊
2.3.1 允許FLASH E2PROM的操作
2.3.2 禁止FLASH E2PROM操作,清除有關寄存器
2.3.3讀單片機內部E2PROM
2.3.4 寫單片機內部E2PROM
2.3.5 擦除單片機內部E2PROM扇區
3 結語
采用STC89C52單片機設計的電子密碼鎖,實現智能電子密碼鎖的控制功能,克服了機械密碼鎖密碼量少的缺點;采用內部E2PROM保存密碼,比采用片外E2PROM具有更高的安全性、可靠性,可廣泛用于家居、辦公等智能控制系統中。