为了账号安全,请及时绑定邮箱和手机立即绑定

下面这个程序怎么会是无限循环程序呢?,不是很理解!

下面这个程序怎么会是无限循环程序呢?,不是很理解!

C PHP
暮色呼如 2022-07-25 19:15:41
#include<reg52.h>sbit jdq=P3^7;sbit LED0=P0^0;void delay1ms(unsigned int i){unsigned char j;while (i--){for(j=0;j<113;j++) //1ms基准延时程序{;}}}void main(){jdq=0;LED0=0;delay1ms(1000);jdq=1;LED0=1;delay1ms(1000);}这是开发板上的程序,可以烧写进去。唯一的问题就是主函数不知为什么变成了无限循环函数,其他的没有问题。unsigned int和unsigned char 没问题。各位兄弟我虚心求教啊!
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

你这样写是不行的,必需要有一个死循环才行,你现在的情况其实是程序跑飞了,飞了一段恰好又飞回来了,接着跑,感觉像是循环一样。
你的main()函数结束后,会有个 return,你是没写,但是汇编是会加上,这时,会从堆栈中读出地址给PC,这个读出来的地址可能是0,你又从头开始了。

查看完整回答
反对 回复 2022-08-01
?
守着一只汪

TA贡献1872条经验 获得超3个赞

看看单片机运行原理,它是不会自动停止的
可以在想要让它停止的地方加while(1)之类的语句

查看完整回答
反对 回复 2022-08-01
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

末尾加上while(1);

查看完整回答
反对 回复 2022-08-01
  • 3 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信