同一个程序在stc89c52单片机上能用,但是在at89s52上不能用。但是其他的一些程序又可以通

同一个程序在stc89c52单片机上能用,但是在at89s52上不能用。但是其他的一些程序又可以通用。也没有用到掉电储存器呀。... 同一个程序在stc89c52单片机上能用,但是在at89s52上不能用。但是其他的一些程序又可以通用。也没有用到掉电储存器呀。 展开
 我来答
a451993547
2014-05-04 · TA获得超过1593个赞
知道小有建树答主
回答量:595
采纳率:100%
帮助的人:705万
展开全部
不能用是程序不会执行还是总线时序错误?

stc89c52有内部扩展ram(STC下载器默认选中) 也就是xdata定义的部分
at89s52是没有的,如果使用xdata定义的变量,at89s52会尝试通过P0 P2 ALE P3.6 P3.7这几个IO去读取外部SRAM的数据。
如果没有外部SRAM读回来的数据始终是FF这样就导致程序无法执行了。

如果Keil里面选择了Large:variables in XDATA的模式的话
STC89C52可以运行AT89S52是无法运行的
STC89C52能运行但是AT89S52无法运行大部分是这个原因

其他原因至少还能实现一部分功能不可能出现完全不能运行的情况

最后
stc89c52还有个6T的模式(STC下载器默认不选中)
一般的程序12T 6T都没什么影响
一些时序要求严格的器件如:DS18B20等
就会有影响了
更多追问追答
追问
多谢。那个PDATA又是什么
若是我使用掉电储存器就要在keil用那个xdata么
伊莹玉y1
2014-05-04 · 超过34用户采纳过TA的回答
知道答主
回答量:254
采纳率:0%
帮助的人:56.7万
展开全部
寄存器 定义的地址不同 sfr
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式