找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2333|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

八路搶答器的設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
原程序
#include<reg51.h>
unsigned char dip[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
sbit KEY9=P3^1;
sbit KEY10=P3^2;
sbit BUZZ=P3^0;
bit start_key();
bit end_key();
unsigned int number_key();
void delay_20ms();
void buzz_on();
void main()
{
unsigned char key_number,n;
while(1)
{
  P0=0x00;
  BUZZ=1;
  if(start_key()==1)
  {
   key_number=number_key();
   if(key_number==0)continue;
     else P0=dip[key_number];
   while(end_key()==1)
    buzz_on();
  }
  else{P0=0x49;
   while(end_key()==1)
   {
    key_number=number_key();
    if(key_number!=0)
    {
     P0=dip[key_number];
     for(n=0;n<150;n++)
         buzz_on();
     while(end_key()==1);
         break;
    }
   }
  }
}
}
bit start_key()
{ if(KEY9==1)
return 1;
else
return 0;
}
bit end_key()
{ if(KEY10==1)
   return 1;
else
  delay_20ms();
if(KEY10==1)
  return 1;
else
  return 0;
}
unsigned int number_key()
{unsigned char key_state=0;
key_state=P1;
if(key_state==0xFF)
return 0;
else
{
if(key_state==0xfe)return 1;
else if(key_state==0xFD)return 2;
else if(key_state==0xFB)return 3;
else if(key_state==0xF7)return 4;
else if(key_state==0xEF)return 5;
else if(key_state==0xDF)return 6;
else if(key_state==0xBF)return 7;
else return 8;
}
}
void buzz_on()
{unsigned char i;
BUZZ=0;
for(i=0;i<26;i++)
   delay_20ms();
BUZZ=1;
}
void delay_20ms()
{
   unsigned int j;
   for(j=0;j<10;j++);
}


1111111111.png (535.91 KB, 下載次數(shù): 97)

1111111111.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表