?? spi93c46.h
字號(hào):
/*----------------------------------------------------------------------------
讀寫E2ROM函數(shù)
93c46 操作函數(shù)列表
ReadRom(unsigned char address) //讀 address 中的內(nèi)容
WriteRom(unsigned char address, int Word) //將 Word 寫入address 單元
Erase(unsigned char address) // 擦除某一單元
------------------------------------------------------------------------------*/
/*---------- 注意事項(xiàng)----------------------------------------------------------
如果IO口與別的器件共用,在讀、寫之前應(yīng)先將其復(fù)位為1.
例:
P1=0xff;
WriteRom(1,0x1234);
------------------------------------------------------------------------------*/
//#include "reg51.h"
//對(duì)從芯片而言
sbit SPI_CS =P1^0;
sbit SPI_SK =P1^1;
sbit SPI_DI =P3^0;
sbit SPI_DO =P3^1;
void start()
{ SPI_SK=0;
SPI_CS=1;
SPI_DI=1;
SPI_SK=1;
}
// SPI_SK上升沿?cái)?shù)據(jù)有效 _/-
SPI_WriteBits(unsigned char byte,unsigned char num_of_bits)
{
unsigned char count;
byte=byte<<(8-num_of_bits);
for(count=0;count<num_of_bits;count++)
{ SPI_SK=0;
byte<<=1;
SPI_DI=CY;
SPI_SK=1;
}
}
// SPI_SK上升沿?cái)?shù)據(jù)有效 _/-
unsigned char SPI_ReadByte()
{
unsigned char count,byte;
for(count=0;count<8;count++)
{ SPI_SK=0;
byte<<=1;
SPI_SK=1;
if(SPI_DO) byte++;
}
return(byte);
}
//93C46 查除/寫入允許
void EWEN()
{ //EWENChar=0x30;
start();
SPI_WriteBits(0x00,2);
SPI_WriteBits(0x30,6);
SPI_CS=0;
}
void EWDS()
{ //EWDSChar=0x00;
start();
SPI_WriteBits(0x00,2);
SPI_WriteBits(0x00,6);
SPI_CS=0;
}
unsigned int ReadRom(unsigned char address) //讀 address 中的內(nèi)容
{
unsigned int RomWord=0;
start();
SPI_WriteBits(0x02,2);
SPI_WriteBits(address,6);
RomWord=SPI_ReadByte();
RomWord=RomWord<<8;
RomWord=RomWord | SPI_ReadByte();
SPI_CS=0; /////////
return(RomWord);
}
void WriteRom(unsigned char address, unsigned int Word)
{
EWEN(); //93C46 查除/寫入允許
start(); //啟動(dòng) 93C46
SPI_WriteBits(0x01,2);
SPI_WriteBits(address,6);
//發(fā)送數(shù)據(jù)
SPI_WriteBits( (unsigned char)(Word>>8),8);
SPI_WriteBits( (unsigned char)(Word),8);
SPI_CS=0;
SPI_CS=1;
while(!SPI_DO);
SPI_CS=0;
EWDS();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -