51单片机程序在存储器中的存储问题
51单片机程序一般要从地址0030H开始往下执行,是不是就是说在使用烧录器烧录程序后从0000H-0030H这一段就没有写入我们编写的程序代码(不使用中断)?或者换个说法...
51单片机程序一般要从地址0030H开始往下执行,是不是就是说在使用烧录器烧录程序后从0000H-0030H这一段就没有写入我们编写的程序代码(不使用中断)?或者换个说法就是如果使用外部的程序存储器,那麽其地址空间至少要大于0030H ?
希望能够详细说明,请勿将书本上的照搬
我的意思是说你写的程序在存储器中的存储位置是不是按照程序中安排的地址烧录到对应的地址中的?例如下列程序
ORG 0040H
SJMP INIT
ORG 0050H
INIT:SETB EA
程序中的SJMP INIT语句代码是否烧录在存储器中的0040H单元中,SETB EA语句是否烧录在存储器的0050H中,还是这两条语句是按顺序依次烧录在存储器中的? 请详细说明! 展开
希望能够详细说明,请勿将书本上的照搬
我的意思是说你写的程序在存储器中的存储位置是不是按照程序中安排的地址烧录到对应的地址中的?例如下列程序
ORG 0040H
SJMP INIT
ORG 0050H
INIT:SETB EA
程序中的SJMP INIT语句代码是否烧录在存储器中的0040H单元中,SETB EA语句是否烧录在存储器的0050H中,还是这两条语句是按顺序依次烧录在存储器中的? 请详细说明! 展开
3个回答
展开全部
ORG 0040H
SJMP INIT
ORG 0050H
INIT:SETB EA
程序中的SJMP INIT语句代码是否烧录在存储器中的0040H单元中,SETB EA语句是否烧录在存储器的0050H中,还是这两条语句是按顺序依次烧录在存储器中的?
回答你的,是的!!!
你ORG哪里,它就存哪里。。
实际上,你不用中断。程序可以直接写。不用写ORG 。。程序可以直接从最前端存入。。
实际上,只有当程序执行到SETB EA ,(中断开关ON时,)单片机才会在中断条件OK时跳到那几个中断专用地址:000B 0023等。。。。
没有中断时,程序自然不会从半中间往那儿跳回。。所以没有中断那儿几个专用地址可以当正常地址存入。。。 程序也是从最前端开始逐步运行。。
SJMP INIT
ORG 0050H
INIT:SETB EA
程序中的SJMP INIT语句代码是否烧录在存储器中的0040H单元中,SETB EA语句是否烧录在存储器的0050H中,还是这两条语句是按顺序依次烧录在存储器中的?
回答你的,是的!!!
你ORG哪里,它就存哪里。。
实际上,你不用中断。程序可以直接写。不用写ORG 。。程序可以直接从最前端存入。。
实际上,只有当程序执行到SETB EA ,(中断开关ON时,)单片机才会在中断条件OK时跳到那几个中断专用地址:000B 0023等。。。。
没有中断时,程序自然不会从半中间往那儿跳回。。所以没有中断那儿几个专用地址可以当正常地址存入。。。 程序也是从最前端开始逐步运行。。
今至电子科技有限公司
2024-08-23 广告
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整...
点击进入详情页
本回答由今至电子科技有限公司提供
展开全部
是不推荐把非中断程序写在这一段地址吧,怕程序在很意外的情况下进中断程序(本身没有设计中断程序);
不大于0030的话这么短的程序有什么用呢?谁会设计这么小空间的芯片啊?没有人要的啊!非这么短有什么意义呢?便宜?芯片本省能便宜多少啊,芯片的封装、测试这些步骤都还是要的啊。
下面这程序就够短,有什么意义呢:
ORG 0000H
START:AJMP START
END
不大于0030的话这么短的程序有什么用呢?谁会设计这么小空间的芯片啊?没有人要的啊!非这么短有什么意义呢?便宜?芯片本省能便宜多少啊,芯片的封装、测试这些步骤都还是要的啊。
下面这程序就够短,有什么意义呢:
ORG 0000H
START:AJMP START
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
51单片机之所以跳开00~30H程序空间主要原因就是为了避开中断区,
其中00H为上电和系统复位后的程序地址指针,然后一般用一个长跳转指令跳到30以后的程序区,(当然如果你一共就几句或十几句的流水灯啊之类的简单程序直接在0000H处写也无所谓。)
03H外部中断0入口,0BH定时器0入口,13H外部中断1入口,1BH定时器1入口
23H串口中断入口,2BH定时器2入口(仅52系列有定时器2)
如果使用的外部程序存储器,一般都是以KB为单位,没有以B为单位的,使用不用考虑这些~而且现在51单片机基本上都是内部带最少1K的程序存储器~有的甚至
达128KB所以,现在外部扩展程序存储器的已经几乎没有了~
其中00H为上电和系统复位后的程序地址指针,然后一般用一个长跳转指令跳到30以后的程序区,(当然如果你一共就几句或十几句的流水灯啊之类的简单程序直接在0000H处写也无所谓。)
03H外部中断0入口,0BH定时器0入口,13H外部中断1入口,1BH定时器1入口
23H串口中断入口,2BH定时器2入口(仅52系列有定时器2)
如果使用的外部程序存储器,一般都是以KB为单位,没有以B为单位的,使用不用考虑这些~而且现在51单片机基本上都是内部带最少1K的程序存储器~有的甚至
达128KB所以,现在外部扩展程序存储器的已经几乎没有了~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询