-
大小: 2KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-24
- 語(yǔ)言: 其他
- 標(biāo)簽: eeprom??at24c512??驅(qū)動(dòng)函數(shù)??
資源簡(jiǎn)介
自己寫的eeprom驅(qū)動(dòng)函數(shù)。包含了字節(jié)寫,讀,頁(yè)寫,多頁(yè)寫,連續(xù)讀函數(shù)。已調(diào)試通過(guò) 只要更改宏定義即可使用

代碼片段和文件信息
/*******************************************************************************
**?文件名稱:eeprom.c
**?功????能:
**?修改日志:
********************************************************************************/
#include?“includes.h“
/*******************************************************************************
**?函數(shù)名稱:void?I2cInit(void)
**?功???能:?將總線拉高以釋放總線
**?修改日志:
*******************************************************************************/
void?I2cInit(void)
{
??SCL_DIR_OUTPUT;
??SDA_DIR_OUTPUT;
??SCL_OUT_HIGH;
??delay_us(10);
??SDA_OUT_HIGH;
??delay_us(10);
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cStart(void)
**?功???能:?SCL在高電平期間,SDA一個(gè)下降沿啟動(dòng)信號(hào)
**?修改日志:
*******************************************************************************/
void?I2cStart(void)
{
????SCL_DIR_OUTPUT;
????SDA_DIR_OUTPUT;
????SDA_OUT_HIGH;
????delay_us(10);
????SCL_OUT_HIGH;???
????delay_us(10);
????SDA_OUT_LOW;
????delay_us(10);
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cStop(void)
**?功???能:?SCL在高電平期間,SDA一個(gè)上升沿停止信號(hào)
**?修改日志:
*******************************************************************************/
void?I2cStop(void)
{
????SDA_DIR_OUTPUT;????
????SDA_OUT_LOW;
????delay_us(10);
????SCL_OUT_HIGH;?
????delay_us(10);
????SDA_OUT_HIGH;?
????delay_us(10);
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cAck_Eeprom()
**?功???能:?SCL在高電平期間,SDA被從設(shè)備拉為低電平表示應(yīng)答?Eeprom應(yīng)答
**?修改日志:
*******************************************************************************/
void?I2cAck_Eeprom(void)
{
????uchar?i?=0;
????SDA_DIR_INPUT;
????SCL_OUT_HIGH;?
????delay_us(10);
????while(SDA_READ&&(i<255))??i++;??
????SCL_OUT_LOW;
????delay_us(10);
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cAck_Cpu()
**?功???能:?SCL在高電平期間,SDA輸出低電平表示應(yīng)答?CPU應(yīng)答
**?修改日志:
*******************************************************************************/
void?I2cAck_Cpu(void)
{
????SCL_OUT_HIGH;
????delay_us(10);
????SDA_DIR_OUTPUT;
????SDA_OUT_LOW;
????delay_us(10);
????SDA_OUT_HIGH;
????SCL_OUT_LOW;
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cWriteByte(unsigned?char?wbyte)
**?功???能:?
**?修改日志:
*******************************************************************************/
void?I2cWriteByte(unsigned?char?wbyte)
{
????SDA_DIR_OUTPUT;???
????for(unsigned?char?i=0;?i<8;?i++){
????????SCL_OUT_LOW;
????????delay_us(10);
????????if(wbyte?&?0x80){
??????????SDA_OUT_HIGH;
????????}
????????else{
??????????SDA_OUT_LOW;
????????}
?????????wbyte?<<=1;
?????????SCL_OUT_HIGH;
?????????delay_us(10);
?????}
????SCL_OUT_LOW;
????delay_us(10);
????SDA_OUT_HIGH;
????delay_us(10);
}
/*******************************************************************************
**?函數(shù)名稱:unsigned?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????7820??2013-12-12?11:21??eeprom.c
?????文件???????1607??2013-12-12?11:17??eeprom.h
-----------?---------??----------?-----??----
?????????????????9427????????????????????2
評(píng)論
共有 條評(píng)論