完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求各位指导,先谢谢了。电路图在图片附件中
这是源程序 #include "reg52.h" #define uchar unsigned char uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66}; void delay() {uchar i,j; for(i=0;i<255;i++) for(j=0;j<255;j++); } uchar keyscan() {uchar keyv,temp; keyv=0; P2=0xff; temp=P2; if(~(P2&temp)) {switch(temp) {case 0xfe: keyv=1;break; case 0xfd: keyv=2;break; case 0xfb: keyv=3;break; case 0xf7: keyv=4;break; default: keyv=0;break; } } return keyv; } void main () { unsigned char leds; while(1) {leds=keyscan(); P1=table[leds]; delay(); } }
|
|
相关推荐
5个回答
|
|
最好上传你的仿真和程序的附件上来喔
|
|
|
|
功能是实现按键状态显示,按下几号键数码管就显示几,没键按下或者多键按下显示0.源程序如下: #include "reg52.h" unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66}; unsigned char keyscan() {unsigned char keyv,temp; keyv=0; P2=0xff; temp=P2; if(~(P2&temp)) {switch(temp) {case 0xfe: keyv=1;break; case 0xfd: keyv=2;break; case 0xfb: keyv=3;break; case 0xf7: keyv=4;break; default: keyv=0;break; } } return keyv; } void main () { unsigned char ledshow; while(1) {ledshow=keyscan(); P1=table[ledshow]; } } 无论怎么按键,为什么数码管不亮呢?请你帮忙看下,谢谢了。
|
|
|
|
按键函数中设置P2=0xf0,再加上去延时去抖动函数。然后试试。
|
|
|
|
|
|
|
|
数码管是共阳的...CC是共阴的,你用共阴的码去显示共阳..然后线还接错了.
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
5872 浏览 3 评论
7143 浏览 1 评论
7388 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
9179 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1265 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 04:24 , Processed in 0.706652 second(s), Total 84, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号