与非网论坛»论坛首页 行业应用 无线通信 射频/微波 运用8051单片机来制作8路抢答器
返回列表 发新帖
查看: 804|回复: 0

运用8051单片机来制作8路抢答器

[复制链接]

该用户从未签到

发表于 2019-9-2 16:20:39 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 美好的一天 于 2019-9-2 16:21 编辑

本项目中,我们将用单片机(8051)来制作一个8路抢答器,该设备会在数码管上显示最先按下按键的人的序号。


抢答器常用于教育或娱乐游戏等场景,其中需要裁判来判断第一个按下按键,但人为的判断误差太大而且有失公允。再者若两人在近乎相同的时间按下的话,也很难判断谁先按下。


该项目实现了一个自动画的抢答器,可以判别哪名选手先按下按键,并将其序号显示在数码管上。






电路的实现围绕8051单片机,它会扫描按键输出,并在8位数码管上显示对应的数字。该设计只加入了8个按键,但是依然可以再加8个。


抢答器电路原理


8路抢答器是一个简单的单片机项目,其中8个按键作为输入设备,而单片机作为控制设备,输出设备自然就是蜂鸣器和数码管了。

该项目的程序由C语言写成,并被烧录进单片机内。当其中一个按键按下时,蜂鸣器开始响,而且8位数码管会显示对应的数字。


抢答器的电路图


需要的电子元器件
AT89C51(8051单片机)
8位数码管
10个按键
2个10kΩ的电阻
8个100Ω的电阻
2个470Ω的电阻
2个2N2222的NPN三极管
5V的有源蜂鸣器
1N4007的二极管
10μF的电容
2个33pF的电容
11.0592MHz的晶振
8051单片机烧写工具
5V电源


设计步骤

1.设计电路
2.用软件画电路图
3.使用C语言或汇编语言写程序并用Keil μVision一类的软件来编译
4.将代码烧写进单片机中
5.测试硬件电路


电路设计


抢答器的电路涉及4个主要部分,8051单片机,单刀单掷(SPST)按键开关,蜂鸣器,以及一个共阳极8位数码管。该项目使用的单片机为AT89C51,一个Atmel(如今已被Microchip收购)生产的8位单片机。


重置电路设计:重置电阻处于重置引脚上,穿过它的电压最小要1.2V,且该引脚的脉冲宽度要大于100ms。此处我们选择的是10kΩ的电阻和一个10μF的电容。


振荡电路设计:振荡电路运用了一个11.0592MHz的晶振和2个33pF的陶瓷电容。晶振应连接于单片机的18与19引脚间。


单片机交互设计:8个按键都被安排至单片机的P1端,而蜂鸣器则连接于P3.3。数码管则与P2端相连。


单片机代码:单片机可以用C语言也可以用汇编语言。此处我们给出的代码为C语言,并用Keil来编写。编写步骤如下:

1.在Keil中创立一个新的项目并选择正确的单片机。
2.创建一个新的C文件并编写项目代码。
3.编译代码并创建hex文件。

一旦编译完成并生成hex文件后。下一步就是将代码烧录进单片机中。


代码见底部附件


抢答器的运作原理


一旦电路上电后,编译器会初始化堆栈指针以及有着非零初值的变量,然后再进行其它初始化,最后再运行主要函数。该程序会检测是否有按键按下。

换句话说,单片机会扫描所有P1端的输入引脚,查看它们是处于0还是逻辑低电平。按键按下的情况下,显示模块会显示对应的数字。单片机负责将相关信号传入8位数码管。

单片还会让蜂鸣器启动几秒再关闭它,但数码管上的数字将会持续显示,直到RST按键按下才会重置。


抢答器电路的应用

1.该电路可以用于学校和其它机构组织的测验。
2.可以用于一些游戏场合。
3.可以用于一些公共场所,比如银行,餐馆等地的数字代币显示系统。




回复

使用道具 举报

返回列表 发新帖
您需要登录后才可以回帖 注册/登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-20 04:00 , Processed in 0.126595 second(s), 18 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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