关于EEPROM的掉电保存问题

2019-03-24 19:31发布

还是我啦,我觉得上次发的帖子少了很多东西,这次把原理图和PDF资料也加上了,请各位大侠看看这个编码器的程序到底为什么不能实现掉电保存功能,是不是pcon的问题呢?我试过了但是还是有问题~!   TP37         BIT    00H   TIME100      EQU    030H
  BMQ256       EQU    031H   AUXR         EQU    08EH     CCON           EQU    0D8H
  CMOD           EQU    0D9H
  CCAPM0       EQU    0DAH
  CCAPM1       EQU    0DBH
  SPSTAT        EQU    0CDH   IAP_DATA     EQU 0C2H
  IAP_ADDRH  EQU 0C3H 
  IAP_ADDRL  EQU     0C4H          
  IAP_CMD      EQU 0C5H
  IAP_TRIG      EQU 0C6H
  IAP_CONTR  EQU 0C7H
   
  CMD_IDLE    EQU 0
  CMD_READ   EQU    1
  CMD_PROGRAM  EQU 2
  CMD_ERASE EQU    3   ENABLE_IAP EQU 082H   IAP_ADDRESS EQU   0000H               ORG     0000H
         LJMP    MAIN
         ORG     0003H     
         LJMP    AINT0
         ORG     000BH
         LJMP    T0INT   
        
         ORG     0013H   
         LJMP    AINT1     
          ORG     001BH
         LJMP    AACT1             ORG 00A0H
MAIN:    MOV A,#0
             MOV 40H,#0
             MOV R0,#1
              MOV R1,#0BEH
CLRA:    INC R0
              MOV @R0,A
              DJNZ R1,CLRA
              MOV TIME100,#125
              MOV SP,#0E0H
MA0:     MOV TH1,#0FBH     
             MOV TL1,#33H
             SETB TR1                MOV DPTR,#IAP_ADDRESS
             LCALL DLY
             LCALL IAP_READ
             LCALL DLY
             MOV P1,B MA1:    JB P3.7,XXX1
            JB TP37,XXX
            MOV DPTR,#IAP_ADDRESS    
            LCALL DLY
            ACALL IAP_ERASE   
            LCALL DLY
            MOV DPTR,#IAP_ADDRESS   
            LCALL DLY
            MOV B,40H    
            LCALL DLY
            LCALL IAP_PROGRAM   
            CLR TP37      
            LJMP XXX
XXX1:  SETB TP37
  
XXX:    MOV TMOD,#15H 
            MOV IE,#8FH
            JB  P3.4,MA2
            MOV BMQ256,#0
            MOV P1,BMQ256
                  
MA2:   SETB    TR1
           SETB  TR0
           SETB IT0   
           SETB IT1   
           LCALL DLY
           LJMP MA1 DLY:   MOV  6FH,#40   
DLY1:  DJNZ 6EH,DLY1
            DJNZ 6FH,DLY1
            RET IAP_IDLE: MOV IAP_CONTR,#0
                 MOV IAP_CMD,  #0
                 MOV IAP_TRIG, #0
                 MOV IAP_ADDRH,#00H
                 MOV IAP_ADDRL,#00H
                 RET IAP_READ: MOV IAP_CONTR,#ENABLE_IAP
                   MOV IAP_CMD,  #CMD_READ
                   MOV IAP_ADDRL,DPL
                   MOV IAP_ADDRH,DPH
                   MOV IAP_TRIG, #5AH
                   MOV IAP_TRIG, #0A5H
                   NOP
                   MOV B,IAP_DATA
                   LCALL IAP_IDLE
                   RET IAP_PROGRAM: MOV IAP_CONTR,#ENABLE_IAP
                           MOV IAP_CMD,  #CMD_PROGRAM
                           MOV IAP_ADDRL,DPL
                           MOV IAP_ADDRH,DPH
                           MOV IAP_DATA, B
                           MOV IAP_TRIG, #5AH
                           MOV IAP_TRIG, #0A5H
                           NOP
                           LCALL IAP_IDLE
                           RET IAP_ERASE:      MOV IAP_CONTR,#ENABLE_IAP
                          MOV IAP_CMD,  #CMD_ERASE
                          MOV IAP_ADDRL,DPL
                          MOV IAP_ADDRH,DPH
                          MOV IAP_TRIG, #5AH
                          MOV IAP_TRIG, #0A5H
                          NOP
                          LCALL IAP_IDLE
                          RET     AACT1:              PUSH    PSW   
                          PUSH    ACC
                          MOV TH1,#0FBH     
                          MOV TL1,#33H
