您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC16F877单片机内部EEPROM读写实例 正文
PIC16F877单片机内部EEPROM读写实例

PIC16F877单片机内部EEPROM读写实例

点击数:7571 次   录入时间:03-04 11:39:48   整理:http://www.55dianzi.com   PIC单片机

;PIC16F877 单片机 内部EEPROM读写实例****************************************************************************************
; This is a program to test the function of reading&writting for EEPROM.
; You CAN OBServe the value of register(30H--?) buy changing "VALU" and "WRC_".
; Notice that:it must be { ADDR+WRC_<=0ffh } !
; ;****************************************************************************************
include "p16f877.inc"
ADDR EQU 20H        ;写入地址寄存器
VALU EQU 21H        ;写入值
REC_ EQU 22H        ;读计数
WRC_ EQU 24H        ;写计数

    ORG     0000H        ;
    NOP                  ;放置一条ICD必须的空操作指令
    GOTO   main          ;
   ;ORG     0008H        ;

   ;org 0
   ;goto main
main nop
     bcf STATUS,RP1
     bcf STATUS,RP0   ;bank0
     movlw 20h
     movwf ADDR       ;写入EEPROM初始值
;********************************************************************************************  
 
     clrf  8
     bcf   STATUS,2
DS2  nop
     call  DELAY
     incf  8,1
     movf  8,0
     bcf   STATUS,2
     XORLW 0bh
     btfss STATUS,Z
     goto   DS1     
     clrf  8
     bcf   STATUS,2
DS1  movf  8,0
     bcf   STATUS,2
     call  TABLE1
;***********************************************************************************************
     ;movlw 4fh
     movwf VALU       ;初始写入值
     movlw 30h
     movwf FSR        ;间址,读出值初始存放地址
     movlw 0Bh
     movwf WRC_       ;写入次数
     movwf REC_
     ;incf REC_       ;读出次数
wri_ ;写子程序
     bsf STATUS,RP1
     bsf STATUS,RP0   ;bank3
     btfsc EECON1,WR
     goto $-1
     bcf STATUS,RP0
     bcf STATUS,RP1    ;bank0
     movf ADDR,W
     bsf STATUS,RP1    ;bank2
     movwf EEADR
     bcf STATUS,RP1    ;bank0
     movf VALU,W
     bsf STATUS,RP1    ;bank2
     movwf EEDATA
     bsf STATUS,RP0    ;bank3
     bcf EECON1,EEPGD  ;to data memory
     bsf EECON1,WREN
     bcf INTCON,GIE
     movlw 55h
     movwf EECON2
     movlw 0aah
     movwf EECON2
     bsf EECON1,WR
     btfsc EECON1,WR
     goto $-1
     bsf INTCON,GIE
     bcf EECON1,WREN
     bcf STATUS,RP0
     bcf STATUS,RP1      ;bank0
     incf ADDR,1
     ;incf VALU,1
     ;decf VALU,1
     decfsz WRC_         ;all write,to read_
     ;goto wri_
      goto  DS2
 
read_                    ;读子程序
      call  TABLE1
      bcf STATUS,RP1
      bcf STATUS,RP0     ;bank0
      decf ADDR          ;next value
      movf ADDR,W
      bsf STATUS,RP1     ;bank2
      movwf EEADR
      bsf STATUS,RP0     ;bank3
      bcf EECON1,EEPGD
      bsf EECON1,RD
      bcf STATUS,RP0     ;bank2
      movf EEDATA,W
      bcf STATUS,RP1     ;bnak0
      movwf INDF         ;存读出值
      incf FSR
      decfsz REC_
      goto read_
      goto main  
;*******************************************************************************
TABLE1                                  ;取第二行的显示码TEL0755 27528531
            ADDWF 2                     ;地址偏移量加当前PC值
            RETLW 30H       ;0
            RETLW 32H                   ;2
            RETLW 30H                   ;0                                                 
     RETLW 33H       ;3
     RETLW 33H       ;3                            
     RETLW 31H       ;1
     RETLW 36H       ;6
     RETLW 30H       ;0
     RETLW 30H       ;0

[1] [2]  下一页


本文关键字:单片机  PIC单片机单片机-工控设备 - PIC单片机