打印

AT89C51RD2和AT89S52兼容吗

[复制链接]
2700|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiejiayue|  楼主 | 2013-1-14 13:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dirtwillfly| | 2013-1-14 14:15 | 只看该作者
52是51的增强型,S52比C51,定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗。
你是不是用到这些了?

使用特权

评论回复
板凳
jlass| | 2013-1-14 14:45 | 只看该作者
dirtwillfly 发表于 2013-1-14 14:15
52是51的增强型,S52比C51,定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗。
你是不是用到 ...

言简意赅

使用特权

评论回复
地板
xiejiayue|  楼主 | 2013-1-14 16:41 | 只看该作者
dirtwillfly 发表于 2013-1-14 14:15
52是51的增强型,S52比C51,定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗。
你是不是用到 ...

我在网上下载的AT89C51RD2,他的RAM是256字节,ROM是64K

使用特权

评论回复
5
xiejiayue|  楼主 | 2013-1-14 16:42 | 只看该作者
jlass 发表于 2013-1-14 14:45
言简意赅

我说的是AT89C51RD2不是AT89C51

使用特权

评论回复
6
dirtwillfly| | 2013-1-14 21:27 | 只看该作者
xiejiayue 发表于 2013-1-14 16:42
我说的是AT89C51RD2不是AT89C51

AT89C51RD2是AT89C51系列的一个具体产品,后缀RD2说明片上RAM为1792字节,其他都一样。

使用特权

评论回复
7
yinlitansuo| | 2013-1-14 21:46 | 只看该作者
差不多的!一个是增强型,照例说应该没问题的!

使用特权

评论回复
8
chunyang| | 2013-1-14 23:16 | 只看该作者
二者的片内资源不同,注意52的定时器比51多一个,内存和程序存储器的容量也更大,没有用到T2,程序代码量也不高于4K,内存使用不超过128字节,那么就可以用51代替52,否则则不行,检查这些地方吧。

使用特权

评论回复
9
xiejiayue|  楼主 | 2013-1-15 08:28 | 只看该作者
dirtwillfly 发表于 2013-1-14 21:27
AT89C51RD2是AT89C51系列的一个具体产品,后缀RD2说明片上RAM为1792字节,其他都一样。 ...

哦,他的片外寻址和S52有什么区别吗,用S52读DS12C887的数据没问题,但是能换成C51RD2就不行,同样的程序

使用特权

评论回复
10
xiejiayue|  楼主 | 2013-1-15 08:33 | 只看该作者
chunyang 发表于 2013-1-14 23:16
二者的片内资源不同,注意52的定时器比51多一个,内存和程序存储器的容量也更大,没有用到T2,程序代码量也 ...

Program Size: data=77.4 xdata=14 code=7047
creating hex file from "TFTControlBlack"...
"TFTControlBlack" - 0 Error(s), 3 Warning(s).
这是我编译之后的信息,应该没超啊

使用特权

评论回复
11
xiejiayue|  楼主 | 2013-1-15 08:35 | 只看该作者
yinlitansuo 发表于 2013-1-14 21:46
差不多的!一个是增强型,照例说应该没问题的!

嗯,我也觉得没问题

使用特权

评论回复
12
xiejiayue|  楼主 | 2013-1-15 09:48 | 只看该作者
问题已解决 把uchar volatile xdata RTCSec  _at_ 0x0000; 改成uchar volatile xdata RTCSec  _at_ 0x8000;就能正确读出时间了,C51RD2和S52片外寻址范围可能不同,还得继续看下手册

使用特权

评论回复
13
dirtwillfly| | 2013-1-15 10:18 | 只看该作者
xiejiayue 发表于 2013-1-15 09:48
问题已解决 把uchar volatile xdata RTCSec  _at_ 0x0000; 改成uchar volatile xdata RTCSec  _at_ 0x8000; ...

解决了就好,多看看数据手册,这个是根本

使用特权

评论回复
14
airwill| | 2013-1-15 11:52 | 只看该作者
xiejiayue 发表于 2013-1-15 09:48
问题已解决 把uchar volatile xdata RTCSec  _at_ 0x0000; 改成uchar volatile xdata RTCSec  _at_ 0x8000; ...

对头,  0x0000 的 xdata  被隐射到了单片机内部 xdata 里,  RD2片上RAM为1792字节, xdata 的 0000h 到 0600H 访问的是内部 xdata, 不会产生外部总线访问操作.

使用特权

评论回复
15
xiejiayue|  楼主 | 2013-1-15 15:29 | 只看该作者
airwill 发表于 2013-1-15 11:52
对头,  0x0000 的 xdata  被隐射到了单片机内部 xdata 里,  RD2片上RAM为1792字节, xdata 的 0000h 到 06 ...

嗯 说的很对

使用特权

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

本版积分规则

4

主题

60

帖子

0

粉丝