打印

24C08的读写

[复制链接]
8938|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
robotics30|  楼主 | 2011-8-1 14:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,
24C08的读写程序如下,其中地址是uchar型的,取值范围是0-256,但24C08的容量是1024个BYTE,我试了一下,用write_add(896,78),然后再read_add(896),读出的数字是78,但让我疑惑的是,地址896早就超出了uchar的范围了啊.这是什么原因呢?

void write_add(uchar address,uchar date)
{
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}
uchar read_add(uchar address)
{
uchar date;
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
start();
write_byte(0xa1);
respons();
date=read_byte();
stop();
return date;
}

相关帖子

沙发
ayb_ice| | 2011-8-1 14:54 | 只看该作者
读写都是字节地址,虽不标准,但其实是同一个地址

使用特权

评论回复
板凳
liang7143| | 2011-8-1 15:11 | 只看该作者
2l正解

使用特权

评论回复
地板
lixiaoxu2meng| | 2011-8-1 15:18 | 只看该作者
本帖最后由 lixiaoxu2meng 于 2011-8-1 15:22 编辑

楼主的 将896 赋给 一个八位字符 假如 char  data ;
data= 0x0380;896对应的16进制数位0x0380 ;
转换成二进制 data= 110000000

溢出的部分去掉
data= 10000000
所以data= 0x80
实际楼主是对 地址0x80操作 所以不会出错

使用特权

评论回复
5
ayb_ice| | 2011-8-1 17:05 | 只看该作者
只发送一个字节地址,相当于只改写了高字节地址寄存器,而低地址寄存器不变

使用特权

评论回复
6
robotics30|  楼主 | 2011-8-1 21:10 | 只看该作者
楼主的 将896 赋给 一个八位字符 假如 char  data ;
data= 0x0380;896对应的16进制数位0x0380 ;
转换成二进制 data= 110000000

溢出的部分去掉
data= 10000000
所以data= 0x80
实际楼主是对 地址0x80操作 所以 ...
lixiaoxu2meng 发表于 2011-8-1 15:18

恩,是的,那么对于0XFF以后的地址,如何读写啊?

使用特权

评论回复
7
robotics30|  楼主 | 2011-8-1 21:27 | 只看该作者
楼主的 将896 赋给 一个八位字符 假如 char  data ;
data= 0x0380;896对应的16进制数位0x0380 ;
转换成二进制 data= 110000000

溢出的部分去掉
data= 10000000
所以data= 0x80
实际楼主是对 地址0x80操作 所以 ...
lixiaoxu2meng 发表于 2011-8-1 15:18


我做了试验,地址0X80的内容和地址896的内容完全一样.
那么24C08中,只有地址0X00---0XFF空间可以使用,从地址0XFF--0X400的EEPROM空间该如何读写呢?

使用特权

评论回复
8
ningling_21| | 2011-8-1 22:02 | 只看该作者
好像要改变器件地址,例如:把0xa0(第0页) 改为 0xa2(第1页)
如果不对,请纠正...

使用特权

评论回复
9
lixiaoxu2meng| | 2011-8-2 08:00 | 只看该作者
可以通过 A2 A1 A0 进行页选
看一下芯片手册

使用特权

评论回复
10
robotics30|  楼主 | 2011-8-2 10:09 | 只看该作者
对于24c04、8、16来说,其控制字后面的 A0、A1、A2 已经变为 P0、P1、P2;通过这是页选就可以寻址到 8*2k 空间。

使用特权

评论回复
11
zdhwangep| | 2011-8-7 18:16 | 只看该作者
赞同楼上

使用特权

评论回复
12
wei556675| | 2015-9-29 20:48 | 只看该作者
请问你最后是怎么解决的啊、

使用特权

评论回复
13
yaosongjin| | 2015-10-9 14:06 | 只看该作者
robotics30 发表于 2011-8-1 21:27
我做了试验,地址0X80的内容和地址896的内容完全一样.
那么24C08中,只有地址0X00---0XFF空间可以使用,从地 ...

将函数的形参改为unsigned int型,应该就可以了吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

41

帖子

0

粉丝