基于STC89C52單片機(jī)的電子密碼鎖
1 設(shè)計(jì)思路及軟硬件實(shí)現(xiàn)
電子密碼鎖工作時(shí)分為兩種工作狀態(tài),分別是正常狀態(tài)和鎖定狀態(tài)。鎖定狀態(tài)時(shí),輸出鎖定信號(hào),供外部執(zhí)行機(jī)構(gòu)使用,實(shí)現(xiàn)上鎖功能;正常狀態(tài)時(shí),鎖定信號(hào)消失,供外部執(zhí)行機(jī)構(gòu)使用,實(shí)現(xiàn)開鎖功能,并允許用戶進(jìn)行密碼修改。
電子密碼鎖設(shè)計(jì)分硬件和軟件部分。硬件電路見圖1,包括穩(wěn)壓、晶振、復(fù)位、3×4鍵盤、指示燈、報(bào)警和電機(jī)驅(qū)動(dòng)電路。軟件編程思路如圖2所示。
本文引用地址:http://www.ex-cimer.com/article/201706/353788.htm用1個(gè)無符號(hào)字符型數(shù)組Val_Code和1個(gè)無符號(hào)字符型變量Val_Num來存放鍵盤輸入的數(shù)據(jù)大小和輸入個(gè)數(shù)。程序啟動(dòng)或復(fù)位后,清空數(shù)組Val_Code和變量Val_Num,并初始化定時(shí)器、報(bào)警器;進(jìn)入鎖定狀態(tài)時(shí),啟動(dòng)報(bào)警功能,如發(fā)現(xiàn)用戶按下“開鎖”鍵,則讀入從微鍵盤輸入的數(shù)字序列,更新數(shù)組Val_Code和變量Val_Num;然后比較數(shù)組Val_Code與單片機(jī)內(nèi)部E2PROM中的密碼是否相同,如密碼相同則開鎖、執(zhí)行開鎖動(dòng)作、輸出開鎖信號(hào)、進(jìn)入正常狀態(tài),否則繼續(xù)等待用戶開鎖(為防止非法用戶惡意多次試探密碼,可在程序中設(shè)置當(dāng)連續(xù)三次輸入錯(cuò)誤密碼后自動(dòng)報(bào)警,直至開鎖后解除)。在正常狀態(tài)時(shí),可以進(jìn)行重新設(shè)置密碼、上鎖等操作,重新設(shè)置密碼時(shí),首先驗(yàn)證原始密碼,如相同則可進(jìn)行密碼更改,然后將新密碼保存至單片機(jī)內(nèi)部E2PROM中。
2 STC89C52單片機(jī)內(nèi)部E2PROM及使用
2.1 STC89C52RC單片機(jī)內(nèi)部E2PROM
在STC89C52單片機(jī)中有2 kB的E2PROM存儲(chǔ)器,分8個(gè)扇區(qū),每個(gè)扇區(qū)512 B,擦寫次數(shù)可達(dá)10萬次以上,寫人數(shù)據(jù)有效保存時(shí)間可達(dá)100年。片內(nèi)DataFlash(E2PROM)地址如表1所示。
2.2 相關(guān)特殊功能寄存器
與使用STC89C52RC單片機(jī)內(nèi)部E2PROM有關(guān)的特殊功能寄存器見表2。
2.2.1 ISP CONTR控制寄存器
ISP_CONTR控制寄存器的功能見表3。
ISPEN:功能允許位。0禁止改變FLASH內(nèi)容;1允許改變內(nèi)容。
SWBS:軟件選擇從用戶區(qū)啟動(dòng)還是從ISP啟動(dòng)。0從用戶區(qū)啟動(dòng);1從ISP啟動(dòng)。
SWRST:軟件復(fù)位操作。0不操作;1產(chǎn)生軟件系統(tǒng)復(fù)位,硬件自動(dòng)清零。
讀、寫、擦除扇區(qū)時(shí)間由控制寄存器設(shè)置。
2.2.2 ISP_TRIG命令觸發(fā)寄存器
在ISP_CONTR最高位ISPEN=1時(shí),對(duì)ISP_TRIG先寫46H,再寫B(tài)9H,讀寫E2PROM的命令才會(huì)生效。
2.2.3 ISP_CMD命令寄存器
ISP_CMD對(duì)讀寫或擦除FLASH進(jìn)行控制,其功能見表4。
2.2.4 ISP_DATA,ISP_ADDRH,ISP_ADDRL
使用單片機(jī)內(nèi)部FLASH E2PROM寫入數(shù)據(jù)或擦除數(shù)據(jù)時(shí),需要用專門的存儲(chǔ)器存放處理的數(shù)據(jù)和地址,ISP_DATA用來存放數(shù)據(jù),ISP_ADDRH用來存放地址高字節(jié),ISP_ADDRL用來存放地址低字節(jié)。
3 結(jié) 語
采用STC89C52單片機(jī)設(shè)計(jì)的電子密碼鎖,實(shí)現(xiàn)智能電子密碼鎖的控制功能,克服了機(jī)械密碼鎖密碼量少的缺點(diǎn);采用內(nèi)部E2PROM保存密碼,比采用片外E2PROM具有更高的安全性、可靠性,可廣泛用于家居、辦公等智能控制系統(tǒng)中。
評(píng)論