1. 單片機定時器原理
傳統51單片機定時器是16位的定時器,系統時鍾給它提供時鍾源,每一個脈沖使定時器加一,直到溢出會產生定時器中斷。
2. 51單片機定時計數器原理
其實就是計數器原理,所謂的定時器就是用計數器來實現的一個功能而已。
計數器的原理,很簡單,就是給個方波信號,一個方波,就加1即可,最簡單的都能用數字電子技術里的或門,與門,非門來實現的。專門做計數的晶元也是一大堆,這里我們就不討論怎麼用或門,非門,與門,做出一個計數器了吧。
那麼怎麼用計數器實現定時器的功能呢?其實很簡單,只要你給計數器的方波是規律的就可以了啊,比如做一個一秒鍾輸出一個方波的電路,然後把這個方波給計數器,即可,那麼這個計數器就是一個定時器了,假設計數器一開始是0,一個方波以後,計數器就變成了1,對吧,但是計數器的方波來源是穩定的,一秒鍾就給一個方波,那麼這個就是個1s的定時器了吧,我們可以通過計數器的數值,來確定時間了吧,這樣就可以完成定時的功能了吧。
單片機也是通過這種手段來形成的,你可能就要問了,那我單片機不是沒有方波發射的裝置嗎?對不起,單片機晶元內部自己內置了,所以你不需要自己做這個方波發生裝置,那麼單片機是用什麼來形成方波的呢?答案是你外置的晶振,單片機是通過你外部的那個晶振來實現的,而且晶振也是你單片機能跑起來的關鍵,他是單片機的CPU等內部部件工作的時間標准,比如晶振12MHZ,就是這個晶振1秒鍾,能有12M個方波形成懂吧,所以這個頻率是很高的了,但是單片機一般不在這么高的頻率上工作,所以CPU的時間單位,不是晶振的頻率,一般是要進行降頻處理的,也叫分頻,像51單片機,很多都是12分頻的,即外部晶振是12MHZ,內部CPU工作的頻率只有1MHZ,內部的計數器一般也不能在那麼高的頻率下工作,所以也是分頻的,你最需要了解的是計數器或定時器里的數值加1,對應的時間是多少,一般都是1ms這樣的整數倍。
然後計數器呢?計數器就是用晶振分頻後的方波來工作的,晶振工作穩定,頻率穩定,那麼定時器就穩定,而如果你不用定時器的時候呢?那麼計數器的計數端,就和來自晶振的方波,切斷,切換成對應的IO埠的線路即可,而外部的埠,他們的波形和頻率都不確定,所以就不是定時器了,如果你在外部,加個穩定的方波裝置,計數器也就是定時器了,只不過這個需要自己去實現,豈不是麻煩?所以一般都用單片機內部自帶的,方便而已。
3. 51單片機定時器的工作原理
單片機內有兩個16位的寄存器,用於定時計數,一個機器周期計數一次,直到計數器溢出再執行中斷代碼。
4. 單片機計時器原理
單片機用一個振盪器(比如晶體振盪器)作為時間基準,和石英手錶裡面的振盪器差不多,振盪器每震盪一次的時間間隔是一樣的,可以通過振盪器的參數算出來的,每次振盪會產生一個脈沖信號給單片機,單片機只要數數字就能計算時間了。
5. 用51單片機顯示交通燈倒計時原理是什麼
就是實時顯示剩餘數時間,並且以秒為單位,每秒刷新一次顯示,其原理是通過單片機埠驅動LED欄位顯示對應數字。
6. 單片機定時器原理及使用
這里通俗的說下C51單片機的定時器的工作原理,C51單片機的定時器是由計數器構成的,所計量的時間是通過計算固定周期的脈沖個數的累計獲得的,通過設置定時器的工作模式,可以由16位(高、低兩個8位)寄存器模式或其他位數的寄存器模式來計數,以16位計數模式來討論,那就是無論那種工作模式只有當計數用的寄存器的各個位全部置1,也就是滿值後下一個計數脈沖進入時使寄存器產生溢出,而這個溢出才會使計數產生中斷從而完成一次定時控制,因此,如果我們想產生某個時長的定時,那麼我需要將這個時長根據單片機運行的時鍾頻率、周期等等相關因素換算成需要計數的個數,進而在這個滿值的16位寄存器中扣除需要計數的個數,啟動運行後當計數值補充滿了寄存器就完成了一次計時,而一個16位寄存器滿值為2的16次方=65536,假如一個計數脈沖的周期為1us,那麼滿值後就會耗時65536us,假如我們需要計時36us,那麼我們只需要為寄存器賦值65500就可以了,這里需要注意的是,因為C51單片機的寄存器是8位的,我們需要將這個65500拆分出高8位數據裝入THx中計算方法為THx=65500/256,再計算出低8位數據裝入TLx中,THx=65500%256。
7. 51單片機定時器原理
很簡單,就是系統時鍾同步觸發定時器計數(向上或向下),定時器與比較寄存器內的預設值比較,當達到預設值或者向下計數歸零後再次載入預設值到比較寄存器裡面,定時器啟動和停止都受到TON標志位計算,對其操作即可。
8. 單片機定時和計數原理的循環
單片機的定時器是用內部時鍾信號,計脈沖的個數,
計數器是計外面的脈沖個數,
定時器用的脈沖頻率是晶振頻率的1/12.當計數個數達到一定值後,產生溢出,產生一個中斷信號.
而計數器用的脈沖外面的脈沖,從io輸入,當計數個數達到一定值後,產生溢出,產生一個中斷信號.
兩者工作原理差不多.都是計數
,用的信號來源不同.
9. 用51單片機顯示交通燈倒計時原理是什麼
void main()
{
P3 = 0;
P1 = 0;
P2 = 0xff;
initTimer();
TR0=1;
ET0=1;
EA=1;
while(1)
{
switch(state)
{
// 狀態跳轉
case 0:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 10;
state = 1;
}
break;
case 1:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 2;
}
break;
case 2:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 3;
}
break;
case 3:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 10;
state = 4;
}
break;
case 4:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 5;
}
break;
case 5:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 0;
}
break;
default:break;
}
// 執行
switch(state)
{
case 0:
//東西綠燈,南北紅燈,倒計時30秒;
E_G = 1;W_G = 1;S_R = 1;N_R = 1;
break;
case 1:
//數碼管倒計時10秒;
E_G = 1;W_G = 1;S_R = 1;N_R = 1;
display(ct,0);
display(ct,2);
display(ct+2,1);
display(ct+2,3);
break;
case 2:
//東西黃燈,倒計時2秒;
E_Y = 1;W_Y = 1;S_R = 1;N_R = 1;
display(ct,1);
display(ct,3);
break;
case 3:
//南北綠燈,東西紅燈,倒計時30秒;
E_R = 1;W_R = 1;S_G = 1;N_G = 1;
break;
case 4:
//數碼管倒計時10秒;
E_R = 1;W_R = 1;S_G = 1;N_G = 1;
display(ct,1);
display(ct,3);
display(ct+2,0);
display(ct+2,2);
break;
case 5:
//南北黃燈,倒計時2秒;
E_R = 1;W_R = 1;S_Y = 1;N_Y = 1;
display(ct,0);
display(ct,2);
break;
default:break;
}
}
}
10. 單片機倒計時工作原理
單片機倒計時工作原理。在程序中設置一個時間然後不斷的減少時間,時間減少為0時就是倒計時時間到了。