其实定时器就是配置TCON与TMOD 然后还有
ea,pt0,et0这三个是终端配置
void Timer0_Init() //定时器初始化
TMOD=0x01; //配置工作模式定时器 一共8位----前四位表示定时器1 -GATE-C/T(0是定时器)--最后两位是模式位一般用模式1 GATE是门控位控制定时器是否受外界中断的影响
//GATE=0表示只受TR0的控制TR0表示定.0时器开关控制位
TMOD=TMOD&0xf0; 这个是配置定时器0 需要把低八位置0 如果配置定时器1的话需要高八位置0
//按位与高四位不变,低四位置0
TMOD=TMOD|0x01; //按位或高四位不变,最后一位置1
如果没有上面两行的话配置定时器0的时候容易刷新定时器1的状态
TF0=0; //中断溢出位
TR0=1; /定时器开关位 1表示定时器开
TH0=64535/256;
TL0=64535%256; //TH0开始计数的高8位,TL0低八位
ET0=1; //ET0是51系列单片机中定时器0的中断允许开关
EA=1; //中断总开关 1是开
PT0=0; //优先级PT 0表示定时器0,0表示低优先级
void main()
{
Timer0_Init(); //定时器初始化 开始必须初始化
while(1)
{
P2_0=0;
Delay(500);
P2_0=1;
Delay(500);
}
}
下面是中断程序
unsigned int TimeC=0;
void Timer0_routine(void) interrupt 1
{
TH0=64535/256; //定时器开关位 1表示定时器开
TL0=64535%256; //TH0开始计数的高8位,TL0低八位
如果不设置上面两行的话就第一次是1000ms 第二次就从0开始了
TimeC++;
if(TimeC>=1000)
{
TimeC=0;
P2_3=~P2_3;
}
}