51微控制器定時器設定問題之個人看法

2021-08-21 20:22:06 字數 581 閱讀 1374

教程**:

先貼**:

#include

typedef unsigned char u8;

typedef unsigned int u16;

sbit led = p1^0;

u8 timer;

void main (void)

}void timer0_service(void) interrupt 1

}橙黃色的while迴圈語句很多人不明白為什麼加上去之後就能實現定時呢?下面是個人理解:

首先要確認的是:main函式是掃瞄執行的,如果不加while語句,那麼在tr0=1這條語句執行完後,程式會有兩個分支同時進行,第乙個分支是:重新執行main函式,給定時器賦初值;第二個分支是:定時器開始計時,記到50ms就會跳到中斷函式 timer0_service,但是第乙個分支的時間要比第二個分支的時間短,也就是說,第二個分支中,定時器還沒能計時50ms,程式就已經跳到主函式的賦值語句中了,這就導致定時器還沒計時50ms就被重新賦予初值,從而無法跳到中斷函式 timer0_service,而加上while語句後,程式就會在此一直等待,而不執行第乙個分支,使得定時器計時50ms後再跳到中斷函式。

51微控制器計數 定時器設定

51微控制器內部一般有兩個計數 定時器,t0 t1,其框圖如下 其中th1 tl1用來設定t1的計數初值,th0 tl0則用來設定t0的。1 gate 門控位 gate 0時,僅由執行控制位trx x 0,1 1 來啟動定時 計數器。gate 1時,由trx x 0 1 1 和 外中斷引腳 int0...

51微控制器 定時器

定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...

51微控制器 定時器

標準的51微控制器內部有t0和t1兩個定時器。定時器的計數值儲存在暫存器中。th0 tl0用於t0,th1 tl1用於t1.定時器儲存暫存器 名稱描述 sfr位址 復位值th0 t0高位元組 0x8c 0x00 tl0t0低位元組 0x8a 0x00 th1t1高位元組 0x8d 0x00 tl1t...