【正文】
paper presents a single chip and serial EEPROMbased smart locks on the system hardware design and software implementation described in detail. The system uses STC89C51 and AT24C02 singlechip serial EEPROM, through the I2C bus and STC89C51 simulation AT24C02 munication to read stored passwords, user password through the keyboard input to achieve the function of locks.Key words: smart locks STC89C51 AT24C02 21 引言隨著社會物質(zhì)財富的日益增長和人們生活水平的提高,安全成為現(xiàn)代居民最關(guān)心的問題之一。本文介紹的是一種基于ST89C51單片機和AT24C02串行EEPROM的智能密碼鎖的硬件設(shè)計和軟件實現(xiàn)方法,這種電路設(shè)計具有防試探按鍵輸入、智能控制上鎖、開鎖、報警、修改密碼等多種功能。初始密碼存儲在AT24C02中,開鎖時,將從面板上的微鍵盤輸入的數(shù)字序列與AT24C02中存儲的密碼相比較,如果位數(shù)及每一位上的數(shù)都相吻合,則進行開鎖動作,轉(zhuǎn)入正常狀態(tài),否則仍將鎖定。無論是硬件復(fù)位還是軟件復(fù)位后,自動進入鎖定狀態(tài),保證異常情況下的安全。2 系統(tǒng)硬件設(shè)計電子鎖主要由控制電路和鎖體兩部分組成,鎖體包括電磁線圈、鎖拴、彈簧和鎖框等。 硬件組成及工作原理電子密碼鎖的組成框圖如圖21所示,圖21 控制電路功能圖它也是以單片機作為核心控制器,主要是由顯示電路、報警電路、時鐘電路、復(fù)位電路和鍵盤等組成。一旦輸出報警信號, 就必須等待解除報警后方可重新開鎖。STC89C51內(nèi)部有EEPROM,可以在程序中修改,斷電不丟失,還增加了兩級中斷優(yōu)先級等等。 時鐘電路XTALl、XTAL2 為片內(nèi)振蕩器的反相放大器的輸入和輸出端,如圖23示。 密碼存儲電路密碼鎖的密碼可修改,并且掉電后不消失,所以需要外接非易失性存儲器,在本次設(shè)計中采用AT24C02。AT24C02寫操作分為字節(jié)寫和頁面寫兩種操作,讀操作分為當(dāng)前地址讀、隨機讀和順序讀等三種操作,每種讀寫操作都有規(guī)定的時序。如上圖所示,這是本課題所設(shè)計的矩陣鍵盤電路。 報警電路蜂鳴音報警電路如下圖所示:圖27 報警電路本電路是由兩個電阻,一個NPN三極管和一個蜂鳴器組成。在設(shè)計時用7448來譯碼,用74LS138提供位選,這樣可以節(jié)省單片機端口。此設(shè)計如下要求:1)上電后,顯示器顯示“000000”。3)鍵入號碼,再按“D”開門鍵,若號碼與密碼相符,則開門,計算輸錯次數(shù),當(dāng)達到三次則報警。當(dāng)輸入的密碼正確時,查詢是否輸入set鍵,如果輸入set鍵(修改密碼鍵)則可以修改密碼,接著輸入新密碼即可。初始化N=0解碼輸入錯誤輸入報警輸入新密碼正常開鎖N=N+1定時10分鐘解鎖正確?N=3?輸出報警信號封鎖輸入口修改密碼是是是否否否圖29程序設(shè)計流程圖4 系統(tǒng)調(diào)試選擇好硬件方案和編好軟件程序后進行系統(tǒng)調(diào)試來檢驗系統(tǒng)硬件的配置和軟件程序的設(shè)計是否合理,從而選擇一個合理的軟件設(shè)計方案與硬件的配置緊密聯(lián)系起來,這是設(shè)計的一個非常重要的環(huán)節(jié)。調(diào)試分為兩部分:硬件調(diào)試和軟件調(diào)試。 軟件調(diào)試首先打開電源,出現(xiàn)顯示器沒有顯示“000000”現(xiàn)象,輸入密碼在顯示器顯示亂碼現(xiàn)象。在整個程序設(shè)計是使用匯編語言,通過改正以上兩處錯誤及對硬件電路做了些調(diào)整之后,再進行通電調(diào)試,最終在MCS51單片機仿真軟件下編寫并調(diào)試完成的。本次設(shè)計,涉及到單片機、模擬電路、數(shù)字電路、Protel99等等課程里面的知識;讓我明白自身知識的貧乏,很多方面像單片機原理、硬件結(jié)構(gòu)、擴展接口和編程語言等需要加強鞏固。同時讓我學(xué)會了如何去分析和解題?!∽詈?,感謝所有的學(xué)校領(lǐng)導(dǎo)、老師和我的同學(xué),在這三年,有你們陪我一起度過校園美好的日子,對我的學(xué)習(xí)和生活提供了許多的幫助,并祝你們身體健康,工作順利!在此,謹(jǐn)對他們致以衷心的感謝。同時非常感謝在我設(shè)計過程中幫助過我的同學(xué)和朋友們,為我提供了些我沒能買到的電子元件、焊接的電路板子和測試用的一些實驗儀器,并且?guī)椭医鉀Q了不少在實物制作過程中出現(xiàn)的技術(shù)問題。課題的設(shè)計從一開始的選題到最后寫論文結(jié)稿和實物制作完成的整個過程很漫長,雖說完成了任務(wù),但還存在著很多問題,有本身技術(shù)上的問題,也有些是對原理的不太了解而造成的失誤問題,最終還是經(jīng)過仔細(xì)的分析和系統(tǒng)的研究解決了。結(jié)論與謝辭通過這段時間的努力,終于完成了對基于單片機和串行EEPROM的智能密碼鎖的設(shè)計與制作。經(jīng)過程序檢查,發(fā)現(xiàn)有兩處錯誤:錯誤之一是初始地址沒給;錯誤之二是初始化和清零程序有問題。但是于最次的設(shè)計電路圖相比有所改動。在調(diào)試的過程中將能看到你所編的程序是否正確。當(dāng)輸入的密碼錯誤時就會出現(xiàn)錯誤指示,每輸入一次則N作加1運算,當(dāng)N=3時也就是連續(xù)輸入密碼出現(xiàn)三次錯誤,蜂鳴器報警并封鎖輸入口。方案主要就是密碼的輸入、顯示和比較,所以程序在鍵盤和顯示上占了很大的比重,硬件電路上加了EEPROM AT24C02,斷電后密碼就是從這里讀出來的。密碼修改后則從AT24C02中讀取。P0口的后面三位接38譯碼器的A,B,C,通過譯碼器輸出的數(shù)據(jù)可以作為數(shù)碼管的位選,使