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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 24C02(EEPROM)記憶開機(jī)次數(shù)程序

          24C02(EEPROM)記憶開機(jī)次數(shù)程序

          作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          24C02記憶開機(jī)次數(shù),開機(jī)次數(shù)存放地址為00H,做此實(shí)驗(yàn)時(shí),先用地址清0程序?qū)?0H清0,再去做記憶開機(jī)次數(shù)實(shí)驗(yàn)!?。?p>計(jì)數(shù)地址清0程序如下:

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

          ;/////////////////////////////////////////////////////
          ;將AT24C02(EEPROM)的00H單元的地址清0
          ;AT24C02存儲(chǔ)開機(jī)次數(shù)(準(zhǔn)備程序)
          ;////////////////////////////////////////////////////
          WP BIT P1.0
          SCL BIT P1.1
          SDA BIT P1.2

          WRDA EQU 41H

          ORG 0000H
          SJMP MAIN
          ORG 0030H
          MAIN:CLR WP
          MOV SP,70H
          LCALL START
          MOV WRDA,#0AEH
          LCALL SEND
          LCALL SACK
          MOV WRDA,#00H
          LCALL SEND
          LCALL SACK
          MOV WRDA,#00H
          LCALL SEND
          LCALL SACK
          LCALL STOP
          CLR P1.7
          SJMP $

          ;24C02開始數(shù)據(jù)傳送信號(hào)
          START:SETB SDA
          SETB SCL
          LCALL D5U
          CLR SDA
          LCALL D5U
          CLR SCL
          RET
          ;寫一個(gè)字節(jié)子程序
          SEND: MOV R0,#08H
          MOV A,WRDA
          D1:RLC A
          MOV SDA,C
          LCALL D5U
          SETB SCL
          LCALL D5U
          CLR SCL
          DJNZ R0,D1
          RET
          ;24c02應(yīng)答信號(hào)子程序
          SACK: SETB SDA
          LCALL D5U
          SETB SCL
          LCALL D5U
          D2:MOV C,SDA
          JC D2
          CLR SCL
          RET
          ;STOP子程序
          STOP: CLR SDA
          LCALL D5U
          SETB SCL
          LCALL D5U
          SETB SDA
          LCALL D5U
          CLR SCL
          RET
          ;延時(shí)子程序
          D5U: NOP
          NOP
          NOP
          NOP
          NOP
          RET

          END

          ................................記憶開機(jī)次數(shù)程序(已調(diào)試過).....................................

          ;/////////////////////////////////////////////////
          ;AT24C02(EEPROM)存儲(chǔ)開機(jī)次數(shù)
          ;開機(jī)次數(shù)存儲(chǔ)地址為00H,在記憶前以清0
          ;////////////////////////////////////////////////
          WP BIT P1.0
          SCL BIT P1.1
          SDA BIT P1.2

          WRDA EQU 40H;寫入數(shù)據(jù)暫存器
          RDDA EQU 41H;讀出數(shù)據(jù)暫存器
          OPUN EQU 42H;開機(jī)次數(shù)暫存器

          ORG 0000H
          SJMP MAIN
          ORG 0030H
          MAIN:CLR WP;開寫保護(hù)
          MOV SP,70H
          LCALL READ
          MOV A,RDDA
          MOV DPTR,#TAB
          INC A
          MOV R1,A
          CJNE R1,#16,D4
          CLR A
          D4:MOV OPUN,A;將開機(jī)次數(shù)存入暫存器
          MOVC A,@A+DPTR
          CLR P2.0
          MOV P0,A;顯示開機(jī)次數(shù)
          LCALL WIRT
          SJMP $
          ;讀24C02子程序
          READ:LCALL START
          MOV WRDA,#0AEH
          LCALL SEND
          LCALL SACK
          MOV WRDA,#00H
          LCALL SEND
          LCALL SACK

          LCALL START
          MOV WRDA,#0AFH
          LCALL SEND
          LCALL SACK
          LCALL REBY
          LCALL STOP
          RET
          ;寫C2402子程序
          WIRT:LCALL START
          MOV WRDA,#0AEH
          LCALL SEND
          LCALL SACK
          MOV WRDA,#00H
          LCALL SEND
          LCALL SACK
          MOV A,OPUN
          MOV WRDA,A
          LCALL SEND
          LCALL SACK
          LCALL STOP
          RET

          ;24C02開始子程序
          START:SETB SDA
          SETB SCL
          LCALL DE5U
          CLR SDA
          LCALL DE5U
          CLR SCL
          RET
          ;讀一個(gè)字節(jié)子程序
          REBY: MOV R0,#08H
          SETB SDA
          D3:LCALL DE5U
          SETB SCL
          LCALL DE5U
          MOV C,SDA
          RLC A
          CLR SCL
          SETB SDA
          DJNZ R0,D3
          MOV RDDA,A
          RET

          ;傳送一個(gè)字節(jié)子程序
          SEND: MOV R0,#08H
          MOV A,WRDA
          D1:RLC A
          MOV SDA,C
          LCALL DE5U
          SETB SCL
          LCALL DE5U
          CLR SCL
          DJNZ R0,D1
          RET
          ;24C02應(yīng)答信號(hào)檢測(cè)子程序
          SACK: SETB SDA
          LCALL DE5U
          SETB SCL
          LCALL DE5U
          D2:MOV C,SDA
          JC D2
          CLR SCL
          RET
          ;24C02停止通信子程序
          STOP: CLR SDA
          LCALL DE5U
          SETB SCL
          LCALL DE5U
          SETB SDA
          LCALL DE5U
          CLR SCL
          RET
          ;5U延時(shí)子程序
          DE5U: NOP
          NOP
          NOP
          NOP
          NOP
          RET
          ;顯示數(shù)據(jù)表
          TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H
          DB 0F8H,080H,090H,088H,083H,0C6H,0A1H
          DB 086H,08EH

          END

          ................................帶復(fù)位的記憶開機(jī)次數(shù)程序(已調(diào)試過).....................................

          wp bit p1.0
          scl bit p1.1
          sda bit p1.2

          count equ 30h;開機(jī)次數(shù)計(jì)數(shù)器
          date equ 31h;IIC數(shù)據(jù)緩沖器

          org 0000h
          sjmp main
          org 0003h
          ljmp inx0
          org 000bh
          ljmp itx0
          org 0030h
          main:clr wp
          clr ea
          mov sp,#40h
          mov dptr,#tab
          lcall init
          lcall reiic
          mov count,date
          inc count
          mov r1,count
          lcall wriic
          setb ea
          sjmp $

          /*=============INT0,TO中斷初始化程序===================*/

          init:mov tmod,#00000001b
          mov th0,#0d8h
          mov tl0,#00h
          setb et0
          setb it0
          setb ex0
          setb tr0
          ret

          /*=============LED動(dòng)態(tài)顯示程序===================*/

          itx0:mov th0,#0d8h
          mov tl0,#00h
          mov a,count
          mov b,#100
          div ab
          mov r0,a
          movc a,@a+dptr
          mov p0,a
          cjne r0,#0,n1
          sjmp n2
          n1:clr p2.2
          lcall d2ms
          setb p2.2
          n2:mov a,b
          mov b,#10
          div ab
          mov r0,a
          movc a,@a+dptr
          mov p0,a
          cjne r0,#0,n3
          sjmp n4
          n3:clr p2.1
          lcall d2ms
          setb p2.1
          n4:mov a,b
          movc a,@a+dptr
          mov p0,a
          clr p2.0
          lcall d2ms
          setb p2.0
          reti

          /*=============復(fù)位程序===================*/

          inx0:clr tr0
          mov r1,#00h
          lcall wriic
          lcall d10ms
          lcall reiic
          mov count,date
          setb tr0
          reti

          /*=============AT24C02讀寫程序===================*/
          wriic:lcall start
          mov date,#10101110b
          lcall write
          lcall wack
          mov date,#00h
          lcall write
          lcall wack
          mov date,r1
          lcall write
          lcall wack
          lcall stop
          ret

          reiic:lcall start
          mov date,#10101110b
          lcall write
          lcall wack
          mov date,#00h
          lcall write
          lcall wack
          lcall start
          mov date,#10101111b
          lcall write
          lcall wack
          lcall read
          lcall stop
          ret

          read: mov r3,#08h
          e1:setb sda
          setb scl
          lcall d5u
          mov c,sda
          rlc a
          clr scl
          lcall d5u
          djnz r3,e1
          mov date,a
          ret

          start:setb sda
          setb scl
          lcall d5u
          clr sda
          lcall d5u
          clr scl
          ret

          write:mov a,date
          mov r4,#08h
          w1:rlc a
          mov sda,c
          lcall d5u
          setb scl
          lcall d5u
          clr scl
          lcall d5u
          djnz r4,w1
          ret

          wack: setb sda
          setb scl
          lcall d5u
          w2:mov c,sda
          jc w2
          clr scl
          ret

          stop: clr sda
          setb scl
          lcall d5u
          setb sda
          lcall d5u
          clr scl
          ret

          tab:DB 0C0H,0F9H,0A4H,0B0H,99H
          DB 92H,82H,0F8H,80H,90H

          d5u: nop
          nop
          nop
          nop
          nop
          ret

          D10ms: ;誤差 -0.000000000002us
          MOV R6,#0F9H
          DL0:
          MOV R5,#22H
          DJNZ R5,$
          DJNZ R6,DL0
          RET

          d2ms: ;誤差 -0.217013888889us
          MOV R6,#0b0H
          DL1:
          MOV R5,#0AH
          DJNZ R5,$
          DJNZ R6,DL1
          RET

          end



          關(guān)鍵詞: 24C02EEPROM開機(jī)次

          評(píng)論


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