您的位置:   首页>>设计与制作>>电子抢答器设计与制作
  简单的数字抢答器
  • 来源:
  • 作者:qdq
  • 时间:2005-12-15 08:10:27
  • 网友评论:0
  • 点击数:7231
推荐阅读   加入收藏      


#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;
          }

 

上一条:简易竞赛抢答器        下一条:简易四路抢答器
相关文章