當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]本文介紹一種基于單片機(jī)和串行EEPROM的智能密碼鎖,對(duì)系統(tǒng)硬件設(shè)計(jì)和軟件實(shí)現(xiàn)進(jìn)行了詳細(xì)的描述。

摘要  本文介紹一種基于單片機(jī)和串行EEPROM智能密碼鎖,對(duì)系統(tǒng)硬件設(shè)計(jì)和軟件實(shí)現(xiàn)進(jìn)行了詳細(xì)的描述。該系統(tǒng)采用AT89C51單片機(jī)和AT24C01串行EEPROM,通過AT89C51模擬I2C總線和AT24C01通訊,實(shí)現(xiàn)密碼鎖的功能。
關(guān)鍵詞  智能密碼鎖  單片機(jī)  串行EEPROM  AT89C51  AT24C01

1.引言

電子技術(shù)的飛速發(fā)展,給傳統(tǒng)的機(jī)械鎖帶來了巨大的變革,現(xiàn)代的電子技術(shù)與機(jī)械技術(shù)相結(jié)合,產(chǎn)生了一大批如聲控鎖、電子密碼鎖、遙控鎖,指紋鎖等先進(jìn)的鎖具。雖然這類產(chǎn)品安全性高,但因其生產(chǎn)成本高,安裝使用不方便,在一定程度上限制了這類產(chǎn)品的普及和推廣。本文介紹的是一種基于AT89C51單片機(jī)和AT24C01串行EEPROM的智能密碼鎖的硬件設(shè)計(jì)和軟件實(shí)現(xiàn)方法,這種電路設(shè)計(jì)具有防試探按鍵輸入、智能控制上鎖、開鎖、報(bào)警、修改密碼等多種功能。密碼長(zhǎng)度可變,保密性強(qiáng),靈活性高,外接各種執(zhí)行機(jī)構(gòu),可廣泛用于車輛、大門、保險(xiǎn)柜等各種需上鎖的場(chǎng)合。

2.設(shè)計(jì)思路

本設(shè)計(jì)中,智能密碼鎖工作時(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)開鎖功能。初始密碼存儲(chǔ)在AT24C01中,開鎖時(shí),將從面板上的微鍵盤輸入的數(shù)字序列與AT24C01中存儲(chǔ)的密碼相比較,如果位數(shù)及每一位上的數(shù)都相吻合,則進(jìn)行開鎖動(dòng)作,轉(zhuǎn)入正常狀態(tài),否則仍將鎖定。

為安全起見,密碼可以進(jìn)行更改。在正常狀態(tài)時(shí),程序允許用戶隨時(shí)進(jìn)行密碼修改,密碼長(zhǎng)度和數(shù)字可隨意進(jìn)行組合。

為防止程序“跑飛”等異常情況,本設(shè)計(jì)在軟件中使用了簡(jiǎn)單的“程序陷阱”技術(shù),根據(jù)實(shí)際需要,可酌情增加“看門狗”電路。無論是硬件復(fù)位還是軟件復(fù)位后,自動(dòng)進(jìn)入鎖定狀態(tài),保證異常情況下的安全。

鎖定狀態(tài)時(shí),自動(dòng)開啟報(bào)警功能。如遇非法情況(如車輛鎖定下仍萬一發(fā)生移動(dòng)等,可將這些情況轉(zhuǎn)換為計(jì)數(shù)脈沖形式輸入),計(jì)數(shù)若干次后報(bào)警(計(jì)數(shù)值可通過程序調(diào)整)。另外,為防止非法用戶進(jìn)行惡意多次試探開鎖,連續(xù)三次輸錯(cuò)密碼,將進(jìn)行報(bào)警。直至開鎖后,所有報(bào)警消失。

3. AT89C51單片機(jī)和AT24C01串行EEPROM及其通訊

AT89C51是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),內(nèi)置8位中央處理器和Flash存儲(chǔ)單元的AT89C51為智能密碼鎖提供了高性價(jià)比的解決方案。

AT89C51是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口。AT89C51具有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。下圖是PDIP封裝的AT89C51引腳圖:

