1. 基本特性
STC12C5A60S2單片機集成了兩個16位定時/計數器。
1)寄存器
1.1)TMOD 定時器工作方式控制寄存器,包括13位寄存器、16位寄存器、8位寄存器等;
1.2)TCON 定時器控制寄存器,主要包括定時器啟動控制位等;
1.3)AUXR 輔助寄存器,用以設置分頻;默認12分頻
1.4)TH0/1:定時器高8位寄存器
1.5)TL0/1:定時器低8位寄存器
2)定時器計算
N = 2n - Tc/Tu,其中n為定時器的位數,Tu為單位時間及系統時鍾周期,分頻倍數/晶振頻率,Tc為要設置的時間。例子:
15位定時器,12分頻,定時50ms,晶振為6MHZ,則N = 216 - (50*10-3)/(12/6000000) = 9E 58H,此時最大定時為131ms。
則TH設置為9E,而TL設置為8H
2. 典型例子
#include<reg51.h> #define uint unsigned int sbit P00 = P0^0; uint i = 40; void Timer_Routine(void) interrupt 1 { TL0 = 0x3C; TH0 = 0xB0; i--; if(0 == i){ P00 = !P00; i = 40; } } void main(void) { TMOD = 0x01; //16位定時器 TL0 = 0x3C; //50ms定時 TH0 = 0xB0; i = 40; ET0 = 1; //允許T0中斷 EA = 1; //開放中斷 TR0 = 1; while(1); }