51单片机抢答器设计

发布时间:2022-12-20  

任务描述

某企业承担了某抢答比赛抢答器系统的设计,要求如下:①可同时供3名选手参加比赛,他们的编号分别是1、2、3,每名选手各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S1、S2、S3。②给主持人设置两个控制开关“START”和”END”,用来控制系统中抢答的开始和结束。③抢答器具有数据所存、显示和声音提示的功能。抢答开始前,若有选手按动抢答按钮,视为违规,要显示其编号,并长响蜂鸣器;抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示,此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号将一直保存到主持人将系统清零为止。


硬件电路图

元件清单


C语言程序

#include

unsigned char dip[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xfb,0x80,0x90};  //共阳极数码管段码

sbit KEY9=P3^1; //开始键

sbit KEY10=P3^2;    //结束键

sbit BUZZ=P3^0; //蜂鸣器

bit start_key(); //抢答开始键检测函数

bit end_key(); //抢答结束键检测函数

unsigned int number_key();   //选手按键扫描

void delay_20ms();   //延时函数

void buzz_on();   //蜂鸣器开关

void main()    //主函数

{

unsigned char key_number,n;

while(1)

{

P0=0xff;   //关闭数码管显示

BUZZ=1;   // 关闭蜂鸣器

if(start_key()==1)   //抢答允许检测

{   

key_number=number_key();    //抢答开始前检测有无选手违规

if(key_number==0)    //无人违规

 continue; //返回

 else P0=dip[key_number];    // 有人违规,显示违规选手号码

while(end_key()==1)    //主持人结束键没有按下则蜂鸣器长响

buzz_on();

}

if(start_key()==0)    //主持人开始键按下前无人违规抢答

{ //数码管显示“三”允许抢答

  P0=0Xb6;

while (end_key()==1)

{

n=0;

key_number=number_key(); //检测是否有选手抢答

if(key_number==0)

 continue;

while(key_number!=0)

{

 P0=dip[key_number]; //显示第一个选手抢答的号码

    for(;n<150;n++)

 buzz_on();    //蜂鸣器响一会儿

if(end_key()==0)    // 主持人结束键按下,结束本轮抢答

 break;

 }

 }

 }

 }

 }

 bit start_key()

 {

 if(KEY9==1)

 return 1; //返回值1表示主持人没有按开始键

 else

 delay_20ms();   //延时防抖

 if(KEY9==1)

 return 1;

 else

 return 0;

 }

 bit end_key()

 {

 if(KEY10==1)

 return 1;

 else

 return 0;

 }

 unsigned int number_key()

 {

 unsigned char key_state=0;

 key_state=P1;

 if(key_state==0xff)

 return 0;    //返回0无选手抢答

 else

 {

 if(key_state==0xfe)   //1号抢答

 return 1;

 else if(key_state==0xfd) //2号抢答

 return 2;

 else return 3; //3号抢答

 }

 }

 void buzz_on()

 {

 unsigned char i;

 BUZZ=0;

 for(i=0;i<26;i++)

 delay_20ms();

 BUZZ=1;

 }

 void delay_20ms()

 {

 unsigned int j;

 for(j=0;j<10;j++);

 }


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 ! 系统......
    单片机抢答器的设计资料详细说明;在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视......
    觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 ! 系统......
    51单片机抢答器设计;任务描述 某企业承担了某抢答比赛抢答器系统的设计,要求如下:①可同时供3名选手参加比赛,他们的编号分别是1、2、3,每名选手各用一个抢答按钮,按钮的编号与选手的编号相对应,分别......
    使用51单片机设计一个带语音报数功能的抢答器原理图;现在市面上的抢答器类型很多,带有语音功能的抢答器不是很多且其价格较贵。本文介绍一款带有语音报数功能的抢答器抢答器由单片机(AT89S52)、语音......
    抢答器控制系统设计案例解析;说到抢答器,大家并不陌生,抢答器一般采用单片机或专用控制板来设计和实现功能,对于搞工控和学习工控的人员来说,那么使用我们手中PLC该如何实现呢?这个问题有没有想过?如若......
    基于51单片机的多功能八路抢答器设计;1.功能介绍 多功能八路抢答器是基于51单片机来设计的,除了可以实现最基本功能——8路抢答外,还具有自动处理犯规选手,抢答时间调整,还可以进行答题,计分,并且......
    51单片机对无线抢答器的设计;#include * 自定义Macro //编码的均为反向编码 #define CLEAR 0x7f //定义清空的反码 #define LED_BEGIN 0x01......
    实验21:智力竞赛抢答器;实验目的 (1)熟悉和掌握开发流程和软件使用方法; (2)通过实验理解和掌握原理; (3)学习用描述方法描述。 实验任务 本实验的任务是设计一个智力竞赛,带复......
    51单片机积累了太多的学习资料、例程、设计实例等,而且他们也非常愿意把这些资料共享出来方便后辈们学习。大学里的课程设计题目甚至毕业设计题目,在网上都能找到许多参考资料,这让很多同学更愿意在51单片机的基础上去实现自己的毕业设计......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>