找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2977|回复: 2
收起左侧

自制的8路抢答器-小动作版 原理图+单片机代码+文档

[复制链接]
ID:632936 发表于 2019-12-21 13:03 | 显示全部楼层 |阅读模式
这是设计自制的8路抢答器,所有功能正常,包括倒计时时长设置(范围0~99s,不会溢出),抢答成功的对应选手序号的锁存与显示,无人抢答的报警,任意时刻都可重置抢答器。我自己又加了一个小动作子程序在里面——就是可以自定义某位选手的抢答有效,并屏蔽其他选手的抢答。
该抢答器基于STC12C5A60S2单片机,显示电路是基于74LS164的静态显示电路。

文件内包含使用说明书

小提醒:务必根据实际实验器材进行封装,网上找的大多数封装不一定合适,如果拿来就用会出大事!

注意!
注意!
注意!
电路图里所有的上拉电阻的VCC均与电源直接相连,如果需要接到开关处,请自行修改。

制作出来的实物图如下:
51hei.png

截屏2019-12-21下午12.32.59.png
截屏2019-12-21下午12.55.46.png

00:倒计时结束界面
11:开始界面
01:准备开始抢答标志(按住START键显示)
02:设置抢答时间标志(按住SET键显示)
03:重置标志(按住RESTART键显示)
99:小动作模式标志


操作方法:
开始界面:START键开始抢答
(显示11)  SET键设置倒计时时间
          先后按下RESTART键、SET键、START键并先松开SET键进入小动作模式
设置时长:START键增加时间(若时间为99则不会继续增加)
RESTART键减少时间(若时间为0则不会继续减少)
SET确认当前时间设置(默认倒计时时长为10s)
抢答倒计时:若有选手抢答则显示对应的序号,并且蜂鸣器短暂报警
(若选手1抢答成功,则显示“no. 1”)
            若无人抢答,倒计时结束蜂鸣器短暂报警,并显示“00”
            任意情况下按下RESTART键,回到开始界面
小动作模式:若选择“no.0”则不小动作
          通过START键和RESTART键选择选手,SET键确认
          (会自动屏蔽除小动作模式选择的选手以外其他选手的抢答)

单片机源程序如下:
  1. //************主程序************
  2. void main()
  3. {
  4.         Init();
  5.         while(1)
  6.         {
  7. if(flag1==0&&flag3==0&&flag2==0)    displaymode(11);
  8. if(key0==0&&flag1==0) //开始计时
  9.                 {
  10.                         delay(500);
  11.                         if(key0==0)
  12.                         {
  13.                                 while(!key0)
  14.                                 {
  15.                                         displaymode(1);
  16.                                 }
  17.                                 flag1=1;
  18.                                 buzzer();
  19.                                 TR0=1;
  20.                         }
  21.                 }        
  22.         if(key1==0&&flag1==0) //设置时间
  23.                 {
  24.                         delay(500);
  25.                         if(key1==0)
  26.                         {
  27.                                 while(!key1)
  28.                                         displaymode(2);
  29.                                 flag2=1;
  30.                                 key();
  31.                         }
  32.                 }
  33.                 while(!key2)  
  34. //小动作代码:选0时不小动作,选任意选手则默认为该选手抢答成功
  35.                 {
  36.                         delay(500);
  37.                         while(key2==0&&key1==0)
  38.                         {
  39.                                 delay(500);
  40. while(key2==0&&key1==0&&key0==0)
  41.                                 {
  42.                                         displaymode(99);
  43.                                         flag4=1;
  44.                                 }
  45.                                 zuobi();
  46.                         }
  47.                 }
  48.                 if(flag2==1) //显示谁抢答成功
  49.                         {
  50.                                 flag1=0;
  51.                                 buzzer();
  52.                                 t=t0;
  53.                                 qiangda();
  54.                 }
  55.                 if(flag3==1)   //报警
  56.                   {      
  57.                             buzzer();
  58.                                 while(key2)
  59.                                  displaymode(0);
  60.                                 while(!key2)
  61.                                 displaymode(3);
  62.                     }
  63.          }
  64. }

复制代码

全部资料51hei下载地址:
八路抢答器-.7z (944.26 KB, 下载次数: 28)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:632936 发表于 2019-12-21 13:06 | 显示全部楼层
本帖最后由 JXFF 于 2019-12-23 09:02 编辑

PCB电路板我忘记放进去了,不过你们最好根据实验器材选择对应的库和封装,直接给PCB你们可能也用不了。
管理员好可爱啊,把作弊改成了小动作模式,hhhhh
回复

使用道具 举报

ID:328014 发表于 2019-12-22 23:48 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表