資源簡介
自己編寫的at24c512驅動程序 已調試通過

代碼片段和文件信息
/*******************************************************************************
**?文件名稱:eeprom.c
**?功????能:
**?修改日志:
********************************************************************************/
#include?“includes.h“
/*******************************************************************************
**?函數名稱:void?I2cInit(void)
**?功???能:?將總線拉高以釋放總線
**?修改日志:
*******************************************************************************/
void?I2cInit(void)
{
??SCL_DIR_OUTPUT;
??SDA_DIR_OUTPUT;
??SCL_OUT_HIGH;
??SDA_OUT_HIGH;
}
/*******************************************************************************
**?函數名稱:void?I2cStart(void)
**?功???能:?SCL在高電平期間,SDA一個下降沿啟動信號
**?修改日志:
*******************************************************************************/
void?I2cStart(void)
{
????SCL_DIR_OUTPUT;
????SDA_DIR_OUTPUT;
????SDA_OUT_HIGH;
????SCL_OUT_HIGH;???
????SDA_OUT_LOW;
}
/*******************************************************************************
**?函數名稱:void?I2cStop(void)
**?功???能:?SCL在高電平期間,SDA一個上升沿停止信號
**?修改日志:
*******************************************************************************/
void?I2cStop(void)
{
????SDA_DIR_OUTPUT;????
????SDA_OUT_LOW;
????SCL_OUT_HIGH;?
????SDA_OUT_HIGH;?
}
/*******************************************************************************
**?函數名稱:void?I2cAck_Eeprom()
**?功???能:?SCL在高電平期間,SDA被從設備拉為低電平表示應答?Eeprom應答
**?修改日志:
*******************************************************************************/
void?I2cAck_Eeprom(void)
{
????uchar?i?=0;
????SDA_DIR_INPUT;
????SCL_OUT_HIGH;?
????while(SDA_READ&&(i<255))??i++;??
????SCL_OUT_LOW;
}
/*******************************************************************************
**?函數名稱:void?I2cAck_Cpu()
**?功???能:?SCL在高電平期間,SDA輸出低電平表示應答?CPU應答
**?修改日志:
*******************************************************************************/
void?I2cAck_Cpu(void)
{
????SDA_DIR_OUTPUT;
????SDA_OUT_LOW;
????SCL_OUT_HIGH;
????SCL_OUT_LOW;
}
/*******************************************************************************
**?函數名稱:void?I2cNoAck_Cpu()
**?功???能:?
**?修改日志:
*******************************************************************************/
void?I2cNoAck_Cpu(void)
{
????SDA_DIR_OUTPUT;
????SDA_OUT_HIGH;
????SCL_OUT_HIGH;
????SCL_OUT_LOW;
}
/*******************************************************************************
**?函數名稱: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);
}
/*******************
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????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
- 上一篇:eeprom at24c512 驅動函數
- 下一篇:Qt 之實現 QQ系統表情窗口
評論
共有 條評論