Funny_guy 发表于 2010-9-21 08:26:18

求一段向stc单片机的Flash写数据的汇编程序,别拍砖呀!

找了半天,也没找到,只好求救了,十分感谢!

lyp103 发表于 2010-9-21 08:50:58

;//////***** 指定地址读取一个字节的数据               **///
;//////*****入口参数:指定地址: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

Funny_guy 发表于 2010-9-21 09:03:16

回复【1楼】lyp103
-----------------------------------------------------------------------

谢谢

bbs2009 发表于 2010-9-21 09:34:36

zbsharp 发表于 2011-9-23 00:47:00

mark
页: [1]
查看完整版本: 求一段向stc单片机的Flash写数据的汇编程序,别拍砖呀!