求一段向stc单片机的Flash写数据的汇编程序,别拍砖呀!
找了半天,也没找到,只好求救了,十分感谢! ;//////***** 指定地址读取一个字节的数据 **///;//////*****入口参数:指定地址:DPTR **///
;//////*****返回值:A(读到的指定地址的数据存在A中) **///
;//////*****占用DPTR,A,
READBYTE: ;读字节
MOVISPADDRH,DPH ;送地址高字节
MOVISPADDRL,DPL ;送地址低字节
CLREA ;关闭中断
MOVISPCONTR,#WAITTIME ;设置等待时间
ORLISPCONTR,#10000000B ;允许ISP/IAP操作
MOVISPCMD,#1 ;送字节读命令
MOVISPTRIG,#46H ;先送46H,再送B9H到ISP/IAP触发器
MOVISPTRIG,#0B9H ;送完B9H后ISP/IAP的命令立即被触发
NOP
NOP
ANLISPCONTR,#01111111B ;禁止ISP/IAP操作
SETB EA ;开中断
MOVA,ISPDATA ;将读到的数据送往ACC
RET
;//////***** 指定地址写入一个字节的数据 **///
;//////*****入口参数:指定地址DPTR ,数据为A **///
;//////*****返回值:无 **///
;//////***** 占用DPTR,A, **///
PROGRAM: ;字节编程
MOV ISPDATA,A ;送数据到ISPDATA
MOVISPADDRH,DPH ;送地址高字节
MOVISPADDRL,DPL ;送地址低字节
CLREA
MOVISPCONTR,#WAITTIME ;设置等待时间
ORLISPCONTR,#10000000B ;允许ISP/IAP操作
MOVISPCMD,#2 ;送字节写命令
MOVISPTRIG,#46H ;先送46H,再送B9H到ISP/IAP触发器
MOVISPTRIG,#0B9H ;送完B9H后ISP/IAP的命令立即被触发
NOP
NOP
ANLISPCONTR,#01111111B ;禁止ISP/IAP操作
SETB EA
RET
;//////***** 指定FLASH区整个扇区擦除 **///
;//////*****入口参数:指定FLASH区整个扇区起始地址DPTR **///
;//////*****返回值:无 **///
;//////***** 占用DPTR, **///
SERASE: ;FLASH区整个扇区擦除
MOVISPADDRH,DPH ;送扇区起始地址高字节
MOVISPADDRL,DPL ;送扇区起始地址低字节
CLREA
MOVISPCONTR,#WAITTIME ;设置等待时间
ORLISPCONTR,#10000000B ;允许ISP/IAP操作
MOVISPCMD,#3 ;送整个扇区擦除命令
MOVISPTRIG,#46H ;先送46H,再送B9H到ISP/IAP触发器
MOVISPTRIG,#0B9H ;送完B9H后ISP/IAP的命令立即被触发
NOP
NOP
ANLISPCONTR,#01111111B ;禁止ISP/IAP操作
SETB EA
RET 回复【1楼】lyp103
-----------------------------------------------------------------------
谢谢 mark
页:
[1]