这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » STC89LE516RD,DATA,FLASH STC89LE516RD+(DA

共3条 1/1 1 跳转至

STC89LE516RD,DATA,FLASH STC89LE516RD+(DATA FLASH)

院士
2006-09-17 18:14:16     打赏
STC89LE516RD,DATA,FLASH STC89LE516RD+(DATA FLASH)



关键词: STC89LE516RD     FLASH     STC89L    

院士
2006-12-22 22:43:00     打赏
2楼
问 在使用STC 内部FLASH时候出现了一些问题
在读DATA FLASH的时候,每次读出的总是上次ISP_DAT中的数据,不知是为什么?
希望楼主技术支持.
我用的是STC89LE516RD+的片子,测试程序如下:
  该程序的功能是先向FLASH 中写115个数据,然后依次读出并显示
   #include <reg51.h>
extern void display(unsigned char d,unsigned char c,unsigned char b,unsigned char a);
unsigned char bread(char h,char l);
void bwrite(char h,char l,char value);
void berase(char h,char l);

void longdelay()
  {unsigned char i;
   unsigned int j;
   for(i=0;i<200;i++)
      for(j=0;j<50000;j++);
   }

main()
{   unsigned char temp,b,c,d,i;
////////////////////////////////////
   berase(0x90,0x00);
   for(i=0;i<115;i++)
      bwrite(0x90,i,i);
   i=0;
   while(1)
   {
   temp=bread(0x90,i);
   b=temp/100;
   c=(temp%100)/10;
   d=temp%10;
   display(7,b,c,d);//////display仅仅是我用的一个显示器显示函数
   i++;
   if(i==115) i=0;
   longdelay();
    longdelay();
   }

}


其中字节读,写,扇区擦除的函数为:
   ISP_DATA  EQU 0e2h
ISP_ADDRH EQU 0e3h
ISP_ADDRL EQU 0e4h
ISP_CMD   EQU 0e5h
ISP_TRIG  EQU 0e6h
ISP_CONTR EQU 0e7h
PUBLIC _BREAD
DE SEGMENT CODE
RSEG DE
_BREAD:
          MOV ISP_CONTR,#80h
          MOV ISP_CMD,#01H
    MOV ISP_ADDRH,R7
    MOV ISP_ADDRL,R5
     MOV ISP_TRIG,#46h
    MOV ISP_TRIG,#0b9h
    NOP
    NOP
    MOV A,ISP_DATA
        MOV R7,A
    MOV ISP_CONTR,#0
    MOV ISP_CMD,#0
    MOV ISP_TRIG,#0
EXIT:      RET
    END

PUBLIC _BWRITE
DE SEGMENT CODE
RSEG DE
_BWRITE:
          MOV ISP_CONTR,#80h
          MOV ISP_CMD,#02H
    MOV ISP_ADDRH,R7
    MOV ISP_ADDRL,R5
    MOV ISP_DATA,R3
     MOV ISP_TRIG,#46h
    MOV ISP_TRIG,#0b9h
    NOP
    NOP
    MOV ISP_CONTR,#0
    MOV ISP_CMD,#0
    MOV ISP_TRIG,#0
EXIT:      RET
    END


PUBLIC _BERASE
DE SEGMENT CODE
RSEG DE
_BERASE:
          MOV ISP_CONTR,#80h
          MOV ISP_CMD,#03H
    MOV ISP_ADDRH,R7
    MOV ISP_ADDRL,R5
     MOV ISP_TRIG,#46h
    MOV ISP_TRIG,#0b9h
    NOP
    NOP
    MOV ISP_CONTR,#0
    MOV ISP_CMD,#0
    MOV ISP_TRIG,#0
EXIT:      RET
    END



1: 结果总是114,就是最后一次写的数据结果总是114,就是最后一次写的数据 2: 不是110就好 3: 用STC89LE58RD+ 才有Data Flash用STC89LE58RD+ 才有Data Flash
STC89LE516RD+ 没有Data Flash

专家
2022-08-11 00:07:36     打赏
3楼

看看


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]