?? w39.c
字號:
//---------------------------------------------------------------
//040片選信號使能
//---------------------------------------------------------------
void CE_Enable_040()
{
P2OUT &=~BIT0;
return;
}
//---------------------------------------------------------------
//040片選信號低電平
//---------------------------------------------------------------
void CE_Disable_040()
{
P2OUT |=BIT0;
return;
}
//---------------------------------------------------------------
//040輸出使能
//---------------------------------------------------------------
void OE_Enable_040()
{
P2OUT &=~BIT1;
return;
}
//---------------------------------------------------------------
//040輸出disable
//---------------------------------------------------------------
void OE_Disable_040()
{
P2OUT |=BIT1;
return;
}
//---------------------------------------------------------------
//040寫入使能
//---------------------------------------------------------------
void WE_Enable_040()
{
P2OUT &=~BIT2;
return;
}
//---------------------------------------------------------------
//040寫入disable
//---------------------------------------------------------------
void WE_Disable_040()
{
P2OUT |=BIT2;
return;
}
//---------------------------------------------------------------
//373片選使能
//---------------------------------------------------------------
void OE_Enable_373()
{
P3OUT &=~BIT1;
return;
}
//---------------------------------------------------------------
//373片選disable
//---------------------------------------------------------------
void OE_Disable_373()
{
P3OUT |=BIT1;
return;
}
//---------------------------------------------------------------
//373LE enable
//---------------------------------------------------------------
void lE_Enable_373()
{
P3OUT |=BIT2;
return;
}
//---------------------------------------------------------------
//373LEdisable
//---------------------------------------------------------------
void LE_Disable_373()
{
P3OUT &=~BIT2;
return;
}
//------------------------------------------------------------------------------
//data convert
//------------------------------------------------------------------------------
uchar addrcon(uchar address)
{
uchar i,j,nTemp;
nTemp=0;
for(i=8;i>0;i--)
{
j =address & 0x01;
if(j==1)
{
nTemp |=1<<(i-1);
}
address >>=1;
}
return nTemp;
}
//----------------------------
//write a byte to w39l040
//----------------------------
void writebyte040000(uchar nVal)
{
uchar i;
CE_Enable_040();
for(i=0; i<10; i++);
OE_Disable_040();
for(i=0; i<10; i++);
WE_Enable_040();
for(i=0; i<10; i++);
P5DIR =0XFF;
nVal =addrcon(nVal);
P5OUT =nVal;
for(i=0; i<10; i++);
CE_Disable_040();
for(i=0; i<10; i++);
WE_Disable_040();
}
void writeaddr(ulong nAddr)
{
uchar i;
i=nAddr>>8;
i=addrcon(i);
P4OUT =i;
OE_Enable_373();
lE_Enable_373();
for(i=0; i<10; i++);
LE_Disable_373();
P4OUT =nAddr&0xff;
if(nAddr &0x10000)
{
P2OUT |=BIT5;
}
else
{
P2OUT &=~BIT5;
}
if(nAddr &0x20000)
{
P2OUT |=BIT3;
}
else
{
P2OUT &=~BIT3;
}
if(nAddr &0x40000)
{
P2OUT |=BIT4;
}
else
{
P2OUT &=~BIT4;
}
}
//------------------------------------------------------------------------------
// W39L040寫程序
//------------------------------------------------------------------------------
void write040(ulong addr39,uchar nVal)
{
//write040pre();
writeaddr(addr39);
writebyte040000(nVal);
OE_Disable_373();
}
//------------------------------------------------------------------------------
// read byte from 040
//------------------------------------------------------------------------------
uchar read040(ulong addr39)
{
uchar test;
uchar i;
P5DIR =0;
writeaddr(addr39);
P2OUT &=~BIT5;
P2OUT &=~BIT4;
P2OUT &=~BIT3;
WE_Disable_040();
for(i=0; i<10; i++);
CE_Enable_040();
for(i=0; i<10; i++);
OE_Enable_040();
for(i=0; i<10; i++);
test =P5IN;
for(i=0; i<10; i++);
test =addrcon(test);
CE_Disable_040();
for(i=0; i<10; i++);
OE_Disable_040();
return test;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -