基于单片机的抢答计分课程设计.docx
- 文档编号:8427347
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:11
- 大小:20.25KB
基于单片机的抢答计分课程设计.docx
《基于单片机的抢答计分课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的抢答计分课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于单片机的抢答计分课程设计
单片机原理及系统课程设计
评语:
考勤(10)
守纪(10)
过程(40)
设计报告(30)
答辩(10)
总成绩(100)
摘要
在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。
同时,还可以设置计分、犯规及奖惩记录等各种功能。
本课题的设计可容纳8组参赛者同时参赛,每组设置一个按钮供参赛者抢答使用,当一个组抢答器按下后数码管显示组号,由于抢答器具有第一信号鉴别和锁存功能使其余的组就抢答无效,抢答的组回答问题后由主持人进行加减分,然后主持人按复位键后继续进行抢答。
关键词:
抢答按钮;数码管显示;复位
Abstract
Inmanycompetitionactivities,inordertoaccurate,fair,judgesfirstviingtoanswerfirstintuitively,usuallyestablishesonetovietoanswerfirst,reveals,thelightandthesoundthroughthenumberandsooneachmethodmakeswrittencommentsfirstviingtoanswerfirst.Atthesametime,butalsomayestablishthescoring,violatearegulationandtherewardsandpunishmentrecordandsooneachkindoffunction.Thistopicdesignmayhold8groupofparticipantsalsotoparticipate,eachgroupestablishesabuttontovietoanswerfirsttheusefortheparticipant,afteragroupviestoanswerfirstpressesdownthenixietubedemonstrationgroupnumber,becauseviestoanswerfirsttheappliancetohavethefirstsignaldiscriminationandthelocksavesthefunctiontocauseothergroupstovietoanswerfirstinvalid,afterviestoanswerfirstthegrouprepliedthequestioncarriesontheadditionandsubtractionminutebythedirector,afterthenthedirectorpressesrepositionsthekeytocontinuetocarryonviestoanswerfirst.
Keyword:
Viestoanswerfirstthebutton,thenixietubedemonstration,thereplacement
八路抢答计分器
1引言
1.1设计目的
通过此次设计,掌握51单片机的原理,巩固已学知识,建立单片机理论和实践的结合,能够正确设计、计算定时计数的各个单元电路。
1.2设计要求
(1)设计一个可容纳八组参赛者的抢答计分器,每组设置一个抢答按钮供抢答者使用。
(2)抢答器具有第一信号鉴别和锁存的功能,使除第一抢答者以外的按钮无作用。
(3)设置主持人复位按钮。
(4)主持人复位后,开始抢答,数码管显示抢答组别。
(5)设置一个计分电路,每组开始预置100分,由主持人记分,答对一次加10分,答错一次减10分。
1.3设计方法
每组都用一个三位数码管显示每组所得分数,由一位数码管显示抢答的组号,主持人有一个控制按键,两位数码管显示主持人从按下开始键的倒计时,倒计时进行中如果有组按下抢答器则主持人复位,倒计时结束,回答完毕后由主持人对各抢答组进行加减分并复位重新进行下一轮的抢答。
2设计方案及原理
2.1设计方案
用单片机控制整个系统,部分功能用软件编写来实现。
主持人复位后,选手进行抢答,倒计时开始,如果有选手按下抢答键,则数码管显示组号,主持人复位,倒计时结束,接着抢答到的选手回答问题,由主持人负责加减分,回答对了加十分,错了减十分。
2.2设计原理
通过外设按键的输入,单片机将采集到的信号进行一定的处理,再经过译码等输出至数码管以显示抢答到的选手的组号、20s倒计时和每个组的当前积分。
系统组成框图如图1所示。
图1系统组成框图
3硬件设计
八路抢答计分器的硬件设计分为单片机、按键、译码、数码管显示四部分。
3.1单片机
单片机的P0口给26个数码管送入段选码,由于P0口没有内接上拉电阻,所以要外接上拉电阻。
单片机的P1口接8个抢答按钮,。
单片机的P2口的P2.0至P2.2接3-8译码器,P2.3和P2.4接2-4译码器。
P3口的P3.0、P3.1和P3.3接个按键,P3.2接中断,P3.4~P3.7接一个数码管以显示最先按下抢答器的组号。
3.2按键
按键部分包括每组的抢答按钮和主持人的复位及加减键,当有一个组按下抢答器后,通过锁存器74LS373锁存后通过一个与门,这样能使抢答器在有一个组按下后其他组再按就无效了,与门输出一个信号接到单片机P3.2端口,产生一个中断信号,与门产生的信号再通过一个非门取反,与复位键产生的信号通过与非门接锁存器的LE控制端口,以锁存抢答按钮产生的信号。
复位按下第一次,表示抢答开始,按下第二次主持人确认,并且操作加减分数,当复位键按下第三次的时候,进入下一轮的抢答。
3.3译码
单片机外接译码器和非门控制数码管位选,单片机P2.0~P2.2口接4个并联3-8译码器,使三个输入信号可以译码成26个输出信号,26个输出信号再分别接一个非门,前面24个输出端控制8个组的前三个数码管显示情况,后两个输出端控制20S倒计时数码管。
单片机的P2.3和P2.4接2-4译码器,通过译码器4个输出端控制4个译码器使用状态,进而控制数码管显示状态。
3.4数码管
数码管显示包括倒计时数码管显示、抢答器组号数码管显示和积分数码管显示。
其中积分数码管有八组,每个组显示所得分数的数码管,只用了前三位数码管。
每个数码管的信号输入端都接在单片机的P0口,而位选端则接在译码器后的非门上。
3.5硬件连接图
硬件连接图如图2所示。
图2硬件连接
4软件设计
主持人复位后,选手进行抢答,倒计时开始,途中如果有选手按下抢答键,则主持人按下复位键,此时20s倒计时结束,然后抢答到的选手开始回答问题,由主持人负责加减分,回答对了加十分,回答错误则减十分。
程序流程图如图3所示。
图3系统流程图
5系统仿真及实际调试
主持人复位,倒计时开始,一号选手抢答成功,主持人复位,倒计时停止在14,一号选手开始回答问题,回答错误,由主持人按减分键,一号选手当前得分90分,仿真图如图4所示。
图4系统仿真
6总结
单片机课程设计很快就结束了,此电路设计有个缺陷,就是有选手按下抢答键时倒计时不能自动停止,而只能由主持人按下复位键才能停止。
通过这次的课程设计我认识到以前的学习过程都过于浮浅,只是流于表面的理解,而做课程设计,就要求我们对所用到的知识有更深层次的理解。
这次课程设计,我学会了许多课本上学不到的东西,同时也加强了我的动手、思考和解决问题的能力,受益匪浅。
课程设计过程,我觉得是对课本知识的巩固和加强,能使我们了解更多元件的功能,也能对其在电路中的使用有更多的认识。
这次的课程设计使我明白了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的动手能力和独立思考的能力。
参考文献
[1]王思明.单片机原理及应用系统设计.北京:
科学出版社.2012.
[2]张毅刚.单片机原理与应用设计.电子工业出版社.2008.
[3]谭浩强.C语言设计.北京:
清华大学出版社.2005.
[4]黄惟公.单片机原理与接口技术(C51版).四川大学出版社.2011.
附录源程序
单片机各个端口的设置说明
#include"reg52.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitjia=P3^0;
sbitjian=P3^1;
sbitP10=P1^0;
sbitP11=P1^1;
sbitP12=P1^2;
sbitP13=P1^3;
sbitP14=P1^4;
sbitP15=P1^5;
sbitP16=P1^6;
sbitP17=P1^7;
sbitfuwei=P3^3;
sbitP25=P2^5;
sbitP26=P2^6;
sbitspeak=P2^7;
sbitP34=P3^4;
sbitP35=P3^5;
sbitP36=P3^6;
sbitP37=P3^7;
参数设置
ucharnum,tim=20;//计时变量
uintpart;
ucharmark=0;//抢答标志
//uchartime[]={0,0};
按键的扫描编码
uchartab[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19};
uchartemp[]={1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0};
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0x5e,0x86,0x8e};
延时子程序
voiddelay(charz)
{
ucharj,i;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
显示程序
voiddisplay()
{
uchari;
for(i=0;i<26;i++)
{
P2=tab[i];
P0=table[temp[i]];delay(3);
}
}
八个组按键判断
voidint0_button()interrupt0
{
EA=0;
if(P10==0)
{
delay(10);
if(P10==0)
{
part=0;mark=1;P3=(part+1)<<4|0x0f;
}
}
if(P11==0)
{
delay(10);
if(P11==0)
{
part=1;mark=1;P3=(part+1)<<4|0x0f;
}
}
if(P12==0)
{
delay(10);
if(P12==0)
{
part=2;mark=1;P3=(part+1)<<4|0x0f;
}
}
if(P13==0)
{
delay(10);
if(P13==0)
{
part=3;mark=1;P3=(part+1)<<4|0x0f;
}
}
if(P14==0)
{
delay(10);
if(P14==0)
{
part=4;mark=1;P3=(part+1)<<4|0x0f;
}
}
if(P15==0)
{
delay(10);
if(P15==0)
{
part=5;mark=1;P3=(part+1)<<4|0x0f;
}
}
if(P16==0)
{
part=6;mark=1;P3=(part+1)<<4|0x0f;
}
if(P17==0)
{
delay(10);
if(P17==0)
{
part=7;mark=1;P3=(part+1)<<4|0x0f;
}
}
EA=1;
}
20S定时中断
voidt0_time()interrupt1
{
TH0=(65536-50000)/256;//定时20S
TL0=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
tim--;
if(tim==0)
{
TR0=0;
tim=0;
speak=1;
}
temp[24]=tim/10;//倒计时
temp[25]=tim%10;
}
}
///////////////////////////
主函数
voidmain()
{
uchark=0;
uintmath;//计分数
speak=0;
P3=0x0f;
while
(1)
{display();
if(fuwei==0)
{
while(fuwei==0);
k++;
if(k==1)
{
TMOD=0x01;
TH0=(65536-50000)/256;//定时20S
TL0=(65536-50000)%256;
EA=1;
EX0=1;
ET0=1;
IT0=1;
TR0=1;
}
if(k==2)
{
k=0;
EA=0;
tim=20;
TR0=0;
speak=0;
while
(1)
{
display();
if(mark==0)
break;
math=temp[part*3]*100+temp[part*3+1]*10+temp[part*3+2];//计算出抢答到那个组的分数
if(jia==0)
{
delay(10);
if(jia==0)
{
math+=10;//抢答到的那个组答对加10分
temp[part*3]=math/100;//抢答后的变化的分数进行显示
temp[part*3+1]=math%100/10;
temp[part*3+2]=math%10;
display();break;
}
}
if(jian==0)
{
delay(10);
if(jian==0)
{
math-=10;//抢答到的那个组答错减10分
temp[part*3]=math/100;//抢答后的变化的分数进行显示
temp[part*3+1]=math%100/10;
temp[part*3+2]=math%10;
display();break;
}
}
}
}
}
}
}
Word是学生和职场人士最常用的一款办公软件之一,99.99%的人知道它,但其实,这个软件背后,还有一大批隐藏技能你不知道。
掌握他们,你将开启新世界的大门。
Tab+Enter,在编过号以后,会自动编号段落
Ctrl+D调出字体栏,配合Tab+Enter全键盘操作吧
Ctrl+L左对齐,Ctrl+R右对齐,Ctrl+E居中
Ctrl+F查找,Ctrl+H替换。
然后关于替换,里面又大有学问!
有时候Word文档中有许多多余的空行需要删除,这个时候我们可以完全可以用“查找替换”来轻松解决。
打开“编辑”菜单中的“替换”对话框,把光标定位在“查找内容”输入框中,单击“高级”按钮,选择“特殊字符”中的“段落标记”两次,在输入框中会显示“^P^P”,然后在“替换为”输入框中用上面的方法插入一个“段落标记”(一个“^P”),再按下“全部替换”按钮。
这样多余的空行就会被删除。
Ctrl+Z是撤销,那还原呢?
就是Ctrl+Y,撤销上一步撤销!
比如我输入abc,按一下F4,就会自动再输入一遍abc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 抢答 计分 课程设计