色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于proteus的51單片機仿真實例三十三、C語言的goto無條件轉移語句演示實例

          基于proteus的51單片機仿真實例三十三、C語言的goto無條件轉移語句演示實例

          作者: 時間:2012-07-18 來源:網絡 收藏
          1、轉向,它的一般形式為:
          標號;
          它是將程序運行的流向轉到它所指定的標號處去執(zhí)行
          2、結構化程序設計方法主張限制使用語句,因為濫用goto語句將使程序流程無規(guī)律,可讀性差。但也不是絕對禁止使用goto語句,一般來說,可以有兩種用途
          1)與if語句一起構成循環(huán)結構
          2)從循環(huán)體內跳轉到循環(huán)體外,但在c語言中可以使用break語句和continue語句跳出本層循環(huán)和結束本次循環(huán),goto語句的使用機 會已大大減少,只是需要從多層循環(huán)的內層循環(huán)跳到外層循環(huán)時才用到goto語句。但是這種用法不符合結構化原則,一般不宜采用,只有在不得已時(例如能夠 大大提高效率)才使用。
          3、在keil c51中新建工程ex22,編寫如下程序代碼,并編譯生成ex22.hex文件。
          //22:利用goto語句使程序執(zhí)行順序發(fā)生改變,并將結果送到P0口顯示
          #include reg51.h> //包含頭文件
          //延時函數(shù)
          void delay(void)
          {
          unsigned int i,j;
          for(i=0;i5000;i++)
          for(j=0;j50;j++);
          }
          void main(void)
          {
          P0 = 0xff; //程序開始,,p0口的8個led全部熄滅
          delay();
          //在此添加一個標號
          loop:P0 = 0x0f; //
          delay();
          P0 = 0xf0; //
          delay();
          goto loop; //跳轉到標號處
          P0 = 0x55; //由于上一步程序發(fā)生了無條件跳轉,所以下面這些語句不會被執(zhí)行
          delay();
          while(1) //程序在此無限循環(huán)
          {
          }
          }
          4、在中新建仿真文件ex22.dsn。電路圖如下圖所示
          5、將ex22.hex文件載入到at89c51中,啟動仿真,可以看到運行結果在如下兩個圖中變換,始終不會執(zhí)行p0=0x55這個語句。

          51單片機相關文章:51單片機教程


          c語言相關文章:c語言教程




          評論


          相關推薦

          技術專區(qū)

          關閉