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

📄 main.c

📁 FLASH读写
💻 C
字号:

/*******************************************************************/
//	  			Flash读写测试程序	  								/
/*******************************************************************/
#include<C8051F000.h>
#include<common.h>
unsigned char xdata* dFls_Byte=0x01000;
unsigned char code*  cFls_Byte=0x01000;
unsigned char 		 Fls_to_Lcd;
unsigned char code ao[]={
/*--  文字:  奥  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xFE,0x22,0x2A,0xB2,0x63,0xFE,0x62,0xB2,0xAA,0x22,0xFE,0x00,0x00,0x00,
0x80,0x84,0x45,0x44,0x25,0x14,0x0C,0x07,0x0C,0x14,0x25,0x24,0x45,0xC4,0x44,0x00,
} ;
unsigned char code lin[]={
/*--  文字:  林  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x10,0x90,0xFF,0x90,0x10,0x00,0x10,0x10,0xD0,0xFF,0x90,0x10,0x10,0x10,0x00,
0x08,0x06,0x01,0xFF,0x00,0x13,0x08,0x04,0x03,0x00,0xFF,0x01,0x06,0x18,0x08,0x00,
} ;
unsigned char code pi[]={
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x82,0x00,0x00,
0x00,0x3F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x23,0x24,0x24,0x24,0x27,0x22,0x00,} ;
unsigned char code ke[]={
/*--  文字:  克  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x04,0x04,0xE4,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0xE4,0x04,0x04,0x00,0x00,
0x00,0x00,0x80,0x43,0x31,0x0F,0x01,0x01,0x01,0x3F,0x41,0x43,0x40,0x40,0x70,0x00,
};
//------------------------------------------------------------------//
//					 时钟初始化
//------------------------------------------------------------------//
void SYSCLK_Init()
{
	OSCICN=OSCICN|0x03;									
							//启用内部晶振16MHZ
}
//------------------------------------------------------------------//
//					 端口初始化
//------------------------------------------------------------------//
void PORT_Init()
{
	XBR0=0x00;										
							
	XBR1=0x00;
	XBR2=0x40;
	PRT0CF = 0x00;   
	PRT1CF = 0x00;
	PRT2CF = 0x00;  									
																			   //三个端口全部为弱上拉,硬件上P0口应接上拉电阻
	P3 = 0xFF;  															   //三个端口全部为弱上拉,硬件上P0口应接上拉电阻
}

//------------------------------------------------------------------//
//					 Flash读写控制
//------------------------------------------------------------------//
void Fls_WR_Byte(unsigned int addr,unsigned char byte)
{
	unsigned  char xdata*  w=addr;
	PSCTL=0x01;																		//擦除禁止
	*w=byte;
	PSCTL=0x00;																		//Flash写禁止
}


unsigned char Fls_RD(unsigned char addr)
{
	unsigned  char code*  w=addr;
	return *w;
}
//------------------------------------------------------------------//
//						 主函数
//------------------------------------------------------------------//
void main()
{
	unsigned int i,addr1=0x2000;
	unsigned char xdata *y=addr1;
	unsigned char j;
	WDTCN=0xde;
	WDTCN=0xad;
	SYSCLK_Init();
	PORT_Init();
	EA=0;		 									
												
	FLSCL=0x89;																		//允许软件Flash写/擦除总允许(FLWE)											
	PSCTL=0x03;																		//允许软件Flash写/擦除
	*y=0;																			//擦除扇区
//向Flash内写数据
	for(i=0;i<16;i++)
	{
		Fls_WR_Byte(addr1,ao[i]);
		addr1++;
	}
	for(i=0;i<16;i++)
	{
		Fls_WR_Byte(addr1,lin[i]);
		addr1++;
	}
	for(i=0;i<16;i++)
	{
		Fls_WR_Byte(addr1,pi[i]);
		addr1++;
	}

	for(i=0;i<16;i++)
	{
		Fls_WR_Byte(addr1,ke[i]);
		addr1++;
	}
	EA=1;  
/*	for(i=0;i<16;i++)	 																	//向Flash内写数据
	Fls_WR(lin[i]);
	for(i=0;i<16;i++)	 																	//向Flash内写数据
	Fls_WR(pi[i]);
	for(i=0;i<16;i++)	 								
									//向Flash内写数据
	Fls_WR(ke[i]);										
									//Flash写禁止 
	Fls_Wr_UE(); 
	for(j=0;j<4;j++)									
									//读Flash数据并送入
Lcd
	for(i=0;i<16;i++)
	{
		Fls_to_Lcd=Fls_RD();
		lcd_drawhanzimo(0+10,0,&Fls_to_Lcd);
	} */
	while(1);
}

⌨️ 快捷键说明

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