/* 名称:定时器控制4个LED滚动闪烁
说明:4只LED在定时器控制下滚动闪烁。
*/
#includereg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitB1=P0^0;
sbitG1=P0^1;
sbitR1=P0^2;
sbitY1=P0^3;
uinti,j,k;
//主程序
voidmain()
{
i=j=k=0;
P0=0xff;
TMOD=0x02; //定时器0工作方式2
TH0=256-200; //200us定时
TL0=256-200;
IE=0x82;
TR0=1; //启动定时器
}while(1);
//T0中断函数 voidLED_Flash_and_Scroll()interrupt1 { if(++k35)return; //定时中断若干次后执行闪烁 k=0; switch(i) { case0: B1=~B1;break; case1: G1=~G1;break; case2: R1=~R1;break; case3: Y1=~Y1;break; default:i=0; } if(++j300)return;//每次闪烁持续一段时间 j=0; P0=0xff;关闭显示 i++;//切换到下一个LED } 扩展阅读:定时器控制单只LED程序