这是干嘛的 if(set==0)//---------------set为功能键(设置键)-------------------- { delay(9);//延时,用于消抖动 if(set==0)//延时后再次确认按键按下 { led1=0; bltime=0; buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!set); if(T_NL_NZ==0x02) //证明是对闹钟进行设置 { setNZn++; if(setNZn==4) //闹钟设定成功,退回到正常显示并开启闹钟 { setNZn=0; setn=0; } switch(setNZn) { case 0: //正常显示日期时间 write_1602com(0x0c); //设置光标不闪? write_1602com(er); //时间显示固定符号写入位置? for(a=0;a<16;a++) write_1602dat(NZd[a]); //写显示时间固定符号,两个冒号 write_sfm(7,nz_shi); //闹钟 时 write_sfm(10,nz_fen); //闹钟 分 write_1602com(er+13); if(timerOn==1) { write_1602dat('O'); write_1602dat('N'); write_1602dat(' '); } else { write_1602dat('O'); write_1602dat('F'); write_1602dat('F'); } break;
时间: 2024-04-22 18:27:15 浏览: 164
这段代码实现了对设置键(set)的响应,具体来说,当检测到设置键被按下时,会进行如下操作:
1. 进行消抖动,即延时一段时间等待按键稳定。
2. 确认按键已经按下,然后短响蜂鸣器一次,关闭背光灯。
3. 如果正在设置 NL_NZ,就进行闹钟设置,将 setNZn 加 1。如果 setNZn 达到了 4,就表示闹钟设置成功,将 setNZn 和 setn 都重新置为 0,回到正常的时间显示模式,并开启闹钟。
4. 根据当前 setNZn 的值,更新 LCD 显示的内容。具体来说,如果 setNZn 为 0,就显示日期时间和闹钟;如果 setNZn 为 1,就显示闹钟小时数;如果 setNZn 为 2,就显示闹钟分钟数;如果 setNZn 为 3,就显示是否开启闹钟。
相关问题
这是干嘛的 void keyscan() { if(TR1==1&&setn==0&&setNZn==0&&(add==0||dec==0)) NZ_sdgb=0; if(led1==1) //背光暗时,按下任意按键打开背光 { if(seeNL_NZ==0||set==0||add==0||dec==0) led1=0; } else if(led1==0) { if(seeNL_NZ==0) { delay(9); if(seeNL_NZ==0) { led1=0; bltime=0; if((setn==0)&&(setNZn==0)) //在没有进入调时模式时才可按动 { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; if(TR1==1) { TR1=0; } else { T_NL_NZ++; NZ_sdgb=1; if(T_NL_NZ==3) { setn=0; setNZn=0; T_NL_NZ=0; } } } while(seeNL_NZ==0); } }
这段代码是一个按键扫描函数,用于检测按键的状态并作出相应的响应。具体来说,这个函数实现了以下功能:
1. 如果定时器 TR1 开启且没有进入设置模式,并且没有进行加减操作,就将 NZ_sdgb 置为 0。
2. 如果背光灯处于关闭状态,且按下了任意按键,就打开背光灯。
3. 如果背光灯处于打开状态,且没有在显示 NL_NZ,就关闭背光灯。
4. 如果背光灯处于关闭状态,且按下了任意按键,就进行相应的操作。具体来说,如果没有进入设置模式并且没有进行加减操作,就让蜂鸣器短响一次;如果 TR1 没有启动,就启动 TR1;否则,T_NL_NZ 加 1,并将 NZ_sdgb 置为 1。如果 T_NL_NZ 达到了 3,就退出设置模式。
5. 如果正在显示 NL_NZ,就等待 NL_NZ 显示完毕。
def collatz_conjecture(num): if num % 2 == 0: return num // 2 else: return (3 * num + 1) // 2 n = int(input()) m = list(map(int, input().split())) result = set(m) for i in m: while i > 1: i = collatz_conjecture(i) result.discard(i) result = sorted(result, reverse=True) print(' '.join(map(str, result))) 这个代码什么意思?想干嘛
这段代码是一个用来验证卡拉兹猜想的算法实现。卡拉兹猜想是指对于任何一个正整数n,如果n是偶数,则将其除以2;如果n是奇数,则将其乘以3再加1。重复这个过程,最终会得到1。
代码的功能是接收一个整数n作为输入,表示待验证的数字个数,然后接收n个整数作为待验证的数字列表m。
接下来,代码通过定义了一个collatz_conjecture函数来实现卡拉兹猜想的验证过程。其中,如果给定的数字num是偶数,则返回num除以2的结果;如果num是奇数,则返回(3 * num + 1)除以2的结果。
然后,代码通过设置一个集合result来存储验证过程中出现的数字。接着,对于列表m中的每个数字i,通过一个while循环来不断进行卡拉兹猜想的验证过程,直到i变为1或者已经在验证过程中出现过。如果i变为1,则从集合result中移除它。
最后,代码将集合result按照从大到小的顺序进行排序,并以空格作为分隔符打印出来。
总体而言,这段代码实现了对给定的数字列表进行卡拉兹猜想验证,并输出验证过程中未被覆盖的数字。
阅读全文