第2题
由图可知,该系统用P1口控制8个LED发光二极管,当开关S闭合时,8路彩灯从左到右依次循环。再以同样的方式,从右到左依次循环。每个灯的延时时间为0.5秒。周而复始,循环不止。直到开关S断开时,循环结束,8个LED发光二极管全部熄灭。
根据循环彩灯的要求可以写出相应的应用程序。
第5题
单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P32口接按键K1,按键按下时单片机输入低电平,程序如下: #include <reg51.h> unsigned char key = 0; void main(void ) { char map0[4] = { 0x7f, 0xbf, 0xdf,0xef }; //LED状态数据 char map1[2] = { 0x3f, 0xcf }; //LED状态数据 unsigned char i = 0; int j = 0; IT0 = 1; EX0 = 1; EA = 1; while (1 ) { i ++; switch (key ) { case 0: {P3 = map0[i % 4 ]; break;} case 1: {P3 = map1[i % 2 ]; break; } } for (j = 0; j < 0x4000; j ++ ); } } void int0(void ) interrupt 0 using 0 { key ++; if(key==2)key=0; }
A、初始状态,4个LED轮流亮灭;
B、第1次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭;
C、第2次按键,4个LED轮流亮灭
D、第3次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭。
第6题
单片机的P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4,输出低电平点亮LED灯, P20口接按键K1,按键按下时单片机输入低电平,程序如下: #include<reg52.h> sbit key = P2^0; unsigned char count = 0; unsigned char tab1[]={0xcf,0x3f}; //LED状态 unsigned char tab2[]={0x0f,0xff}; //LED状态 unsigned char n; void delay(unsigned int i) { unsigned int j; for(;i>0;i--) for(j=0;j<125;j++) {;} } void main() { while(1) if(key="=0)" delay(10); count++; while(!key); if(count="=3)" count="1;" for(n="0;n<2;n++)" p3="tab1[n];" delay(100);> A、第1次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭;
B、第2次按键,4个LED同时亮灭;
C、按1次按键,P34、P35、P36、P37的4个LED依次亮灭;
D、第3次按键,P34、P35的2个LED和P36、P37的2个LED轮流亮灭。
第8题
单片机的 P34、P35、P36、P37口分别接LED1、LED2、LED3、LED4, 输出低电平点亮LED灯,P20、P21口分别接按键K1、K2,按键按下输入单片机为低电平,程序如下: #include<reg52.h> sbit K1=P2^0; sbit K2=P2^1; bit flag_add=0,flag_rdu=0; void Delay10ms(unsigned char i) //@11.0592MHz { unsigned char j; i =i* 18;j = 235; do{ while (--j); } while (--i); } void main() { char i=0; while(1) { if(K1==0) { flag_add=1;flag_rdu=0; } if(K2==0) { flag_add=0;flag_rdu=1; } if(flag_add)i++; if(flag_rdu)i--; Delay10ms(10); P3=~(i<<4); if(i>=16)i=0; if(i<0)i=15; }> A、按下K1后,4个LED组成0-15的自动减法计数器;
B、按下K1后,4个LED组成0-15的自动加法计数器;
C、按下K2后,4个LED组成0-15的自动减法计数器;
D、在无按键按下的情况下,4个灯全灭。
第10题
硬件连接: 按键S1->P0_1(下降沿识别) 按键S2->P0_2(下降沿识别) D1->P1_0 D2->P1_1 …… D8->P1_7(高电平点亮,低电平熄灭) 完善下列CC2530单片机代码,采用中断方式,实现功能: 1、初始状态,D1-D8全部熄灭; 2、按键S1,S2控制8个LED灯D1 -> D8双向循环流水显示。 #include <iocc2530.h> void io_init(void) { //P1口线的普通I/O功能配置 _________________________________ //配置P1SEL ① _________________________________ //配置P1DIR ② _________________________________ //配置P1端口初始电平③ //P0口线输入功能配置 P0SEL &= XXXXX; P0DIR &= XXXXX; P0INP |= XXXXX; //P0中断的相关寄存器配置 __________________________________//配置P0输入中断触发条件④ __________________________________//配置P0中断屏蔽寄存器 ⑤ EA = 1; __________________________________//配置P0中断使能位⑥ P0IFG &= XXXX; P0IF = XXX; } /******************************************************************* ** 中断服务函数 ******************************************************************/ ____________________________________//P0中断服务函数⑦ { if(________ ) //识别按键S1 ⑧ XXXXXXXXXX; if(_________) //识别按键S2 ⑨ XXXXXXXXXX; P0IF=0; ___________________________________//配置P0中断状态标志位寄存器⑩ } /**************************************************************** **** main function ****************************************************************/ void main(void) { io_init(); while(1); } /***************************THE END****************************/
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!