📄 flash.c
字号:
#include <stdio.h>
#include <reg1210.h>
#include "rom1210.h"
//#include <msc1210.h>
#define PAGE_START 0x0400
#define PAGE_SIZE 0x80
extern void autobaud(void);
char xdata *pFlashPage;
unsigned int xdata buffer[PAGE_SIZE];
//读flash存储器子程序
//page为页数取值范围0-7,byte_num为字节数,取值范围为0-127
int flash_read(int page,int byte_num)
{
unsigned int m,read_add;
read_add=0x400+0x80*page+byte_num; //实际地址
pFlashPage=(char xdata*)read_add;
buffer[0]=*pFlashPage;
if(buffer[0]>128)
buffer[0]+=256;
printf("buffer[0]=%d\n",buffer[0]);
return buffer[0];
}
//写flash存储器子程序
//page为页数取值范围0-7,byte_num为字节数,取值范围为0-127,write_data为要写入的数据
void flash_write(int page,int byte_num,int write_data)
{
unsigned int m,lead_add;
lead_add=0x400+0x80*page; //页首地址
pFlashPage=(char xdata*)lead_add;
for(m=0;m<128;m++)
buffer[m]=*pFlashPage++;
page_erase(lead_add,0x0ff,DATA_FLASH);
buffer[byte_num]=write_data;
for(m=0;m<128;m++)
write_flash_byte(lead_add+m,buffer[m],DATA_FLASH);
}
main()
{
char result;
unsigned int i,add,dat;
autobaud();
FTCON=0x64;
USEC=11-1;
MSEC=11059-1;
dat=flash_read(0,0);
printf("dat=%d\n",dat);
flash_write(0,0,0x0A);
dat=flash_read(0,0);
printf("dat=%d\n",dat);
while(RI=0);
RI=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -