標(biāo)題: 單片機(jī)八路競賽搶答器制作 程序+電路圖 [打印本頁]

作者: dzdiy    時間: 2015-4-12 02:46
標(biāo)題: 單片機(jī)八路競賽搶答器制作 程序+電路圖
    本電子小制作八路競賽搶答器具有電路簡單、制作容易、操作方便、可靠適用等優(yōu)點(diǎn),它由8個搶答按鍵開關(guān)和1個接收主板組成,可用于8組以及8組以下的競賽搶答中。每組對應(yīng)的搶答按鍵盤開關(guān)。將主機(jī)置于各組中央或是前方。主持人按一下啟動按鍵后,八路競賽搶答器開始工作,搶開始。當(dāng)哪一組最先按下?lián)尨疰I,主機(jī)就立即顯示該組的組號并鎖定并同時發(fā)出3次清脆的“叮咚”聲。這時其它組按下任何一路搶答鍵均不起作用。只有當(dāng)主持人再次按下啟動按鍵后才能進(jìn)行下一的搶答。該八路競賽搶答器由直流穩(wěn)壓電源、搶答器、倒計顯示時報警、電子計分等幾部分組成。元件的選擇:




        本電子小制作八路競賽搶答器設(shè)計使用的元器件有:AT89C52單片機(jī)、數(shù)碼LED數(shù)碼管、按鍵開關(guān)等元件組成。其中AT89C52單片機(jī)是八路競賽搶答器的核心,它主要負(fù)責(zé)控制八路競賽搶答器各個部分的協(xié)調(diào)工作。外圍接有上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕以及蜂鳴器等。AT89C52單片機(jī)P1.0-P1.7為八路搶答輸入端口,P0口為數(shù)碼管段選端口,數(shù)碼管位驅(qū)運(yùn)口為P2口,P3.0口接蜂鳴器。


        八路競賽搶答器工作原理:本八路競賽搶答器計有搶答電路、顯示電路、定時電路、主持人控制電路、報警電路。主持人通過按下復(fù)位按鍵后,電路進(jìn)入等待搶答的工作狀態(tài),這時主持人即可發(fā)布搶答開始命令,這時發(fā)光二極管立即亮,當(dāng)看各組搶答人員看到二極管點(diǎn)亮數(shù)碼管進(jìn)入倒計時狀態(tài)時,即可進(jìn)行搶答,當(dāng)有人按下?lián)尨鸢存I,程序就會自動判斷哪一組先按下的,選搶答的哪組的組號就會送到碼管是顯示出來,同時并鎖住其它搶答按鍵,保持時的時間,從而實(shí)現(xiàn)了搶答的功能。如果在八路競賽搶答器設(shè)定的時間內(nèi)沒有一組按下按下?lián)尨疰I,倒計時時間一到就會發(fā)出報警信號,提示已經(jīng)超時,不能再進(jìn)行搶答。只有當(dāng)由主持人再次按一下復(fù)位按鍵后,才能進(jìn)入下一次的搶答。
       附件:電子小制作八路競賽搶答器源程序
  1. #include<reg52.h>
  2. sbit kai1 = P0^0;
  3. sbit kai2 = P0^1;
  4. sbit kai3 = P0^2;
  5. sbit kai4 = P0^3;
  6. sbit kai5 = P0^4;
  7. sbit kai6 = P0^5;
  8. sbit kai7 = P0^6;
  9. sbit kai8 = P0^7;
  10. sbit spk1 = P3^0;
  11. void diar(void)
  12. {
  13.    unsigned int i;
  14.    for(i=0;i<35000;i++);
  15. }
  16. void qi1()
  17. {
  18.    spk1=0;   
  19.    P1=0xF9;
  20.    kai1=0;
  21.    diar();
  22.    while(1)
  23.    {
  24.       spk1=1;
  25.    }
  26. }
  27. void qi2()
  28. {
  29.    spk1=0;   
  30.    P1=0xA4;
  31.    kai2=0;
  32.    diar();
  33.    while(1)
  34.    {
  35.      spk1=1;
  36.    }
  37. }

  38. void qi3()
  39. {
  40.    spk1=0;   
  41.    P1=0xB0;
  42.    kai3=0;
  43.    diar();
  44.    while(1)
  45.    {
  46.      spk1=1;
  47.    }
  48. }
  49. void qi4()
  50. {
  51.    spk1=0;   
  52.    P1=0x99;
  53.    kai4=0;
  54.    diar();
  55.    while(1)
  56.    {
  57.      spk1=1;
  58.    }
  59. }
  60. void qi5()
  61. {
  62.    spk1=0;
  63.    P1=0x92;
  64.    kai5=0;
  65.    diar();
  66.    while(1)
  67.    {
  68.       spk1=1;
  69.    }
  70. }
  71. void qi6()
  72. {
  73.    spk1=0;   
  74.    P1=0x82;
  75.    kai6=0;
  76.    diar();
  77.    while(1)
  78.    {
  79.      spk1=1;
  80.    }
  81. }
  82. void qi7()
  83. {
  84.    spk1=0;   
  85.    P1=0xF8;
  86.    kai7=0;
  87.    diar();
  88.    while(1)
  89.    {
  90.       spk1=1;
  91.    }
  92. }
  93. void qi8()
  94. {
  95.    spk1=0;   
  96.    P1=0x80;
  97.    kai8=0;
  98.    diar();
  99.    while(1)
  100.    {
  101.       spk1=1;
  102.    }
  103. }

  104. void main()
  105. {
  106.    P0=0xff;
  107.    while(1)
  108.    {
  109.        if(kai1==0)
  110.        qi1();
  111.        if(kai2==0)
  112.        qi2();
  113.        if(kai3==0)
  114.        qi3();
  115.        if(kai4==0)
  116.        qi4();
  117.        if(kai5==0)
  118.        qi5();
  119.        if(kai6==0)
  120.        qi6();
  121.        if(kai7==0)
  122.        qi7();
  123.        if(kai8==0)
  124.        qi8();
  125.    }
  126. }
復(fù)制代碼





作者: MX安心    時間: 2016-6-20 11:46
非常好。!
作者: 1084868171    時間: 2016-12-20 16:37
請問你的電子記分在哪里?

作者: brokenH    時間: 2017-12-20 14:16
你這個是不是沒有復(fù)位功能的?
作者: 親愛的h    時間: 2018-7-14 23:20
這個電路有做成功的嗎?

作者: manpingshui    時間: 2018-7-18 21:11
這個電路很簡單實(shí)用
作者: wandier1    時間: 2018-7-29 10:04
樓主有源文件么,我也想制作一個
作者: 凱文的小男孩    時間: 2020-4-26 11:00
真的是太給力
作者: 華仔的世界    時間: 2020-5-18 21:47
不能定時啊
作者: ddd6    時間: 2020-6-15 09:30
原理圖有嗎
作者: 黃尼瑪a    時間: 2020-6-15 11:03
很好的作品
作者: swustlx86    時間: 2020-6-17 09:01
好資料,51黑有你更精彩!!!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1