資源簡介
24C08驅動程
代碼片段和文件信息
//I2C總線與2404芯片實驗主要時序程序
/*本程序以P3.7位sda,以P3.6為scl,所用芯片為AT2404*/
#include
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
void?delay1ms(uint?k);??//延時程序.........1
void?delay5us(void);//.....................2
void?Start(void);???????//啟動程序.........3
void?Stop(void);???//停止程序..............4
void?Ack(void);????//應答信號程序..........5
void?Send(uchar?Data);//發送字節程序.......6
uchar?Read(void);?//讀取1字節程序..........7
void?WriteToRom(uchar?Data[]uchar?Adduchar?Num);//把Data[]Num個數發送到以Add為起始地址中...8
void?ReadFromRom(uchar?Data[]uchar?Adduchar?Num);//讀以Add為起始地址的Num個數讀取到數組Data[]中..9
sbit?sda=P3^7;
sbit?scl=P3^6;
/////////
void?main()
{?uint?i;
?uchar?a[8]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};
//uchar?a[8]={0x110x220x330x440x550x660x770x88};
?uchar?b[]={00000000};
?WriteToRom(a08);//寫入數據
?delay1ms(100);//必須加延時
?ReadFromRom(b08);//讀出
?while(1)
?{for(i=0;i<8;i++){P0=b[i];
???????delay1ms(400);
?????????}
?}
}
//////////////
void?delay1ms(uint?k)???//延時程序
{k=k*125;
?while(--k);
}
///////////////
void?delay5us(void)//5us延時
{_nop_();_nop_();
?_nop_();_nop_();
?}
?////////////////
void?Start(void)//啟動程序
{sda=1;
?scl=1;delay5us();//1到0
?sda=0;delay5us();
?scl=0;
}
v
- 上一篇:尚硅谷最新大數據培訓視頻
- 下一篇:stdint.h
評論
共有 條評論