在本项目中,我将向您展示一个使用 (8051) 的 8 通道测验电路的设计和工作原理,它可以告诉我们在测验或游戏节目中哪个团队先按下了按钮。
本文引用地址:测验常用于教育机构和游戏节目等场所,组织者需要知道谁先按下按钮。传统的系统需要人工干预来决定哪个小组先按下按钮,而这种系统可能会出现错误,甚至有偏差。
另一个问题是,当两名成员按下按钮的时间间隔微乎其微,很难猜出谁先按下。
在这个项目中,我设计了一个自动抢答蜂鸣器系统,当不止一个小组按下蜂鸣器时,两个按钮按下之间的延迟会被准确地考虑在内,并显示相应的数字。
我使用 8051 设计了该电路,它可以扫描来自按钮的输入,并在显示设备(7 段显示器)上显示相应的数字。这是一个简单的电路,元件数量最少,没有任何复杂性。尽管该系统仅为 8 个小组设计,但可通过使用另一组 8 个按钮来增加更多小组。
测验蜂鸣器电路背后的原理
使用的 8 通道测验蜂鸣器电路是一个简单的嵌入式系统,输入设备是一组 8 个按钮,主控制器是微控制器,输出设备是蜂鸣器和显示器。
整个操作由微控制器通过 C 语言编写的程序来完成,并将其存储在微控制器中。当按下其中一个按钮时,蜂鸣器开始响铃,相应的数字会显示在 7 段显示器上。
使用微控制器的 8 播放器测验蜂鸣器电路图
所需元件
AT89C51 (8051 微控制器)
7 段显示器(本项目中使用共阳极)
按钮 - 10
10KΩ 电阻器 - 2
100Ω 电阻器 - 8
470Ω 电阻器 - 2
2N2222 NPN 晶体管 - 2
5V 蜂鸣器
1N4007 二极管
10μF 电容器
33pF 电容器 - 2
11.0592 MHz 晶体
8051 编程器
5V 电源
设计过程
整个设计过程包括五个步骤。
第一步是设计电路。
第二步是使用任何软件绘制原理图。
第三步是使用 C 语言或汇编语言等高级语言编写代码,然后在 Keil μVision 等软件平台上进行编译。
第四步是用代码对微控制器进行编程。
最后,第五步是测试电路。
测验蜂鸣器电路设计
该电路使用五个主要元件:8051 微控制器、SPST 按钮、蜂鸣器和共阳极 7 段显示器。 本例中使用的微控制器是 AT89C51,它是 Atmel(现为 Microchip)公司生产的一款 8 位微控制器。
复位电路设计: 复位电阻的选择应确保复位引脚两端的电压不低于 1.2V,且施加到该引脚的脉冲宽度大于 100 ms。 这里我们选择 10KΩ 的电阻和 10μF 的电容。
振荡器电路设计: 振荡器电路的设计使用了一个 11.0592 Mhz 的晶体振荡器和两个 33pF 的陶瓷电容器。晶体连接在微控制器的 18 和 19 引脚之间。
微控制器接口设计: 8 个按钮连接到微控制器的端口 P1,蜂鸣器连接到端口 P3.3 引脚。7 段显示器与微控制器的接口是所有输入引脚都连接到端口 P2。
微控制器代码: 代码可以用 C 语言或汇编语言编写。在这里,我使用 Keil μVision 软件用 C 语言编写了程序。具体步骤如下
在 Keil 窗口创建一个新项目并选择目标(微控制器)。
在项目下创建一个新文件并编写代码。
以 .c 扩展名保存代码,并将文件添加到目标文件夹下的源代码组文件夹中。
编译代码并创建十六进制文件。
编译代码并创建十六进制文件后,下一步就是将代码转储到微控制器中。这可以通过 8051 微控制器编程器完成。
测验蜂鸣器电路如何工作?
电路通电后,编译器将初始化堆栈指针和具有非零初始值的变量,并执行其他初始化过程,然后调用主函数。然后,它会检查是否有任何按钮被按下。
换句话说,微控制器会扫描端口 P1 的输入引脚是否为零或逻辑低电平。如果按钮被按下,则通过传递相应的数字来调用显示函数。然后,微控制器将相关信号发送到与 7 段显示器相连的端口。
微控制器会打开蜂鸣器一秒钟,然后将其关闭,但 7 段显示器上会持续显示数字,直到按下 RST 按钮为止。
问答蜂鸣器电路的应用
该电路可用于学校、学院和其他机构组织的知识竞赛。
它还可用于其他游戏节目。
它还可用作银行、餐馆等公共场所的数字令牌显示系统。