单片机的P34、P35、P36、P37口分别接发光二极管LED1、LED2、LED3、LED4,输出低电平点亮LED,读下列程序:#include<;reg51.h>;unsigned char count=0,num=0;void main(){TMOD|=0x01; // @11.0592MHzTL0=0xCD; //设置定时初值 2msTH0=0xF8; //设置定时初值TR0=1;ET0=1;EA=1;while(1);}void timer0_ISR(void) interrupt 1{TL0=0xCD; //设置定时初值TH0=0xF8; //设置定时初值if(++count >;= 250){count=0;P3=~(num <;<; 4);num++;if( num >;= 16 )num=0;}}
A: 由四个LED灯组成的0-15的自动加法计数器;
B: 定时500ms后加1;
C: 定时1s后加1;
D: 计数器加到15后清零,重新计数。
A: 由四个LED灯组成的0-15的自动加法计数器;
B: 定时500ms后加1;
C: 定时1s后加1;
D: 计数器加到15后清零,重新计数。
举一反三
- 单片机的P2^0、2^1口分别接发光二极管LED1、LED2,读下列程序:#include<;reg51.h>;sbitLED1=P2^0;sbitLED2=P2^1;unsignedcharCountor1=0,Countor2=0;voidmain(void){TMOD|=0x10;TL1 = 0x00;//设置定时初值 定时50msTH1 = 0x4C;//设置定时初值TR1=1;ET1=1;EA=1;while(1);}voidTime1(void)interrupt3{TL1 = 0x00;//设置定时初值 定时50msTH1 = 0x4C;//设置定时初值Countor1++;Countor2++;if(Countor1==2){LED1=~LED1;Countor1=0;}if(Countor2==8){LED2=~LED2;Countor2=0;}}程序运行结果:
- 单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P32口接按键K1,按键按下时单片机输入低电平,程序如下:#include<;reg51.h>;sbit key = P3^2;unsigned char a ;unsigned char count = 15;void delay(int i){while(i)i--;}void main(){IT0=1;EX0=1;EA =1;while(1);}void int0() interrupt 0{count--;while(!key);if( count<;0)count = 15;a = count;a = ~a;a = a<;<;4|0x0f;P3 = a; A: 采用外部中断的方式实现一个二进制减1计数器; B: 用4个LED显示计数结果,减至0后,重新从15开始计数; C: 采用按键扫描的方式实现一个二进制减1计数器; D: 外部中断为低电平触发方式。
- 下列程序的输出结果是() num = 27 count = 0 while num > 0: if num % 2 == 0: num /=2 elif num % 3 ==0: num /= 3 else: num -=1 count += 1 print (count)
- 单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯,P20、P21口分别接按键K1、K2,按键按下时输入低电平至单片机,程序如下: #include sbitK1=P2^0; sbitK2=P2^1; voidmain() { while(1) { if((K2==0)&&(K1==1)) P3=0x3f; elseif((K2==1)&&(K1==0)) P3=0xcf; elseif((K2==1)&&(K1==1)) P3=0x0f; } }
- 第一个LED灯点亮的程序是 A: LED=1; B: LED=0; C: LED1=1; D: LED1=0;