MAIN函数为什么是循环的效果??

[复制链接]
 楼主| elfromshine 发表于 2017-3-30 21:39 | 显示全部楼层 |阅读模式
写了一个C程序,想让蜂鸣器响500MS,在停500MS,之后程序停止,可是为什么蜂鸣器不停的间断的响,好像MAIN函数本身就是个循环一样,哪位大虾能给分析分析,不胜感激!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit beef=P2^3;
void delay(uint);
void main()
{
beef=0;
delay(500);
beef=1;
delay(500);
}
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
{
for(y=z;y>0;y--)
{}
}
}







(0)
潜龙出山 发表于 2017-3-30 22:03 | 显示全部楼层
这个可能跟编译器有关,有些编译器会给代码自动加上while(1)的。
jackhwang 发表于 2017-3-31 10:03 | 显示全部楼层
你在第二个delay(500);之后加上while(1);
世界心 发表于 2017-3-31 10:46 | 显示全部楼层
系统只有一个主程序,主程序是不能被执行完退出的。单片机中有出厂程序,如果你的主程序执行完退出了,那出厂程序中应该就是执行软复位了
wkshengren 发表于 2017-3-31 11:29 | 显示全部楼层
main结束后,单片机会复位,所以main结束前加while(1)
NE5532 发表于 2017-3-31 13:43 | 显示全部楼层
main函数什么时候允许返回了?做了不允许做的事情,会发生什么不得而知,没有研究的价值。
NE5532 发表于 2017-3-31 13:43 | 显示全部楼层
main函数什么时候允许返回了?做了不允许做的事情,会发生什么不得而知,没有研究的价值。
ayb_ice 发表于 2017-3-31 16:09 来自手机 | 显示全部楼层
程序指针溢出又归零了
coody 发表于 2017-3-31 16:34 | 显示全部楼层
主程序没有大循环!主程序没有大循环!主程序没有大循环!
cctv19881023 发表于 2017-3-31 22:44 | 显示全部楼层
这明显是复位了,这不叫循环
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部