main.c
#include
#include
#include
<24c02.h>
char code music=
;unsigned
char data buffer[
100]
;//用於快取從24c02中讀取的資料。
void
main()
p1=0x00
;//到此為止,向24c02中寫入資料的過程均已結束。下面的程式為附加的。
//將已寫入的資料再讀出,送到p1口,通過觀察led的亮滅來檢驗寫入的資料是否正確。
while
(m!=add)
while
(j!=add)
while(1
);}//void main()
//;// unsigned char tube_num;
// unsigned char i=0;
// while(1)
// // key_num[i]=tube_num;
// i++;
// }
// tube_light(key_num);
// }
//}
i2c.h
#ifndef _i2c_h
#define _i2c_h
#include
void
nop();
void
delay_i2c
(unsigned
int m)
;void
init()
;void
start()
;void
stop()
;void
writebyte
(unsigned
char j)
;unsigned
char
readbyte()
;void
clock()
;#endif
i2c.c
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit sda=p2^0;
//io口定義
sbit scl=p2^1;
void
nop(
)/24c02讀寫驅動程式
void
delay_i2c
(unsigned
int m)
void
init()
//24c02初始化子程式
void
start()
//啟動i2c匯流排
void
stop()
//停止i2c匯流排
void
writebyte
(unsigned
char j)
//寫乙個位元組
scl=0;
//發完乙個位元組,傳送ack訊號
nop();
sda=1;
nop();
}unsigned
char
readbyte()
//讀乙個位元組
nop();
return
(k);
}void
clock()
//i2c匯流排時鐘
2402.h
#ifndef _24c02_h
#define _24c02_h
#include
#include
unsigned
char
read24c02
(unsigned
char address)
;void
write24c02
(unsigned
char address,
unsigned
char info)
;#endif
2402.c
#include
<24c02.h>
從24c02的位址address中讀取乙個位元組資料/
unsigned
char
read24c02
(unsigned
char address)
//向24c02的address位址中寫入一位元組資料info/
void
write24c02
(unsigned
char address,
unsigned
char info)
E2PROM晶元24C02的讀寫程式
一 實驗目的 給24c02的內部ram寫入一組資料0xb0,資料從24c02內部ram的0x01開始存放。然後再把這組資料讀出來,來點亮led燈,檢驗寫入和讀出是否正確。二 理論知識準備 下面我們先介紹一下i2c匯流排的相關理論知識。一 i2c匯流排概念 i2c匯流排是一種雙向二線制匯流排,它的結構...
E2PROM的I2C通訊(基於24LC01B)
起始位 時鐘線和資料線為都為高電平時空閒狀態。當時鐘線為高電平,資料線狀態由高 低時,為起始位。停止位 與起始位相反,時鐘線保持電平高狀態,資料線電平由低 高,為停止位。有效資料 起始位和停止位之間傳送資料。時鐘線低電平時,資料線可以改變,時鐘線高電平時,資料線的資料保持穩定。在此期間每個時鐘週期傳...
i2c連續讀寫間隔 I2C匯流排協議分析
i2c匯流排是由philips公司開發的一種簡單 雙向二線制同步序列匯流排。它只需要兩根線即可在連線於匯流排上的裝置之間通訊。i2c的兩根線sda 序列資料線 和scl 序列時鐘線 都是雙向i o線,介面電路為開漏輸出,需通過上拉電阻接電源vcc,當匯流排空閒時,兩根線都是高電平。常見的硬體結構圖 ...