求51单片机6路抢答器程序

现有板子一块,如图,不需要数码管显示也可以。只要能

点亮对应的发光二级管就行。

第1个回答  2012-10-12
你写个按键扫描程序就可以了,同时加上一个主按键,再加上报警的程序,用定时器。当主按键按下开始计时,计时时间到没人抢答就报警 .同学你打算怎么写追问

单片机我还没入门,写不出来啊,计时报警不用也行,只要能实现最先按下后对应的指示灯亮,后按无效就行了。求程序,急用!!!!

追答

你按键接哪个口
我直接帮你接P2口咯
我用矩阵键盘写的
#include
void main(void)
{
P0=0XFF;
P2=0XFF;
while(1)
{
key();
}
}
void key(void)
{
unsigned char temp
if(P2!=0XFF)
{
if(P2!=0XFF)
{
temp=P2;
switch(temp)
{
case 0XEE: P0=0XFE;break;
case 0XDE: P0=0XFD;break;
case 0XBE: P0=0XFB;break;
case 0X7E: P0=0XF7;break;
case 0XED: P0=0XEF;break;
case 0XDD: P0=0XDF;break;
defalut : P0=0XFF; break;
}
}
}
}

追问

加q906019249聊吧,编译报

错啊     

追答

你按键接哪个口

我直接帮你接P3口咯

我用矩阵键盘写的

#include<reg51.h>

unsigned char temp ;

void key(void);

void main(void)

{

P0=0XFF; 

P2=0XFF;

while(1)

{

key(); 

}

}

void key(void)

{

 

if(P2!=0XFF) 

if(P2!=0XFF) 

temp=P2; 

switch(temp) 

case 0XEE: P0=0XFE;break; 

case 0XDE: P0=0XFD;break; 

case 0XBE: P0=0XFB;break; 

case 0X7E: P0=0XF7;break; 

case 0XED: P0=0XEF;break; 

case 0XDD: P0=0XDF;break; 

defalut : P0=0XFF; break; 

}

 

}

}

}

追问

还是报错

追答

default

第2个回答  2012-10-16
程序已发到你的邮箱,请注意查收。不明白的地方联系我!本回答被提问者采纳
第3个回答  2012-10-12
这个简单,去下载一个八路的抢答器的程序,改一下端口配置就可以了追问

帮忙改一下呗,要知道没入门看不懂程序啊。

追答

我手里头没有现成的呢,有空再帮你弄弄吧

本回答被网友采纳
第4个回答  2012-10-13
有16路抢答的,矩阵键盘输入。数码管显示
相似回答