flash.bak

来自「2008年山东省大学生电子设计大赛 c题 多功能电子计价秤 单片机用的 c805」· BAK 代码 · 共 76 行

BAK
76
字号
#include "include.h"

void flash_clr(uchar xdata *pwr)
{
	FLSCL=0x89;
	PSCTL=0x03;					//擦除允许 写允许
	*pwr=0x00;
	PSCTL=0X00;
}

//----------------------------------------------
//向flash的128字节扇区写数据  扇区地址0x8000-0x807f
//dat 要存储的数据数组名   x:存储在128字节扇区的第X字节
//----------------------------------------------
void flash_wr(struct goods *dat,uchar list_num)
{
	uchar i=0;
	struct goods xdata *pwr=0x8000;//写指针
	uchar xdata *pwr2;

//	FLSCL=0x89;
//	PSCTL=0x03;					//擦除允许 写允许
//	*pwr=0x00;
			
	for(i=0;i<10;i++)
	{	
		PSCTL=0x01;					//写允许
		*pwr=*(dat+i);
		PSCTL=0x00;					//写禁止
		pwr++;
 	}
	pwr2=(uchar xdata *)pwr;
	PSCTL=0x01;					//写允许
	*pwr2=0x44;
	PSCTL=0x00;					//写禁止
//	*pwr2=list_num;
	
}

//----------------------------------------------
//读取flash的128字节扇区内容
//----------------------------------------------
void flash_re(struct goods *dat)
{
	uchar i;
	struct goods code *pre=0x8000;	//读指针
	for(i=0;i<10;i++)
	{
		*(dat+i)=*pre;
		pre++;
	}
}
/*-------------------------------------------
读取当前清单ID
---------------------------------------------*/
uchar flash_read_list_num()
{
	uchar list_num;
	uchar code *pre=0x8032;
	list_num=*pre;
	return list_num;
}

//---------------------------------------------
//向flash中写入list结构体变量
//
//---------------------------------------------
void flash_save(struct list xdata *add,struct list list1)
{
	PSCTL=0x01;					//写允许
	*add=list1;
	PSCTL=0x00;					//写禁止
}


⌨️ 快捷键说明

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