怎麼在程式中呼叫2兩個定時器中斷函式

2022-01-13 17:15:28 字數 4499 閱讀 9398

1樓:威尼斯人

什麼系統?什麼程式設計環境和語言?

以vc為例,定時器只是視窗的定時訊息,你可以通過settimer的第一個引數,在同一個視窗中設定多個定時器同時執行。

怎麼在一個程式中呼叫2兩個定時器中斷函式

2樓:匿名使用者

什麼系統?什麼程式設計環境和語言?

以vc為例,定時器只是視窗的定時訊息,你可以通過settimer的第一個引數,在同一個視窗中設定多個定時器同時執行。

51微控制器的兩個定時器在同一個程式中各要用到兩次,中斷函式怎麼處理才好?

3樓:匿名使用者

單純的計時, 且時間不算短(以clock來考慮), 可以採用軟體來進行處理.

如果是非常短的時間, 非中斷無法處理, 建議採用不同的定時器分別處理.

怎麼在一個程式中呼叫2兩個定時器中斷函式

4樓:匿名使用者

定時器是從你設定的初值住上加(你這裡的初值為65536-50000,在每一個時鐘沿加1)一直到65536,如果定時器中斷和總中斷是開啟的,微控制器會在這個時候產生中斷使中斷標

如何在一個程式裡放入兩個定時器中斷,關於微控制器52程式設計方面的,兩個定時器為何只有一個起作用???

5樓:匿名使用者

具體型號是什麼,首先第二函式中的定時器是用來產生波特率的,它和上面的定時器中斷不會衝突,同時你要弄清楚的是,所用串列埠波特率發生器取決於哪個定時器,這個弄錯當然無法工作。

c51中定時器中斷的函式中interrupt和using如何使用

6樓:微控制器與嵌入式

8051的中斷系統包括5箇中斷源,並提供兩個優先順序,允許使用者對中斷源進行獨立控制和中斷優先順序設定.

8051支援的5箇中斷源分別為外部中斷0、定時器0溢位中斷、外部中斷1、定時器1溢位中斷和串列埠中斷。

對應的中斷號為0、1、2、3、4;

暫存器有4個工作組可以切換,為0-3;

c51中,中斷服務程式是以中斷函式的方式來時實現的。中斷函式格式如下:

void 函式名() interrupt 中斷號 using 工作組

7樓:韌勁

void int0()interrupt 0 using 1

interrupt 0 指明是外部中斷0;

interrupt 1 指明是定時器中斷0;

interrupt 2 指明是外部中斷1;

interrupt 3 指明是定時器中斷1;

interrupt 4 指明是序列口中斷;

using 0 是第0組暫存器;

using 1 是第1組暫存器;

using 2 是第2組暫存器;

using 3 是第3組暫存器;

r0-r7在資料儲存器裡的實際地址是由特殊功能暫存器psw裡的rs1、rs0位決定的。

using 0時設定 rs1=0,rs0 =0,用第0組暫存器,r0--r7的在資料儲存區裡的實際地址是00h-07h。r0(00h)....r7(07h)

using 1時設定 rs1=0,rs0 =1,用第1組暫存器,r0--r7的在資料儲存區裡的實際地址是00h-07h。r0(08h)....r7(0fh)

using 2時設定 rs1=1,rs0 =0,用第2組暫存器,r0--r7的在資料儲存區裡的實際地址是08h-0fh。r0(10h)....r7(17h)

using 3時設定 rs1=1,rs0 =1,用第3組暫存器,r0--r7的在資料儲存區裡的實際地址是00h-07h。r0(18h)....r7(1fh)

如何使用一個定時器設定多個時間 中斷怎麼進行相應的處理 50

8樓:

第一次定時到時間後進入中斷,再給定時器賦不同的初值(此時表示定的是另外一個時間),同時中斷函式裡設定一個變數,使其每進入一次就自加一,用以區分不同的中斷

9樓:匿名使用者

在定時器外設定一變數,每次進入定時器加一,判斷這個變數的值(對應你的時間設定)進行不同的處理

關於51微控制器使用兩個定時器進行控制的問題

10樓:匿名使用者

//看你意思,兩個定時都是50ms中斷吧?假設d1=1為燈亮

while(1)

}//我覺得你先用一個定時做實驗,比較好。

11樓:沒事來玩幽白

d1=0,d1=1,這倆應該放到if裡面

tf0=0;//關閉定時器0

