找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)八路搶答器設(shè)計(jì)終極版

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:211150 發(fā)表于 2017-6-15 16:21 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
搶答器系統(tǒng)仿真原理圖如下(proteus工程文件可到附件下載):

任務(wù)描述及要求
  
任務(wù)描述
  
重難點(diǎn)
完成搶答器系統(tǒng)的軟硬件設(shè)計(jì)與調(diào)試,系統(tǒng)主要功能要求如下:
  
     1. 在給定電路圖基礎(chǔ)上,完成8路搶答器設(shè)計(jì);
  
2. 搶答成功后,顯示組號,同時蜂鳴器響一聲;
  
3. 搶答成功后,顯示20秒答題倒計(jì)時,計(jì)時時間到蜂鳴器響一聲;
  
3. 根據(jù)答題正確與否進(jìn)行加、減分并顯示累計(jì)分?jǐn)?shù)。
  
     4. 設(shè)主持人復(fù)位鍵;主持人加、減分鍵;
#include<reg51.h>
sbit key1=P0^0;
sbit key2=P0^1;
sbit key3=P0^2;
sbit key4=P0^3;
sbit key5=P0^4;
sbit key6=P0^5;
sbit key7=P0^6;
sbit key8=P0^7;
sbit k1=P3^6;
sbit k2=P3^7;
sbit k3=P3^3;
sbit wy=P3^4;
sbit wk_key=P3^5;
sbit ghr_key=P3^2;
bit qd_hd,speaker_permit;
bit grade_hxj;
unsigned char duanma[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xa3,0xa1};         
unsigned char fenshu[10]={0,0,0,0,0,0,0,0,0,0};
unsigned char weima[6]={0x01,0x02,0x04,0x08,0x10,0x20};
unsigned char xianshi[6]={0,0,0,0,0,0};
unsigned char  saomiao_jishu, jishi,jishu,jishu1,jishu2,zuhao=0,fuhao1,jishu3,f_speaker;
unsigned char jishi,miao,fen;
unsigned int jishi1;
unsigned char data_out;

void chushihua (void)               
  {
    zuhao=0;                                //組號  顯示 0,
        TMOD=0X11;
        EA=1;                                                //設(shè)置初值;計(jì)時為0。
        ET1=1;TR1=1;
        ET0=1;TR0=1;
        TH1=(65536-1000)/256;
        TL1=(65536-1000)%256;
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
        jishi=0;grade_hxj=0;
        qd_hd=0;
        speaker_permit=1;
  }
void dtsm(void)           //動態(tài)掃描子程序
  {
                 
         fen=fenshu[zuhao] ;
                 xianshi[0]=duanma[zuhao/10];
                 xianshi[1]=duanma[zuhao%10];
                 xianshi[2]=duanma[miao/10];
                 xianshi[3]=duanma[miao%10];
                 xianshi[4]=duanma[fen/10];
                 xianshi[5]=duanma[fen%10];
                      saomiao_jishu++;
                      if(saomiao_jishu==6)
                        {
                                  saomiao_jishu=0;
                                }
                  P2=  weima[saomiao_jishu];//位碼
                      P1=xianshi[saomiao_jishu];//段碼  
                           
  
  }
