• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

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

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


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




    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 福贡县| 武邑县| 贺兰县| 托克逊县| 泉州市| 涿鹿县| 高密市| 方正县| 长顺县| 敦煌市| 洞头县| 楚雄市| 乌什县| 天气| 报价| 清丰县| 益阳市| 洮南市| 康马县| 北海市| 抚宁县| 大石桥市| 平塘县| 塘沽区| 中山市| 松原市| 民县| 东港市| 普安县| 灵川县| 读书| 资源县| 醴陵市| 皮山县| 翁源县| 繁昌县| 鄂尔多斯市| 基隆市| 兴安县| 定州市| 六安市|