微控制器中定時器的使用

2021-07-22 19:34:38 字數 1438 閱讀 2069

中斷法相對於查詢法有兩個優點:1.節省能量 2.節省時間

定時器的使用方法:

1.開啟總中斷

2.設定定時器的工作方式

3.設定初值

4.開啟定時中斷

5.開啟定時計數

對於定時器0的初始化:

void timer0(void)

同理可得定時器1 的初始化:

void timer0(void)

在設定工作方式時,需要注意 

以下的這個**: 

m1 m0 方式 說明

0 0 0 13位定時器

0 1 0 16位定時器

1 0 0 8位定時器

1 1 0 8位定時器

寫完中斷的初始化後,還要寫中斷服務函式:

void timer0_isr() interrupt 1

void timer1_isr() interrupt 3

在此附上用中斷寫的,數碼管顯示的時鐘鬧鐘:

#include 

#define segport p3

sbit bit_sel = p2^0;

sbit seg_sel = p2^1;

unsigned

char segdata[16] = ;

unsigned

char coode[8] = ;

unsigned

char outdata[8] = ;

unsigned

char second = 0;

unsigned

char minute = 0;

unsigned

char hour = 0;

unsigned

char j = 0;

void timer0(void)

void timer1(void)

void display(void)

}void main()

void timer0_isr() interrupt 1}}

}outdata[0] = segdata[hour/10];

outdata[1] = segdata[hour%10];

outdata[2] = 0x40;

outdata[3] = segdata[minute/10];

outdata[4] = segdata[minute%10];

outdata[5] = 0x40;

outdata[6] = segdata[second/10];

outdata[7] = segdata[second%10];

}void timer1_isr() interrupt 3

微控制器的定時器

定時器則是由微控制器自身提供的乙個非常穩定的計數器,這個穩定的計數器就是微控制器上連線的晶振部件,晶振經過12分頻之後提供給微控制器的只有1mhz的穩定脈衝 晶振的頻率是非常準確的,所以微控制器的計數脈衝之間的時間間隔也是非常準確的,這個準確的時間間隔是1微秒 12mhz晶振內部的工作頻率 時鐘脈衝...

微控制器定時器雙擊 關於51微控制器定時器的靈活使用

前段時間,做乙個專案,有串列埠收發指令判斷,按鍵型別判斷,長短按之類,power的定時關電,事件的輪詢掃瞄更新和display的定時掃瞄。這些要求就對定時器提出了要求,但是我的51微控制器只有兩個定時器,其中乙個又有debug口的波特率產生之用。於是乎我可以用的定時器就只剩下了乙個。怎麼辦?可能大家...

51微控制器 定時器

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