久久丫精品无码视频|亚洲成人黄色电影|超碰国产在线观看|亚洲Aⅴ综合免费在线|久久青青草原国产精品|极品美女三级片国产无码a|女人的黄色片子综合AV|日韩成人?毛片

技術(shù)熱線: 4007-888-234
設(shè)計開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

PIC單片機的EEPROM讀寫實例及說明

更新時間: 2019-03-21
閱讀量:483

PIC單片機的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 ;讀計數(shù)

WRC_ EQU 24H ;寫計數(shù)

org 0

goto main

main

bcf STATUS,RP1

bcf STATUS,RP0 ;bank0

movlw 10h

movwf ADDR ;寫入EEPROM初始值

movlw 90h

movwf VALU ;初始寫入值

movlw 30h

movwf FSR ;間址,讀出值初始存放地址

movlw 0Fh

movwf WRC_ ;寫入次數(shù)

movwf REC_

;incf REC_ ;讀出次數(shù)

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

bcf STATUS,RP0

bcf STATUS,RP1 ;bank0

incf ADDR,1

decf VALU,1

decfsz WRC_ ;all write,to read_

goto wri_

read_ ;讀子程序

bcf STATUS,RP1

bcf STATUS,RP0 ;bank0

decf ADDR ;next value

bsf STATUS,RP1 ;bank2

movwf EEADR

bsf STATUS,RP0 ;bank3


EEw&r.asm程序說明:

1、 本程序是對PIC16F877單片機的EEPROM數(shù)據(jù)區(qū)進行讀寫的演示程序;

2、 wri_為寫入數(shù)據(jù)子程序,該子程序從ADDR寄存器確定的地址開始對EEPROM數(shù)據(jù)區(qū)寫入(范例從10H開始),每進行一次寫操作將使ADDR值加一;寫入數(shù)據(jù)的初始值由VALU寄存器給定(范例值為90H),每進行一次寫操作將使VALU值減一;寫入規(guī)定個數(shù)(由WRC_寄存器給定,范例值為0FH)的數(shù)值后,結(jié)束寫入,轉(zhuǎn)至read_。

3、 read_為讀出數(shù)據(jù)子程序,該子程序從ADDR寄存器當前值確定的地址開始對EEPROM數(shù)據(jù)區(qū)讀出(當前值=ADDR+WRC_<=0FFH),每進行一次讀操作將使ADDR值減一;讀出數(shù)據(jù)后程序?qū)言摂?shù)據(jù)存入通用寄存器中,開始存放的地址由FSR的值指定(范例為30H),每進行一次讀操作將使FSR的值加一;讀出規(guī)定個數(shù)(由寄存器REC_給定,范例值為0FH)的數(shù)值后,結(jié)束讀出,回main。