<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT89S51的多功能電子密碼鎖設計

          基于AT89S51的多功能電子密碼鎖設計

          作者: 時間:2010-09-07 來源:網絡 收藏

          當前雖然許多智能鎖(如指紋辨別、IC卡識別)已相繼問世,但這類產品是針對特定指紋或有效卡,只能適用于保密要求高且僅供個別人使用的箱、柜、房間等。另外,卡片式的IC卡易丟失和損壞,加上其成本較高,在一定程度上限制了這類產品的普及和推廣。
          電子密碼鎖具有安全性能高、成本低、功耗低、操作簡單等優(yōu)點使其作為防盜衛(wèi)士的角色越來越重要。現(xiàn)有國內市場上的電子密碼鎖有的是通過購買一些產品模塊再開發(fā),不具備自主知識產權;有的是自主研發(fā)的,但其功耗與成本都比較高,不具備廣泛的應用價值。為了克服這些缺點,從經濟實用角度出發(fā),采用單片機AT89S5l與低功耗CMOS型E2PROM AT24C02作為主控器件與數(shù)據存儲器單元,設計一款可更改密碼,具有報警、實時監(jiān)控和遠程管理功能的電子密碼鎖。該電子密碼鎖體積小,易于開發(fā)、成本較低,安全性高,能將其存儲的現(xiàn)場歷史數(shù)據及時上報給上位機系統(tǒng),實現(xiàn)網絡實時監(jiān)控,方便管理人員及時分析和處理數(shù)據。

          1 電子密碼鎖的硬件設計
          電子密碼鎖的硬件由核心處理模塊、電源管理模塊,執(zhí)行模塊和通信模塊組成,其電路結構如圖l所示。

          本文引用地址:http://www.ex-cimer.com/article/173234.htm


          1.1 核心處理模塊
          核心處理模塊是電子密碼鎖工作的核心,它不僅要對密碼鎖的信息進行處理,還要負責調度各種程序穩(wěn)定的運行并控制其他模塊,其模塊主要由單片機,鍵盤,存儲器,顯示電路組成。其中,單片機是核心處理模塊的核心部分,其主要任務是配合軟件來完成信息處理和記錄、控制調度其他部分正常工作、電器的控制、密碼校對和修改等工作。從電子密碼鎖功能的需要、性價比、程序的數(shù)據量和接口電路等多方面綜合考慮,本文選用ATMEL公司的AT89S51單片機作為控制器的核心。鍵盤電路的設計采用4×4行列鍵盤的形式,直接由AT89S51的Pl口的高、低字節(jié)構成。


          電路中選用AT24C02作為密碼和開鎖信息的存儲器,該存儲器是一款具有I2C總線接口的串行EEFROM,由于AT89S51單片機沒有I2C總線接口,在電路上選用單片機的P2.2、P2.3分別與AT24C02的SCL和SDA線相連,軟件上實現(xiàn)模擬I2C總線接口。在該存儲器中還保存著用戶修改后的一級、二級權限密碼和最近20次開鎖的具體時間,以及非法偷、套密碼的提示信息,用戶通過按鍵可方便的實現(xiàn)查閱。存儲器與單片機的連接如圖2所示。鑒于該系統(tǒng)在功能上要求實現(xiàn)密碼輸入提示、開鎖信息的查閱、時間顯示等信息,并從低成本出發(fā),故選用SMCl602A液晶顯示模塊作為顯示電路,其電路結構如圖3所示。


          上一頁 1 2 3 下一頁

          關鍵詞: 收發(fā)器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();