TIMEB:              DJNZ    TIME100,CT10
                         MOV     TIME100,#125 
CT10:               POP ACC
                         POP PSW
                         RETI       
    
T0INT:  PUSH ACC      
             PUSH PSW
             PUSH DPL
             PUSH DPH
             MOV TL0,#0FFH
             MOV TH0,#0FFH
             MOV BMQ256,#0
             MOV P1,#0
             T0INTR:  POP DPH
             POP DPL
             POP PSW
             POP ACC
             RETI              AINT0:  PUSH ACC     
             PUSH PSW
             PUSH DPL
             PUSH DPH
             JB P3.2,AINT0R      
             JB P3.5,AINT0R
             DEC BMQ256
             MOV A,BMQ256
             MOV 40H,A
             MOV P1,A
AINT0R:  POP DPH
               POP DPL
               POP PSW
               POP ACC
               RETI AINT1:    PUSH ACC   
               PUSH PSW
               PUSH DPL
               PUSH DPH    
               JB P3.5,AINT1R
               INC BMQ256
               MOV DPTR,#DDBD
               MOV A,BMQ256
               MOVC A,@A+DPTR
               MOV 40H,A
               MOV P1,A  
AINT1R:  POP DPH
               POP DPL
               POP PSW
               POP ACC
               RETI   DDBD:   DB 000H,001H,003H,002H,007H,006H,004H,005H,00FH,00EH,00CH,00DH,008H,009H,00BH,00AH    ;0000
        DB 01FH,01EH,01CH,01DH,018H,019H,01BH,01AH,010H,011H,013H,012H,017H,016H,014H,015H    ;0001
        DB 03FH,03EH,03CH,03DH,038H,039H,03BH,03AH,030H,031H,033H,032H,037H,036H,034H,035H    ;0010
        DB 020H,021H,023H,022H,027H,026H,024H,025H,02FH,02EH,02CH,02DH,028H,029H,02BH,02AH    ;0011
       
        DB 07FH,07EH,07CH,07DH,078H,079H,07BH,07AH,070H,071H,073H,072H,077H,076H,074H,075H    ;0100
        DB 060H,061H,063H,062H,067H,066H,064H,065H,06FH,06EH,06CH,06DH,068H,069H,06BH,06AH    ;0101
        DB 040H,041H,043H,042H,047H,046H,044H,045H,04FH,04EH,04CH,04DH,048H,049H,04BH,04AH    ;0110
        DB 05FH,05EH,05CH,05DH,058H,059H,05BH,05AH,050H,051H,053H,052H,057H,056H,054H,055H    ;0111
       
        DB 0FFH,0FEH,0FCH,0FDH,0F8H,0F9H,0FBH,0FAH,0F0H,0F1H,0F3H,0F2H,0F7H,0F6H,0F4H,0F5H    ;1000
        DB 0E0H,0E1H,0E3H,0E2H,0E7H,0E6H,0E4H,0E5H,0EFH,0EEH,0ECH,0EDH,0E8H,0E9H,0EBH,0EAH    ;1001
        DB 0C0H,0C1H,0C3H,0C2H,0C7H,0C6H,0C4H,0C5H,0CFH,0CEH,0CCH,0CDH,0C8H,0C9H,0CBH,0CAH    ;1010
        DB 0DFH,0DEH,0DCH,0DDH,0D8H,0D9H,0DBH,0DAH,0D0H,0D1H,0D3H,0D2H,0D7H,0D6H,0D4H,0D5H    ;1011
       
        DB 080H,081H,083H,082H,087H,086H,084H,085H,08FH,08EH,08CH,08DH,088H,089H,08BH,08AH    ;1100
        DB 09FH,09EH,09CH,09DH,098H,099H,09BH,09AH,090H,091H,093H,092H,097H,096H,094H,095H    ;1101
        DB 0BFH,0BEH,0BCH,0BDH,0B8H,0B9H,0BBH,0BAH,0B0H,0B1H,0B3H,0B2H,0B7H,0B6H,0B4H,0B5H    ;1110
        DB 0A0H,0A1H,0A3H,0A2H,0A7H,0A6H,0A4H,0A5H,0AFH,0AEH,0ACH,0ADH,0A8H,0A9H,0ABH,0AAH    ;1111
     END 此帖出自小平头技术问答
0条回答

一周热门 更多>