⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 w78e516b_program_4kflash.c

📁 W78E516B从64k程序空间对4K程序空间编程的子函数
💻 C
字号:
#include <reg54.h>

sfr CHPCON=0xBF;                       //在编程特殊寄存器定义;
sfr CHPENR=0xF6;
sfr SFRAL=0xC4;
sfr SFRAH=0xC5;
sfr SFRFD=0xC6;
sfr SFRCN=0xC7;
sbit A16=P1^7;  

sbit POWERON=P3^4;
sbit DSCEN=P3^5;


void Erase()                                      //64flash擦除;
{
    SFRCN=0x62;
    TL0=0x3C;
    TH0=0xB0;
    TR0=1;
    PCON=0x01;
 
}
bit BlankCheck()                                   //64k flash 空白检查;
{
    bit flag=1;
    unsigned int index;
  //  A16=1;
    SFRCN=0x40;
    SFRAH=0x00;
    SFRAL=0x00;
    TLOW=0xFB;
    THIGH=0xFF;
    TL0=0xFB;
    TH0=0xFB;

   for(index=0;index<0xFFF;index++)
   {
     TR0=1;
     PCON=0x01;
     if(SFRFD!=0xFF)
      {
        flag=0;
        break;
      }
     else
      {
        SFRAL++;
        if(SFRAL==0)
        SFRAH++;
      }
      
    }
 
 
    return(flag);
 
}

void Program()                        		 //编程函数两分支共用,外存由A16区分,
{
    unsigned int index;
    A16=1;
	RAMENABLE
    SFRCN=0x61;                        	     //设定为写操作;
    SFRAL=0x00;	
    SFRAH=0x00;
    TLOW=0x5A;                          	 
    THIGH=0xFF;
	TL0=0x5A;
	TH0=0xFF;
    
    for(index=0;index<0xFFF;index++)
     {
    
      SFRFD=XBYTE[index];
	  TR0=1;
	  PCON=0x01;
	  SFRAL++;
	  if(SFRAL==0)
	  SFRAH++;

     }



	 

}
bit Verify()                                  //编程数据验证;
 {
     bit flag=1;
     unsigned int index;
     A16=1;
     RAMENABLE
     SFRCN=0x40;
     SFRAH=0x00;
     SFRAL=0x00;
	
     TLOW=0xFB;
     THIGH=0xFF;
	 TL0=0xFB;
	 TH0=0xFF;
	
    for(index=0;index<0xFFF;index++)
     {
   	    TR0=1;
  	    PCON=0x01;
 	    if(SFRFD!=XBYTE[index])
   	     {
   		    flag=0;
    	    break;
         }
        else
         {
            SFRAL++;
            if(SFRAL==0)
            SFRAH++;
		  }
      }
    
	 return(flag);

 }

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -