八路抢答器程序和仿真

发布者:HarmoniousCharm最新更新时间:2015-11-16 来源: eefocus关键字:八路抢答器 手机看文章 扫描二维码
随时随地手机看文章
一 性能指标要求:

1、 需要自己设计电路并焊接电路板。

2、基本要求:有一个主持人控制开关和6路抢答按扭,当主持人允许抢答时才能进行抢答操作,并用一个数码管显示抢答选手的号码,同时其他选手不能再抢答。

3、当主持人允许抢答后倒计时5秒时间,在这5秒内抢答有效,过后就不能进行抢答了。

4、 电路上要加个蜂鸣器的电路,当有选手抢答时蜂鸣器响一下。

5、当有选手抢答后,进行倒计时20秒作为选手回答问题时间,用两个数码管显示,倒计时时间到时有声光提示。

6、 画电路板时要增加下载接口,方便调试程序。

#include
#define uchar unsigned char
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code wei[4]={0xef,0xf7,0xfb,0xfd};
uchar fen=0,miao=0,qd=0;
uchar flag=0,temp=0,flag2=0,tt=0,b=31,bb=31;
sbit d0=P1^0;
sbit d1=P1^1;
sbit feng=P1^3;
sbit deng=P1^4;
void delay(uchar z)
 {
  uchar i,j;
  for(i=z;i>0;i--)
   for(j=110;j>0;j--); 
 }
void delay2(uchar z)
 {
  uchar i,j;
  for(i=z;i>0;i--)
   for(j=30;j>0;j--); 
 }
fengming()
{
 feng=1;
 delay2(1);
 feng=0;
 delay2(1);
 feng=1;
 delay2(1);
 feng=0;
 delay2(1);
 

}
void time01()//定时器相关
{
 EA=1;
 TR0=1;//启动定时器0
 ET0=0;//开定时器0中断
 TMOD=1;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%6;//声明:定时50毫秒

}
display(void)
{
 P2=wei[0];
 P0=table[fen];
 delay(8);
 P2=wei[1];
 P0=table[miao];
 delay(8);
 P2=wei[3];
 P0=table[qd];
 delay(8); 
}
qiangda(void)
{
 P3=0xff;
 delay(15);
 if(P3!=0xff)
 {
  delay(5);
  if(P3!=0xff)
  {
  
   switch(P3)
   {
   case 0xfe: temp=1;break;
   case 0xfd: temp=2;break;
   case 0xfb: temp=3;break;
   case 0xf7: temp=4;break;
   case 0xef: temp=5;break;
   case 0xdf: temp=6;break;
   case 0xbf: temp=7;break;
   case 0x7f: temp=8;break;
   }
  
 }
  return(temp);
}
daojishi()//30 miao

 
 bb--;
 miao=bb;
 fen=bb/10;
 fengming();
 if(bb==0){ ET0=0;bb=31;feng=1;deng=1;delay(80);feng=0;}
}
inition()//初始化
{
 fen=0,miao=0,qd=0;
 flag=1,temp=0,flag2=0,tt=0;deng=1;
}
d1pand()
{
 if(d1==0)
 {
  delay(20);
  if(d1==0) b--;while(!d1)
      {
      bb=b; 
      P2=wei[0];
      P0=table[bb/10];
      delay(5);
      P2=wei[1];
      P0=table[bb];
      delay(5);
      if(b<5) b=31;
      
 }
}
d0pand()
{
  if(d0==0)
  {
   delay(20);
   if(d0==0)
   {
   inition();
   while(!d0); 
   }
  }
}

void main()
{
 time01();
 
 while(1)
 //fengming();
  feng=0;
  display();
  d1pand();
  d0pand();
  if(flag==1)
  {
   if(flag2==1){flag=0;}
   else//flag2=0
   {
    ET0=1;
    qd=qiangda();
    if(qd!=0)
   { flag2=1;tt=1; 
    deng=0;feng=1;delay(80);feng=0;
   }
    
    
    
  


 }

}

void time0() interrupt 1
 {
  uchar a;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%6;
  a++;
  if(a ==0)
  {
   miao++;
   if(miao==6&&flag2==0){feng=1;;miao=0;flag2=1;delay(80);feng=0;ET0=0;}

   if(tt==1){
      daojishi();
      }
   
  }
  
 
 }

 

八路抢答器程序和仿真
 

关键字:八路抢答器 引用地址:八路抢答器程序和仿真

上一篇:单片机篮球计分器程序和仿真图
下一篇:8051单片机的5个中断源

推荐阅读最新更新时间:2024-03-16 14:39

基于单片机的精简八路抢答器
单片机源程序如下: /**************************************************************************************** 八路抢答器系统 活动规则: 初始状态:上电时,台号显示“00”,倒计时显示“00”,红灯和绿灯熄灭。 当主持人按下“开始/清除”键时(选手才能抢答),蜂鸣器响一下,台号显示“00”,倒计时数码管显示“05”, 这时开始准备倒计时5秒,当准备倒计时显示回到“00”时,然后显示倒计时30秒开始抢答。 如果倒计时未回到“00”就抢答,这时红灯闪亮,倒计时数码管显示“-- ,这时禁止任何操作。 这时只有主持人按下“开始/清除”键,
[单片机]
基于单片机的精简<font color='red'>八路抢答器</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved