单片机的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: 外部中断为低电平触发方式。
A: 采用外部中断的方式实现一个二进制减1计数器;
B: 用4个LED显示计数结果,减至0后,重新从15开始计数;
C: 采用按键扫描的方式实现一个二进制减1计数器;
D: 外部中断为低电平触发方式。
举一反三
- 单片机的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后清零,重新计数。
- 单片机的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; } }
- 【多选题】单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P32口接按键K1,按键按下时单片机输入低电平,程序如下: #include
- 智慧职教: 在单片机P0口连接了8个LED,I/O口线低电平时点亮相应LED。请问下面程序的功能是哪一个。 #include #define uchar unsigned char #define uint unsigned int #define LED P0 #define TIME 40000 void delay(uint i) { while(i--); } void main() { uchar i; while(1) { for(i=0;i<=7;i++) { LED=~((0x01<>i)); delay(TIME); } } }
- 以下说法错误的是void main(){ state=1; while(1) { switch(state) { case 0x01:setup();break; case 0x02:run();break; } }}void setup(){ Buzzer=1;Led=1;while(1) { if(Key==0){state=0x02;goto exit;} }exit:return;}void run(){ Buzzer=0;Led=0; while(1) { if(Key==0){state=0x01;goto exit;} } exit:return;} A: 共有两个状态 B: Buzzer=1;Led=1;实现声光报警 C: Buzzer=1;Led=1;全停 D: if(Key==0){state=0x01;goto exit;} 按下按键,转到第一个状态