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

抢答器简介:总共有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、当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始。
八路抢答器Multisim仿真源文件+设计说明文档+AD原理图及器件清单: 元件清单.xls 原理图 参考设计报告.doc 抢答器.ms12 操作说明.doc 电路讲解.doc 设计思路.doc 八路抢答器设计思路 一、任务要求 1、总共有八位选手参与抢答; 2、当主持人没有按下开始时,任何抢答都无效; 3、当主持人按下开始按键后,开始30秒倒计时,此时任何选手都可以参与抢答; 4、当第一个选手抢答成功后,会显示选手的编号,同时倒计时停止,并且后面的其他选手抢答均无效; 5、当倒计时到最后五秒时,指示灯会闪烁,并且如果倒计时到0了还没有选手抢答,那么此次无效。 二、设计思路 本设计主要分成两大块电路:抢答电路和倒计时电路。 抢答电路要解决如下几个问题: 1、计算出选手的编号,这个可以采用8-3编码器。 2、要保证只有第一个选手的抢答是有效的,后面其他的无效,这个就需要采取锁存电路,当还没有任何人抢答的时候,锁存器是不生效的,处于直通的工作状态,当有第一个人抢答了,锁存器就开始起作用,将该号码固定下来,后面的即使有人抢答,其编号也无法通过锁存电路,实现该电路可以采用4个D触发器。前三个触发器用来输出选手编号,后面一个触发器用来控制锁存器的工作状态(是直通还是锁存),只需要让D触发器的CLK端控制得当,就可以实现锁存。 倒计时电路要解决如下问题: 1、秒脉冲产生电路,因为要以秒倒计时,所以需要一个秒脉冲电路,这个可以通过晶振分频或者555来搭建电路; 2、30秒的倒计时逻辑电路,可以通过两个十进制计数芯片级联形成; 3、倒计时电路跟抢答电路的联动,首先需要抢答开始的时候倒计时马上开始,抢答结束时,倒计时也要停止,这里只需要将抢答电路中的主持人开关信号跟最后一个D触发器的输出通过合适的逻辑电路来控制555的输出就可以做到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值