-
大小: 2KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-24
- 語言: 其他
- 標(biāo)簽: at24c512??驅(qū)動(dòng)??
資源簡介
自己編寫的at24c512驅(qū)動(dòng)程序 已調(diào)試通過

代碼片段和文件信息
/*******************************************************************************
**?文件名稱:eeprom.c
**?功????能:
**?修改日志:
********************************************************************************/
#include?“includes.h“
/*******************************************************************************
**?函數(shù)名稱:void?I2cInit(void)
**?功???能:?將總線拉高以釋放總線
**?修改日志:
*******************************************************************************/
void?I2cInit(void)
{
??SCL_DIR_OUTPUT;
??SDA_DIR_OUTPUT;
??SCL_OUT_HIGH;
??SDA_OUT_HIGH;
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cStart(void)
**?功???能:?SCL在高電平期間,SDA一個(gè)下降沿啟動(dòng)信號(hào)
**?修改日志:
*******************************************************************************/
void?I2cStart(void)
{
????SCL_DIR_OUTPUT;
????SDA_DIR_OUTPUT;
????SDA_OUT_HIGH;
????SCL_OUT_HIGH;???
????SDA_OUT_LOW;
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cStop(void)
**?功???能:?SCL在高電平期間,SDA一個(gè)上升沿停止信號(hào)
**?修改日志:
*******************************************************************************/
void?I2cStop(void)
{
????SDA_DIR_OUTPUT;????
????SDA_OUT_LOW;
????SCL_OUT_HIGH;?
????SDA_OUT_HIGH;?
}
/*******************************************************************************
**?函數(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;?
????while(SDA_READ&&(i<255))??i++;??
????SCL_OUT_LOW;
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cAck_Cpu()
**?功???能:?SCL在高電平期間,SDA輸出低電平表示應(yīng)答?CPU應(yīng)答
**?修改日志:
*******************************************************************************/
void?I2cAck_Cpu(void)
{
????SDA_DIR_OUTPUT;
????SDA_OUT_LOW;
????SCL_OUT_HIGH;
????SCL_OUT_LOW;
}
/*******************************************************************************
**?函數(shù)名稱:void?I2cNoAck_Cpu()
**?功???能:?
**?修改日志:
*******************************************************************************/
void?I2cNoAck_Cpu(void)
{
????SDA_DIR_OUTPUT;
????SDA_OUT_HIGH;
????SCL_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(1);
?????}
????SCL_OUT_LOW;
????delay_us(1);
????SDA_OUT_HIGH;
????delay_us(1);
}
/*******************
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????7976??2014-03-14?16:34??eeprom\eeprom.c
?????文件???????1629??2014-03-13?15:43??eeprom\eeprom.h
?????目錄??????????0??2014-04-09?11:52??eeprom
-----------?---------??----------?-----??----
?????????????????9605????????????????????3
評論
共有 條評論