📄 main.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 + -