找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11757|回复: 17
打印 上一主题 下一主题
收起左侧

while(!k1);在单片机独立按键里面表示一个什么意思啊,看不懂!

  [复制链接]
跳转到指定楼层
楼主
ID:404479 发表于 2018-10-20 09:56 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请大家帮我分析一下,谢谢!

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

Screenshot_20181020-095503.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:412646 发表于 2018-10-20 11:18 | 只看该作者
while(!k1);就是等待按键松开,while()是循环,括号内非0就满足条件,按键是按下0,松开1,松开后这个循环条件就不满足了,等待结束。
回复

使用道具 举报

板凳
ID:357520 发表于 2018-10-20 11:24 | 只看该作者
按下K1==0,!k==1,while(!k1)检测时候松手
回复

使用道具 举报

地板
ID:216962 发表于 2018-10-20 11:38 | 只看该作者
意思是:非1(为0)的时候,无限循环;为1的时候执行下一条。
回复

使用道具 举报

5#
ID:387733 发表于 2018-10-20 11:39 | 只看该作者
while(!k1);   就是  while(k1==0);  在这儿的作用就是只要 k1为零(按键未松开),就反复执行这一条语句直到 k1为1(按键松开)
回复

使用道具 举报

6#
ID:404479 发表于 2018-10-20 18:05 来自手机 | 只看该作者
zailushang316 发表于 2018-10-20 11:18
while(!k1);就是等待按键松开,while()是循环,括号内非0就满足条件,按键是按下0,松开1,松开后这个循环 ...

那为什么我松开了按键,那个灯并没有熄灭,而我重新按下按键灯才熄灭啊!
回复

使用道具 举报

7#
ID:7485 发表于 2018-10-20 18:20 | 只看该作者
“在独立按键里面表示一个什么意思啊,看不懂!”,这句话我也看不懂。
回复

使用道具 举报

8#
ID:275993 发表于 2018-10-20 18:32 | 只看该作者
这个k1的读取应该是用的中断,否则当k1按下,while(!k1)会一直执行,等待k1状态变化了才会释放。
回复

使用道具 举报

9#
ID:267330 发表于 2018-10-20 20:28 | 只看该作者
K1==0,!k==1,while(!k1)检测时候松手
回复

使用道具 举报

10#
ID:412879 发表于 2018-10-20 20:40 | 只看该作者
K1应该是返回值,!K1是非K1,如果K1不为零,!K1为零,反之亦然
回复

使用道具 举报

11#
ID:412893 发表于 2018-10-20 21:16 | 只看该作者
k1看成一个变量就对了
回复

使用道具 举报

12#
ID:720329 发表于 2020-4-1 17:43 来自手机 | 只看该作者
zailushang316 发表于 2018-10-20 11:18
while(!k1);就是等待按键松开,while()是循环,括号内非0就满足条件,按键是按下0,松开1,松开后这个循环 ...

等待结束是什么意思
回复

使用道具 举报

13#
ID:683360 发表于 2020-10-12 23:14 | 只看该作者
上面写了  判断按键是否按下?
回复

使用道具 举报

14#
ID:798572 发表于 2020-10-13 08:17 | 只看该作者
意思是当检测到K1高低电平时执行while()循环的指令
回复

使用道具 举报

15#
ID:311846 发表于 2020-10-13 14:38 | 只看该作者
楼主就是小白,建议你多多看书,这程序完全是为小白准备的,这都还有注释还不清楚。以你的程序说明吧!看懂就懂,不懂建议你重头学或者别学了

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

095629wqll5s5lizo5vgvj.png
回复

使用道具 举报

16#
ID:833190 发表于 2020-10-22 17:25 | 只看该作者
tanghao8887 发表于 2018-10-20 18:05
那为什么我松开了按键,那个灯并没有熄灭,而我重新按下按键灯才熄灭啊!

独立按键啊,按一下开,再按一下关。程序实现是没按下一次就标志位取反。至于那个while(!k1),是你在松开按键后,这个程序才能捕获你下一次按键动作。防止你一直按下不松手,如果没有这个的话,你一直按住按键,灯会闪,间隔是你的消抖时间。
回复

使用道具 举报

17#
ID:678280 发表于 2020-10-23 11:17 | 只看该作者
tanghao8887 发表于 2018-10-20 18:05
那为什么我松开了按键,那个灯并没有熄灭,而我重新按下按键灯才熄灭啊!

反复按动K1,LED都能在亮与灭之间转换就说明此段代码正常,否则是消抖延时不恰当。
回复

使用道具 举报

18#
ID:387700 发表于 2020-11-21 16:56 | 只看该作者
权威人物 发表于 2020-10-13 14:38
楼主就是小白,建议你多多看书,这程序完全是为小白准备的,这都还有注释还不清楚。以你的程序说明吧!看懂 ...

很详细
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表