Advertisement
Guest User

EEPROM

a guest
Apr 19th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pic 16 3.49 KB | None | 0 0
  1. ; ******* PROCESSOR DEFINITIONER **********************************************************
  2.     processor   16f877a                 ;Sets processor
  3.     #include    p16f877a.inc
  4. ;   errorlevel -302                 ;fjerner meddelser om forkerte banker fra fejl listen
  5. ;   errorlevel -305                 ;fjerner meddelser om forkerte banker fra fejl listen
  6. ; ******* COMPILER configuration bits *****************************************************
  7.     __config    _HS_OSC & _PWRTE_OFF & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF
  8. ; ******* DEFFINITION AF VARIABLE *********************************************************
  9.     #include    "SDUboard.var"      ;Variable som bruges af SDUboard 0x79 - 0x7F)
  10.                                     ;INDSÆT DINE VARIABLE HER (start med 0x20)
  11. ; ******* OPSÆTNING AF PROGRAM POINTERE ***************************************************
  12.             org     0x0000          ;Programstart efter et reset
  13.             GOTO    init            ;Gå til opsætning
  14.             org     0x0005          ;Første position efter interrupt-vektor
  15. ; ******* INCLUDEREDE FILER ***************************************************************
  16.     #Include    "SDUboard.lib"      ; SDU PICborad subroutine bibliotek.
  17.            
  18.         ; Instrukser: Sæt en hukommelseslokation ind i W og kald SETADDR
  19.         ; Derefter indsæt data end i W og kald BEGINWRITE
  20.         ; Nu burde programmet have gemt dataene til den ønskede lokation på EEPROM'en
  21. init
  22.         CALL    LCD_Init  
  23.  
  24.  
  25.  
  26. EEPROMTestLoop
  27.         MOVLW 0x16   ; Specificer stedet i EEPROM'en
  28.         CALL SETADDR ; Vi har nu sat vores "cursor" i EEPROM'en til at stå i register 0x16
  29.         MOVLW 0x23   ; Specificer tallet der skal indsættes i EEPROM'en
  30.         CALL BEGINWRITE ; Vi har nu gemt(0x23) til 0x16 på EEPROM'en
  31.         ;MOVLW  d'0'        
  32.  
  33.         MOVLW 0x16   ; Spcificer det sted der skal læses i EEPROM'en
  34.         CALL SETADDR ;
  35.         CALL BEGINREAD ; Der læses nu på register (0x16) i EEPROM'en og det flyttes til w.
  36.                    
  37.             CALL    BIN2DEC
  38.  
  39.             MOVF    CIF100,w
  40.             CALL    CONV2ASCII
  41.             CALL    LCD_Data
  42.             MOVF    CIF10,w
  43.             CALL    CONV2ASCII
  44.             CALL    LCD_Data
  45.             MOVF    CIF1,w
  46.             CALL    CONV2ASCII
  47.             CALL    LCD_Data
  48.             MOVLW   CursLeft
  49.             CALL    LCD_Reg
  50.             MOVLW   CursLeft
  51.             CALL    LCD_Reg
  52.             MOVLW   CursLeft
  53.             CALL    LCD_Reg
  54.  
  55.         GOTO    EEPROMTestLoop
  56.    
  57. SETADDR    
  58.         BSF STATUS,RP1 ; Switch til bank 2
  59.         BCF STATUS,RP0 ; Switch til bank 2    
  60.         MOVWF EEADR
  61.         BCF STATUS,RP1
  62.         BCF STATUS,RP0 ; Bank 0
  63.         RETURN
  64.            
  65. BEGINWRITE  
  66.         BSF STATUS,RP1 ;
  67.         BSF STATUS,RP0 ;
  68. Wait    BTFSC EECON1,WR ; Tjekker om der er en skrivning i gang
  69.         GOTO Wait ; Går en linje tilbage
  70.         BCF STATUS,RP0
  71.         MOVWF EEDATA
  72.  
  73.         BSF STATUS,RP0
  74.  
  75.         BCF EECON1,EEPGD
  76.        
  77.         BSF EECON1,WREN
  78.  
  79.        
  80.         BCF INTCON,GIE
  81.         MOVLW d'85'
  82.         MOVWF EECON2
  83.         MOVLW d'170'
  84.         MOVWF EECON2
  85.         BSF EECON1,WR
  86.         BSF INTCON,GIE     
  87. Wait2   BTFSC   EECON1,WR
  88.         goto    Wait2
  89.  
  90.         BCF EECON1,WREN
  91.  
  92.         BCF STATUS,RP1
  93.         BCF STATUS,RP0 ; Bank 0
  94.         RETURN
  95.        
  96. BEGINREAD  
  97.        BSF STATUS,RP1 ;
  98.        BCF STATUS,RP0 ; Bank 2
  99.        BSF STATUS,RP0 ; Bank 3
  100.        BCF EECON1,EEPGD ; Point to Data memory
  101.        BSF EECON1,RD ; EE Read
  102.        BCF STATUS,RP0 ; Bank 2
  103.        MOVF EEDATA,W ; W = EEDATA
  104.        BCF  STATUS,RP1
  105.        BCF  STATUS,RP0 ; Bank 0
  106.        RETURN
  107.        
  108.            
  109. ; ******* PROGRAM AFSLUTTET ***************************************************************    
  110.           END                     ;her slutter programmet...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement