杜栓 徐登
摘要:設(shè)計(jì)一套家用密碼存儲(chǔ)系統(tǒng),利用STM32 的普通IO口模擬IIC時(shí)序,實(shí)現(xiàn)門禁系統(tǒng)等密碼在AT24C02存儲(chǔ)器中的寫入和讀取,并在LCD1602模塊上顯示系統(tǒng)運(yùn)行過(guò)程和結(jié)果。系統(tǒng)軟硬件設(shè)計(jì)簡(jiǎn)潔合理,效率高。
關(guān)鍵詞: 密碼存儲(chǔ)系統(tǒng); STM32; AT24C02
中圖分類號(hào): TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)18-0255-02
Design of Home Password Storage System Based on STM32
DU Shuan,XU Deng
(School of Information, Changzhou Vocational Institute of Mechatronic Technology, Changzhou 213164, China)
Abstract: A set of home password storage system is designed, using the common IO port of STM32 to simulate the time sequence of IIC, to realize the writing and reading of the entrance guard system in the AT24C02 memory, and to display the running process and results of the system on the LCD1602 module. The software and hardware design of the system is simple and reasonable, and the efficiency is high.
Key words: Cipher storage system; STM32; AT24C02
隨著物聯(lián)網(wǎng)和嵌入式技術(shù)的發(fā)展,智能門禁系統(tǒng)成為是智能家居的一個(gè)重要發(fā)展領(lǐng)域之一,逐漸發(fā)展成為一套完整的出入管理系統(tǒng)。它在工作環(huán)境安全、人事考勤管理等方面起著巨大的作用。而密碼存儲(chǔ)系統(tǒng)作為門禁系統(tǒng)的重要組成部分,具有重要的應(yīng)用價(jià)值。
本文設(shè)計(jì)了一套家用密碼存儲(chǔ)系統(tǒng),利用STM32 的普通IO口模擬IIC時(shí)序,實(shí)現(xiàn)門禁系統(tǒng)等密碼在AT24C02存儲(chǔ)器中的寫入和讀取,并在LCD1602模塊上顯示系統(tǒng)運(yùn)行過(guò)程和結(jié)果。系統(tǒng)軟硬件設(shè)計(jì)簡(jiǎn)潔合理,效率高。
1 系統(tǒng)整體方案設(shè)計(jì)
圖1所示為系統(tǒng)整體框圖,處理器采用STM32F103ZET6,按鍵采用獨(dú)立按鍵,液晶采用1602液晶,EEPROM存儲(chǔ)器采用AT24C02。
系統(tǒng)具體功能如下:開機(jī)后,如果按下代表寫入密碼數(shù)據(jù)的按鍵key0,則將程序中預(yù)設(shè)的一個(gè)字節(jié)密碼數(shù)值(例如0x55)寫入AT24C02內(nèi)部,同時(shí)在1602液晶第一行上顯示“Password is set!”字符串;如果按下另一個(gè)代表讀取密碼數(shù)據(jù)的按鍵key1,則用來(lái)執(zhí)行密碼讀取操作,將前面寫入的一個(gè)字節(jié)密碼數(shù)據(jù)讀取出來(lái),并在1602液晶第二行上顯示“Password is 0x**”(注:“**”代表前面寫入的密碼數(shù)值,如果事先寫入的是0x55,則顯示“Password is 0x55”)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 硬件設(shè)計(jì)思路
電路設(shè)計(jì)需要用到的硬件資源有:
(1)key0和key1獨(dú)立按鍵
(2)1602液晶顯示模塊
(3)EEPROM存儲(chǔ)器AT24C02
2.2 硬件電路設(shè)計(jì)
硬件電路原理圖如下圖2所示:按鍵key0、key1分別與STM32的PA0和PA1連接;1602液晶的RS、RW、EN分別與PA2、PA3、PA4相連,數(shù)據(jù)口D0~D7對(duì)應(yīng)于PB0~PB7;AT24C02的SCL和SDA 分別連在STM32的PA5和PA6上。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 軟件設(shè)計(jì)思路
本項(xiàng)目的軟件設(shè)計(jì)思路如下:
(1)按鍵驅(qū)動(dòng)編寫
對(duì)按鍵key0、key1對(duì)應(yīng)的GPIO端口進(jìn)行初始化,打開對(duì)應(yīng)的GPIO時(shí)鐘,設(shè)置端口輸入方式以及GPIO速度等。
(2)1602液晶驅(qū)動(dòng)編寫
對(duì)1602液晶RS、EN、RW、D0~D7引腳對(duì)應(yīng)的GPIO端口進(jìn)行初始化,打開對(duì)應(yīng)的GPIO時(shí)鐘,設(shè)置端口輸入輸出方式以及GPIO速度等。同時(shí)按照相應(yīng)液晶讀寫時(shí)序編寫相應(yīng)的液晶讀寫函數(shù)。
(3)模擬I2C驅(qū)動(dòng)編寫
對(duì)模擬I2C引腳對(duì)應(yīng)的GPIO端口進(jìn)行初始化,打開對(duì)應(yīng)的GPIO時(shí)鐘,設(shè)置端口輸入輸出方式以及GPIO速度等。同時(shí)按照相應(yīng)I2C時(shí)序和協(xié)議編寫相應(yīng)的I2C讀寫函數(shù)。
(4)AT24C02讀寫驅(qū)動(dòng)編寫
根據(jù)相應(yīng)的I2C時(shí)序和AT24C02讀寫協(xié)議編寫相應(yīng)的AT24C02讀寫函數(shù)。
(5)主程序編寫
在完成前面四個(gè)步驟之后,按照項(xiàng)目的任務(wù)要求,系統(tǒng)上電后首先對(duì)按鍵、液晶、AT24C02進(jìn)行初始化,然后進(jìn)入程序主循環(huán)按鍵檢測(cè),如果寫入按鍵key0按下了,則將密碼數(shù)值寫入AT24C02;如果讀取按鍵key1按下了,則將密碼數(shù)值從AT24C02內(nèi)讀取出來(lái)。具體程序流程圖如圖3所示。
4 運(yùn)行測(cè)試
在代碼編譯成功之后,我們通過(guò)下載代碼到 STM32,程序復(fù)位運(yùn)行后,LCD1602被初始化,此時(shí)屏幕亮起,等待密碼寫入和讀取,如圖4所示。
4.1 密碼數(shù)據(jù)寫入
先按key0按鍵寫入密碼數(shù)據(jù)(上述程序中寫入的數(shù)據(jù)是“0x55”,數(shù)據(jù)寫入存儲(chǔ)單元是“200”,用戶可以在程序中任意改寫數(shù)據(jù)核查存儲(chǔ)單元),并在1602液晶上顯示“Password is set!”字符串,得到如圖5所示。
4.2 密碼數(shù)據(jù)讀取
在前面寫入成功的基礎(chǔ)上,按key1讀取之前寫入的數(shù)據(jù)(上述程序中寫入的數(shù)據(jù)是“0x55”,數(shù)據(jù)寫入存儲(chǔ)單元是“200”,用戶可以在程序中任意改寫數(shù)據(jù)核查存儲(chǔ)單元),并在1602液晶上面顯示“Password is 0x55!”字符串,如圖6所示。至此任務(wù)要求全部實(shí)現(xiàn)!
5 總結(jié)
本文主要設(shè)計(jì)了基于STM32的家用密碼存儲(chǔ)系統(tǒng),綜合應(yīng)用了鍵盤、LCD1602液晶、I2C總線、EEPROM芯片等硬件,并進(jìn)行了相關(guān)的代碼調(diào)試。實(shí)現(xiàn)了門禁系統(tǒng)等密碼在AT24C02存儲(chǔ)器中的寫入和讀取,并在LCD1602模塊上顯示了系統(tǒng)運(yùn)行過(guò)程和結(jié)果。經(jīng)過(guò)測(cè)試,該系統(tǒng)軟硬件設(shè)計(jì)簡(jiǎn)潔合理,效率高。
參考文獻(xiàn):
[1] 張鐸.自動(dòng)識(shí)別技術(shù)應(yīng)用案例分析[M].武漢:武漢大學(xué)出版社,2010:56-67.
[2] 范書瑞,李琦,趙燕飛.Cortex-M3 嵌入式處理器原理與應(yīng)用[M].北京:電子工業(yè)出版社,2011:34-36.
[3] 汪浩.物聯(lián)網(wǎng)的觸點(diǎn):RFID 技術(shù)及專利的案例應(yīng)用[M].北京:科學(xué)出版社,2010:33-39.