void preemptive_answer(void)                 //搶答子程序
{
if(qd_hd==0)                                                 //允 許 搶 答         
                            {
                                if(key1==0)                                
                               {                                                                                
                                zuhao=1; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                                                  
                                         }   
                                  if(key2==0)           
                                         {
                                     zuhao=2; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                                         }
                  if(key3==0)   
                                           {                        
                                zuhao=3; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                               }                     
                                     if(key4==0)
                                           {                        
                                zuhao=4; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                               }                     
                                  if(key5==0)           
                                         {  
                                     zuhao=5; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                                         }  
                                    if(key6==0)
                                           {                        
                                zuhao=6; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                               }                     
                                  if(key7==0)           
                                         {  
                                     zuhao=7; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;
                                         }  
                  if(key8==0)                                
                               {
                                zuhao=8; miao=20;qd_hd=1;
                                          speaker_permit=0;grade_hxj=1;                    
                                         }
                                }           
                   if(k3==0)         //開始
                                           {
                                          miao=10;qd_hd=0 ;

                                         }                                                  
if(qd_hd==1)       //計(jì) 數(shù)  
       {
                              
                   jishu2++;                                                  
           if(jishu2==200)                                          
          {
               jishu2=0;                                          
                   miao--;
                   if((miao==19)||(miao==0))        
                           {
                   speaker_permit=1;
                           }
                   if(miao==1)speaker_permit=0;                                                  
                   if(miao==0xff)miao=0;                  
              }
       }

                         if(wk_key==0)                                //復(fù) 位
                              {
                       zuhao=0;
                     miao=0;
                   qd_hd=0;
                     fen=0;
                     grade_hxj=0;   
                              }
if(grade_hxj==1)
                   {
                        if(k1==0)                                //加 分
                              {
                      fenshu[zuhao]=fenshu[zuhao]+1;
                    fen=fenshu[zuhao];
                    while(k1==0);
                                        }
                        if(k2==0)                                //減 分
                                       {
                    fenshu[zuhao]=fenshu[zuhao]-1;
                    fen=fenshu[zuhao];
                    while(k2==0);
                    }      
                 }
   
                                   

}
void zd(void) interrupt 3                        //蜂鳴 (中斷)
{
    TH1=(65536-8000)/256;
    TL1=(65536-8000)%256;
         jishu2++;                                                  
           if(jishu2==250)                                          
          {
               jishu2=0;                                          
                   miao--;
                   if(miao==0xff)miao=0;
                   }
                   if(miao==0)qd_hd=1;
        dtsm();
                preemptive_answer();         
}
void zd1(void) interrupt 1                //蜂鳴(中斷)
{
    TH0=(65536-1000)/256;
    TL0=(65536-1000)%256;
  if(speaker_permit==0)
        {
      f_speaker++;
          if(f_speaker==1)
           {
                   f_speaker=0;
                ghr_key=~ghr_key;
           }
    }
  if(wy==0)
                {
                 zuhao++;
                         if(zuhao==9)
                                {
                                 zuhao=0;
                                 fen=fenshu[zuhao] ;
                                }
                         while(wy==0);
            }
                 
}

void main(void)        
  {         
     chushihua();           
         while(1);

  }

1. 蜂鳴器的控制;
  
2. 加減分功能的設(shè)計(jì);
  
3. 各種信息的交替顯示;
  
4.系統(tǒng)的統(tǒng)調(diào)。


全部資料下載地址:
五組搶答器終極版.rar (71.51 KB, 下載次數(shù): 192)




評分

參與人數(shù) 3黑幣 +138 收起 理由
INVIO + 30 絕世好帖!
zqy181818 + 8 贊一個!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報(bào)

沙發(fā)
ID:359045 發(fā)表于 2018-6-29 14:33 | 只看該作者
我轉(zhuǎn)成了Proteus8.8版本了

Proteus8.8版本.7z

54.31 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

板凳
ID:363252 發(fā)表于 2018-7-2 16:39 | 只看該作者
很好厲害
回復(fù)

使用道具 舉報(bào)

地板
ID:417279 發(fā)表于 2018-10-29 15:03 來自觸屏版 | 只看該作者
剛好需要,謝謝dalao
回復(fù)

使用道具 舉報(bào)

5#
ID:434590 發(fā)表于 2018-11-30 14:44 | 只看該作者
搶答快了喇叭會一直響,清零也不能停止,只有停止仿真....
回復(fù)

使用道具 舉報(bào)

6#
ID:272006 發(fā)表于 2019-3-24 18:08 | 只看該作者
為什么開始搶答以后,揚(yáng)聲器就停不下來
回復(fù)

使用道具 舉報(bào)

7#
ID:736988 發(fā)表于 2020-5-4 17:28 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:720479 發(fā)表于 2020-5-5 18:43 | 只看該作者
太好了,剛好需要
回復(fù)

使用道具 舉報(bào)

9#
ID:992517 發(fā)表于 2021-12-15 04:59 | 只看該作者

thanks for sharing
回復(fù)

使用道具 舉報(bào)

10#
ID:997835 發(fā)表于 2021-12-28 15:07 | 只看該作者
牛逼哥,又美觀又實(shí)用
回復(fù)

使用道具 舉報(bào)

11#
ID:399179 發(fā)表于 2022-1-7 11:47 來自觸屏版 | 只看該作者
正好需要,謝謝樓主無私奉獻(xiàn)!
回復(fù)

使用道具 舉報(bào)

12#
ID:942522 發(fā)表于 2022-3-21 16:24 | 只看該作者
你好,我想請教一下,怎么把  答錯扣分  改成    答錯繼續(xù)搶答啊
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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