登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

再问一个C51复位的问题

作者:圣域天子 栏目:单片机
再问一个C51复位的问题
C51上有一个RST的复位引脚,我不清楚它引起的复位是如何工作的.
1) 代码执行了一半,假设执行到了第100行.复位后是重新从main的第1行开
   始,还是从101行开始啊?
2) 内存中的变量,堆栈等等会清空吗?
3)还会有其它什么影响吗?
   


2楼: >>参与讨论
tanjc2
AT89C51
1复位以后,从程序存储器的第一行开始执行,用c的话,应该就是main的第一行开始执行
2只要不掉电,片内RAM不会改变,但是复位会使一些特殊寄存器初始化,比如所SP


3楼: >>参与讨论
zhaoyu2005
复位当然是从0开始的
不知道你说的是硬件的RST引脚,还是软件的功能按钮,说得不清楚。
硬件的RST复位引脚,引起的复位,使单片机从零开始执行程序,一些相应的寄存器也恢复到复位值,RAM是否清零有两种情况:1.上电时RST引脚复位,RAM当然是零了。2.在不断电时复位,如果没有执行RAM清零的代码,RAM不清灵,如果有就清零了
C51软件里的RST功能按钮,产生复位,也是从0执行,但是你在C51软件里看是从main开始的。实际在执行到main是已经执行了STARUP.A51,将RAM清零了,堆栈和内存是RAM的一部分,当然清零了。

4楼: >>参与讨论
xymxym
不是重新上电的情况下
复位脚引起的复位,变量保持不变,程序从0开始执行。

5楼: >>参与讨论
zhaohe2001
RAM
问个问题!上电复位后RAM是清零还是置FFH??

6楼: >>参与讨论
AIRWILL
上电复位后RAM是随机值
 
7楼: >>参与讨论
AIRWILL
不过c51 的启动代码startup.a51会全部清零后再执行main()
 
8楼: >>参与讨论
hotpower
IDATALEN  EQU 0x00就不会清零了
Keil 8.01的startup.a51的脚本文件真方便


9楼: >>参与讨论
AIRWILL
呀,8.01都尝到鲜啦
    还有什么好味道哪?

10楼: >>参与讨论
12864
hotpower吃到野味了,俺流口水啊
 
11楼: >>参与讨论
hotpower
晕到~~~只是将新的startup.a51强行覆盖旧的即可流口水了
 
12楼: >>参与讨论
12864
俺是说你用了8.01
野味啊,我还没打到呢

参与讨论
昵称:
讨论内容:
 
 
相关帖子
我用Keil编译怎么知道有没有超限啊?
89c51找不到P2口
请问c51编程变量的存储地址?
汇编程序设计思路出现问题,请教大家
关于51单片机的变量的定位问题
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号