<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 第9節(jié):程序從哪里開始,要到哪里去?

          第9節(jié):程序從哪里開始,要到哪里去?

          作者: 時間:2016-11-22 來源:網(wǎng)絡 收藏
          從業(yè)十年,教你單片機入門  第9講:

          程序從哪里開始,要到哪里去?為了讓初學者了解C語言程序的執(zhí)行順序,我把程序分成三個區(qū)域:進入主程序前的區(qū)域,主程序的初始化區(qū)域,主程序的循環(huán)區(qū)域。

          本文引用地址:http://www.ex-cimer.com/article/201611/319819.htm

          進入主程序前的區(qū)域。這是上電后,在單片機執(zhí)行主程序代碼之前就已經(jīng)完成了的工作。包括頭文件的包含,宏定義,內(nèi)存分配這些工作。這部分的內(nèi)容可以暫時不用去了解,我會在后面的一些章節(jié)中陸續(xù)深入講解。

          主程序的初始化區(qū)域。這是上電后,單片機進入主程序后馬上就要執(zhí)行的程序代碼,這部分區(qū)域的代碼有一個特點,大家也必須記住的,就是單片機只執(zhí)行一次。只要單片機不重啟,不復位,那么上電后這部分的代碼只被執(zhí)行一次。

          主程序的循環(huán)區(qū)域。單片機在主程序中執(zhí)行完了初始化區(qū)域的代碼,緊接著就進入這片循環(huán)區(qū)域的代碼。單片機一直在循環(huán)執(zhí)行這段代碼,這就是上電后單片機的最終歸宿,一直處在循環(huán)的狀態(tài)。

          下面我跟大家分析一個程序源代碼的三個區(qū)域和執(zhí)行順序,大家先看中文解釋部分的內(nèi)容,暫時不用理解每行指令的語法。該源代碼實現(xiàn)的功能是:上電后,蜂鳴器鳴叫一聲就停止,然后看到一個LED燈一直在閃爍。本程序是基于堅鴻51單片機學習板。

          #include "REG52.H" //進入主程序前的區(qū)域:頭文件包含

          sbit beep_dr=P2^7; //進入主程序前的區(qū)域:宏定義

          sbit led_dr=P3^5; //進入主程序前的區(qū)域:宏定義

          unsigned long i; //進入主程序前的區(qū)域:內(nèi)存分配

          void main() //主程序入口,即將進入初始化區(qū)域

          {

          beep_dr=0; //第一步:初始化區(qū)域:蜂鳴器開始鳴叫。

          for(i=0;i<6250;i++); //第二步:初始化區(qū)域:延時0.5秒左右。也就是蜂鳴器鳴叫的持續(xù)時間。

          beep_dr=1; //第三步:初始化區(qū)域:蜂鳴器停止鳴叫。

          while(1) //執(zhí)行完上面的初始化區(qū)域,即將進入循環(huán)區(qū)域

          {

          led_dr=1; //第四步:循環(huán)區(qū)域:LED開始點亮。

          for(i=0;i<6250;i++); //第五步:循環(huán)區(qū)域:延時0.5秒左右。也就是LED點亮的持續(xù)時間。

          led_dr=0; //LED滅 //第六步:循環(huán)區(qū)域:LED開始熄滅。

          for(i=0;i<6250;i++); //第七步:循環(huán)區(qū)域:延時0.5秒左右。也就是LED熄滅的持續(xù)時間。馬上返回上面第四步繼續(xù)循環(huán)往下執(zhí)行。

          }

          }

          //解釋:

          //單片機進入主程序后,第一步到第三步是屬于初始化區(qū)域,只被執(zhí)行一次。然后進入循環(huán)區(qū)域,從第四步執(zhí)行到第七步,

          //執(zhí)行完第七步之后,馬上返回上面第四步繼續(xù)循環(huán)往下執(zhí)行,單片機一直處于第四步到第七步的循環(huán)區(qū)域中。

          復制代碼

          經(jīng)過以上的分析,可以看出這三個區(qū)域的大概分布如下:

          //...進入主程序前的區(qū)域

          void main()

          {

          //...初始化區(qū)域

          while(1)

          {

          //...循環(huán)區(qū)域

          }

          }

          下節(jié)預告:一個用來學習C語言的模板程序。



          關鍵詞: 程序單片

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();