1. 程式人生 > >用定時器T0的中斷控制8位LED閃爍

用定時器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;
}