用定时器T0的中断控制8位LED闪烁

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uint i;

void main()

{

	i=0;

	EA=1;                                 //打开总中断

	TMOD=0x01;                            //使用定时器T0的工作方式1

	ET0=1;                                //定时器T0中断允许

	TH0=(65536-50000)/256;                //给定时器T0的高8位赋值

	TL0=(65536-50000)%256;                //给定时器T0的低8位赋值

	TR0=1;                                //启动定时器T0

	P0=0xff;

	while(1);                             //无限循环等待中断

}

void Time0(void) interrupt 1                  //"interrupt"声明函数为中断服务函数,1表示定时器T0的中断编号

{

    

	i++;

	if(i==40)

	{

		P0=~P0;                       

		i=0;

	}

	TH0=(65536-50000)/256;

	TL0=(65536-50000)%256;

}


你可能感兴趣的:(定时器)