智力竞赛抢答器单片机课设.docx
- 文档编号:27337298
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:15
- 大小:88.88KB
智力竞赛抢答器单片机课设.docx
《智力竞赛抢答器单片机课设.docx》由会员分享,可在线阅读,更多相关《智力竞赛抢答器单片机课设.docx(15页珍藏版)》请在冰豆网上搜索。
智力竞赛抢答器单片机课设
智力竞赛抢答器
一、项目概述
现如今电视节目日益丰富其中的竞赛环节也越来越多,其中智力抢答器是不可或缺的器材。
在本学期学习了单片机这门课之后,我们小组成员觉得可以试着自己来实现抢答器的功能,令它能准确、公正、直观地判断出第一抢答者,并通过抢答器的数码管显示和蜂鸣器报警指出抢答组别。
我们最终做出一种数字式抢答器的设计方案,通过Proteus设计完成,利用Keil软件编辑程序,仿真验证,适用于多种竞赛场合。
二、项目要求
设计一个用于智力竞赛的抢答器,其功能的实现是由单片机控制的,满足
(1)设置两个功能键:
开始键、复位键
(2)按下按键后可以进行抢答,按下复位键恢复初始状态
(3)能允许2-6组抢答能显示抢答组号,并给出状态指示灯信号
(4)比赛结束时,能发出报警声
三、设计原理
采用AT89C51,它主要负责控制各个部分协调工作。
P3.7 P3.6 P3.5由主持人控制,分别是结束 复位和开始键。
P3.0—P3.4是5组抢答的输入口,按下对应按钮即为抢答。
P1口为显示组别数码管的段选口,位选口用的是P2.5口。
P2.6为蜂鸣器的控制口外部还接有蜂鸣器用来发出报警音。
显示分数数码管采用7SEG-MPX6-CC显示,它是共阴极的由高电平点亮。
系统仿真用到了Keil和Proteus软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。
实验原理图:
芯片引脚连接:
蜂鸣器及开始结束复位电路:
晶体振荡电路:
组别显示:
记分显示:
四、软件设计
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitQ1=P2^0;
sbitQ2=P2^1;
sbitQ3=P2^2;
sbitQ4=P2^3;
sbitQ5=P2^4;
sbitQ6=P2^5;
sbitfeng=P2^6;
sbitk1=P3^0;
sbitk2=P3^1;
sbitk3=P3^2;
sbitk4=P3^3;
sbitk5=P3^4;
sbitbegin=P3^5;
sbitreset=P3^6;
sbitjieshu=P3^7;
unsignedcharcodetable[10]={0x0c0,0x0f9,
0x0a4,0x0b0,
0x99,0x92,
0x82,0x0f8,
0x80,0x90};//共阳数码管
unsignedcharcodetable1[16]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71};//共阴数码管代码表"0-F"
ucharnum;
ucharxms;
ucharBUZZ,a,b,c,d,e;
ucharjishu;//储存抢答时间值
voiddelayms(ucharxms)//延时语句
{
uchari,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voidtimer_init(void)
{
TMOD=0x01;//T0定时器,M1M0=01,工作方式1(16位方式)
TH0=0x15;//设置初值5536(6MHz晶振,一个机器周期1us)
TL0=0x0a0;//16进制为15A0H
ET0=1;//T0中断
EA=1;//总中断
}
voidkeyscan()
{
ucharflag=1;
while(flag)
{
if(k1==0)//按键按下
{
num=1;flag=0;break;
}
if(k2==0)
{
num=2;flag=0;break;
}
if(k3==0)
{
num=3;flag=0;break;
}
if(k4==0)
{
num=4;flag=0;break;
}
if(k5==0)
{
num=5;flag=0;break;
}
}
}
voiddisplay(ucharnumdis)//显示子函数
{
Q6=0;delayms(5);
P1=0xff;
Q6=1;//消影
Q6=0;
delayms
(1);
Q6=1;
P1=table[numdis];
}
voiddisplay1(ucharx)
{
Q1=1;
P0=table[x];
Q1=1;
delayms
(1);
Q1=0;
}
voiddisplay2(ucharx)
{
Q2=1;
P0=table[x];
Q2=1;
delayms
(1);
Q2=0;
}
voiddisplay3(ucharx)
{
Q3=1;
P0=table[x];
Q3=1;
delayms
(1);
Q3=0;
}
voiddisplay4(ucharx)
{
Q4=1;
P0=table[x];
Q4=1;
delayms
(1);
Q4=0;
}
voiddisplay5(ucharx)
{
Q5=1;
P0=table[x];
Q5=1;
delayms
(1);
Q5=0;
}
voidinit()
{
P0=0x000;
P1=0x0ff;
P2=0x0ff;
P3=0x0ff;
}
voidmain()
{
while
(1)
{if(jieshu==1)
{
if(reset==0)
{
display(0);
}
else
{
if(begin==0)
{
keyscan();
display(num);
switch(num)
{
case1:
a=a+1;break;
case2:
b=b+1;break;
case3:
c=c+1;break;
case4:
d=d+1;break;
case5:
e=e+1;break;
}
display1(a);
delayms
(2);
display2(b);
delayms
(2);
display3(c);
delayms
(2);
display4(d);
delayms
(2);
display5(e);
}
}
}
else
{
feng=0;
a=0;
b=0;
c=0;
d=0;
e=0;
Q1=0;
Q2=0;
Q3=0;
Q4=0;
Q5=0;
Q6=0;
}
}
}
五、仿真结果
没有开始前显示:
当其中某一组按键按下则显示组别,答对问题可以选择加一分:
记分功能,可以认为判断是否正确进行加分减分操作:
六、心得体会
通过本次的课程设计,我们对单片机的使用有了更深入的了解,在将所学知识应用到实践的过程中,对知识的理解更加透彻。
同时,在做课设的过程中我们也遇到了许多问题,解决问题的过程也让我们受益良多,不仅是知识上的,同时也培养了我们的团队协作能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智力 竞赛 抢答 单片机