5.基于51单片机的八路抢答器系统仿真

一、运行环境

  • 仿真软件:Proteus 8.17 SP2
  • 程序软件:KEIL C51 V961
    (所有软件及安装教程均可在文末百度云链接中获取)

二、项目简介

请添加图片描述

  该项目是基于AT89C51单片机的八路抢答系统仿真。该系统由八个选手按键、八个选手指示灯、独立按键、数码管显示、声光报警、八输入与门七部分电路组成。
  可实现以下功能:

  • 抢答功能:选手可通过按键进行抢答,抢答时间可通过按键进行设置。
  • 抢答时间设置:通过独立按键可以设置抢答时间,范围为3-30秒。
  • 抢答结束:抢答时间结束后,抢答系统会自动停止抢答,同时蜂鸣器会发出“长滴”的声音进行提示。
  • 抢答结果显示:抢答结束后,抢答选手对应的指示灯会亮起,同时在数码管上显示抢答选手的编号。
  • 抢答结果提示:抢答结束后,抢答系统会在蜂鸣器上发出“短滴”的声音进行提示。
  • 违规抢答:若有选手在预备阶段按下抢答按键,则会在蜂鸣器上发出“长”的声音进行提示,同时选手指示灯会亮起,抢答系统会在数码管上显示抢答选手的编号,以提醒选手违规抢答。

在这里插入图片描述

资料包中含有仿真源文件程序源文件软件安装包链接与安装教程链接。

三、硬件说明

  硬件仿真电路包含单片机最小系统、八路选手按键、八路选手指示灯、独立按键、数码管显示、声光报警、八输入与门七部分电路组成。

1、单片机最小系统

单片机最小系统
  主要由AT89C51单片机及其外围电路组成,外围电路涵盖以下部分:
  (1)晶振电路:采用11.0592MHz的频率,为微控制器提供精确的时钟信号;
  (2)复位电路:设计包括电源启动复位和手动按键复位两种模式;
  (3)P0口上拉电阻:在将51单片机的P0口作为通用输入输出端口使用时,必须外接上拉电阻以确保信号的稳定性。

2、八路选手按键

在这里插入图片描述

  在本抢答系统中,八路选手按键选用独立式键盘方案。独立式键盘的显著特点在于,每个按键都配备一个独立的 IO 口用于状态检测,这种设计使得按键状态的读取更加直接和精准,能有效提升系统对按键操作响应的灵敏度与可靠性。
  八路选手按键分别与单片机的 P2 口相连。借助这种连接方式,配合八输入与门电路,单片机能够通过 P2 口实时监测每个选手按键的动作情况,一旦检测到按键按下的信号,便迅速做出响应,为实现准确、高效的抢答功能奠定了坚实基础。

3、八路选手指示灯

在这里插入图片描述

  为直观呈现八路选手的抢答状态,本设计采用了八个黄色 LED 灯作为八路选手指示灯。每一个 LED 灯都配置了一个 220Ω 的限流电阻,该电阻能有效限制通过 LED 灯的电流,确保 LED 灯稳定、安全地工作,避免因电流过大而损坏。
  八路选手指示灯分别与单片机的 P1 口相连接。如此一来,单片机可通过 P1 口方便地控制各个 LED 灯的亮灭,进而清晰地展示出各位选手的抢答情况,为整个抢答系统提供直观的视觉反馈。

4、独立按键

在这里插入图片描述

  此模块作为主持人控制电路,采用独立按键来实现特定功能。每一个独立按键都由一个独立的 IO 口进行状态检测,具体设置了三个按键,其功能分别为控制、加和减,它们依次连接到单片机的 P3.5、P3.6 和 P3.7 引脚。
  其中,控制键扮演着模式切换的关键角色,它能够在设置模式和抢答模式之间灵活转换。当电路处于设置模式时,加键和减键便发挥出时间调节的作用,按下加键可对抢答时间进行增加操作,按下减键则可对抢答时间进行减少操作,从而满足主持人对抢答时间灵活设置的需求。

