亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? flash.#1

?? 源碼 : KIEL C 單片機 : C8051F320 功能 : U盤 (64M) 關鍵字 : C8051F320,U盤,NANDFLASH,FAT,SCH 描述 : 源碼完全可運行
?? #1
字號:
//頭文件
/////////////////////////////
#include "c8051F320.h"
#include "stdio.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
//位定義
sbit FLASH_WP	=P2^0;	//命令鎖存
sbit FLASH_WE	=P2^1;	//地址鎖存
sbit FLASH_ALE	=P2^2;	//寫保護
sbit FLASH_CLE  =P2^3;	//片選
sbit FLASH_CE   =P2^4;	//寫使能
sbit FLASH_RE   =P2^5;	//讀使能
sbit FLASH_RB   =P2^6;	//忙指示
sbit FLASH_SE   =P2^7;

//P1口為數據口
//注釋掉的函數在需要時可以取掉注釋即可
///////////////////////////////////////////////////////////////////////////////////////////////////
//FLASH函數聲明
void 			Flash_Init(void);								//FLASH初始化
//unsigned int 	Get_Flash_ID(void);								//讀FLASH的ID號
//unsigned char 	Get_Flash_Status(void);						//讀FLASH的狀態
unsigned char 	Flash_Erase_Block(unsigned int BlockNum);		//擦除FLASH中的第BlockNum個BLOCK,擦除成功則返回1
void 			Flash_Read_Page(unsigned int BLockNum,unsigned char BlockPageNum,unsigned char *P,unsigned int Data_Length);
				//讀出第BlockNum個BLOCK中第BlockPageNum個PAGE中的內容,長度為Data_Length
unsigned char 	Flash_Write_Page(unsigned int BLockNum,unsigned char BlockPageNum,unsigned char *P,unsigned int Data_Length);
				//意義同上
void 			Flash_Write_Command(unsigned char command);		//寫命令
void 			Flash_Write_Address(unsigned char address);		//寫地址
void 			Flash_Write_Data(unsigned char num);			//寫一字節數據
unsigned char 	Flash_Read_Data(void);							//讀一字節數據

//void Test_Flash(void);			//FLASH測試函數,首先讀取FLASH的ID號,然后寫入512字節數據,再讀出來,判斷是否正確

extern	void	Time_Delay(unsigned int time);
////////////////////////////////////////////////////////////////////////////////////////////////////


void Flash_Init()
{
	unsigned int i=0;
	P1=0xff;
	P2MDOUT=0xff;
	FLASH_SE=0;FLASH_WP=1;FLASH_CE=0;FLASH_ALE=0;
	FLASH_CLE=0;FLASH_WE=1;FLASH_RE=1;FLASH_RB=1;	//控制位的初始狀態
	Flash_Write_Command(0xff);						//復位命令
	Time_Delay(50);									//延時50ms
}
/*
unsigned int Get_Flash_ID(void)
{
	unsigned int id=0;
	Flash_Write_Command(0x90);		//讀ID命令
	Flash_Write_Address(0x00);		//地址
	id=Flash_Read_Data();		    //讀ID的高8位
	id *=256;
	id+=Flash_Read_Data();			//讀ID的低8位
	return(id);
}
*/
/*
unsigned char Get_Flash_Status()
{
	unsigned char status=0;
	Flash_Write_Command(0x70);
	status=Flash_Read_Data();
	return(status);
}*/

unsigned char Flash_Erase_Block(unsigned int BlockNum)
{
	unsigned char Address_M=0,Address_H=0;
	unsigned int  PageNum=0;
	unsigned char status=0;
	PageNum=BlockNum*32;				//計算PAGE地址(這是該BLOCK中的第一個PAGE),每個BLOCK含32個PAGE
	Address_M=PageNum & 0xff;
	Address_H=(PageNum>>8) & 0xff;		//擦除BLOCK時,只需要輸入地址的高兩字節,此處為計算地址的高兩字節
	Flash_Write_Command(0x60);			//發送擦除命令
	Flash_Write_Address(Address_M);
	Flash_Write_Address(Address_H);		//發送地址
	Flash_Write_Command(0xd0);			//啟動擦除
	P2MDOUT =0xbf;
	FLASH_RB=1;							//FLASH_RB漏極開路輸出
	while(!FLASH_RB)					//判斷是否擦除完畢
	{}

	Flash_Write_Command(0x70);			//發送讀狀態命令
	status=Flash_Read_Data();			//讀狀態
	if(status & 0x01)					//如果有錯誤,則返回false
	{
		return(0);
	}
	else								//否則返回true
	{
		return(1);
	}
}

