?? 24lc256.h
字號:
//---------------------------------------
// 24LC256 I2C EEPROM driver
// KEIL C51 v7.5
// www.GetMicro.com
//---------------------------------------
char edata;
#define ACK 1
#define NO_ACK 0
#ifndef _24LC256_H
#define _24LC256_H
extern void _nop_ (void);
extern bit _testbit_ (bit);
extern unsigned char _cror_ (unsigned char, unsigned char);
extern unsigned int _iror_ (unsigned int, unsigned char);
extern unsigned long _lror_ (unsigned long, unsigned char);
extern unsigned char _crol_ (unsigned char, unsigned char);
extern unsigned int _irol_ (unsigned int, unsigned char);
extern unsigned long _lrol_ (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
extern void _push_ (unsigned char _sfr);
extern void _pop_ (unsigned char _sfr);
extern unsigned char ReadBYTE(unsigned int Addr);
extern void WriteBYTE(unsigned int Addr,unsigned char Data);
extern void delay();
unsigned char i;
//sbit SDA = P2^7;//P2^3; // connect to SDA pin (Data)
//sbit SCL = P2^6;//P2^2; // connect to SCL pin (Clock)
sbit SDA = P3^2;
sbit SCL = P3^1;
//-------------------------------
// start I2C
//-------------------------------
void dly(unsigned int j){
unsigned int i=0;
for(;i<j;i++);
}
void Start(void)
{
SDA = 1;
SCL = 1;
_nop_();_nop_();
SDA = 0;
_nop_();_nop_();
SCL = 0;
_nop_();_nop_();
}
//-------------------------------
// stop I2C
//-------------------------------
void Stop(void)
{
SDA = 0;
_nop_();_nop_();
SCL = 1;
_nop_();_nop_();
SDA = 1;
}
//-------------------------------
// Write I2C
//-------------------------------
void WriteI2C(unsigned char Data)
{
for (i=0;i<8;i++)
{
SDA = (Data & 0x80) ? 1:0;
SCL=1;SCL=0;
Data<<=1;
}
SCL = 1;
_nop_();_nop_();
SCL = 0;
}
//-------------------------------
// Read I2C
//-------------------------------
unsigned char ReadI2C(bit ACK_Bit)
{
unsigned char Data=0;
SDA = 1;
for (i=0;i<8;i++)
{
SCL = 1;
Data<<= 1;
Data = (Data | SDA);
SCL = 0;
_nop_();
}
if (ACK_Bit == 1)
SDA = 0; // Send ACK
else
SDA = 1; // Send NO ACK
_nop_();_nop_();
SCL = 1;
_nop_();_nop_();
SCL = 0;
return Data;
}
//-------------------------------
// Read 1 byte form I2C
//-------------------------------
unsigned char ReadBYTE(unsigned int Addr)
{
unsigned char Data;
Start();
WriteI2C(0xA0);
WriteI2C(Addr);
Start();
WriteI2C(0xA1);
Data = ReadI2C(NO_ACK);
Stop();
return(Data);
}
//-------------------------------
// Write 1 byte to I2C
//-------------------------------
void WriteBYTE(unsigned int Addr,unsigned char Data)
{
Start();
WriteI2C(0xA0);
WriteI2C(Addr); // send address low
WriteI2C(Data);
Stop();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -