51微控制器學習筆記之定時器程式設計
阿新 • • 發佈:2018-11-19
一、定時器/計數器概述
1.相關暫存器
(1)TMOD——方式控制暫存器
GATE C/T M1 M0(T1 T0)
GATE=0,定時器/計數器的執行由內部TR0/TR1置1選通;
GATE=1,定時器/計數器的執行由外部中斷(I引腳P3.2/P3.3)和內部TR0/TR1 置1共同選通;
C/T=1,外部脈衝計數(P3.4/P3.5),=0,定時器內部脈衝計時(晶振的倒數乘以12,所得值與定時器初值的乘積為總時間);
M1/M0,00,模式0——TH高8位和TL低5位作用,2^13;
01,模式1——TH高8位和TL低8位作用,2^16(常用);
02,模式2——TH/TL中都放入初值,當TL中的值溢位後TH中的初值重新裝入TL中,持續計數,2^8(常用與序列口波特率發生器);
03,模式3——TL使用T0的狀態位,同模式0/1,2^8;TH使用T1的狀態位和中斷(只適用於T0)
(2)TCON——中斷控制暫存器
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1/TF0 溢位時置1;
TR1/TR0置1開始計數
2.初始化程式
TMOD=0x06; //初始化T0作為方式2,外部計數,0000 0110; TL0=0X056; //設定初值 TH0=0X0FF; //設定初值 TR0=1; //開始計數
3.初值計算
定時:X=MAX-定時值/T
計數:X=MAX-計數值
4.例項