完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include #define uint unsigned int #define uchar unsigned char bit flag; unsigned char key_scannum[] = {0xef,0xdf,0xbf,0x7f}; unsigned char table[]= {0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};//¼üÅÌ°´¼üÂë unsigned char led[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //P0¿Ú¶ÎÂë±àÂë void delay(uint x) //ÑÓʱ³ÌÐò { uint y; for(x;x>0;x--) for(y=0;y<100;y++); } unsigned char keyscan(void)//¼üÅÌɨÃèÖµº¯Êý { unsigned char i,j; P1=0x0f;//¼ì²éÊÇ·ñÓмü°´Ï if(P1!=0x0f)//±íʾÓа´¼ü°´Ï { delay(1); //È¥¶¶ if(P1!=0x0f) for(i = 0;i < 4;i++) { P1 = key_scannum; if(P1 != key_scannum)//´ËÐÐÓмü°´Ï for(j = 0;j < 16;j++) { if(P1 == table[j]) { flag=1; return(j); } } } } while((P1 & 0x0f)<0x0f); return(0); } void display(uint num) { uint ge,shi,bai,qian; qian=num/1000; P0=led[qian]; P2=0xf7; delay(1); P2=0xff; bai=num%1000/100; P0=led[bai]; P2=0xfb; delay(1); P2=0xff; shi=num%100/10; P0=led[shi] & 0x7f; P2=0xfd; delay(1); P2=0xff; ge=num%10; P0=led[ge]; P2=0xfe; delay(1); P2=0xff; } void main(void) { uint que,num=0; while(1) { que=keyscan(); if(flag==1) { num=num*10+que; flag=~flag; } display(num); } } 是哪里有问题?各位大神帮忙看一下 |
|
相关推荐
5个回答
|
|
不说问题现象,直接让人看代码,这也够让人累的
|
|
|
|
|
|
|
|
估计是是想实现4*4按键扫描并实现按第一个数码管全部是0,第二个全部2…………
|
|
|
|
那你是显示有问题,按键有问题,还是只是无法显示按下的按键
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
308 浏览 0 评论
431 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十四章 image图像滤波实验
372 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】简介、环境搭建、工程测试
395 浏览 0 评论
730 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11625 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 11:17 , Processed in 0.555966 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号