51微控制器中的定時器中斷是怎麼用的

2021-08-14 09:28:17 字數 1441 閱讀 9554

1樓:娛樂小八卦啊

**如下:

//實現led燈一秒亮滅閃爍

void main()

tmod=0x01;//設定定時器0為工作方式1(m1 m0為01)

th0=(65536-45872)/256;//裝初值11.0582晶振定時50ms數為45872

tl0=(65536-45872)%256;

ea=1;//開總中斷

et0=1;//開定時器0中斷

tr0=1;//啟動定時器0

while(1);//程式停止在這裡等待中斷髮生

void t0_time() interrupt 1

tmod=0x01;//重灌初值

th0=(65536-45872)/256;

num++;//num每加一次判斷一次是否到20次

if(num==20)//如果到了20次,說明1秒時間到

num=0;//num清0重新計數

led=~led1;

擴充套件資料

定時器有兩種工作模式,分別為計數模式和定時模式。對px,y的輸入脈衝進行計數為計數模式。定時模式,則是對mcu的主時鐘經過12分頻後計數。

因為主時鐘是相對穩定的,所以可以通過計數值推算出計數所經過的時間。

51微控制器計數器的脈衝輸入腳。主要的脈衝輸入腳有px,y, 也指對應t0的p3.4和對應t1的p3.

5,主要用來檢測片外來的脈衝。而引腳18和19則對應著晶振的輸入脈衝,脈衝的頻率和週期為

f = f/12 = 11.0592m/12 = 0.9216mhz      t = 1/f = 1.085us

51計數器的計數值存放於特殊功能暫存器中。t0(tl0-0x8a, th0-0x8c), t1(tl1-0x8b, th1-0x8d)

定時器常用作定時時鐘,以實現定時檢測,定時響應、定時控制,並且可以產生ms寬的脈衝訊號,驅動步進電機。定時和計數的最終功能都是通過計數實現,若計數的事件源是週期固定的脈衝則可實現定時功能,否則只能實現計數功能。因此可以將定時和計數功能全由一個部件實現。

2樓:匿名使用者

所以中斷的使用:

1.開全域性中斷 51是 ea = 1

2.對應中斷使能 比如定時器1 et1 = 1、定時器0 et0 = 1

3.定時器工作方式配置: 有三種方式 雙8位定時 16位定時 還有捕捉方式 定時器2有4種 ,具體不介紹了 tmod 是定時器0和定時器1方式配置的暫存器 tmod = 0x01,定時器0工作在方式1(16位計數)

4.開啟定時器 tr0 = 1;定時器1開啟是 tr1 = 1;

5.中斷服務程式:就是定時時間到,你要處理的事務。

例子://50ms定時

void main(void)

void timer0_isr(void) intterupt 1 //中斷服務程式

微控制器時間中斷,51微控制器中的定時器中斷是怎麼用的 ?

while 1 在那 會使微控制器停在那 相當於是等待當中斷來臨時 執行中斷 下面那個就是當到50ms的時候 執行計時器1中斷如果沒有那個while 1 則主程式就執行完了 中斷會沒有作用中斷和程式主程式各個執行是同步的 因為你把那個et0開了 則就有時鐘中斷了 當到了50ms 中斷就會自動作用 停...

微控制器定時器 問題

做一個時鐘,24小時一個迴圈週期,每個分度的時間長短根據實際情況定。時鐘工作在定時器中斷子程式裡,主程式不斷和時鐘對時,如果符合設定值就開通電機。下面的程式你參考下,裡面具體的值我沒算過,你自己算下改了吧。如果分頻暫存器不夠按我的演算法加。別說不會哦。org 00h ljmp start org 0...

關於51微控制器的中斷,關於51微控制器的中斷。

中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷源 中斷號 優...