一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: hexj0123
收起左侧

求助:AT89S51和AT89S52除空间不一样,别的还有什么区别吗?

  [复制链接]
发表于 2010-7-3 09:13 | 显示全部楼层
定时器不一样的51的一个52两个的   好像是这样的
51ZXX 发表于 2010-6-27 08:56 https://www.yleee.com.cn/images/common/back.gif



    应该是51俩52仨吧.
发表于 2010-7-3 09:19 | 显示全部楼层
我今天专门又去买了个S51,还是不行,我没有使用中断,定时器,之类的。
hexj0123 发表于 2010-7-2 23:02 https://www.yleee.com.cn/images/common/back.gif


           

          一。前后用了三片S51,(手中2个s51,后又购一片),三片都不行,这可能性不是很大,再则用伟纳的编程器能读能写。应先排除芯片部分!


          二。余下的是硬件和软件部分!

         查硬件部分:如用购的实验板问题不大。如自制的请检查一下晶振,检查一下31脚是否接VCC!(自制容易忽略)

         软件部分:建议网上找一个已编译了(内有HEX文件)简单的程序,再写入看看!
 楼主| 发表于 2010-7-3 12:29 | 显示全部楼层
我这个是3208点阵钟的程序,上电会‘哔哔’响2声。程序写到52你能正常运行,写到51里上电会响2声,后面的就不行了。
发表于 2010-7-3 13:34 | 显示全部楼层
52 比 51 多了一个定时器。
发表于 2010-7-3 19:09 | 显示全部楼层
本帖最后由 bluefeel 于 2010-7-3 19:14 编辑

是不是这个文件?堆栈放在78H,很容易超过7FH
QQ截图未命名.jpg
 楼主| 发表于 2010-7-3 19:28 | 显示全部楼层
就是这个,我没往堆栈里面压东西啊。为啥在52里能运行?
发表于 2010-7-3 20:20 | 显示全部楼层
本帖最后由 倪大德 于 2010-7-4 07:04 编辑
就是这个,我没往堆栈里面压东西啊。为啥在52里能运行?
hexj0123 发表于 2010-7-3 19:28 https://www.yleee.com.cn/images/common/back.gif



我知道了,看图就明白了
1.jpg
SP = #78H ;也就是在51子系列只有8个字节空间的堆栈
调用STR_1,第1次调用子程序
2.jpg
调用PLAY1,嵌套第2次调用子程序
调用LINE_8,嵌套第3次调用子程序
调用LINE_1,嵌套第4次调用子程序,此时在51子系列堆栈已满
3.jpg
LINE_1里面还要调用子程序!更别说SEND_1还要嵌套调用好几个程序

LCALL、ACALL都会自动压栈程序计数器PC,PC是16位,也就是两个字节

 楼主| 发表于 2010-7-3 23:52 | 显示全部楼层
谢谢bluefeel 指点,我把SP调到69H开始就行了。
发表于 2010-7-3 23:56 | 显示全部楼层
S52的高128字节RAM只能通过寄存器间接寻址方式使用,正好可以给堆栈使用,堆栈SP寻址是一种特殊的寄存器间接寻址。呵呵。
发表于 2010-7-4 06:54 | 显示全部楼层
好像话不太好听呀。

评分

参与人数 2一乐金币 +20 收起 理由
bluefeel + 10
倪大德 + 10 谢谢提示!

查看全部评分

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-19 05:16 , Processed in 0.056961 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表