关键词不能为空

当前您在: 主页 > 英语 >

退役51单片机控制K9K8G08U0CNANDFlash读写程序

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-24 14:23
tags:

-

2021年1月24日发(作者:文具盒的英文)
51
单片机控制
K9K8G08U0C
NAND
Flash

写程序


#include
#include
#include
/******************* *****************************
***************** ****/
sbit
NF_CLE=P0^3; //
命令锁存使能(输出)
CLE
D3
sbit
NF_ALE=P3^4; //
地址锁存使能(输出)
ALE
RS
sbit
NF_WE=P1^3; //NAND
Flash
写使能
(输出)
/WE
DB4
sbit
NF_RE=P1^2; //NAND
Flash
读使能
(输出)
/RE
DB3
sbit NF_CE=P3^7; //NAND Flash
片选使能(输出)
/CE RD
sbit NF_R_B=P3^5; //NAND Flash
就绪
/
忙(输入)

r/b R/D_LCDEN
sbit NF_WP=P3^6; //
不用
(
已接到
VCC) /WP
#define NF_DATA P2
/********************************* ***************
**********************/
sbit DIOLA=P2^5;
/************************ ************************
*********************/
//unsigned int DataArray[10];
/********** **************************************
******** ***********/
// 12c5A60S2
单片机初始化

/************************************************
*******************/
void MCU_Init()
{
P0M0=0x00;
P0M1=0x00;
P1M0=0x00;
P1M1=0x00;
P2M0=0x00;
P2M1=0x00;
P3M0=0x00;
P3M1=0x00;
AUXR=0x00;
//TMOD=0x21;
}
/*************************************** *********
*******************/
void TimerInit()
{

TMOD=0x20; //
设置定时器
1
为工作方式
2
(0x22;)
TH1=0xfd; //
装入初值
(0xef;)
TL1=0xfd; //
装入初值
(0xef;)
TR1=1; //
启动定时器

REN=1; //
允许串口接收位

SM0=1;SM1=0; //
方式
1
SCON=0x50;
///////
EA=1;
ES=1;
// PCON=0x80;
//PS=1;
//PT0=0;

} //
晶振
:22.1184M
波特率
:19200
/**** ********************************************
** *****************/
//
延时

/******* *****************************************
***** **************/
void delay(unsigned int z)//延时参数(
z
)无反回值
的子程序(
void
表示无反值)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);

}


/***************************** *******************
********************
//




名:
51
单片机控制
K9K8G08U0C
的读写程序

//
功能描述:
NANDFLASH
读写程序

//
兼容性
:
适合大部分的
NANDFLASH
,如需要 根据手册
做简单修改即可

//
芯片型号
: STC89C516RD STC12C5A60S2
等。

*********** **************************************
******** ***********/
// NANDFLASH
使能信号初始化
//////////////////////////////////////////////// /
///////////////
void NF_Initial()
{
NF_CLE=0;NF_ALE=0;NF_CE=1;
NF_WE=1;NF_RE=1;NF_WP=1;
}
/************* ***********************************
*********** ************/
/******************************* *****************
***********************/
//
命令函数
NAND Flash Command
//Read1 00h/01h
//Read2 50h
//
读取芯片
ID 90h
//RESET FFh
//
写页
80h 10h
//
块擦除
60h D0h
//
读取状态
70h/7ah
//******************************************
void NF_Command(unsigned char command)
{
//P2=0xff;

NF_ALE=0;
//NF_CE=0;
NF_CLE=1;
NF_WE=0;
NF_ALE=0;
NF_DATA=command;
NF_WE=1;
NF_CLE=0;

// NF_ALE=1;
//P2=0xff;
}
/******** ****************************************
****** *****************/
/************************** **********************
***********************/
//
读取芯片
ID
函数
NAND Flash Read_ID
//
读取芯片
ID 90h
//******************************************
unsigned char NF_ReadID()
{
unsigned char a,b,c,d;
NF_Initial();
NF_CE=0;
NF_Command(0x90); //
输入命令


NF_ALE=1;
NF_WE=0;
NF_DATA=0x00; //address,1cycle
NF_WE=1;
NF_ALE=0;

NF_DATA=0xff;
NF_RE=0;
a=0xff&NF_DATA; //ECH
NF_RE=1;
NF_DATA=0xff;
NF_RE=0;
b=0xff&NF_DATA; //76H

NF_RE=1;
NF_DATA=0xff;
NF_RE=0;
c=0xff&NF_DATA; //3fH

NF_RE=1;
NF_DATA=0xff;
NF_RE=0;
c=0xff&NF_DATA; //00H
NF_RE=1;
NF_CE=1;
/*NF_RE=0;
a=0x00ff&P2;
NF_RE=1;
P2=0xff;
NF_RE=0;
a=(P2*256)|a;
NF_RE=1;
NF_CE=1;
*/

-


-


-


-


-


-


-


-



本文更新与2021-01-24 14:23,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/561079.html

51单片机控制K9K8G08U0CNANDFlash读写程序的相关文章