2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc

上传人:文库蛋蛋多 文档编号:2385531 上传时间:2023-02-17 格式:DOC 页数:4 大小:17.50KB
返回 下载 相关 举报
2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc_第1页
第1页 / 共4页
2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc_第2页
第2页 / 共4页
2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc_第3页
第3页 / 共4页
2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc》由会员分享,可在线阅读,更多相关《2831.CX1多功能家居控制系统及应用设计 AT24C08读程序.doc(4页珍藏版)》请在三一办公上搜索。

1、/DataBuff为读写数据输入输出缓冲区的首址/ByteQuantity 为要读写数据的字节数量/Address 为EEPROM的片内地址/ControlByte 为EEPROM的控制字节,具体形式为 /表示读操作,R/W=0为写操作,A2,A1,A0为EEPROM的页选或片选地址;/EepromType为枚举变量,需为M2401至M24256中的一种,分别对应24C01至24C256;/函数返回值为一个位变量,若返回1表示此次操作失效,0表示操作成功;/ERRORCOUNT为允许最大次数,若出现ERRORCOUNT次操作失效后,则函数中止操作,并返回1/SDA和SCL由用户自定义,这里暂定

2、义为P00和P01;/其余的用户不用管,只要把只子程序放在你的程序中并调用它就可以了;/*/bit RW24XX(unsigned char *DataBuff,unsigned char ByteQuantity,unsigned int Address, unsigned char ControlByte,enum eepromtype EepromType)void Delay(unsigned char DelayCount);void IICStart(void);void IICStop(void);bit IICRecAck(void);void IICNoAck(void);v

3、oid IICAck(void);unsigned char IICReceiveByte(void);void IICSendByte(unsigned char sendbyte);unsigned char data j,i=ERRORCOUNT;while(i-) IICStart(); IICSendByte(ControlByte&0xfe); if(IICRecAck() continue; if(EepromTypeM2416) IICSendByte(unsigned char)(Address8); if(IICRecAck() continue; IICSendByte(

4、unsigned char)Address); if(IICRecAck() continue; if(!(ControlByte&0x01) j=ByteQuantity; errorflag=0; /*clr errorflag while(j-) IICSendByte(*DataBuff+); if(!IICRecAck() continue; errorflag=1; break; if(errorflag=1) continue; break; else IICStart(); IICSendByte(ControlByte); if(IICRecAck() continue; w

5、hile(-ByteQuantity) *DataBuff+=IICReceiveByte(); IICAck(); *DataBuff=IICReceiveByte(); /read last byte data IICNoAck(); errorflag=0; break; IICStop();if(!(ControlByte&0x01) Delay(255); Delay(255); Delay(255); Delay(255); /*以下是对IIC总线的操作子程序*/*启动总线*/void IICStart(void)SCL=0; /SDA=1;SCL=1;_nop_();_nop_(

6、);_nop_();SDA=0;_nop_();_nop_();_nop_();_nop_();SCL=0;SDA=1; /*停止IIC总线*/void IICStop(void)SCL=0;SDA=0;SCL=1;_nop_();_nop_();_nop_();SDA=1;_nop_();_nop_();_nop_();SCL=0; /*从IIC总线上读数据子程序*/unsigned char IICReceiveByte(void)register receivebyte,i=8;SCL=0;while(i-) SCL=1; receivebyte=(receivebyte1)|SDA; SCL=0; return(receivebyte);/*一个简单延时程序*/(选用液晶显示廷时程序)void Delay(unsigned char DelayCount)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号