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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 采用AT89C52單片機(jī)的多用戶密碼鎖方案設(shè)計(jì)

          采用AT89C52單片機(jī)的多用戶密碼鎖方案設(shè)計(jì)

          作者: 時(shí)間:2012-03-01 來(lái)源:網(wǎng)絡(luò) 收藏

          3.2 顯示電路

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

            電路主要使用七段數(shù)碼管。通過(guò)P2口將要顯示的數(shù)據(jù)信號(hào)傳送到數(shù)碼管,直接控制數(shù)碼管的顯示,從而點(diǎn)亮數(shù)碼管。由于的時(shí)鐘頻率達(dá)到12 MHz,所以,看不到數(shù)據(jù)是一位一位傳輸?shù)?。從人類視覺(jué)的角度上看,就仿佛是全部數(shù)碼管同時(shí)顯示的一樣。由控制數(shù)碼管顯示1~3,分別表示3個(gè)。硬件電路主要是7段顯示譯碼器的a~g對(duì)應(yīng)接到單片機(jī)的P2.0~P2.6,通過(guò)查表得到要顯示的數(shù)值。電路如圖3所示。

            4 軟件設(shè)計(jì)

            4.1 軟件設(shè)計(jì)思想

            整個(gè)系統(tǒng)的設(shè)計(jì)重點(diǎn)在于區(qū)分3個(gè)的進(jìn)入。只有主進(jìn)入之后才可以對(duì)自己及客人用戶的密碼進(jìn)行修改。其他用戶進(jìn)入是不可以對(duì)自己的密碼進(jìn)行修改的。

            程序設(shè)計(jì)主要包括了密碼修改程序、密碼輸入程序、報(bào)警程序、控鍵掃描程序、數(shù)字鍵轉(zhuǎn)換程序和功能鍵轉(zhuǎn)換程序。在整個(gè)程序的運(yùn)行過(guò)程中,控鍵掃描程序放在中斷服務(wù)子程序中,每隔150ms進(jìn)行一次掃描。密碼修改程序,在設(shè)計(jì)中每個(gè)用戶進(jìn)入系統(tǒng)時(shí)都已加了標(biāo)注,以確保密碼被修改時(shí)可以準(zhǔn)確的分辨出修改密碼的用戶是哪個(gè),用戶對(duì)密碼是否有修改權(quán)。

            4.2 主程序的設(shè)計(jì)

            先判斷密碼是否輸入,如密碼輸入,則將密碼輸入到密碼輸入緩沖區(qū),密碼輸入完成,確認(rèn)后進(jìn)行密碼比對(duì),區(qū)別出哪個(gè)用戶進(jìn)入系統(tǒng),比對(duì)成功之后用標(biāo)志位區(qū)別主人用戶和來(lái)賓用戶。在密碼修改程序中。首先,判斷是否是主人用戶。其次,判斷是否有密碼修改要求,在滿足上述兩個(gè)條件的情況下再進(jìn)入密碼修改程序。兩次新密碼的輸入相同話則表示密碼修改成功。接下來(lái)是報(bào)警子程序,用寄存器累加連續(xù)輸入的錯(cuò)誤密碼的次數(shù),達(dá)到3次則產(chǎn)生報(bào)警信號(hào)。最后是顯示子程序,用來(lái)顯示當(dāng)前進(jìn)入系統(tǒng)的用戶。主程序流程圖如圖4所示。

            

            5 結(jié)束語(yǔ)

            文中設(shè)計(jì)的既能確保密碼可以被有權(quán)用戶進(jìn)行修改,還有限制用戶對(duì)自己或別人密碼進(jìn)行修改等功能。以單片機(jī)芯片為核心,同時(shí)給出系統(tǒng)總體設(shè)計(jì)方案,硬件模塊電路及軟件設(shè)計(jì)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();