#include
#include
#define led P2//主持显示器
#define sw P1//主持按键
#define disp P0//观众显示器
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
sbit led1=P3^6;//主持灯
sbit bl=P3^7;// 扬声器
sbit sw1=P3^0;//主持按键
void delay(uint x);//延时函数
void bb();//响铃函数
void main()
{ uchar i;
disp=0;
while(1){
while(sw1){
led1=0;
for(i=0;i<5;i++){
delay(2499); }
led1=1;
for(i=0;i<5;i++){
delay(2499); }
}//判断主持按键;
delay(1498);//延时
while(!sw1){//判断主持按
led1=0;// 主持灯常亮则表示允许开始抢答
disp=0;//关观众显示器
led=0xff;//关显示器
sw=0xff;//关抢答键
while(sw==0xff);
i=sw; //将键值送变量i
i=~i; //取反
switch(i){ //根据按键分支送显示
case 1: led=0x9f;disp=0x06;bb(); break;//显示1
case 2: led=0x25;disp=0x5b;bb(); break;//显示2
case 4: led=0x0d;disp=0x4f;bb(); break;//显示3
case 8: led=0x99;disp=0x66;bb(); break;//显示4
case 16: led=0x49;disp=0x6d;bb(); break;//显示5
case 32: led=0x41;disp=0x7d;bb(); break;//显示6
case 64: led=0x1e;disp=0x07;bb(); break;//显示7
case 128: led=0x01;disp=0x7f;bb(); break;//显示8
default:break;//不是抢答按键,或者有多个键按下不进行任何操作
}
break; }
}
}
void delay(uint x){//延时函数12ms 左右用来消除按键抖动
while(x--);
}
void bb(){
uchar j;
bl=0;
for(j=0;j<2;j++)
{delay(65535);}
bl=1;
}
电脑抢答器网 抢答器设计与制作的专业网站 大学生课程设计的园地 |