#include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar led1=0xfe;led2=0xfe;led3=0xfe;uchar cnt=0;uchar keyval=0;sbit key=P3^2;void t0isr() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;if(cnt>=10) { switch(keyval) { case 0: P0=led1;led1=_crol_(led1,1);break; case 1: P0=led1;led1=_crol_(led1,1); P1=led2;led2=_crol_(led2,1);break; case 2: P0=led1;led1=_crol_(led1,1); P1=led2;led2=_crol_(led2,1); P2=led3;led3=_crol_(led3,1);break; default:break; } }}main(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1) { if(key==0) { while(key==0); keyval++; keyval%=3; } }}