欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
IIC總線24C02.H文件下載
[打印本頁]
作者:
daniu
時間:
2014-12-25 20:37
標題:
IIC總線24C02.H文件下載
本帖最后由 daniu 于 2014-12-25 20:51 編輯
24C02.H文件是iic總線存儲器的驅動 大家可以另存為到硬盤下載到電腦
#ifndef __24C02_H__
#define __24C02_H__
#define uchar unsigned char
#define uint unsigned int
sbit at24c04_scl=P3^2;//時鐘端口
sbit at24c04_sda=P3^3;//數據端口
unsigned char temp_1;//定義全局變量存放暫時值
unsigned char biao;
void delayic(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=0;j<255;j++);
}
}
void delayic_m(uchar t)
{
uchar i;
for(i=0;i<t;i++);
}
void sta(void)//啟動模塊
{
at24c04_sda=1;
at24c04_scl=1;
delayic_m(1);
at24c04_sda=0;
delayic_m(1);
at24c04_scl=0;
}
void stop(void)//停止模塊
{
at24c04_sda=0;
at24c04_scl=1;
delayic_m(1);
at24c04_sda=1;
delayic_m(1);
at24c04_scl=0;
}
uchar cack(void)//應答檢測模塊,有應答返回值是0
{
uchar i;
i=0;
at24c04_sda=1;
at24c04_scl=1;
if(at24c04_sda==1)i=1;
at24c04_scl=0;
return i;
}
void mnack(void)//發非應答模塊
{
at24c04_sda=1;
at24c04_scl=1;
delayic_m(1);
at24c04_scl=0;
at24c04_sda=0;
}
void wrbyt(uchar date_w24)//寫入一個字節
{
uchar i,j;
j=0x80;
for(i=0;i<8;i++)
{
if((date_w24&j)==0)
{
at24c04_sda=0;
at24c04_scl=1;
delayic_m(1);
at24c04_scl=0;
}
else
{
at24c04_sda=1;
at24c04_scl=1;
delayic_m(1);
at24c04_scl=0;
at24c04_sda=0;
}
j=j>>1;
}
}
uchar rdbyt(void)//讀出一個字節
{
uchar i,j;
j=0x00;
for(i=0;i<8;i++)
{
at24c04_sda=1;
at24c04_scl=1;
if(at24c04_sda==0)
{
j=j&0xfe;
}
else
{
j=j|0x01;
}
if(i!=7)j=j<<1;
at24c04_scl=0;
}
return j;
}
void WRITE_IIC(uchar addr_ic,uchar data_ic)//寫入數據操作
{
for(biao=0;biao<1;biao++)
{
sta();//啟動
wrbyt(0xa0);//寫入,寫指令
if(cack()!=0)
break;
wrbyt(addr_ic);//寫入要寫地址
if(cack()!=0)
break;
wrbyt(data_ic);//寫設定的值
if(cack()!=0)
break;
stop();
delayic(20);
delayic(20);//間隔
}
}
uchar READ_IIC(uchar addr_ic)//讀取數據操作
{
uchar mid_ic;//中間變量
for(biao=0;biao<1;biao++)
{
sta();//啟動
wrbyt(0xa0);//寫入,寫指令,寫指令是0xa0(片選地址線全部接地)
if(cack()!=0)//檢測應答,正常情況下返回值都是0,忙時除外
break;
wrbyt(addr_ic);//寫入要讀地址
if(cack()!=0)//檢測應答
break;
sta();//單字節讀取需要重新啟動
wrbyt(0xa1);//寫入,讀命令,讀指令是0xa1(片選地址線全部接地)
if(cack()!=0)//檢測應答
break;
mid_ic=rdbyt();//將讀出的數據存放在中間變量中
mnack();//發非應答信號
stop();//停止IC讀寫
delayic(20);
delayic(20);//IC的重新啟動讀寫要間隔較長的時間
}
return mid_ic;
}
#endif
復制代碼
作者:
wrty0
時間:
2016-1-17 05:36
感覺不錯
作者:
紅塵有你
時間:
2016-1-18 15:37
本帖最后由 紅塵有你 于 2016-1-18 15:40 編輯
for(biao=0;biao<1;biao++)求這個biao的含義
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1