完善资料让更多小伙伴认识你,还能领取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[i]; if(P1 != key_scannum[i])//´ËÐÐÓмü°´Ï 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); } } 这是写的程序,出不来结果,各位大神看一下,是哪里出问题了? |
|
相关推荐
4个回答
|
|
不要只是说出不来结果,把问题的详细情况说清楚,比如设计的功能是怎样的,在什么样的操作下出不来结果,有什么反应没有,把异常描述清楚别人才好帮你分析,不然很少有人有时间去仔细看你的程序帮你一句句分析问题的。
|
|
|
|
数码管只显示两位,键盘按下没反应
|
|
|
|
深圳万达行电子,厂家直销,专业生产整流二极管以及整流桥堆,M7 SS14 MB10S MB10F M7F 特价销售,详情请咨询QQ2471806688,欢迎咨询下单
|
|
|
|
控制位没有声明 单片机不知道电平跳变他要干嘛
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
ad把一个15mm*1.5mm的灯放到直径15mm的圆形pcb板上,可以实现吗
487 浏览 0 评论
1010 浏览 1 评论
请问PCB覆铜规则改成了Direct Connect为什么还是Relief Connect连接?
1411 浏览 1 评论
如何防止多个IIC器件出现时序错乱或者工作一定时长后不工作?
1938 浏览 3 评论
10 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 11:13 , Processed in 2.220661 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号