完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
不知道哪里有问题,按键按下去数码管都没反应
#include #define uint unsigned int #define uchar unsigned char uchar num,temp; ***it key1=P3^4; ***it dula=P2^6; ***it wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0}; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() { dula=1; P0=0; dula=0; wela=1; P0=0xc0; wela=0; while(1) { P3=0xfe; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0); { temp=P3; switch(temp) { case 0xee:num=1; break; case 0xde:num=2; break; case 0xbe:num=3; break; case 0x7e:num=4; break; } dula=1; P0=table[num-1]; dula=0; } } } } |
|
相关推荐
5个回答
|
|
temp=temp&0xf0;
while(temp!=0xf0); { temp=P3; 上面while(temp!=0xf0);后面的;去掉试试,程序卡在那了
最佳答案
|
|
|
|
把电路图也发上来吧!
|
|
|
|
一看就知道是连菜鸟都不算的新手,程序逻辑都不懂。建议学一学画流程图。
针对你贴出来的问题,就在于两个while(temp!=0xf0),很明显你只是要判断temp和0xf0是不是相等,直接用if就可以,用while反而不可以。因为一旦条件成立,你的程序就在while(temp!=0xf0)那对花括号里出不来,除非你复位或者重新上电。 注意:逻辑很重要!!! |
|
|
|
1522495332 发表于 2015-10-15 21:47 = =额,因为我后面还没把松手检测的程序加进去啊,加进去就能跳出来了。。。确实是渣渣新手,还在慢慢学习,希望大神多多赐教。。。 |
|
|
|
谢谢 = =确实是因为多了个;号。。。难怪没结果 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-本地仓库管理之分支间的操作
290 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】3D 图形显示
487 浏览 0 评论
614 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】SPI点亮16级灰阶OLED显示屏
478 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第四十二章 录音机实验
1114 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12205 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-23 04:56 , Processed in 0.560495 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号