完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
***it KEY=P1^0; ***it LED0= P1^1; ***it LED1= P1^2; ***it LED2= P1^3; void main() { uchar led_flag=0; P1=0xff; while(1) { if(KEY==0) { delay_ms(50); if(KEY==0) { led_flag++; if(led_flag==3) led_flag=1; } while(!KEY); } if(led_flag==1) { LED0=0;LED2=1;} else if(led_flag==2) {LED1=0;LED0=1;} else if(led_flag==3) {LED2=0;LED1=1;} } }
|
|
相关推荐
11个回答
|
|
|
把这个语句直接去掉也可以,
***it KEY=P1^0; ***it LED0= P1^1; ***it LED1= P1^2; ***it LED2= P1^3; void main() { uchar led_flag=0; P1=0xff; while(1) { if(KEY==0) { delay_ms(50); if(KEY==0) { led_flag++; if(led_flag==3) led_flag=1; } } if(led_flag==1) { LED0=0;LED2=1;} else if(led_flag==2) {LED1=0;LED0=1;} else if(led_flag==3) {LED2=0;LED1=1;} } } |
|
|
|
|
|
去掉也不可以啊!去掉的话你直接按着不放的话,就会循环一次执行一次,你试过你这个程序吗?不会是你想的按一次变化一次的!这个不是多余的而是写法有错误!按键有按下,松开和按键时长还有按键次数的区分的,你感觉你这样写的话符合哪个条件?
|
|
|
|
|
|
按键松开检测?不过会卡到这的!
|
|
|
|
|
|
|
|
|
|
|
|
明显就是多余的、、这么写会被骂的
|
|
|
|
|
|
我是想通过按键次数来改变led的状态,学习中
|
|
|
|
|
|
如果把这个语句去掉的话,按键一直按着,三个灯一直亮,每次按下都是三个灯都亮,松开后一个灯亮。
#include ***it KEY=P3^2; ***it LED0= P0^0; ***it LED1= P0^1; ***it LED2= P0^2; void delay(unsigned char m); void main() { unsigned char led_flag=0; P0=0xff; while(1) { if(KEY==0) { delay(200); if(KEY==0) { led_flag++; if(led_flag==4) led_flag=1; } } if(led_flag==1) { LED0=0;LED1=1;LED2=1;} else if(led_flag==2) {LED1=0;LED0=1;LED2=1;} else if(led_flag==3) {LED2=0;LED1=1;LED0=1;} } } void delay(unsigned char m) { unsigned char n,k; for(n=0;n<200;n++); for(k=0;k |
|
|
|
|
|
本帖最后由 MOP 于 2016-11-5 13:40 编辑
huihui163 发表于 2016-11-1 13:34嗨,你改成這樣的話,又一直按住 因為While loop執行還是很快的(delay值決定),會產生肉眼視覺暫留,所以會觀察到好像全部LED都是ON,事實上還是有OFF的 當您放開時,led_flag就固定了,所以只有一個LED會ON |
|
|
|
|
|
等待按键松开,再往下执行。要是没有此语程序会多次执行按键处理函数
|
|
|
|
|
hu5917241867 发表于 2016-11-6 14:27 如果没有这个语句,应该一直循环下去,为啥每次按一下的时候都是三个灯都亮啊,就如9楼所说的 |
|
|
|
|
|
会员你好,有了答案要及时选择最佳答案,别忘了哦
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1058 浏览 1 评论
1881 浏览 0 评论
1859 浏览 1 评论
3283 浏览 5 评论
3610 浏览 9 评论
1061浏览 1评论
1884浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1389浏览 1评论
1884浏览 0评论
1204浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 23:19 , Processed in 1.308445 second(s), Total 94, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1120