AT24C01是美國(guó)ATMEL公司的低功耗CMOS串行EEPROM,它內(nèi)含128×8位存儲(chǔ)空間,具有工作電壓寬(2.5~5.5V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點(diǎn)。AT24C01具有PDIP、MSOP/TSSOP及SOIC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。下圖是PDIP封裝的AT24C01引腳圖:

AT24C01與外部通訊采用I2C總線。I2C(Inter-Integrated  Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。I2C總線的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主控。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。

I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps??偩€必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。時(shí)序如下圖:

接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,應(yīng)向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖(應(yīng)答信號(hào)),表示已收到數(shù)據(jù)。時(shí)序如下圖:

在開始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識(shí)別符(不同的芯片類型有不同的定義,EEPROM一般應(yīng)為1010),接著三位為片選,最后一位為讀寫位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫操作??刂谱止?jié)如下圖所示:

AT24C01寫操作分為字節(jié)寫和頁(yè)面寫兩種操作,讀操作分為當(dāng)前地址讀、隨機(jī)讀和順序讀等三種操作,每種讀寫操作都有規(guī)定的時(shí)序,可參考AT24C01用戶手冊(cè)。本系統(tǒng)采用字節(jié)寫和隨機(jī)讀兩種操作方式,具體時(shí)序由軟件模擬。

4.硬件連接

AT89C51內(nèi)含4k bytes程序存儲(chǔ)器和128 bytes數(shù)據(jù)存儲(chǔ)器,可以滿足設(shè)計(jì)需要,因此外部無需擴(kuò)展,節(jié)省了很多I/O口線。

系統(tǒng)輸入部分主要有:“設(shè)置密碼”鍵、“上鎖”鍵、“開鎖”鍵、3×4微鍵盤陣列(數(shù)字0~9以及“確定”和“取消”鍵)、異常情況下的計(jì)數(shù)脈沖輸入等。系統(tǒng)輸出部分主要是鎖定信號(hào)的輸出和報(bào)警信號(hào)的輸出。

AT89C51與AT24C01的連接,通過RxD充當(dāng)時(shí)鐘信號(hào)線SCL,TxD充當(dāng)數(shù)據(jù)線SDA來實(shí)現(xiàn),I2C總線的時(shí)序由軟件模擬。由于AT24C01是I2C總線上與CPU相連的唯一的一個(gè)芯片,因此可將AT24C01的地址置為000,即將A0、A1、A2接地。

具體硬件連接圖如下:

5.軟件實(shí)現(xiàn)

程序復(fù)位后,先將AT24C01中保存的密碼取出,放入RAM緩沖區(qū)1中暫存,將定時(shí)器、堆棧等進(jìn)行初始化,為報(bào)警系統(tǒng)作好準(zhǔn)備,將RAM緩沖區(qū)2中的密碼初值設(shè)置為和RAM緩沖區(qū)1中的密碼不同,保證程序復(fù)位后比較密碼不會(huì)相同,這時(shí),進(jìn)入RAM緩沖區(qū)1和RAM緩沖區(qū)2的密碼比較程序,只有當(dāng)兩者位數(shù)相同而且每一位數(shù)字都相同時(shí),執(zhí)行開鎖動(dòng)作、輸出開鎖信號(hào)、進(jìn)入正常狀態(tài),否則執(zhí)行上鎖動(dòng)作、輸出上鎖信號(hào)、進(jìn)入鎖定狀態(tài)。在正常狀態(tài)時(shí),可以進(jìn)行重新設(shè)置密碼、上鎖等操作,重新設(shè)置密碼時(shí),首先驗(yàn)證原始密碼,如相同則可進(jìn)行密碼更改,然后將新密碼保存至AT24C01中,同時(shí)更新RAM緩沖區(qū)1。在鎖定狀態(tài)時(shí),系統(tǒng)啟動(dòng)報(bào)警功能,同時(shí)等待用戶開鎖,如發(fā)現(xiàn)用戶按下“開鎖”鍵,則讀入從微鍵盤輸入的數(shù)字序列,用其更新RAM緩沖區(qū)2,轉(zhuǎn)入密碼比較程序,如密碼相同則開鎖,否則繼續(xù)等待用戶開鎖,為防止非法用戶惡意多次試探密碼,可在程序中設(shè)置當(dāng)連續(xù)三次輸入錯(cuò)誤密碼后自動(dòng)報(bào)警,直至開鎖后解除。

報(bào)警系統(tǒng)由AT89C51內(nèi)置的定時(shí)/計(jì)數(shù)器實(shí)現(xiàn),鎖定狀態(tài)時(shí)開啟,正常狀態(tài)時(shí)關(guān)閉。如遇異常情況,如車輛鎖定下仍萬一發(fā)生移動(dòng)、門鎖定下仍被強(qiáng)行打開等,可將這些情況轉(zhuǎn)換為計(jì)數(shù)脈沖形式輸入,計(jì)數(shù)若干次后報(bào)警,計(jì)數(shù)值可通過程序調(diào)整。

按鍵和微鍵盤的“去抖”,為簡(jiǎn)單起見,采用軟件延時(shí)的方法。為防止程序“跑飛”等異常情況,在軟件中使用簡(jiǎn)單的“程序陷阱”技術(shù),即在多余程序空間內(nèi)設(shè)置一些長(zhǎng)轉(zhuǎn)移指令LJMP 0000H,進(jìn)行程序復(fù)位。

程序流程圖如下:

6.總結(jié)

本文作者創(chuàng)新點(diǎn):采用串行EEPROM保存密碼,用單片機(jī)實(shí)現(xiàn)密碼鎖的控制功能,克服了機(jī)械密碼鎖密碼量少,安全性差的缺點(diǎn),具有更高的安全性、可靠性。本設(shè)計(jì)中,輸入采用3×4微鍵盤陣列,根據(jù)需要,可將其改為與電子表更改時(shí)間類似的裝置。另外,可以與PC機(jī)聯(lián)網(wǎng),實(shí)施遠(yuǎn)距離監(jiān)控、報(bào)警等功能,可廣泛用于樓宇智能系統(tǒng)中。

參考文獻(xiàn)

[1]劉文濤,MCS-51單片機(jī)培訓(xùn)教程,電子工業(yè)出版社,2005.8

[2]鄔寬明,單片機(jī)外圍器件實(shí)用手冊(cè),北京航空航天大學(xué)出版社,1998.12

[3]趙曉玲,單片機(jī)在指紋保險(xiǎn)柜中的應(yīng)用[J],微計(jì)算機(jī)信息,2006.7-2:134-136

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