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

          新聞中心

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

          基于單片機控制的電子密碼鎖

          作者: 時間:2009-09-14 來源:網(wǎng)絡 收藏

          由R8,R9,R6,R7及IC14構成電壓比較器,正常情況下,V+V- IC14輸出高電平,繼電器的常閉觸點和市電相連;當市電斷開,V+>V- IC14輸出高電平,由T3,T4構成的達林頓管使繼電器J開啟,將其常開觸電將蓄電池和電路相連,實現(xiàn)市電和蓄電池供電的切換,保證的正常工作(視電池容量而定持續(xù)時間)。其電路圖如下圖6所示:

          T1,T2構成的蓄電池自動充電電路,它在電池充滿后自動停止充電,其中D1亮為正在充電,D2為工作指示。由R4,R5,T1構成電壓檢測電路,蓄電池電壓低,則T1,T2導通,實現(xiàn)對其充電;充滿后,T1,T2截止,停止充電,同時D1熄滅,電路中C4的作用是濾除干擾信號。其電路圖如圖7所示:

          圖3-10 蓄電池自動充電電路

          6.設計總框圖

          四、程序設計

          1.模塊介紹

          該計程計價系統(tǒng)的軟件設計分為以下幾個模塊:

          (1)主程序模塊

          主程序主要完成初始化、設置中斷向量、檢查有無按鍵按下、以及調(diào)用顯示等等。主程序的流程圖如下所示。

          (2)鍵盤掃描及識別子程序

          鍵盤采用查詢的方式,放在主程序中,當沒有按鍵按下的時候,循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應的子程序處理,處理結(jié)束再返回。其程序流程如圖 所示.

          (3)調(diào)電存儲服務程序

          當比較密碼的時候,需要讀AT24C02程序,將存儲在芯片內(nèi)的數(shù)據(jù)讀到RAM中,然后和輸入的密碼相比較。當修改密碼的時候,需要把輸入的密碼保存到AT24C02中,其程序流程如圖 所示.

          (4)顯示子程序

          由于是分屏顯示數(shù)據(jù),所以就要用到5個顯示子程序,分別是:關閉狀態(tài)顯示子程序(DIS_A)、開鎖狀態(tài)顯示子程序(DIS_B)、密碼輸入及修改狀態(tài)顯示子程序(DIS_C)、密碼輸入錯誤后的提示子程序(DIS_D)。密碼在規(guī)定的時間內(nèi)輸入錯誤次數(shù)超過3次后的鎖定狀態(tài)顯示子程序(DIS_E).

          五、總結(jié)

          由于使用的是作為核心的元件,以及靈敏的霍爾開關型器件,是本出租車計價器具有功能強、性能可靠、電路簡單、成本低的特點,加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。

          但是在我們設計和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如計價的金額位數(shù)有限,實際的里程可能會很遠,會超出我們的顯示范圍。

          計價器的設計還不夠人性化,比如加上語音的提示功能,可能會更有生命力。



          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

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