基于51单片机的抢答器如果有两人同时按下怎么解决呢? 比如有四组 当其中一组按下抢答键时 屏蔽其他组

作者&投稿:陀话 (若有异议请与网页底部的电邮联系)
基于51单片机的抢答器如果有两人同时按下怎么解决呢?~

如果真是同时按下,确实是没有办法区分的。
用高速的数字电路芯片,可以把先后的时间间隔,区分到纳秒的量级。

用单片机进行处理,相差1~2微秒的,都会认为是“同时按下”。
单片机软件,检测各个引脚的次序,是有先后的,先检测到的,就占便宜了。

你的描述不详:下面我给出方法,自已参考:
1:主持人端有一个单片机设备 且设备有一个或多个按键,单个按键,那么就做成按键复用,如果是多个按键,那就可以按要求设置按键功能和数量。参赛队每队一个设备,如果不方便能过连线来通讯,就采用无线通讯,抢答端只需一个按键按键,同时在按键里或边上用指示灯来指示状诚。
2:逻辑,当主持人按下抢答键时,主持人端设备向8个参赛队发送抢答开始信号数据,参赛队8个设备向主持端应答,判断收到应答后,开始计时10秒,某一队按下按键时,这队会向主持端发送本队的编号即可,说到这里,后面的基本上都是一样的原理,就是收发数据,应答,判断数据类型和功能。即可达到你的要求。

用单片机来判断先后,是相当粗放的。
如果两人按键相差在十多微秒之内,单片机即判断不出先后了,无法关断第二人的输入。
应该在单片机,和选手按键之间,加入硬件,如ALSTTL/HC类型的锁存器,它就可以区分出来几个纳秒的时间差。
如果有两人同时按下怎么解决呢?
只能通过软件编程,按照编者自定的顺序来查找 “先按下”的按键。
查到一个,便认定是它“先按下”,其它的选手,哪怕是先按下几个纳秒,也不理它了。
其实,那个庙里面,都有屈死的鬼。
另外,抢答器的按键,应该采用硬件消抖,不要用软件延时消抖。

看你按键的精确去抖动延时了哦!如果你延时精确的话,那就没问题。但是如果有万分之一,2个人真的同时按到一起了,时间正好的话,那你程序中加个优先判别顺序。个人愚见!

抢答按键无需去抖
理论上同时触发几乎不可能
实际应用中同时触发的概率取决于系统反应速度
速度越快同时触发的概率越低
用MCU中断截获数据的话,大概能识别微秒级别的时间差
用CMOS锁存器可识别纳秒级别的时间差

当有按键被按下的时候,以最快的速度保存各端口状态即可,无需什么屏蔽不屏蔽

定义一个标志位,通过标志位屏蔽其他按键

您好:
很难会有同时按下的情况,简直是没有,一般的按键处理都是检测到有按下、延时、再检测、屏蔽其它、键值检测。


用单片机AT89C51设计十路智力竞赛抢答器怎么设计
P1口按键输入,P0口输出LED8段数码管。 用switch 处理P1口的数据,看是否有键按下,如果有键按下,则进入switch处理函数,看是什么键码,对应键码控制P0口输出对应的数字。最后再来一个while按键释放程序。搞定~!因为你需要用10路,但是P1口直接连接的话只有8路,还有2路接不到。所以在输入给P1前...

基于51单片机的八路抢答器在答辩时都会问到什么问题
简单叙述一下你的毕业设计,你的毕业设计采用了那些元件?这些元件是干什么用的?为什么用它?,你不用担心,答辩老师大多数是糊弄人的(最好找不会为难你的老师),我同学什么也不会照样过了,你只要事先简单了解你的毕业设计就行。

用AT89C51单片机设计8路抢答器,求代码,急用
include<reg51.h>#define uchar unsigned charuchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};sbit rstkey=P2^2;sbit speaker=P2^0;void delay()\/\/延时约400毫秒{uchar i,j;for(i=0;i<200;i++)for(j=0;j<250;j++);}main(){uchar i,key;P2=0xff;while(1...

