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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機監(jiān)控芯片X25043的相關各種知識解析方案

          單片機監(jiān)控芯片X25043的相關各種知識解析方案

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

          的狀態(tài)寄存器的格式如圖3所示。其中WIP是狀態(tài)指示位,只可讀,表示目前是否正在忙著內部寫工作,這在判斷EEPROM寫入完成是十分重要的。WEL位表示目前是否可寫,當WEL=0時,則X25043無法執(zhí)行寫操作。BL0和BL1的邏輯組合來控制EEPROM區(qū)域的塊鎖定(Block Lock)大小。WD0和WD1的邏輯組合則決定了看門狗計數(shù)器定時值的大小。


          圖3 狀態(tài)寄存器格式

          3. X25043在系統(tǒng)中的應用

          針對X25043的功能,我們可以在系統(tǒng)中利用它擴展存儲空間、上電復位、看門狗定時以及電源功能。圖4是X25043與8051的接口電路。施密特觸發(fā)器74LS14用于時鐘脈沖整形,提高對噪聲干擾的能力。


          圖4 X25043與8051接口電路

          在這里我們可以對看門狗定時器設定值為200ms,可以通過對狀態(tài)寄存器的WD0和WD1進行設定即可。我們必須先寫入命令寄存器,然后才可以寫入狀態(tài)寄存器設定看門狗計數(shù)器值。下面是具體匯編程序(8051):

          寫入8位數(shù)據(jù)子程序:(A放入寫入的8位串行數(shù)據(jù))

          INSB: MOV R4, #8

          IN1: RLC A

          CLR P1.0 ;SCK時鐘置低

          NOP

          NOP

          MOV P1.1, C

          SETB P1.0 ;SCK時鐘置高,移入數(shù)據(jù)

          NOP

          NOP

          DJNZ R4, IN1

          RET

          設定看門狗的程序如下:

          · · ·

          SETB P1.3 ;片選有效

          MOV A, #6 ;寫入命令WREN

          LCALL INSB

          MOV A, #1 ;寫入命令WRSR

          LCALL INSB

          MOV A, #20H ;寫入狀態(tài)寄存器,設置看門狗

          LCALL INSB

          CLR P1.3 ;片選無效

          · · ·

          4. 總結

          作者在開發(fā)一個機器人控制系統(tǒng)時,采用了X25043,充分利用了其上電復位、電壓、看門狗定時器和外擴EEPROM。這樣,不僅可以簡化硬件電路和掉電數(shù)據(jù)保護,而且提高了可靠性能和抗干擾性能,具有非??尚械氖褂眯?。


          上一頁 1 2 下一頁

          評論


          相關推薦

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