同一个程序在stc89c52单片机上能用,但是在at89s52上不能用。但是其他的一些程序又可以通
同一个程序在stc89c52单片机上能用,但是在at89s52上不能用。但是其他的一些程序又可以通用。也没有用到掉电储存器呀。...
同一个程序在stc89c52单片机上能用,但是在at89s52上不能用。但是其他的一些程序又可以通用。也没有用到掉电储存器呀。
展开
2个回答
展开全部
不能用是程序不会执行还是总线时序错误?
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等
就会有影响了
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么
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询