程序是用KEIL编写的,然后写到PROTEUS中AT89C52中,仿真后,...

2019-07-18 10:18发布

这是源程序:
#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];
}
}

本人初学者,希望各位指点下,在线等待中......
这是仿真电路图 这是仿真电路图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
skyzwb123
1楼-- · 2019-07-18 13:00
是开关状态 检测电路。功能是按下几号开关,数码管就应该现实几,没键按下或者有多个键同时按下时显示0.可是无论怎么俺键数目管始终不亮,请各位大神指导下,
馨雨
2楼-- · 2019-07-18 16:04
程序有点长,看看先
小工兵
3楼-- · 2019-07-18 21:13
 精彩回答 2  元偷偷看……
发烧友之麒麟
4楼-- · 2019-07-18 21:55
微积分而赞
z00
5楼-- · 2019-07-19 03:40
keyscan()函数有问题呢 楼主仔细测试一下
电子发烧友dsl
6楼-- · 2019-07-19 07:16
前来膜拜各路大神

一周热门 更多>