完美抢答器仿真图及程序.docx
- 文档编号:24790564
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:14
- 大小:187.63KB
完美抢答器仿真图及程序.docx
《完美抢答器仿真图及程序.docx》由会员分享,可在线阅读,更多相关《完美抢答器仿真图及程序.docx(14页珍藏版)》请在冰豆网上搜索。
完美抢答器仿真图及程序
完美抢答器仿真图及程序
课程设计题目:
基于单片机的智能八路抢答器设计
一、设计项目简介
1.设计意义及目的
抢答器在现实生活中应用广泛,比如在各类娱乐节目中,像中央电视台的幸运52,开心辞典,因此做一个抢答器是具有现实意义的。
抢答器具有人数限制,我们选择做八路抢答器。
当某人抢答时,能够显示他的号码,限定他的答题时间,别人不能抢答,主持人要有启动和清空的权利。
八路抢答器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。
如果在抢答中,靠视觉是很难判断出哪组先答题。
利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。
抢答组数可以在八组以内任意使用,本系统采用AT89S52单片机作为核心,控制系统的四个模块分别为:
单片机最小系统、显示模块、显示驱动模块、抢答开关模块。
2.系统功能描述
设计一个具有特定功能的抢答器。
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号。
蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
3.设计达到目标
我们在要求的基础上拓展了一些功能,比如增加倒数剩下5S的时候每秒响一声,最后一声比较悠长,以提示选手抢答或者回答时间将尽,还将抢答按键和答完按键做在了同一个按键上,抢答之后选手答完题目再次按下该抢答按键即是答完,使剩余时间与台号定格。
总体上我们达到了:
按该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;最后5S倒计时蜂鸣器每秒响一声提示,最后一声比较悠长,提示抢答时间到;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号,和抢答期间一样,回答期间最后5S倒计时蜂鸣器每秒响一声提示,最后一声比较悠长,提示回答时间到;答完按钮设置在抢答按键上,再次按下抢答按键即是答完,此时蜂鸣器响一声,时间定格在答完题目之后剩下的时间;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
二、系统硬件设计
1.系统设计方案
(1)利用译码芯片
先根据74LS148的优先功能,确定了先抢答到的选手的编码号,再根据74LS279的锁存功能,将其信号保持下来,并实现了锁定功能,将选手的编码锁定。
再者,根据74LS48的译码功能,将74LS279锁定的数字编译成二进制,将信号送到显示器中。
这样就实现了抢答功能。
原理框图如图1所示。
(2)利用单片机
可以利用单片机的定时/计数器进行计时,设定抢答时间和答题时间;可以利用单片机的I/O口线接按键,通过按键按下后,所接口线电平的变化来判断那位选手按下键。
我选择利用单片机做抢答器。
1、仿真图
2、程序
/**************************************************************************************
*操作非常简单
*主持人先按键,然后有30s的时间,等待选手按键
*选手在30s内按键,就显示选手的号数,及30s的回答倒计时
*此时,其他选手按键无效,
*只有抢答选手按键,才停止,并显示锁定
*最后,按复位,进行新一轮抢答
**************************************************************************************/
#include""
#include""
#include""
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
/*定义定时器T0和T1时间常数和方式控制字*/
#definev_th00x3c
#definev_tl00xb0
#definev_tmod0x11
sbitP30=P3^0;
sbitP36=P3^6;
sbitP32=P3^2;
sbitP31=P3^1;
ucharled_buf[8];示程序
{
uchardmask=0x01;序
if(P30==0)//主持人是否按下启动键
delay(100);
if(P30==0)
{
c=1;
break;
}
if(keyzhiii!
=0xff)
{
c=2;
led();
break;
}
}
init_sys();//调用init_sys()函数对系统初始化
time=30;
time2=30;
TR0=1;//开定时器0
while
(1)
{
put_on_leds();//调显示函数
delay(100);//调延时函数
if(c==1)//判断有没有违规
{
keyzhiii=key();//调键盘扫描函数得到按键键码
j=keyzhiii;
}
if(c==3)
{
keyzhiii=key();//调键盘扫描函数得到按键键码
}
if(time==0)
{
while
(1)
{
TR0=0;
put_on_leds();
delay(100);
}
}
if(c==1||c==2)
switch(keyzhiii)//按键功能控制
{
case0xfe:
//1号选手抢答,抢答时间设定为三十秒
{
m=1;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0xfd:
//2号选手抢答
{
m=2;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0xfb:
//3号选手抢答
{
m=3;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0xf7:
//4号选手抢答
{
m=4;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0xef:
//5号选手抢答
{
m=5;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0xdf:
//6号选手抢答
{
m=6;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0xbf:
//7号选手抢答
{
m=7;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
case0x7f:
//8号选手抢答
{
m=8;
if(c==1)
{
ring();//有人正常按下,蜂鸣器发出声音
TR1=1;//开定时器1,关定时器0
TR0=0;
c=3;
keyzhiii=0xff;
}
if(c==2)//有人违规
{
TR1=0;
time=0;
}
led_buf_auto_flush();
put_on_leds();
break;
}
}
if(c==3)//无人违规,等待答完
{
TR1=1;
TR0=0;
if(j==keyzhiii)
{
ring();//有人答完,蜂鸣器发出声音
TR1=0;
TR0=0;
while
(1)
{
led_buf_auto_flush();
put_on_leds();
}
}
}
led_buf_auto_flush();
put_on_leds();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完美 抢答 仿真 程序