打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
单片机八路竞赛抢答器制作 程序+电路图
     本电子小制作八路竞赛抢答器具有电路简单、制作容易、操作方便、可靠适用等优点,它由8个抢答按键开关和1个接收主板组成,可用于8组以及8组以下的竞赛抢答中。每组对应的抢答按键盘开关。将主机置于各组中央或是前方。主持人按一下启动按键后,八路竞赛抢答器开始工作,抢开始。当哪一组最先按下抢答键,主机就立即显示该组的组号并锁定并同时发出3次清脆的“叮咚”声。这时其它组按下任何一路抢答键均不起作用。只有当主持人再次按下启动按键后才能进行下一的抢答。该八路竞赛抢答器由直流稳压电源、抢答器、倒计显示时报警、电子计分等几部分组成。元件的选择:




        本电子小制作八路竞赛抢答器设计使用的元器件有:AT89C52单片机、数码LED数码管、按键开关等元件组成。其中AT89C52单片机是八路竞赛抢答器的核心,它主要负责控制八路竞赛抢答器各个部分的协调工作。外围接有上复位电路、上拉电阻、数码管、按钮以及蜂鸣器等。AT89C52单片机P1.0-P1.7为八路抢答输入端口,P0口为数码管段选端口,数码管位驱运口为P2口,P3.0口接蜂鸣器。


        八路竞赛抢答器工作原理:本八路竞赛抢答器计有抢答电路、显示电路、定时电路、主持人控制电路、报警电路。主持人通过按下复位按键后,电路进入等待抢答的工作状态,这时主持人即可发布抢答开始命令,这时发光二极管立即亮,当看各组抢答人员看到二极管点亮数码管进入倒计时状态时,即可进行抢答,当有人按下抢答按键,程序就会自动判断哪一组先按下的,选抢答的哪组的组号就会送到码管是显示出来,同时并锁住其它抢答按键,保持时的时间,从而实现了抢答的功能。如果在八路竞赛抢答器设定的时间内没有一组按下按下抢答键,倒计时时间一到就会发出报警信号,提示已经超时,不能再进行抢答。只有当由主持人再次按一下复位按键后,才能进入下一次的抢答。
       附件:电子小制作八路竞赛抢答器源程序
  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. }
复制代码




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
51单片机制作电子琴
51单片机的计数器程序
步进电机C版本
51单片机数码管动态扫描C程序
电磁铁 待修改代码
74HC138译码器在【数码管】显示中的使用_74ls138数码管显示
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服