基于89c51芯片的开发(抢答器)

本文介绍了一种基于8个按钮的抢答器系统,其中7个供选手使用,1个为复位按钮由主持人操作。当选手按下按钮,相应的LED灯会亮起,静态数码管显示选手号码,直至主持人复位。文章提供了详细的硬件接口和控制逻辑。

抢答器简介:总共有8个按钮,其中7个按钮给选手使用,1个按钮给主持人使用,当1位选手按下按钮后,对应的led灯将会变亮,同时静态数码管上会显示该名选手的号码,另外6位选手无论怎么按按钮都不会发生改变;只有通过主持人手中的复位按钮才会使led灯熄灭,并且静态数码管上数字消失。

#include<reg51.h>
sbit key1 = P0^0;
sbit key2 = P0^1;
sbit key3 = P0^2;
sbit key4 = P0^3;
sbit key5 = P0^4;
sbit key6 = P0^5;
sbit key7 = P0^6;
sbit key8 = P0^7;

void main()
{
unsigned char i;
while(!i)//只执行一次,复位后接着执行;
{
if(!key1)
{
P1 = 0xfe;
P2 = 0xf9;
i = 1;
}//一号按键;
else if(!key2)
{
P1 = 0xfd;
P2 = 0xa4;
i = 1;
}//二号按键;
else if(!key3)
{
P1 = 0xfb;
P2 = 0xb0;
i = 1;
}//三号按键;
else if(!key4)
{
P1 = 0xf7;
P2 = 0x99;
i = 1;
}//四号按键;
else if(!key5)
{
P1 = 0xef;
P2 = 0x92;
i = 1;
}//五号按键;
else if(!key6)
{
P1 = 0xdf;
P2 = 0x82;
i = 1;
}//六号按键;
else if(!key7)
{
P1 = 0xbf;
P2 = 0xf8;
i = 1;
}//七号按键;
while(i)
{
if(!key8)
{
P1 = 0xff;
P2 = 0xff;
i = 0;
}//复位按键八号:
}
}
}

本次设计要求通过使用51单片机与其他必要器件,设计出一八路抢答器,应具备以下功能: 1、如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。 2、主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 3、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。 4、如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下"停止" 键为止。 5、P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入 数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2抢答时间调整整,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。 6、当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值