您的位置 首页 产品

第9节:程序从哪里开端,要到哪里去?

从业十年,教你单片机入门第9讲:程序从哪里开始,要到哪里去?为了让初学者了解C语言程序的执行顺序,我把程序分成三个区域:进入主程

从业十年,教你单片机入门  第9讲:

程序从哪里开端,要到哪里去?为了让初学者了解C言语程序的履行次序,我把程序分红三个区域:进入主程序前的区域,主程序的初始化区域,主程序的循环区域。

进入主程序前的区域。这是上电后,在单片机履行主程序代码之前就现已完成了的作业。包括头文件的包括,宏界说,内存分配这些作业。这部分的内容能够暂时不必去了解,我会在后面的一些章节中连续深化解说。

主程序的初始化区域。这是上电后,单片机进入主程序后立刻就要履行的程序代码,这部分区域的代码有一个特色,我们也有必要记住的,便是单片机只履行一次。只需单片机不重启,不复位,那么上电后这部分的代码只被履行一次。

主程序的循环区域。单片机在主程序中履行完了初始化区域的代码,紧接着就进入这片循环区域的代码。单片机一向在循环履行这段代码,这便是上电后单片机的终究归宿,一向处在循环的状况。

下面我跟我们剖析一个程序源代码的三个区域和履行次序,我们先看中文解说部分的内容,暂时不必了解每行指令的语法。该源代码完成的功用是:上电后,蜂鸣器鸣叫一声就中止,然后看到一个LED灯一向在闪耀。本程序是根据坚鸿51单片机学习板

#include “REG52.H” //进入主程序前的区域:头文件包括

sbit beep_dr=P2^7; //进入主程序前的区域:宏界说

sbit led_dr=P3^5; //进入主程序前的区域:宏界说

unsigned long i; //进入主程序前的区域:内存分配

void main() //主程序进口,行将进入初始化区域

{

beep_dr=0; //第一步:初始化区域:蜂鸣器开端鸣叫。

for(i=0;i<6250;i++); //第二步:初始化区域:延时0.5秒左右。也便是蜂鸣器鸣叫的持续时间。

beep_dr=1; //第三步:初始化区域:蜂鸣器中止鸣叫。

while(1) //履行完上面的初始化区域,行将进入循环区域

{

led_dr=1; //第四步:循环区域:LED开端点亮。

for(i=0;i<6250;i++); //第五步:循环区域:延时0.5秒左右。也便是LED点亮的持续时间。

led_dr=0; //LED灭 //第六步:循环区域:LED开端平息。

for(i=0;i<6250;i++); //第七步:循环区域:延时0.5秒左右。也便是LED平息的持续时间。立刻回来上面第四步持续循环往下履行。

}

}

//解说:

//单片机进入主程序后,第一步到第三步是归于初始化区域,只被履行一次。然后进入循环区域,从第四步履行到第七步,

//履行完第七步之后,立刻回来上面第四步持续循环往下履行,单片机一向处于第四步到第七步的循环区域中。

仿制代码

通过以上的剖析,能够看出这三个区域的大约散布如下:

//…进入主程序前的区域

void main()

{

//…初始化区域

while(1)

{

//…循环区域

}

}

下节预告:一个用来学习C言语的模板程序。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/262133.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部