单片机里的程序是从main函数开始执行的吗?请高手进。

我的单片机是STC的,现在发现的问题是:只要外部文件中有一个函数没处理好,单片机就直接不工作了,发现好像在执行main函数之前,单片机还干过别的一样,请问单片机执行的顺序... 我的单片机是STC的,现在发现的问题是:只要外部文件中有一个函数没处理好,单片机就直接不工作了,发现好像在执行main函数之前,单片机还干过别的一样,请问单片机执行的顺序是怎样的??? 展开
 我来答
selflong
2015-10-17 · TA获得超过375个赞
知道答主
回答量:89
采纳率:0%
帮助的人:38.4万
展开全部
那得看你的程序是怎么写的,可以配置让单片机先执行别的程序再执行main

如果你没有任何控制的话,执行完全部的程序,会从main()开始,如果要控制的话,也很简单
分为两类:
一类是不执行下面的指令,返回main()第一句指令,那直接使用return;就可以了
另一类是不范围main()第一句指令,而从中间某一句开始执行,有两种方法
1.对于循环层数较少的循环,可以使用break;
2.对于循环层数较多,不建议每层都使用break那就利用标签也可以做到,你只要在程序需要的位置设个标签,在程序最后返回标签,就可以了
例如:
main()
{
k=1;
start:
P0=0x00;
//后面程序省略
//程序最后书写如下这里可以加个你需要的条件,满足条件后,跳转从main{}的第一句开始再次执行
goto start;
}
我经常这样做,实践证明,真的很好用,你可以试试
njufoolfish
2012-04-26 · TA获得超过579个赞
知道小有建树答主
回答量:499
采纳率:75%
帮助的人:520万
展开全部
51的复位后程序入口是0x0000

如果汇编,一般在0x0000放上jmp main跳转到main运行
如果是C,编译器会在程序头上添加一段启动代码用于初始化,运行完之后,跳转到main。

一般情况,启动代码无需要理会。你的问题应该还是函数处理的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ccoldman
2012-04-26 · 超过16用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:21.3万
展开全部
执行main之前,程序一般要做设定堆栈初值,ram清0两项工作。
如果编译用的是keil,会问你是否加入一段汇编文件(startup.a)这段汇编规划各个段,要设定堆栈初值,ram清0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网破仑
2012-04-26 · 超过10用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:28.6万
展开全部
那得看你的程序是怎么写的,可以配置让单片机先执行别的程序再执行main
追问
怎么配置啊
追答
有点复杂,有一个初始化的过程
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友31424
2018-04-16 · TA获得超过1.7万个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:8.6万
展开全部

羽毛球拍品牌很多,型号更多,好的也很多很多。价格也决定了球拍性能的高低。

适合自己的打法 、能力的球拍才是最好的。对于进攻型打法的球友,能力强推荐尤尼克斯vt-zf2、李宁N80、李宁N55,力量较小推荐尤尼克斯vt60;

攻守平衡的球友推荐尤尼克斯的弓箭10、弓箭11,李宁N50、N70;

防守型打法可以选择中杆弹性好、头轻些的,比如尤尼克斯的NR系列球拍等。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式