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

📄 flash.c

📁 c8051f020实现4个 产UART 口
💻 C
字号:
#include "all.h"


data unsigned char xdata *pwrite; // 程序存储器空间的指针(FLASH),指向待写地址
data unsigned char code *pread; // 程序存储器空间的指针(FLASH),指向待读地址

unsigned char code Cwf_ptotect[512] _at_   0x8000;
unsigned char code CanKaoBase[20]="8df3g4g6fjkqw0";

unsigned char idata Cwf_ok[20]="1234567890abc";   //维数不能屐,因为其它地方也要改动

data unsigned char *pgen; // 一般指针
idata char test; // 测试字符

//将一个CODE数组的内容移动到另一个CODE数组
 //okkk =1:  会让两数组相同  okkk =0:  会让两数组不相同
 
void ERASE_Flash(uchar okkk)  {   //okkk =1:  会让两数组相同  okkk =0:  会让两数组不相同  
	  data   uchar CCtt;
		
              EA=0;
		 if(okkk==1)
		      strcpy(Cwf_ok,CanKaoBase); //okkk =1:  会让两数组相同 
		 else 
		      strcpy(Cwf_ok,"CanKaoBase"); //okkk =0:  会让两数组不相同  
		// 禁止看门狗定时器
		WDTCN = 0xde;
		WDTCN = 0xad;
		// 擦除512字节的信息页(位于0x8000)
		FLSCL = 0x41; // 置位FLWE(FLSCL.0),以允许由用户软件写/擦除FLASH。

		//置位PSEE(PSCTL.1),以允许FLASH 扇区擦除。
             //置位PSWE(PSCTL.0),以允许FLASH 写。
		PSCTL = 0x03; // 将PSWE和PSEE置‘1’(MOVX指令对应		// 的FLASH页
		
		pwrite = 0x8000; // 将指针指向待擦除页
		*pwrite = 0; // 启动擦除过程
	//	for(ttty=0;ttty<60000;ttty++)  ; 	for(ttty=0;ttty<60000;ttty++)  ;
		
		PSCTL = 0x01; // 清除PSEE,PSWE仍然置1

		// LKPB加密
#if(Is_JiaMi==1)  
 	       pwrite = 0xFDFE; // LKPB加密
		*pwrite++=0;
		*pwrite=0;
#endif
            // LKPB加密

		// MOVX指令将写到对应的地址
		// 现在我们要拷贝字符串 <test_string> 的内容到FLASH页,从地址0x8000开始。

           //  CCtt=0;

			pwrite = 0x8000; // 将指针指向待擦除页
		pgen = Cwf_ok; // pgen 指向源字符串
			
		do {
			
		         *pwrite++ = *pgen++; // 拷贝字节
				 
			  
    	} while (*pgen!=0); // 直到NULL结束符
		*pwrite = NULL; // 用NULL结束目的字符串
		
		PSCTL = 0; // 禁止FLASH写
		FLSCL = 0x00; // 禁止FLASH写
		
		
		
	   
		// 现在我们读写入的字符串
		pread = 0x8000; // 初始化CODE读指针为字符串起始地址
		test = 0x5a;
		CCtt=0;
		do {
	           	test = *pread++;
				Cwf_ok[CCtt++]=test;
				if(CCtt>19) break;
		} while  (*pread!=0);
		Cwf_ok[CCtt]=0;

		 CLR_WDG ;  
		 EA=1;  
		
}


⌨️ 快捷键说明

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