完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我想实现的是:比如说 按键2 按下,led灯亮,这时候如果再按下按键1 按键2 和按键3 程序会判为无效,一直到按下 停止键 时,灯灭,这时候才能按按键1或者2 或者3 我写了个程序 按那个键 都不执行。 #include #define uint unsigned int #define uchar unsigned char ***it gwjr=P3^0; //按键0 ***it gwgz=P3^1; //按键1 ***it gwpc=P3^2; //按键2 ***it tz=P3^3; //停止键 ***it tsj=P1^0; //led0 ***it clq=P1^1; //led1 ***it blq=P1^2; //led2 ***it cfj=P1^3; //led3 uint key; void delay(uint key); void Key_Scan(key) //扫描按键 { if(gwjr==0) delay(20); while(gwjr==0); if(gwjr==0)key=1; while(gwjr==0); if(gwgz==0) delay(20); while(gwgz==0); if(gwgz==0)key=2; while(gwgz==0); if(gwpc==0) delay(20); while(gwpc==0); if(gwpc==0)key=3; while(gwpc==0); if(tz==0) delay(20); while(tz==0); if(tz==0)key=0; while(tz==0); } void main() { Key_Scan(key); switch(key) {case 1:delay(10); while(key==1); tsj=~tsj; delay(200); clq=~clq;break; case 2:delay(10); while(key==2); tsj=~tsj; delay(200); clq=~clq; delay(200); blq=~blq; delay(200); cfj=~cfj;break; case 3:delay(10); while(key==3); tsj=~tsj; delay(200); clq=~clq; delay(200); blq=~blq;break; case 0:delay(10); while(key==0); tsj=tsj; clq=clq; blq=blq; cfj=cfj;break; } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) { for(y=1248;y>0;y--){} } } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-运动追踪之编写程序
424 浏览 0 评论
855 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1662 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1260 浏览 0 评论
904 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11870 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 04:13 , Processed in 0.497122 second(s), Total 72, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号