91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-19
  • 語言: 其他
  • 標簽:

資源簡介

有別于常規24C02的無限讀,FM24C04讀寫都是有限次,而且很多資料的24C04我發現都無法用上,因此自己寫了一個FM24C04驅動程序,并帶有main測試程序。

資源截圖

代碼片段和文件信息

/*********************************************************************************
?*?@file?? :?I2C.c
?*?@author :?eruca520@163.com
?*?@version?:?V0.1
?*?@date :?2016-09-28
?*?@brief :
*********************************************************************************/
#define??_FM24C04_C?

//FM24C04?存儲空間為?4K?bits?=?512?byte

#include?“config.h“
#include?“FM24C04.h“
#include?

uint8_t?ram_acc?=?0;?//?發送命令、地址的?緩沖



//?短暫延時,用于IIC信號保持
void?NOP1(void)
{
_nop_();
}

//?延時程序
void?delay_ms(uint16_t?cnt)?
{
xdata?uint16_t?ms?=?360;

while(cnt--)
??{
while(ms--);
ms?=?360;
}
}


//?IIC總線的?開始態
//?scl?高電平時,sda的下降沿
//?最后?scl?也拉低
void?start_iic()?
{
NOP1();?
??NOP1();
sda_iic?=?1;
scl_iic?=?1;
??NOP1();?
??NOP1();?
??NOP1();
??NOP1();?
??NOP1();
sda_iic?=?0;
NOP1();?
??NOP1();
scl_iic?=?0;
NOP1();
}

//?IIC總線的?停止態
//?scl?高電平時,sda?的上升沿
//?數據寫操作,最后是要延時?5ms的
void?stop_iic(void)?
{
sda_iic?=?0;
scl_iic?=?1;
NOP1();?
??NOP1();?
??NOP1();
sda_iic?=?1;
NOP1();?
??NOP1();
scl_iic?=?1;
delay_ms(5);
}

//?讀命令的?停止態
//?IO與上相同,最后無延時
void?rstop_iic(void)?
{
sda_iic?=?0;
scl_iic?=?1;
NOP1();?
??NOP1();?
??NOP1();
sda_iic?=?1;
NOP1();?
??NOP1();
scl_iic?=?1;
}

//?IIC?寫?應答操作
//?sda?低電平,scl?上升再上降
void?ack_iic(void)?
{
scl_iic?=?0;
sda_iic?=?0;
NOP1();?
??NOP1();
scl_iic?=?1;
sda_iic?=?0;
NOP1();?
??NOP1();
scl_iic?=?0;
}

//?IIC?讀?應答
void?rack_iic(void)
{
xdata?uint16_t?temp?=?0;
??
scl_iic?=?0;
sda_iic?=?1;
NOP1();?
??NOP1();
scl_iic?=?1;
sda_iic?=?1;
while(sda_iic?==?1?&&?temp? { ??
temp++;
}
NOP1();?
??NOP1();
scl_iic?=?0;
}

//?寫?應答
void?wack_iic(void)
{
xdata?uint16_t?temp?=?0;
??
scl_iic?=?0;
sda_iic?=?1;
NOP1();?
??NOP1();
scl_iic?=?1;
sda_iic?=?1;
while(sda_iic?==?1?&&?temp? { ??
temp++;
}
NOP1();?
??NOP1();
scl_iic?=?0;
}

//?IIC?無?應答
void?noack_iic(void)?
{
scl_iic?=?0;
sda_iic?=?1;??
NOP1();?
??NOP1();??
scl_iic?=?1;
sda_iic?=?1;
NOP1();?
??NOP1();??
scl_iic?=?0;
}

//?發送一字節?數據
void?I2C_WriteByte(void)?
{???
uint8_t?n?=?8;
??
do?
??{
scl_iic?=?0;
NOP1();
????NOP1();
if((ram_acc&0x80)==0x80)
sda_iic?=?1;
else
sda_iic?=?0;
ram_acc?=?(ram_acc<<1);
n--;
NOP1();
????NOP1();
scl_iic?=?1;
NOP1();
????NOP1();
????NOP1();
}while(n);
scl_iic??=?0;
}

//?讀一字節數據
void?I2C_ReadByte(void)?
{
uint8_t?i?=?8;
??
sda_iic?=?1;
do?{
ram_acc?=?(ram_acc<<1);
scl_iic?=?0;
NOP1();
????NOP1();
????NOP1();
scl_iic?=?1;
NOP1();
if(sda_iic?==?1)
ram_acc?=?(ram_acc?|?0x01);
else
ram_acc?=?(ram_acc?&?0xfe);
i--;
NOP1();
}while(i);
scl_iic?=?0;
}




//?從?指定地址,讀出?1字節?數據
/**
??*?@brief? 從指定扇區的地址,讀出1字節數據
??*?@param? pageblock?-?指定扇區
??*?????????addr?-?指定扇區的地址
??*?@retval?None
??*/
uint8_t?E2ReadByte(uint8_t?pageblock?uint8_

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7487??2018-07-05?11:17??FM24C04\FM24C04.c

?????文件???????2134??2018-07-05?11:18??FM24C04\FM24C04.h

?????文件???????2331??2018-07-05?12:36??FM24C04\main.c

?????目錄??????????0??2018-07-05?11:20??FM24C04

-----------?---------??----------?-----??----

????????????????11952????????????????????4


評論

共有 條評論

相關資源