tf1=1;開啟定時器1

d1=0;//led滅

while(1)

if(bb==40)

}並且在程式開始處開啟定時器1(也就是先執行的定時器),但是要注意,你現在是兩個定時器同時工作,應該在if中關閉當前的定時器,並開啟另一個定時器

12樓:2014的彈子球

首先tmod設定不對,只設定了定時器0,應為tmod=0x11,我記得不清楚了不一定對,。二tcon不對,這個暫存器是控制所有定時器的,應為0x01010000,這個·你也自己查,記不清楚了。詳情自己看資料手冊。。

至於你說的風格,我目前還是沒理解。而且這麼簡單的程式也看不出來啥

13樓:匿名使用者

#include

#define uchar unsigned charvoid init();

uchar aa,bb;

sbit d1=p1^0;

void main()

}void init()

void timer0() interrupt 1void timer1() interrupt 3

微控制器c語言裡怎麼用2個定時器 40

14樓:匿名使用者

有幾個步驟。

首先說明一下幾個和定時器有關的暫存器。

第一,方式控制暫存器tmod,地址89h,不可位定址,這個暫存器可以對定時器的工作方式進行設定。

第二,tcon暫存器,地址88h,可以位定址,控制暫存器的開啟關閉,暫存器的溢位標誌也在這個暫存器中。

第三,中斷控制暫存器ie,用來控制各中斷的開啟或關閉。

現在開始介紹2個定時器的用法

1。設定tmod

2。分別給兩個定時器賦初值

3。開中斷

4。開啟定時器

5。設定迴圈語句等待中斷

下面舉一個例子:

#include

void main(void)}

15樓:

4個定時器的都有,看你選擇的微控制器型號和你需要實現的功能。

16樓:人來瘋

你設定工作模式tmod,看你要的定時器t0與t1都選上,先找個書看看那個該選,那個不該選??這些隨便一個微控制器書都會有的...有什麼不懂再聯絡我

17樓:匿名使用者

#include

#define timeset 65536-15535

//定時器計數值 約50ms(6m晶振時)約25ms(12m晶振時)

#define timeh (timeset & 0xff00)>>8

#define timel timeset & 0xff

char time0_flag,time1_flag;//定時器中斷產生標記

函式名:定時器0中斷函式

調 用:time0_int();

參 數:無

返回值:無

結 果:啟動定時器0計時中斷

備 注:定時時間由計數值及系統晶振決定的

void time0_int(void) interrupt 1//定時器0 定時時間由timeset決定

函式名:定時器1中斷函式

調 用:time1_int();

參 數:無

返回值:無

結 果:啟動定時器1計時中斷

備 注:定時時間由計數值及系統晶振決定的

void time1_int(void) interrupt 3//定時器1 定時時間由timeset決定

函式名:主函式

調 用:main();

參 數:無

返回值:無

結 果:

備 注:中斷後處理

void main()

if(time0_flag)

}//while()}

18樓:匿名使用者

void time0_int(void) interrupt 1//定時器0

void time0_int(void) interrupt 3//定時器1

編寫交換兩個變數的函式,在主程式中呼叫,用變數地址作為實參,指標變數作為形參,實現兩個變數的交換

假設你使用的c語言 include void swap int a,int b a,b指標做形參int main void 如果你用的是c 的話,還可以使用引用型別void swap2 int a,int b 交換兩個變數的值的時候可以使用異或符號 省去中間變數temp void swap3 int...

c中兩個窗體同時不斷的呼叫同串列埠不斷重

理論上,一個串列埠是不可以同時被使用的,所以要實現上述想法,可以將控制代碼共享,兩個form都可以訪問,當然只是傳送接收 c 不同窗體如何呼叫同一個串列埠,附我寫的 求指正 不知道你的serialport1定義在copy哪如果是在form1裡 那麼加上 public static則其他視窗可以通過f...

吉他調音器怎麼裝電池那裡有兩個小凸起,在中間在左邊

應該將你現在放著的電池翻個身裝入即可。電池面小的一面,朝下 就是負極朝下,貼著那個金屬片 求好聽的木吉他純 好聽的話!有 綠袖子 愛的羅曼斯 彝族舞曲 馬車伕舞曲 梁祝 等很多啊,這些都是古典的!很好聽!要搖滾的不?去緣分吉他 有很多吉他曲 我當時學吉他時 老師就在這裡面找教材 聽聽大師們的作品吧 ...