5、数码管显示

在这里插入图片描述

  该设计显示部分使用两位共阳极数码管。右下脚的小数点指示设置模式,当显示小数点时,可通过按键设置抢答时间。
在这里插入图片描述

  在数码管段控制方面,为防止每段电流过大和数码管亮度不一致,在数码管每一段均串联了一个470欧姆的电阻以限制电流。同时,为了防止单片机灌电流过大,我们采用了74HC245芯片来控制数码管的段。74HC245芯片的操作由单片机的P0口负责,确保整个数码管段控制电路的稳定与安全运行,避免因灌电流过大可能引起的电路故障或性能下降。
在这里插入图片描述

  为了有效地提升驱动能力,本系统采用 S8550 三极管对数码管的位进行控制操作。在具体的控制过程中,S8550 三极管的工作状态是由单片机的 P30 、P31 端口来实施控制的。这样的设计有助于增强对数码管位选的驱动能力,使得数码管能够更加稳定、可靠地显示所需的信息。

6、声光报警

在这里插入图片描述

  本声光报警电路由有源蜂鸣器和黄色 LED 灯组成,借助单片机P34口对一个 PNP 型三极管进行控制。该电路采用低电平触发机制,当触发信号为低电平时,三极管导通,此时黄色 LED 灯即刻亮起,同时有源蜂鸣器发出清晰的 “滴” 声,以声光结合的方式实现报警功能。

7、八输入与门

在这里插入图片描述

  本电路选用八输入与门,八路选手按键分别对应接入与门的各个输入端口,而与门的输出端则连接至单片机的外部中断 0 接口,也就是 P3.2 口。当任意一位选手按下按键,与门输出信号会即刻变为低电平,该低电平信号随即触发单片机的外部中断 0,使单片机迅速响应,精准记录下按键值,进而高效实现抢答功能。

四、软件说明

在这里插入图片描述

  本项目的程序以 C 语言编写完成,编译无警告、无错误。在程序设计上,采用模块化编程,各功能模块相互独立,这不仅便于程序的修改与维护,同时大量详尽的注释,让程序的功能与实现过程更易于理解。
  本项目软件共包含主程序、外部中断、独立按键、数码管、IO口操作、定时器0六个模块。

  •   主函数在整个系统中扮演着核心控制的关键角色,它如同系统的 “大脑”,通过灵活调用其他模块的函数,协同各部分功能,从而实现完整的抢答功能。
      该系统一共设定了五个重要状态,它们各自承担着不同的任务,共同推动抢答流程的顺利进行。这五个状态分别为:设置状态,在这个状态下可以对系统的关键参数(如抢答时间等)进行设置;预备状态,是抢答开始前的准备阶段,系统处于待启动状态,选手若抢答则违规;抢答状态,此为核心环节,选手可在这个阶段进行抢答操作;抢答结束状态,意味着一轮抢答活动已经完成,系统会展示结果等相关信息;违规报警状态,当有选手出现违规抢答行为或超时无选手抢答时,系统会进入此状态并发出相应警示。
  •   外部中断:本系统采用外部中断 0 来实现抢答功能。当任意一位选手按下按键时,与门的输出信号会变为低电平,从而触发单片机的外部中断 0,使单片机迅速响应,精准记录下按键值,进而高效实现抢答功能。
  •   独立按键:独立按键模块主要负责处理按键的输入信号以及状态切换。此模块提供了按键扫描函数,调用该函数可获取当前按键的状态。当函数返回值为 0 时,表示无按键按下;返回值为正值时,表明有按键按下。
  •   数码管:数码管模块采用两位共阳极数码管,可用于显示抢答时间、抢答选手编号等信息。配合定时器中断,用户只需更新显示缓存区,即可在数码管上显示相应的内容。
  •   IO口操作:IO口操作模块主要负责八路选手指示灯、蜂鸣器、八路选手按键的引脚定义。并提供选手操作函数,可检测选手按键号同时点亮对应选手指示灯。

五、项目获取

链接: 百度云
提取码: YIWE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值