首页资源分类嵌入式开发单片机 > 24c16读写程序

24c16读写程序

已有 458949个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

上传者其他资源

文档信息举报收藏

标    签: 24c16

分    享:

文档简介

24c16的都写程序

文档预览

/*用于检测 i2c 的效果,将键盘输入的值存入 i2c 内,然后通过 read 读出并显示出来,显示和 键盘扫描就用自己的。只要你的键盘和显示 1 程序没问题。该程序已经通过测试*/ #include sbit SCL=P2^2; sbit SDA=P2^1; //I2C 时钟和数据线 void s24(void) { SCL=1; delay1c(8); SDA=0; delay1c(8); SCL=0; delay1c(8); } //起始函数 void p24(void) //停止函数 { SDA=0; delay1c(8); SCL=1; delay1c(8); SDA=1; delay1c(8); SCL=0; delay1c(8); } unsigned char rd24(void) //从 24c16 读一字节数据 { unsigned char i=8,j; for(i=0;i<8;i++) { j<<=1; SCL=1; delay1c(8); if(SDA) j |= 1; SCL=0; delay1c(8); } SDA=1; delay1c(8); return(j); } void wd24(unsigned char ch) //向 24c16 写一字节数据 { unsigned char i=8; for(i=0;i<8;i++) { if(ch & 0x80) SDA=1; else SDA=0; ch=(ch<<1); SCL = 1; delay1c(8); SCL=0; delay1c(8); } SDA=1; delay1c(8); SCL = 1 ; delay1c(8); SCL=0; delay1c(8); } unsigned char read(unsigned int address) { unsigned char dd; s24(); wd24(0xa0); //开始条件 //写器件地址(写命令) wd24(address); //写数据地址 s24(); wd24(0xa1); dd=rd24(); //开始条件 //写器件地址(读命令) //读 一字节 p24(); //停止条件 return(dd); } void write(unsigned int address,unsigned char dd) { s24(); wd24(0xa0); //开始条件 //写器件地址; wd24(address); //写数据地址 wd24(dd); p24(); //写 dd 数据 //停止条件; } //****************************************************************************// void main(void) { unsigned char i=0,ad1=10,dt1; LEDBUF[0]=read(ad1); LEDBUF[1]=read(ad1+1); LEDBUF[2]=read(ad1+2); LEDBUF[3]=read(ad1+3); display(4); //显示 while(1){ if(testkey()) { dt1=getkey(); write(ad1+i,dt1); delay1(100); LEDBUF[i]=read(ad1+i); i++; display(4); while(i==4) {i=0;} } } }

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。