void Flash_Read_Page(unsigned int BLockNum,unsigned char BlockPageNum,unsigned char *P,unsigned int Data_Length)
{
	unsigned int  i=0;
	unsigned int  PageNum=0;
	unsigned char Address_L=0,Address_M=0,Address_H=0;
	PageNum=BLockNum*32+BlockPageNum;		//計算該PAGE在整個FLASH中的PAGE地址
	Address_L=0;
	Address_M=PageNum & 0xff;
	Address_H=(PageNum>>8) & 0xff;
	Flash_Write_Command(0x00);				//將內部指針指向A區
	Flash_Write_Address(Address_L);		    //寫地址
	Flash_Write_Address(Address_M);
	Flash_Write_Address(Address_H);
	for(i=0;i<Data_Length;i++)
	{
		*(P+i)=Flash_Read_Data();			//讀數據
	}

}

unsigned char Flash_Write_Page(unsigned int BLockNum,unsigned char BlockPageNum,unsigned char *P,unsigned int Data_Length)
{
	unsigned int  i=0;
	unsigned int  PageNum=0;
	unsigned char Address_L=0,Address_M=0,Address_H=0;
	unsigned char status=0;
	PageNum=BLockNum*32+BlockPageNum;		//計算該PAGE在整個FLASH中的PAGE地址
	Address_L=0;
	Address_M=PageNum & 0xff;
	Address_H=(PageNum>>8) & 0xff;
	
	Flash_Write_Command(0x00);			//將內部指針指向A區
	Flash_Write_Command(0x80);			//寫FLASH命令
	Flash_Write_Address(Address_L);		//寫地址
	Flash_Write_Address(Address_M);
	Flash_Write_Address(Address_H);
	for(i=0;i<Data_Length;i++)
	{
		Flash_Write_Data(*(P+i));		//將數據寫入緩沖區
	}
	Flash_Write_Command(0x10);		  	//啟動寫入,將數據從緩沖區寫入到FLASH
	P2MDOUT =0xbf;						//FLASH_RB漏極開路輸出
	FLASH_RB=1;
	while(!FLASH_RB)					//判斷是否操作完畢
	{}

	Flash_Write_Command(0x70);			//發送讀狀態命令
	status=Flash_Read_Data();			//讀狀態
	if(status & 0x01)					//如果有錯誤,則返回false
	{
		return(0);
	}
	else								//否則返回true
	{
		return(1);
	}

}

void Flash_Write_Command(unsigned char command)
{
	FLASH_ALE=0;	//地址鎖存禁止
	FLASH_CLE=1;	//命令鎖存使能
	FLASH_WE =0;	//寫使能信號,上升沿有效
	P1MDOUT  =0xff;	//設置P1為推挽輸出
	P1=command;
	FLASH_WE =1;	//命令在上升沿寫入
	FLASH_CLE=0;	//命令鎖存禁止
	FLASH_ALE=1;
}

void Flash_Write_Address(unsigned char address)
{
	FLASH_WE=1;
	FLASH_CLE=0;	//命令鎖存禁止
	FLASH_ALE=1;	//地址鎖存使能
	FLASH_WE =0;	//寫使能信號,上升沿有效
	P1MDOUT  =0xff;	//設置P1為推挽輸出
	P1=address;
	FLASH_WE =1;	//上升沿寫入
	FLASH_ALE=0;	//地址鎖存禁止
}

void Flash_Write_Data(unsigned char num)
{
	FLASH_WE=1;
	FLASH_CLE=0;	//命令鎖存禁止
	FLASH_ALE=0;	//地址鎖存禁止
	FLASH_WE =0;	//寫使能信號, 上升沿有效
	P1MDOUT  =0xff;	//設置P1為推挽輸出
	P1=num;
	FLASH_WE =1;	//命令在上升沿寫入
}

