标题: while(!k1);在单片机独立按键里面表示一个什么意思啊,看不懂! [打印本页]

作者: tanghao8887    时间: 2018-10-20 09:56
标题: while(!k1);在单片机独立按键里面表示一个什么意思啊,看不懂!
请大家帮我分析一下,谢谢!

Screenshot_20181020-095503.png (32.1 KB, 下载次数: 170)

Screenshot_20181020-095503.png

作者: zailushang316    时间: 2018-10-20 11:18
while(!k1);就是等待按键松开,while()是循环,括号内非0就满足条件,按键是按下0,松开1,松开后这个循环条件就不满足了,等待结束。
作者: jll586    时间: 2018-10-20 11:24
按下K1==0,!k==1,while(!k1)检测时候松手
作者: FGH116    时间: 2018-10-20 11:38
意思是:非1(为0)的时候,无限循环;为1的时候执行下一条。
作者: sxhwdz    时间: 2018-10-20 11:39
while(!k1);   就是  while(k1==0);  在这儿的作用就是只要 k1为零(按键未松开),就反复执行这一条语句直到 k1为1(按键松开)
作者: tanghao8887    时间: 2018-10-20 18:05
zailushang316 发表于 2018-10-20 11:18
while(!k1);就是等待按键松开,while()是循环,括号内非0就满足条件,按键是按下0,松开1,松开后这个循环 ...

那为什么我松开了按键,那个灯并没有熄灭,而我重新按下按键灯才熄灭啊!
作者: ahshmj    时间: 2018-10-20 18:20
“在独立按键里面表示一个什么意思啊,看不懂!”,这句话我也看不懂。
作者: Herowuking    时间: 2018-10-20 18:32
这个k1的读取应该是用的中断,否则当k1按下,while(!k1)会一直执行,等待k1状态变化了才会释放。
作者: jiangkeqin_sy    时间: 2018-10-20 20:28
K1==0,!k==1,while(!k1)检测时候松手
作者: 薛磊    时间: 2018-10-20 20:40
K1应该是返回值,!K1是非K1,如果K1不为零,!K1为零,反之亦然
作者: bajiezhu    时间: 2018-10-20 21:16
k1看成一个变量就对了
作者: 单片机之神    时间: 2020-4-1 17:43
zailushang316 发表于 2018-10-20 11:18
while(!k1);就是等待按键松开,while()是循环,括号内非0就满足条件,按键是按下0,松开1,松开后这个循环 ...

等待结束是什么意思
作者: 13317970316    时间: 2020-10-12 23:14
上面写了  判断按键是否按下?
作者: 我系_源    时间: 2020-10-13 08:17
意思是当检测到K1高低电平时执行while()循环的指令
作者: 权威人物    时间: 2020-10-13 14:38
楼主就是小白,建议你多多看书,这程序完全是为小白准备的,这都还有注释还不清楚。以你的程序说明吧!看懂就懂,不懂建议你重头学或者别学了

095629wqll5s5lizo5vgvj.png (58.88 KB, 下载次数: 139)

095629wqll5s5lizo5vgvj.png

作者: i_could_have    时间: 2020-10-22 17:25
tanghao8887 发表于 2018-10-20 18:05
那为什么我松开了按键,那个灯并没有熄灭,而我重新按下按键灯才熄灭啊!

独立按键啊,按一下开,再按一下关。程序实现是没按下一次就标志位取反。至于那个while(!k1),是你在松开按键后,这个程序才能捕获你下一次按键动作。防止你一直按下不松手,如果没有这个的话,你一直按住按键,灯会闪,间隔是你的消抖时间。
作者: 一片一城    时间: 2020-10-23 11:17
tanghao8887 发表于 2018-10-20 18:05
那为什么我松开了按键,那个灯并没有熄灭,而我重新按下按键灯才熄灭啊!

反复按动K1,LED都能在亮与灭之间转换就说明此段代码正常,否则是消抖延时不恰当。
作者: qq35404085    时间: 2020-11-21 16:56
权威人物 发表于 2020-10-13 14:38
楼主就是小白,建议你多多看书,这程序完全是为小白准备的,这都还有注释还不清楚。以你的程序说明吧!看懂 ...

很详细




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1