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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于51單片機的現場無電源電子密碼鎖設計

          基于51單片機的現場無電源電子密碼鎖設計

          作者: 時間:2011-11-24 來源:網絡 收藏
          1.4 直流電機倒向驅動電路
          系統(tǒng)采用帶有變速器的3 V直流電機,通過電機的順時針、逆時針旋轉完成開鎖、閉鎖操作。倒向驅動電路由三極管Q4,Q6,Q8,Q10,Q5,Q7,Q9,Q11組成,單片機的P1.O,P1.1,P1.2,P1.3分別經反相器后接Q4,Q6,Q8,Q10的基極。電路如圖4所示。


          當單片機的P1.O,P1.1,P1.2,P1.3為低電平時,Q4,Q6,Q8,Q10截止,V1和V2處于浮空狀態(tài),電機靜止;當開鎖時,單片機的P1.0,P1.3為高電平,P1.1,P1.2為低電平,Q4,Q5,Q10,Q11導通,Q6,Q7,Q8,Q9截止,V1為正,V2為負,電機正轉開鎖;當閉鎖時,單片機的P1.0,P1.3為低電平,P1.1,P1.2為高電平,Q4,Q5,Q10,Q11截止,Q6,Q7,Q8,Q9導通,V1為負,V2為正,電機反轉閉鎖。
          在程序實現時,必須注意嚴禁P1.0,P1.1,P1.2,P1.3同時為高電平,即Q4,Q6,Q8,Q10同時處于導通狀態(tài)。
          1.5 電機保護電路
          直流變速電機執(zhí)行開鎖、閉鎖操作一定時間后,外部機械裝置會迫使電機停止轉動,如果不采取措施,會產生較大電流,損壞直流電機,所以保護電路是必不可少的。


          保護電路由TLV2252運算放大器、電阻R4,R5,R6組成,電路如圖5所示。TLV2252的1IN+(引腳3)接R5,R6構成分壓電路;11N-(引腳2)接電阻R4,電阻R4串聯到電機倒向驅動電路的公共輸出端。當電機正常工作時,通過R4的電流較小,TLV2252的輸出(引腳1)經兩個反向驅動后送給單片機的P3.3,此時為“1”,進行正常的開關操作。當外部機械裝置迫使電機停止轉動時,由于直流電機負載過大,通過R4的電流較大,這時放大器TLV2522輸出經兩個反向驅動后送給單片機的P3.3,此時為“O”,利用此信號產生中斷信號,停止開鎖、閉鎖操作,以此起到對電機的保護作用。

          2 軟件系統(tǒng)設計
          系統(tǒng)軟件由控制部分主程序、數據接收程序、電機驅動程序、手持部分主程序、數據發(fā)送程序組成。控制部分與手持部分傳送開門、關門信號和鑰匙密碼信號,其中鑰匙密碼信號用1l位二進制數,具有較好的安全性。
          2.1 數據“0”,“1”傳送方法
          采用異步FSK通訊方式,使用信號的不同頻率來區(qū)分“0”和“1”,如圖6所示。


          當信號頻率為20 kHz時,代表傳輸為“O”;當信號頻率為10 kHz時,代表傳輸為“1”。當晶振為12 MHz時,機器周期大約為1μs。在接收部分,定時器/計數器1用來記錄機器周期的個數。當記錄的機器周期個數在30~70之間時,可以確定接收到的是“O”(O的標準個數為50個);當記錄的機器周期個數在80~120之間時,確定接收到的是“1”(1的標準個數為100個),其他情況按錯誤處理。
          2.2 通信協議設計
          在傳送的信息中,一部分是開鎖、閉鎖控制命令信號,另一部分是鑰匙密碼信息??刂撇糠纸邮盏借€匙密碼信息,經驗證與本機的密碼一致后可以執(zhí)行開鎖、閉鎖操作。采用異步通信方式,定義協議格式為起始位、鑰匙密碼信息位、開/關位、校驗位。其中,起始位為1位;鑰匙密碼信息為11位;開/關位為1位;校驗位為4位。當起始位為“0"時,表示一幀數據的開始,加上此后連續(xù)的16位為一幀數據。



          評論


          相關推薦

          技術專區(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); })();