unsigned char Flash_Read_Data(void)
{
	unsigned char num=0;
	FLASH_CLE	=0;		//命令鎖存禁止
	FLASH_ALE	=0;		//地址鎖存禁止
	P1MDOUT    =0x00;	//設置P1為漏極開路輸出
	P1		 	=0xff;
	FLASH_RE 	=0;		//讀信號使能
	P2MDOUT =0xbf;		//FLASH_RB漏極開路輸出
	FLASH_RB=1;
	while(!FLASH_RB)	//判斷是否操作完畢
	{}
	num=P1;
	FLASH_RE=1;
	return(num);
}
/*
void Test_Flash()
{
	unsigned int Flash_ID;
	xdata unsigned char Buffer[512];
	unsigned int i=0,dat=0;
	Flash_ID=Get_Flash_ID();
	printf("Flash_ID is %u\n",Flash_ID);

	for(i=0;i<512;i++)
	{Buffer[i]=i;}
	for(i=0;i<256;i++)
	{Buffer[256+i]=i;}
	Flash_Write_Page(1,1,Buffer,512);
	for(i=0;i<512;i++)
	{Buffer[i]=0;}
	Flash_Read_Page(1,1,Buffer,512);
	for(i=0;i<512;i++)
	{
		dat=Buffer[i];
		printf("the No.%u data is %u\n",i,dat);
	}

}*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性xxxxxxxx| aaa亚洲精品| 亚洲国产日韩在线一区模特| 久久女同互慰一区二区三区| 日韩欧美在线1卡| 欧美一区二区三区视频在线观看| 91黄视频在线观看| 欧美伊人久久大香线蕉综合69| 99国产麻豆精品| 91色九色蝌蚪| 欧美性猛交xxxxxxxx| 欧美精品v日韩精品v韩国精品v| 欧美情侣在线播放| 日韩一区二区电影在线| 精品粉嫩超白一线天av| 国产精品久久久久久久午夜片| 亚洲国产高清不卡| 樱花影视一区二区| 免费av网站大全久久| 国内精品国产成人| 91亚洲国产成人精品一区二三| 欧美日韩中字一区| 精品久久久久香蕉网| 中文字幕五月欧美| 日韩专区一卡二卡| 韩国精品一区二区| 91社区在线播放| 日韩欧美一二区| 中文字幕一区二区在线播放| 亚洲第一主播视频| 国产精品888| 欧美在线观看一二区| 精品成a人在线观看| 亚洲色图在线看| 蜜臀av一级做a爰片久久| 粉嫩高潮美女一区二区三区| 欧美天堂亚洲电影院在线播放| 欧美一区二区三区免费大片 | av影院午夜一区| 91成人免费网站| 久久久电影一区二区三区| 亚洲一卡二卡三卡四卡五卡| 国产一区二区在线影院| 欧美视频在线观看一区| 久久综合九色欧美综合狠狠| 亚洲精品视频在线观看网站| 久久99在线观看| 欧美久久久久免费| 亚洲欧洲另类国产综合| 国产麻豆精品在线观看| 欧美日韩国产综合一区二区 | 欧美日韩精品电影| 国产精品乱码人人做人人爱| 老司机午夜精品99久久| 欧美日韩一区二区三区免费看| 欧美高清一级片在线观看| 免费日韩伦理电影| 欧美日韩电影在线播放| 一区二区三区在线播放| aaa亚洲精品| 国产精品久久久久久久久免费樱桃 | 91精品免费在线| 一区二区在线免费| 91麻豆123| 亚洲乱码国产乱码精品精可以看 | 亚洲成人激情综合网| 色综合色狠狠综合色| 久久精品视频一区二区三区| 免费成人在线播放| 欧美成人一区二区三区在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 不卡av电影在线播放| 国产三级精品三级| 国产v综合v亚洲欧| 国产精品国产三级国产aⅴ原创| 国产九色精品成人porny| 26uuu亚洲综合色| 国产一区二区精品久久99| 精品国免费一区二区三区| 国产综合色在线| 中文av一区二区| 99在线热播精品免费| 国产精品国产三级国产普通话三级 | 激情成人综合网| 久久久久国产精品免费免费搜索| 国产精品自拍一区| 久久精品视频在线免费观看| 成人精品gif动图一区| 亚洲天堂免费看| 欧美日韩午夜在线| 久久99热这里只有精品| 欧美激情在线一区二区| 99精品国产视频| 亚欧色一区w666天堂| 欧美成人一区二区三区片免费| 久久99国产精品久久99果冻传媒| 亚洲精品在线网站| 成人亚洲一区二区一| 亚洲婷婷国产精品电影人久久| 欧美日韩国产综合一区二区三区| 久久精品国产免费| 中文无字幕一区二区三区| 色猫猫国产区一区二在线视频| 亚洲成人在线免费| 久久久久久久综合狠狠综合| 97久久久精品综合88久久| 亚洲成人免费av| 国产色产综合产在线视频| 色婷婷一区二区| 国产一区二区三区观看| 亚洲老妇xxxxxx| 精品乱人伦小说| 91福利视频久久久久| 久久国产日韩欧美精品| 亚洲人精品午夜| 日韩精品一区二| 在线观看区一区二| 狠狠色综合播放一区二区| 亚洲美女电影在线| 久久综合九色综合欧美98 | 日韩av成人高清| 中文字幕 久热精品 视频在线| 欧美日韩国产首页| 91在线一区二区| 蜜桃av噜噜一区二区三区小说| 国产精品久久久久久久久免费桃花| 欧美久久免费观看| 色综合久久久久综合体桃花网| 国产一区二区福利视频| 日韩精品欧美成人高清一区二区| 亚洲欧美一区二区三区国产精品| 久久久精品国产免大香伊| 欧美三级一区二区| 日本电影亚洲天堂一区| 成人黄色av网站在线| 国产麻豆视频一区二区| 久久精品国产久精国产| 偷窥少妇高潮呻吟av久久免费| 亚洲精品伦理在线| 国产精品网站导航| 国产视频亚洲色图| 久久亚洲精品国产精品紫薇| 日韩欧美视频在线| 欧美顶级少妇做爰| 欧美日韩中文字幕一区二区| 91搞黄在线观看| 91高清在线观看| 欧美自拍丝袜亚洲| 精品视频在线视频| 欧美三片在线视频观看| 欧美日韩国产综合一区二区三区| 欧美天堂一区二区三区| 欧美日韩视频在线第一区| 欧美日韩一卡二卡三卡 | 亚洲成人av中文| 亚洲成人自拍一区| 亚洲va欧美va人人爽| 日韩精品成人一区二区三区| 免播放器亚洲一区| 奇米色一区二区三区四区| 极品少妇一区二区| 国产精品影视天天线| 成人免费毛片嘿嘿连载视频| 91在线云播放| 欧美日韩亚洲综合一区| 91精品国产免费| 久久亚洲精品小早川怜子| 国产无人区一区二区三区| 亚洲色图一区二区三区| 亚洲国产sm捆绑调教视频 | 亚洲成人av中文| 美国十次了思思久久精品导航| 捆绑紧缚一区二区三区视频| 国产在线观看一区二区| 成人高清免费观看| 欧美性受xxxx| 欧美不卡激情三级在线观看| 亚洲动漫第一页| 蜜臀av一区二区| 成人免费视频视频在线观看免费| 91影院在线免费观看| 欧美一区日韩一区| 国产日韩欧美激情| 亚洲成人久久影院| 国产成人av网站| 欧美无人高清视频在线观看| 精品欧美乱码久久久久久1区2区| 国产精品美女久久久久aⅴ | 精品1区2区3区| 国产亚洲欧美日韩日本| 亚洲一区国产视频| 国产麻豆精品在线| 欧美高清视频不卡网| 亚洲国产高清在线观看视频| 三级欧美韩日大片在线看| 不卡在线观看av| 日韩欧美精品在线视频| 一区二区三区中文字幕电影 | 538在线一区二区精品国产| 国产日产精品一区|