新聞中心

        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語言教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛隆县| 开平市| 丹东市| 石渠县| 策勒县| 忻州市| 武宣县| 武清区| 奉新县| 翁源县| 汉阴县| 花莲县| 澳门| 偃师市| 阿克陶县| 洪湖市| 闽侯县| 淮北市| 和林格尔县| 玛纳斯县| 留坝县| 北碚区| 洞头县| 平定县| 香格里拉县| 弥勒县| 锦州市| 剑川县| 盐城市| 吉木乃县| 安阳县| 日土县| 正镶白旗| 富宁县| 科技| 东乌珠穆沁旗| 弥勒县| 柳林县| 长子县| 临漳县| 阜新市|