以ä¸æ¯ææ¾ç»åè¿çä¸ä¸ä¸çæå
³EEPROM读åçä¸æ®µç¨åºï¼ä¾åèã
;-------------------ååæ°å°EEROM-----------------------------
PARAPUT:
MOV DPTR,#0000H
LCALL IAP_Erase
MOV DPTR,#0000H
MOV R0,#60H
MOV R1,#16
PARAPUT1:
MOV A,@R0
LCALL IAP_WRITE
INC R0
INC DPTR
DJNZ R1,PARAPUT1
RET
;-------------------ä»EEROMä¸è¯»åºåæ°-----------------------------
PARAGET:
MOV DPTR,#0000H
MOV R0,#60H
MOV R1,#16
PARAGET1:
LCALL IAP_READ
MOV @R0,A
INC R0
INC DPTR
DJNZ R1,PARAGET1
RET
;------------------------------------------------
;读ä¸åèï¼è°ç¨åéæå¼ IAP åè½ï¼å
¥å£:DPTR = åèå°åï¼è¿å:A = 读åºåè
IAP_READ:
MOV IAP_CONTR,#ENABLE_IAP ;æå¼ IAP åè½, 设置 Flash æä½çå¾
æ¶é´
MOV IAP_CMD,#ISP_IAP_BYTE_READ ;设置为IAP/ISP/EEPROMåè读模å¼å½ä»¤
MOV IAP_ADDRH,DPH ;设置ç®æ åå
å°åçé«8ä½å°å
MOV IAP_ADDRL,DPL ;设置ç®æ åå
å°åçä½8ä½å°å
;CLR EA
MOV IAP_TRIG,#5AH ;å
é5Ah,åéA5hå°ISP/IAP触åå¯åå¨,æ¯æ¬¡é½éå¦æ¤
MOV IAP_TRIG,#0A5H ;éå®A5håï¼ISP/IAPå½ä»¤ç«å³è¢«è§¦åèµ·å¨
NOP
MOV A,IAP_DATA ;读åºçæ°æ®å¨IAP_DATAåå
ä¸,éå
¥ç´¯å å¨A
;SETB EA
LCALL IAP_Disable ;å
³é IAP åè½, æ¸
ç¸å
³çç¹æ®åè½å¯åå¨,使CPUå¤äºå®å
¨ç¶æ,
;ä¸æ¬¡è¿ç»çIAPæä½å®æä¹å建议å
³éIAPåè½,ä¸éè¦æ¯æ¬¡é½å
³
RET
;------------------------------------------------
;åèç¼ç¨ï¼è°ç¨åéæå¼ IAP åè½ï¼å
¥å£:DPTR = åèå°å, A=é¡»ç¼ç¨åèçæ°æ®
IAP_WRITE:
MOV IAP_CONTR,#ENABLE_IAP ;æå¼ IAP åè½, 设置 Flash æä½çå¾
æ¶é´
MOV IAP_CMD,#ISP_IAP_BYTE_PROGRAM ;设置为IAP/ISP/EEPROMåèç¼ç¨æ¨¡å¼å½ä»¤
MOV IAP_ADDRH,DPH ;设置ç®æ åå
å°åçé«8ä½å°å
MOV IAP_ADDRL,DPL ;设置ç®æ åå
å°åçä½8ä½å°å
MOV IAP_DATA,A ;è¦ç¼ç¨çæ°æ®å
éè¿ISP_DATAå¯åå¨
;CLR EA
MOV IAP_TRIG,#5AH ;å
é5Ah,åéA5hå°ISP/IAP触åå¯åå¨,æ¯æ¬¡é½éå¦æ¤
MOV IAP_TRIG,#0A5H ;éå®A5håï¼ISP/IAPå½ä»¤ç«å³è¢«è§¦åèµ·å¨
NOP
;SETB EA
LCALL IAP_Disable ;å
³é IAP åè½, æ¸
ç¸å
³çç¹æ®åè½å¯åå¨,使CPUå¤äºå®å
¨ç¶æ,
;ä¸æ¬¡è¿ç»çIAPæä½å®æä¹å建议å
³éIAPåè½,ä¸éè¦æ¯æ¬¡é½å
³
RET
;------------------------------------------------
;æ¦é¤æåº, å
¥å£:DPTR = æåºå°å
IAP_Erase:
MOV IAP_CONTR,#ENABLE_IAP ;æå¼ IAP åè½, 设置 Flash æä½çå¾
æ¶é´
MOV IAP_CMD,#03H ;设置为IAP/ISP/EEPROMæåºæ¦é¤æ¨¡å¼å½ä»¤
MOV IAP_ADDRH,DPH ;设置ç®æ åå
å°åçé«8ä½å°å
MOV IAP_ADDRL,DPL ;设置ç®æ åå
å°åçä½8ä½å°å
;CLR EA
MOV IAP_TRIG,#5AH ;å
é5Ah,åéA5hå°ISP/IAP触åå¯åå¨,æ¯æ¬¡é½éå¦æ¤
MOV IAP_TRIG,#0A5H ;éå®A5håï¼ISP/IAPå½ä»¤ç«å³è¢«è§¦åèµ·å¨
NOP
;SETB EA
LCALL IAP_Disable ;å
³é IAP åè½, æ¸
ç¸å
³çç¹æ®åè½å¯åå¨,使CPUå¤äºå®å
¨ç¶æ,
;ä¸æ¬¡è¿ç»çIAPæä½å®æä¹å建议å
³éIAPåè½,ä¸éè¦æ¯æ¬¡é½å
³
RET
;------------------------------------------------
IAP_Disable:
;å
³é IAP åè½, æ¸
ç¸å
³çç¹æ®åè½å¯åå¨,使CPUå¤äºå®å
¨ç¶æ,
;ä¸æ¬¡è¿ç»çIAPæä½å®æä¹å建议å
³éIAPåè½,ä¸éè¦æ¯æ¬¡é½å
³
MOV IAP_CONTR,#0 ;å
³é IAP åè½
MOV IAP_CMD,#0 ;æ¸
å½ä»¤å¯åå¨,使å½ä»¤å¯åå¨æ å½ä»¤,æ¤å¥å¯ä¸ç¨
MOV IAP_TRIG,#0 ;æ¸
å½ä»¤è§¦åå¯åå¨,使å½ä»¤è§¦åå¯åå¨æ 触å,æ¤å¥å¯ä¸ç¨
MOV IAP_ADDRH,#0FFH ;éå°åé«åèåå
为00,æåéEEPROMåº
MOV IAP_ADDRL,#0FFH ;éå°åä½åèåå
为00,é²æ¢è¯¯æä½
RET
温馨提示:答案为网友推荐,仅供参考