51单片机定时器中断
/*
	配置的寄存器有
TMOD:模式控制寄存器

TCON:定时器控制器控制寄存器

IE:中断允许寄存器

IP:中断优先级寄存器

*/
#include "reg52.h"
#define BASE (50000/(12/11.0592)) // 定义50ms的基数
sbit led = P1^0;
void time_init()
{
	TMOD = 0x01;    // 使用模式1
	TH0 = (65535 - BASE) / 255;
	TL0 = (65535 - BASE) % 255;
	EA = 1;		// 启动总中断
	ET0 = 1;	// 启动定时器0中断
	TR0 = 1;	// 启动定时器0
}
void mian()
{
	char count = 0;
	time_init();
	while(1)
	{
		if(count == 20)  // 定时1s
		{
			led ~= led;
			count = 0;
		}
	}
}
void timer0() interrupt 1
{
	TH0 = (65535 - BASE) / 255;
	TL0 = (65535 - BASE) % 255;
	count++;
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号