简单的抢答器设计(89c52RC)

#include <reg51.h>

void delay(unsigned char i)
{
    unsigned char j,k;
		
		for(j = 0; j < 255; j++)
		{
		    for(k = 0; k < i; k++)
				{
				    ;
				}
		}
}

void main(void)
{
    unsigned char flag = 0;
		P1 = 0xff;
		
		while(1)
		{
		    switch(P2)
        {
				    case 0xfe:
						         {   
										     if(flag == 0)
										     {
												     P1 = 0xc0;
														 flag = 1;
														 
												 }
												 break;
										 }
						case 0xfd:
						         {   
										     if(flag == 1)
										     {
												     P1 = 0xf9;
												     flag = 0;
														 
												 }
												 break;
										 }
						case 0xfb:
						         {
										     if(flag == 1)
												 {
										         P1 = 0xa4;
														 flag = 0;
														 
												 }
												 break;
										 }
						case 0xf7:
						         {
										      if(flag == 1)
													{
										         P1 = 0xb0;
												     flag = 0;
														 
												 }
												 break;
										 }
						case 0xef:
						         {
										     if(flag == 1)
												 {
										         P1 = 0x99;
												     flag = 0;
														 delay(10000);
														 P1 = 0xff;
												 }
												 break;
										 }
						case 0xdf:
						         {
										     if(flag == 1)
												 {
										         P1 = 0x92;
												     flag = 0;
														 
												 }
												 break;
										 }
						case 0xbf:
						         {
										     if(flag == 1)
												 {
										         P1 = 0x82;
												     flag = 0;
														 
												 }
												 break;
										 }
						case 0x7f:
						         {
										     if(flag == 1)
												 {
										         P1 = 0xf8;
												     flag = 0;
													
												 }
												 break;
										 }
				}				
		}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
具有定时功能的八路数显抢答器设计 摘要: 本文介绍了一种用74系列常用集成电路设计的数码显示八路抢答器的电路组成、设计思路及功能。该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。主持人通过时间预设开关预设供抢答的时间,系统将完成自动倒计时。若在规定的时间内有人抢答,则计时将自动停止;若在规定的时间内无人抢答,则系统中的蜂鸣器将发响,提示主持人本轮抢答无效,实现报警功能。 关键词: 八路, 抢答器, 设计,定时,计时,报警 Abstract: In this paper, the electric circuit and designing thought of an answering racer based on the common-used series of 74 IC with 8-wire is introduced, and its function is also described. The answering race’s function includes timing, counting, and alarming, besides the basic function of an answering racer. The host sets the provided time for the answering race through the time-setting switch, after this the system will count down the time automatically. If anybody answer the question on time, the counting of time will stop; If nobody answer the question on time, the alarm will give out some sound, helping the host know the race in this turn is of no use, so the function of alarming is achieved. Keywords: 8-wire, answering racer, design, timing, counting, alarming 一、引言 工厂、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。在我校举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。为解决这个问题,我们小组准备就本次大赛的机会制作一个低成本但又能满足学校需要的八路数显抢答器。 二、设计任务及系统功能简介 1.基本功能: (1) 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。 (2) 设置一个系统清除和抢答控制开关S,该开关由主持人控制。 (3) 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在DPY_7-SEG七段数码管上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。 2.扩展功能: (1) 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动"开始"键后,定时器进行减计时。 (2) 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。在这段(3) 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 三、实现的原理与电路 1.数字抢答器总体方框图 如图1所示为总体方框图。其工作原理为:接通电源后,主持人将开关拨到"清零"状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置;开始"状态,宣布"开始"抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作"清除"和"开始"状态开关。 总体框图 图1 2.单元电路设计 (1) 抢答器电路 设计电路如图2所示。电路选用优先编码器 74LS148 和锁存器 74LS297 来完成。该电路主要完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(显示电路采用七段数字数码显示管);二是禁止其他选手按键,其按键操作无效。工作过程:开关S置于"清除"端时,RS触发器的 R、S端均为0,4个触发器输出置0,使74LS148的优先编码工作标志端(图中5号端)=0,使之处于工作状态。当开关S置于"开始"时,抢答器处于等待工作状态,当有选手将抢答按键按下时(如按下S5),74LS148的输出经RS锁存后,CTR=1,RBO(图中4端) =1,七段显示电路74LS48处于工作状态,4Q3Q2Q=101,经译码显示为“5”。此外,CTR=1,使74LS148 优先编码工作标志端(图中5号端)=1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的 此时由于仍为CTR=1,使优先编码工作标志端(图中5号端)=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置“清除”然后再进行下一轮抢答。74LS148为8线-3线优先编码器,表1为其功能表。 表一 (2) 定时电路 原理及设计:该部分主要由555定时器秒脉冲产生电路、十进制同步加减计数器74LS192减法计数电路、74LS48译码电路和2个7段数码管即相关电路组成。具体电路如图3所示。两块74LS192实现减法计数,通过译码电路74LS48显示到数码管上,其时钟信号由时钟产生电路提供。74192的预置数控制端实现预置数,由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。按键弹起后,计数器开始减法计数工作,并将时间显示在共阴极七段数码显示管DPY_7-SEG 上,当有人抢答时,停止计数并显示此时的倒计时时间;如果没有人抢答,且倒计时时间到时, 输出低电平到时序控制电路,控制报警电路报警,同时以后选手抢答无效。下面结合图4具体讲一下标准秒脉冲产生电路的原理。结合图4,图中电容C的放电时间和充电时间分别为 , 于是从NE555的3端输出的脉冲的频率为 ,结合我们的实际经验及考虑到元器件的成本,我们选择的电阻值为R1=15K,R2=68K,C=10uF,代入到上式中即得 ,即秒脉冲。
本软件在支持TCP/IP协议的网络内都可使用,替代传统的电子抢答器,解决传统的电子抢答器极易损坏且布线麻烦费用高等问题,准确灵敏。实际使用时,一台微机作服务器,其他微机与服务器在同一局域网上就可以进行抢答,参赛队数目前最多支持 100 个(理论上可以支持无限,但是受图形界面版面布局限制)满足绝大多数的抢答需求。 服务端主要功能设置: 1、标题设置:标题内容颜色可以修改,方便于不同场合使用。 2、端口设置:端口可以修改,并避免与其他软件冲突。 3、声音设置:服务端在用户上线、抢答犯规、抢答成功、问题回答正确和回答错误时或者超时都有不同的声音提示。声音可以自行设置。 4、设置分数:初始分、答对加分、打错扣分、抢答扣分、超时扣分以及答题时限。 5、图形设置:可设置图标数量行和列数 以及不同状态下图标的颜色。 6、题号设置:点击题号控制按钮时,给所有客户机发送“请做好抢答准备!”信息,但此时抢答将会犯规;在点击“开始抢答”后方可正式抢答。犯规者扣分并且只能等待竞答下一题。 7、抢答设置:在点击“开始抢答”后方可正式抢答。抢答成功会答题显示倒计时面板。 在答题(倒计时)面板点击“答对了”按钮加分,点击“答错了”按钮扣分,没点击这两个按钮的话,倒计时完成会自动扣分。 8、题目导入:将比赛题目按行录入文本文件(每行一题。避免出错编辑题目时关闭自动换行)然后从txt文件导入题目。 9、全屏设置:为方便投影展示,可以设置全屏。 客户端主要功能设置: 在客户端输入序号、代表队名称及服务器IP地址,按连接服务器,服务器上相应代表队序号图标变色。客户端等待服务器命令进行抢答操作。序号重复会提示更改序号重新连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值