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

時間 2021-08-14 09:28:02

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 //中斷服務程式

微控制器定時器溢位中斷是什麼意思,微控制器定時器中斷為什麼還要向資料暫存器重灌初始值

這個我專業,定時溢位後比如說是255,當暫存器的數值到達這個值之後,會產出中斷,程式會跳轉到中斷服務程式,可是現在暫存器的值還是255,不清零的話會造成無法產生下一次中斷。 人家是初學者 定時器溢位就是產生了中斷標誌 前提你開啟了中斷允許位 就會執行中斷程式 重新賦值的意思是因為你的計時中斷的頻率時...

C51微控制器定時器和中斷有什麼聯絡

刀光劍影 定時器是經過多少個週期之後執行什麼程式 中斷是有中斷請求時中斷正在執行的程式,沒有中斷請求時不影響 當有中斷或者中斷優先順序高於正在執行的程式時就產生中斷進入中斷程式 流星雨之張翰 px0 ip.0 外部中斷0優先順序設定位 pt0 ip.1 定時 計數器t0優先順序設定位 px1 ip....

c51微控制器用了中斷再用定時器什麼意思??有了中斷幹嘛還要用定時器

中斷和定時是兩個概念,中斷就是來了中斷觸發訊號 程式馬上跳到中斷中程式 執行完回到剛開始執行的地方繼續執行 是立即執行的 定時器就是定一段時間 時間到了就去執行裡面的內容 定時器分為2種方式 查詢 和中斷方式 查詢也就是找標誌位 tf0或者tf1 中斷方式就是立即執行 用在不同的地方 赫連巧山 首先...