谁有单片机io口模拟i2c读写AT24C256的程序?

来源:百度知道 编辑:UC知道 时间:2024/06/30 01:38:13
我自己写了一个,是修改别人的,但就是不管写什么,读出来一个字节都是255,郁闷啊!有调好的程序发给我,谢了。我的晶振是24M的。单片机是c8051f0202。
cuikaimin@yahoo.com.cn

你这个单片机是带I2C接口的
那个SMBus就是,我用这个系列的单片机写过,模拟的还没有借口直接来的好。 我的空间里面有我调好的一篇247519442

你说的全部是0xff也是正常的,因为外部存储一般都是高电平为空,也就是说你的数据没有写进去

我给你一个模拟的看看
#include<reg51.h>
#include <Intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit pcf8563_scl=P0^5;//时钟频率
sbit pcf8563_sda=P0^4;//串行数据传输脚

bit busy=0;

uchar sg;//时高位
uchar sd;//时低位

uchar fg;//分高位
uchar fd;//分低位

uchar mg;//秒高位
uchar md;//秒低位

uchar hou=0;
uchar min=0;
uchar sec=0;

uchar subadd;//地址
uchar dat;//数据

uchar number;

void start_pcf8563();//开始数据
void send_pcf8563_byte();//发送

void stop_pcf8563();//结束数据
void receive_pcf8563_byte();//接收
void spit_time();//分别计算时、分、秒的各位数字

void spit_time()//分别计算时、分、秒的各位数字
{
sg=(int)hou/10;
sd=(int)hou%10;

fg=(int)min/10;
fd=(i