欢迎来到天天文库
浏览记录
ID:59256863
大小:334.50 KB
页数:5页
时间:2020-09-08
《AT24C02外部I2C总线EEPROM实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、AT24C02外部I2C总线EEPROM实验姓名:xxx学号:xxxxxxxxx班级xxxx1、实现功能实现功能:通过通信协议使数码管显示字符。实验现象:程序下载后可以看到数码管显示“CorrEct"表示测试正确,如果显示”Error“表示数据错误。2、硬件介绍该项目有以下模块:(1)、单片机系统(2)、数码管模块3、软件介绍函数声明HC595_InitHC595_Init等待上电写入数据延时100ms读取数据开始显示开始TestData[cnt]!=DataBuf[cnt]ToDisplayErrorToDisplayCorrectLED_DisplayLE
2、D_Display软件流程图如下:是否关键代码:/***********************************************函数名称:AT24C02_WritePage功能:AT24C02页写函数入口参数:pbuf:指向数据指针返回值:无备注:无************************************************/voidAT24C02_WritePage(unsignedchar*pbuf){unsignedchari;AT24C02_Start();//起始信号AT24C02_SendByte(AT24C02
3、_ADD_WR);//发送设备地址+写信号AT24C02_SendByte(TEST_ADD);//发送存储单元地址for(i=0;i4、****************/voidAT24C02_ReadPage(unsignedchar*pBuf){unsignedchari;AT24C02_Start();//起始信号AT24C02_SendByte(AT24C02_ADD_WR);//发送设备地址+写信号AT24C02_SendByte(TEST_ADD);//发送存储单元地址AT24C02_Start();//起始信号AT24C02_SendByte(AT24C02_ADD_RD);//发送设备地址+读信号for(i=0;i5、AT24C02_RecvByte();//读出一个字节数据if(i==(PAGE_SIZE-1))//I2C协议接收最后一个数据不进行应答{//详细参考I2C协议规定AT24C02_SendACK(NOACK);//最后一个数据不需要应答}else{AT24C02_SendACK(ACK);//应答}}AT24C02_Stop();//停止信号}4、调试通过下载软件,将程序下载后,就可以看到数码管显示“CorrEct"表示测试正确,如果显示”Error“表示数据错误,该项目显示结果如上,所以数据正确。
4、****************/voidAT24C02_ReadPage(unsignedchar*pBuf){unsignedchari;AT24C02_Start();//起始信号AT24C02_SendByte(AT24C02_ADD_WR);//发送设备地址+写信号AT24C02_SendByte(TEST_ADD);//发送存储单元地址AT24C02_Start();//起始信号AT24C02_SendByte(AT24C02_ADD_RD);//发送设备地址+读信号for(i=0;i5、AT24C02_RecvByte();//读出一个字节数据if(i==(PAGE_SIZE-1))//I2C协议接收最后一个数据不进行应答{//详细参考I2C协议规定AT24C02_SendACK(NOACK);//最后一个数据不需要应答}else{AT24C02_SendACK(ACK);//应答}}AT24C02_Stop();//停止信号}4、调试通过下载软件,将程序下载后,就可以看到数码管显示“CorrEct"表示测试正确,如果显示”Error“表示数据错误,该项目显示结果如上,所以数据正确。
5、AT24C02_RecvByte();//读出一个字节数据if(i==(PAGE_SIZE-1))//I2C协议接收最后一个数据不进行应答{//详细参考I2C协议规定AT24C02_SendACK(NOACK);//最后一个数据不需要应答}else{AT24C02_SendACK(ACK);//应答}}AT24C02_Stop();//停止信号}4、调试通过下载软件,将程序下载后,就可以看到数码管显示“CorrEct"表示测试正确,如果显示”Error“表示数据错误,该项目显示结果如上,所以数据正确。
此文档下载收益归作者所有