📄 main.c
字号:
#include<at89x52.h>
#include<stdio.h>
#include"typedef.h"
#include"flash.h"
#include"data.h"
#define LED1 P3_7
#define LED2 P2_0
uchar idata tempbuf[71];
void RS232Initialize()
{
PCON |= SMOD_;
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD = 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 0xff; /* TH1: reload value for 1200 baud @ 11.059200MHz */
TR1 = 1; /* TR1: timer 1 run */
ET0 = 0;
ES = 0;
TI = 1; /* TI: set TI to send first char of UART */
}
void delayms(uint num)
{
uint i,j;
for(i=0;i<num;i++)for(j=0;j<150;j++);
}
void main(void)
{
uchar i;
static ulong idata OptItemAdd=0;
static uchar TestMode=1;
LED1=LED2=0;
P1=0xff;
delayms(50);
RS232Initialize();
printf("Start Run Flash Testing!FlashMaxPage=%d\n",(uint)FlashMaxPage);
// for(i=0;i<20;i++)
// tempbuf[i]=i;
// At45DB081_Buf1Write(0,20,tempbuf);
// At45DB081_Buf1Read(0,20,tempbuf);
At45DB081_ReadBytesInPage(FlashAdd_OptRecord,20,tempbuf);//read bytes from one page
printf("1.1 Read Flash Data:\n");
for(i=0;i<20;i++)
{
printf("%02x ",(uint)tempbuf[i]);
}
printf("\n");
for(i=0;i<20;i++)
tempbuf[i]=0xff-i;
if(!At45DB081_WritBytesInPage(FlashAdd_OptRecord,10,tempbuf))//write
printf("Write Failly!\n");
At45DB081_ReadBytesInPage(FlashAdd_OptRecord,20,tempbuf);//read bytes from one page
printf("1.2 Read Flash Data:\n");
for(i=0;i<20;i++)
{
printf("%02x ",(uint)tempbuf[i]);
}
printf("\n");
At45DB081_ReadBytesInPage(FlashAdd_HanZiLib,20,tempbuf);//read bytes from one page
printf("2.1 Read Flash Data:\n");
for(i=0;i<20;i++)
{
printf("%02x ",(uint)tempbuf[i]);
}
printf("\n");
for(i=0;i<20;i++)
tempbuf[i]=2*i;
if(!At45DB081_WritBytesInPage(FlashAdd_HanZiLib,20,&tempbuf[0]))//write
printf("Write Failly!\n");
At45DB081_ReadBytesInPage(FlashAdd_HanZiLib,20,&tempbuf[0]);//read bytes from one page
printf("2.2 Read Flash Data:\n");
for(i=0;i<20;i++)
{
printf("%02x ",(uint)tempbuf[i]);
}
printf("\n");
At45DB081_ReadBytesInPage(FlashAdd_PassCode,20,&tempbuf[0]);//read bytes from one page
printf("3.1 Read Flash Data:\n");
for(i=0;i<20;i++)
{
printf("%02x ",(uint)tempbuf[i]);
}
printf("\n");
for(i=0;i<20;i++)
tempbuf[i]=2*i-1;
if(!At45DB081_WritBytesInPage(FlashAdd_PassCode,20,&tempbuf[0]))//write
printf("Write Failly!\n");
At45DB081_ReadBytesInPage(FlashAdd_PassCode,20,&tempbuf[0]);//read bytes from one page
printf("3.2 Read Flash Data:\n");
for(i=0;i<20;i++)
{
printf("%02x ",(uint)tempbuf[i]);
}
printf("\n");
tempbuf[0]=0x09;
if(FlashWritePassCode(1,tempbuf))
printf("Write 1 Code Successfully!\n");
else
printf("Write 1 Code Failly!\n");
i=FlashComparePassCode(tempbuf);
printf("Passcode=%d\n",(uint)i);
if(TestMode)
{
tempbuf[19]=0;
if(FlashWriteOptRecord(0,tempbuf,20))//write operation record to Flash
{
if(FlashMakeCheckSum(FlashRangeNum_OptRecord))
printf("Write OptItem Successfully!\n");
else
printf("Write OptItem CheckSum Err!\n");
}
else
printf("Write OptItem Failly!\n");
OptItemAdd = FlashReadOptRecord(0,(uchar *)tempbuf);
printf("OptItem end Add=%lx\n",(ulong)OptItemAdd);
while(tempbuf[i])
{
printf("%02x ",(uint)tempbuf[i++]);
}
printf("\n");
tempbuf[9]=0;
if(FlashWriteSelfLrn(0,tempbuf,10))//write operation record to Flash
{
if(FlashMakeCheckSum(FlashRangeNum_SelfLrn))
printf("Write SelfLrn Successfully!\n");
else
printf("Write SelfLrn CheckSum Err!\n");
}
else
printf("Write SelfLrn Failly!\n");
for(i=0;i<FlashDataRangeNum;i++)
{
if(FlashMakeCheckSum(i))
printf("Make Range %02x CheckSum Successfully!\n",(uint)i);
else
printf("Make Range %02x CheckSum Failly!\n",(uint)i);
}
if(!FlashSelfTest())
printf("Flash Test True!\n");
else
printf("Flash Test Error!\n");
}
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -