完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
`请问怎样用一个按键控制流水灯的亮和灭?当按一下按键时流水灯亮,再按一下按键时,流水灯灭。以下是偶写的程序,现在按一下K1时,流水灯能亮,请问程序怎样改才能使再按一下k1时,流水灯灭呢? #include ***it k1=P1^1; ***it Beep = P3^7; #define uint unsigned int void delayms(uint); void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void main(void) { if(k1==0) delayms(30); if(k1==0) { while(1) {P2=0xFF; delayms(350); P2=0xFE; delayms(350); P2=0xFD; delayms(350); P2=0xFB; delayms(350); P2=0xF7; delayms(350); P2=0xEF; delayms(350); P2=0xDF; delayms(350); P2=0xBF; delayms(350); P2=0x7F; delayms(350); P2=0xFF; delayms(350); Beep= 0; delayms(100); Beep= 1; delayms(50); Beep= 0; delayms(100); Beep= 1; delayms(50); } } } ` |
|
相关推荐
16个回答
|
|
定义一个标志位啊,标志位=1,LED就亮;标志位=0,则LED灭。好简单的说。
|
|
|
|
偶是新手,能不能在上面的程序里帮忙直接改一下? |
|
|
|
这个修改你的程序估计不行,因为你写的【程序架构有问题】,属于【牵一发而动全身】的说。
|
|
|
|
哦,哪重新写一个行不行?最好是简单一点的,就是一个按键控制流水灯的亮和灭. |
|
|
|
|
|
|
|
哪具体要怎样写才能简化呢? |
|
|
|
具体应该怎样改才能简化呢? |
|
|
|
K1的判断里面加个变量标志就可以了,while提到外面去
|
|
|
|
把while(这里边用按键值),当按下是也就是1,流水灯就亮,当不为1时,就停止流水灯了,请采纳,给积分
|
|
|
|
干嘛要用查表?移位不是更方便吗? |
|
|
|
能不能用循环来控制,减少调用延时子代码。
|
|
|
|
我是想要按一下按键时,流水灯亮,再按一下按键时,流水灯停止.你说这个可以吗? |
|
|
|
|
|
|
|
最简单的办法,在你循环前加if(按键数值为真)..流水灯执行,即可
|
|
|
|
说的这么明白的竟然还是不懂,我也是醉了 |
|
|
|
这么简单都不会。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12041 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 15:32 , Processed in 1.040055 second(s), Total 100, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号