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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機智能監(jiān)控系統(tǒng)

          單片機智能監(jiān)控系統(tǒng)

          作者: 時間:2012-02-10 來源:網(wǎng)絡 收藏

          2 控制電路

          PICl6CE62X是美國MicroChip公司的產(chǎn)品,該系列除具有在1個芯片內(nèi)集成了眾多的優(yōu)秀微處理器的特性外,還具有其他獨特性能,如集成比較器,模/數(shù)、數(shù)/模轉(zhuǎn)換器等,從而使得它的應用領(lǐng)域非常廣泛。E2PROM數(shù)據(jù)存儲器不僅具有掉電數(shù)據(jù)保護功能還有品質(zhì)高(1.8~6.0V可工作)、壽命長(最大寫入次數(shù)達100萬次)的特點,更重要的是由內(nèi)部進行控制操作,外部無法進行讀寫,所以具有極高的數(shù)據(jù)保密性。這使其廣泛應用于保密性產(chǎn)品如IC卡、密碼鎖、電子防盜系統(tǒng)等方面。我們選用PIC16CE62X單片機,它有1個內(nèi)置E2RPOM存儲器,使用較為方便。

          單片機控制電路設計功能要求為:有數(shù)碼顯示,有簡單的人機接口,在無操作時能夠顯示當前時間,當檢測端有信號時可以自動在E2RPOM存儲器中記錄當前的時間數(shù)據(jù),能夠?qū)r間進行設定,能夠?qū)?shù)據(jù)進行檢查和刪除,可以與上位機進行串口通訊。程序流程圖見圖5。

          22.jpg

          開始對單片機進行整體復位,初始化PORTA和PORTB,設置堆棧指針位和定時器TIMER0。允許定時器溢出中斷。之后讀時鐘發(fā)生器DS1302中的當前時鐘信號并送至主LED顯示。再檢測是否有傳感器SENSORS輸出的檢測信號,以決定是否需要記錄,用執(zhí)行鍵掃描來判斷此時外界有無新要求的動作,以決定是否進入鍵掃描程序。為了減小工作量,使用了時鐘發(fā)生器DS1302,方便地實現(xiàn)了時間數(shù)據(jù)的使用和控制。

          由于E2PROM的緣故PIC16CE62X相對于其他的PIC單片機多了如下幾個寄存器EECON1,EECON2,EEDATA,EEADR,其中EECON1只使用了它的低5位D0—D4,分別代表WRRO,WREN,WRERR,EEIF。為了防止因中斷引起的寫操作失敗,我們采取了關(guān)閉中斷的措施。

          23.jpg

          其中1-7的步驟應該嚴格執(zhí)行,因為在寫操作的過程中如果這時有中斷發(fā)生的話,CPU就會終止寫操作轉(zhuǎn)而處理中斷任務,而這時的寫操作不但會失敗并且還有丟失數(shù)據(jù)的可能,因此在寫操作過程中應當首先關(guān)閉總中斷,待等到寫操作完成以后再開放總中斷。

          3 結(jié)語

          本文所述系統(tǒng)已實現(xiàn),在實驗室運行可以可靠地運作。由于保安的安全系數(shù)要求很高,因此,若以這種思路為線索,在實際應用中增加適當?shù)妮o助措施并對其可靠性給予提高,相信會有一定的商業(yè)價值。


          上一頁 1 2 下一頁

          評論


          相關(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); })();