久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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++){;}

}

}

}

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


評論


相關推薦

技術專區

關閉