新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機有哪些延時方法詳細介紹

        單片機有哪些延時方法詳細介紹

        作者: 時間:2013-01-30 來源:網絡 收藏

        2.2 在C51中嵌套匯編程序段實現延時

        在C51中通過預處理指令#pragma asm和#pragma endasm可以嵌套匯編語言語句。用戶編寫的匯編語言緊跟在#pragma asm之后,在#pragma endasm之前結束。

        如:#pragma asm

        匯編語言程序段

        #pragma endasm

        延時函數可設置入口參數,可將參數定義為unsigned char、int或long型。根據參數與返回值的傳遞規則,這時參數和函數返回值位于R7、R7R6、R7R6R5中。在應用時應注意以下幾點:

        ◆ #pragma asm、#pragma endasm不允許嵌套使用;

        ◆ 在程序的開頭應加上預處理指令#pragma asm,在該指令之前只能有注釋或其他預處理指令;

        ◆ 當使用asm語句時,編譯系統并不輸出目標模塊,而只輸出匯編源文件;

        ◆ asm只能用小寫字母,如果把asm寫成大寫,編譯系統就把它作為普通變量;

        ◆ #pragma asm、#pragma endasm和 asm只能在函數內使用。

        將匯編語言與C51結合起來,充分發揮各自的優勢,無疑是開發人員的最佳選擇。

        2.3 使用示波器確定延時時間

        利用示波器來測定延時程序執行時間。方法如下:編寫一個實現延時的函數,在該函數的開始置某個I/O口線如P1.0為高電平,在函數的最后清P1.0為低電平。在主程序中循環調用該延時函數,通過示波器測量P1.0引腳上的高電平時間即可確定延時函數的執行時間。方法如下:

        sbit T_point = P1^0;

        void Dly1ms(void) {

        unsigned int i,j;

        while (1) {

        T_point = 1;

        for(i=0;i2;i++){

        for(j=0;j124;j++){;}

        }

        T_point = 0;

        for(i=0;i1;i++){

        for(j=0;j124;j++){;}

        }

        }

        }

        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 耿马| 饶河县| 庆元县| 云霄县| 都安| 晋江市| 泾阳县| 德钦县| 和顺县| 灵川县| 石河子市| 自贡市| 惠来县| 德钦县| 乌鲁木齐市| 胶南市| 古丈县| 福清市| 杭州市| 科尔| 通渭县| 六盘水市| 商河县| 石台县| 海原县| 南江县| 安远县| 当雄县| 岱山县| 腾冲县| 东至县| 南郑县| 平遥县| 汶川县| 平乡县| 华安县| 东至县| 阳山县| 道孚县| 新宁县| 临高县|