打印

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

[复制链接]
1504|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
系统只有一个主程序,主程序是不能被执行完退出的。单片机中有出厂程序,如果你的主程序执行完退出了,那出厂程序中应该就是执行软复位了

使用特权

评论回复
5
wkshengren| | 2017-3-31 11:29 | 只看该作者
main结束后,单片机会复位,所以main结束前加while(1)

使用特权

评论回复
6
NE5532| | 2017-3-31 13:43 | 只看该作者
main函数什么时候允许返回了?做了不允许做的事情,会发生什么不得而知,没有研究的价值。

使用特权

评论回复
7
NE5532| | 2017-3-31 13:43 | 只看该作者
main函数什么时候允许返回了?做了不允许做的事情,会发生什么不得而知,没有研究的价值。

使用特权

评论回复
8
ayb_ice| | 2017-3-31 16:09 | 只看该作者
程序指针溢出又归零了

使用特权

评论回复
9
coody| | 2017-3-31 16:34 | 只看该作者
主程序没有大循环!主程序没有大循环!主程序没有大循环!

使用特权

评论回复
10
cctv19881023| | 2017-3-31 22:44 | 只看该作者
这明显是复位了,这不叫循环

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