跪求大神给我用c语言编程,用51单片机控制3个按键和3个发光二极管,设置...
最容易理解的写法:设置b1、b2、b3、reset四个按钮(按下为0)和对应的LED1、LED2、LED3三个灯(点亮为0)int reset, b1,b2,b3,LED1,LED2,LED3;while(1){(读取reset) if(reset==0) { LED1=LED2=LED3=1; read=1; } if(read==1) { (读取b1, b2, b3)...

...抢答器是16位抢答器吗?还有AT89S52单片机是属于51系列,还是52系列...
4路抢答器指的是有四个抢答按键的抢答器,可以同时供4个人使用。同理16位是可以16个人同时抢答的抢答器,也就是16路抢答器。51单片机指的是单片机CPU的结构,也就是CPU属于51构架的。而Atmel公司根据单片机的使用情况,使用相同的51单片机CPU,搭配不同的RAM和ROM来做出多种型号的单片机。也就是AT89S51...

基于51单片机设计十六路抢答器,求大神啊,书一个原理图
分两个接口读入即可。但是,有先有后。后按键的选手,反而可能会有利。

AT89C51单片机8路抢答器C语言代码怎么写,急用,谢谢了
这个代码没有问题,我仿真过:#include<reg51.h>#define uchar unsigned charuchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};sbit rstkey=P2^2;sbit speaker=P2^0;void delay()\/\/延时约400毫秒{uchar i,j;for(i=0;i<200;i++)for(j=0;j<250;j++);}main(){...

51单片机抢答器?
仿真图名称?是要问这两张图是用的什么仿真软件么?如果是那么答案就是Proteus。

求基于单片机的抢答器(六路或者八路)的抢答器 原理图 单片机代码
网上搜的,你可以按照这个路径搜索去看全文首页›论坛›嵌入式\/单片机论坛›51单片机基于单片机的八路抢答器设计论文 带英文介绍与汇编语言源码 只看楼主eyexin 楼主2018-4-11 15:57 查看8203 回复0基于AT89C51的八路抢答器摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

单片机做的八路抢答器元件有哪些
89c51,或c52,或s51,s52,晶振11.0592MHz ,陶瓷电容30p两个,按键8个,数码管1个,复位电解电容1个,100uf可以,2k电阻,蜂鸣器,控制按键1个,2个或3个。若干连线。万能板。

桃源县17671857024: 基于51单片机的抢答器如果有两人同时按下怎么解决呢? 比如有四组 当其中一组按下抢答键时 屏蔽其他组 -
贯志鸡骨: 用单片机来判断先后,是相当粗放的. 如果两人按键相差在十多微秒之内,单片机即判断不出先后了,无法关断第二人的输入. 应该在单片机,和选手按键之间,加入硬件,如ALSTTL/HC类型的锁存器,它就可以区分出来几个纳秒的时间差. 如果有两人同时按下怎么解决呢? 只能通过软件编程,按照编者自定的顺序来查找 “先按下”的按键. 查到一个,便认定是它“先按下”,其它的选手,哪怕是先按下几个纳秒,也不理它了. 其实,那个庙里面,都有屈死的鬼. 另外,抢答器的按键,应该采用硬件消抖,不要用软件延时消抖.

桃源县17671857024: 基于51单片机的抢答器如果有两人同时按下怎么解决呢? -
贯志鸡骨: 如果真是同时按下,确实是没有办法区分的.用高速的数字电路芯片,可以把先后的时间间隔,区分到纳秒的量级.用单片机进行处理,相差1~2微秒的,都会认为是“同时按下”.单片机软件,检测各个引脚的次序,是有先后的,先检测到的,就占便宜了.

桃源县17671857024: 基于单片机的电子抢答器会出现哪些常见问题,并如何解决. -
贯志鸡骨: 主要就是对选手按键的时间先后,鉴别力不够.单片机速度太低,通常要隔十几个微秒,才检测一次按键,此期间,虽然有选手_先_后_按_键_,但是单片机却是同时读取,然后按照内定的程序报出一个选手的号码.明显有失公平.如果使用电子电路构成抢答电路,可以将鉴别时间控制在纳秒的级别.

桃源县17671857024: 51单片机毕设问题 -
贯志鸡骨: 第一个问题 发送端的编码是你自已编的还是买现的?如“TC9012”等. 如果是你自定义编码的那好办呀,解决多人同时抢答的问题,可以模仿一下I2C的通讯方法呀,主要思路是“约定地址位”,比如发两个字节,程序中约定好第一个字节是...

桃源县17671857024: C51单片机设计一个抢答器 -
贯志鸡骨: 不会出现两个人同时抢答的,单片机检测的时候有先后,检测到选手1按下了,就不用检测选手2了

桃源县17671857024: 51单片机的毕设问题,有经验的速度啊 -
贯志鸡骨: 那就太简单了,红外只作为一个控制信号,至于控制什么...多的是.比如按 1 键:按制个流水灯A方式显示 比如按 1 键:按制个流水灯B方式显示 上面这样简单那就加个显示屏,做菜单.本来做菜单一般直接用键盘,你的就相当于远程键盘.遥控还简单?再加些什么电机控制之类的,在遥控器上输入数字来控制开关与转支速度.一样加点,电路就出来了,如果真的做起来,程序才是头痛

桃源县17671857024: 求51单片机的控制的八路抢答器的程序 -
贯志鸡骨: OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040H MAIN: MOV R1,#0FH...

桃源县17671857024: 急求基于单片机的4路电子抢答器c语言程序 -
贯志鸡骨: 2、实现现象:同时按键抢答,先按的键有效,其他按键锁死 复位后重新开始抢答 3、硬件要求:按键 LED灯原理:最先按下按键者有效,其他均无效------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,...

桃源县17671857024: 用单片机c51实现声光显示智力竞赛抢答器需要哪些元器件 -
贯志鸡骨: 蜂鸣器,CPU(例如89C52等),电阻若干,发光二极管若干,三极管,按键.为了程序简单,你可以用专用的键盘芯片(例如74C923等).当然还有CPU工作用的晶体.为了稳妥起见,最好还有稳压块,用普通的三端稳压器就行.

桃源县17671857024: 关于六路抢答器 -
贯志鸡骨: 这个从原理上讲是不可能出现的事情.按钮按下的时间绝对是有MS之差的,也就说不存在2个按钮同时按下,那么也就不会有同事亮灯,如果你出现了考虑一下主板是否故障,产品是否漏洞.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网