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

📄 flash.c

📁 2008年山东省大学生电子设计大赛 c题 多功能电子计价秤 单片机用的 c8051f005
💻 C
字号:
#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=list_num;
	PSCTL=0x00;					//写禁止	
}

//----------------------------------------------
//读取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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -