用KEIL调试的一段程序一直在STARTUP.A51文件中循环 5

以下这段程序我在build的时候没问题,但是debug的时候会跳到STARTUP.A51文件,并且一直在这循环IDATALOOP:MOV@R0,A请大神们看看这是什么问题... 以下这段程序我在build的时候没问题,但是debug的时候会跳到STARTUP.A51文件,并且一直在这循环IDATALOOP: MOV @R0,A 请大神们看看这是什么问题
DJNZ R0,IDATALOOP
#include<reg51.h>
sbit RELAY = P2^7;
sbit K0 = P0^0;
sbit K1 = P0^1;
sbit K2 = P0^2;
sbit K3 = P0^3;
sbit K4 = P0^4;
sbit K5 = P0^5;
sbit K6 = P0^6;
sbit K7 = P0^7;

void delay500ms();

void main()
{
if(P0!=0x00)
{
int x,y,z;
x=0x07&P0;
y=0x38&P0;
y=y>>3;
z=0xc0&P0;
z=z>>6;

for(;x>0;x--)
{
RELAY=0;
for(;y>0;y--)
{
delay500ms();
}
RELAY=1;
for(;z>0;z--)
{
delay500ms();
}
}
}
}
void delay500ms(void)

{

unsigned char i,j,k;

for(i=15;i>0;i--)

for(j=202;j>0;j--)

for(k=81;k>0;k--);

}
展开
 我来答
zhxiufan
推荐于2018-01-11 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38379
国家科技进步奖

向TA提问 私信TA
展开全部
IDATALOOP:
MOV @R0,A
DJNZ R0,IDATALOOP
这基本上肯定要死在循环中的,R0既然作为了Ri,就不能再作为Rn来使用了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iishwj
2020-05-20
知道答主
回答量:2
采纳率:0%
帮助的人:1345
展开全部
STARTUP.A51有问题了就删除,然后我的就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我还会回来的1
2015-04-20 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:81
采纳率:100%
帮助的人:40.4万
展开全部
硬件初始化除了问题,我不知道是不是你的环境除了问题。我以前遇到过一次是main函数写错了写成mian了,然后跳转不过来,就在.s文件里面跑死了,你看看还不是你的跳转函数出了问题,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式