基于单片机的八路抢答器设计报告Word文件下载.docx
- 文档编号:19328015
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:17
- 大小:110.96KB
基于单片机的八路抢答器设计报告Word文件下载.docx
《基于单片机的八路抢答器设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的八路抢答器设计报告Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
2.1单片机控制原理
单片机(SCM)是单片微型计算机(SingleChipMicrocomputer)的简称。
它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。
它的最大优点是体积小,可放在仪表内部。
但存储量小,输入输出适配器简单,功能较低。
目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。
简单的说,用单片机系统来设计抢答器,实现两组的抢答时间即使是相差几微秒,也可分辨出哪组优先答题。
P0端口(P0.0-P0.7):
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1端口(P1.0-P1.7):
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2端口(P2.0-P2.7):
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3端口(P3.0-P3.7):
P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。
2.2抢答器的原理
抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。
主持人按下开始抢答键才可以抢答。
主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。
主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。
单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。
2.2.1原理及电路总框图
图2.2.1抢答器总原理图
2.3功能模块电路
2.3.1晶振复位及开始抢答电路
晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。
当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。
图2.3.1晶振复位电路
图2.3.1开始抢答电路
2.3.2选手抢答键(矩阵式键盘)
89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。
图2.3.2选手抢答电路
2.3.3显示与显示驱动电路
此电路包括显示和驱动,显示采用数码管,驱动用P2口,违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。
驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。
在+5V电压下接10k的电阻,保证正常压降。
图2.3.3示与显示驱动电路
2.3.4蜂鸣器音频输出电路
通过控制不同频率的矩形脉冲来控制蜂鸣器发声。
此次课程设计中只需要一些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和回答时间到得提示声和亮灯提醒。
图2.3.4蜂鸣器音频输出电路
第3章软件设计
3.1程序设计
3.1.1系统流程图
3.1.2显示抢答违规流程图
3.1.3抢答成功流程图
开始
响声提示
设置定时器初值并启动
显示抢答者后30秒倒计时
60秒答问题时间到并响声提示
RET
3.2程序代码
3.2.1主程序
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitm1=P3^1;
//主持人按键答对加分,按一下加一分
sbitm2=P3^2;
//答错减分
sbitk1=P1^0;
sbitk2=P1^1;
sbitk3=P1^2;
sbitk4=P1^3;
sbitk5=P1^4;
sbitk6=P1^5;
sbitk7=P1^6;
sbitk8=P1^7;
//选手按键
sbitk=P3^0;
//主持人按键开始
sbitbeep=P3^7;
//蜂鸣器
ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};
//0-9代码
ucharshiwei,gewei,xuanshou,count,i,second;
ucharscore1,score2,score3,score4,score5,score6,score7,score8;
//选手1~8的分数
uintt,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8;
voidTimer()
{
TMOD|=0x01;
TH0=0xd8;
//初值55536,计数10000次,每次1US,总计10ms
TL0=0xf0;
IE=0x82;
//这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时
TR0=1;
}
voidtim(void)interrupt1using1//为定时中断TR0
//重新赋值
count++;
if(count==100)//100*10ms=1秒
{
count=0;
second--;
//秒减1
}
voiddelay(uintz)//延时函数
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
voiddisplay(ucharshiwei,gewei,xuanshou)//显示函数
{
P2=0xfe;
//打开显示时间十位的位选
P0=shiwei;
//显示十位
delay(5);
P2=0xfd;
//个位位选
P0=gewei;
P2=0xf7;
//选手位选
P0=xuanshou;
voiddis(void)
shiwei=tab[second/10];
gewei=tab[second%10];
xuanshou=tab[i];
display(shiwei,gewei,xuanshou);
voidinit()//初始化函数
P2=0x04;
P0=0x3f;
t=0;
beep=0;
i=0;
second=29;
score1=60;
score2=60;
score3=60;
score4=60;
score5=60;
score6=60;
score7=60;
score8=60;
a1=1;
a2=1;
a3=1;
a4=1;
a5=1;
a6=1;
a7=1;
a8=1;
voidmain()
init();
if(k==0)//主持人按下开始键
Timer();
delay(10);
while(!
k);
while
(1)
{
dis();
m=0;
n=0;
if(second==10){beep=1;
delay(500);
beep=0;
if(second==0){
TR0=0;
n=1;
if(k==0)
{beep=1;
second=29;
TR0=1;
m=1;
}
if(n==0)
{
if(k1==0){delay(5);
if(k1==0);
while(!
k1);
t=1;
elseif(k2==0){delay(5);
if(k2==0);
k2);
t=2;
elseif(k3==0){delay(5);
if(k3==0);
t=3;
elseif(k4==0){delay(5);
if(k4==0);
t=4;
elseif(k5==0){delay(5);
if(k5==0);
t=5;
elseif(k6==0){delay(5);
if(k6==0);
t=6;
elseif(k7==0){delay(5);
if(k7==0);
t=7;
elseif(k8==0){delay(5);
if(k8==0);
t=8;
elseif(k==0){delay(5);
if(k==0);
t=0;
i=0;
beep=1;
}
while(t)
if(m==0)//开关,保证程序只执行一次
{
switch(t)
{
case1:
{
TR0=0;
i=1;
second=0;
a1=0;
a2=1;
a3=1;
a4=1;
a5=1;
a6=1;
a7=1;
a8=1;
break;
}
case2:
i=2;
a2=0;
a1=1;
case3:
i=3;
a3=0;
case4:
i=4;
a4=0;
case5:
i=5;
a5=0;
case6:
i=6;
a6=0;
case7:
i=7;
a7=0;
case8:
i=8;
a8=0;
}
}
if(a1==0)//选手1的分数
{second=score1;
if(m1==0){delay(5);
if(m1==0);
m1);
delay(100);
score1+=1;
if(score1==99)score1=60;
elseif(m2==0){delay(5);
if(m2==0);
m2);
score1-=1;
if(score1==0)score1=60;
}
elseif(a2==0)
{second=score2;
if(m1==0){delay(5);
score2+=1;
if(score2==99)score2=60;
score2-=1;
if(score2==0)score2=60;
elseif(a3==0)
{second=score3;
score3+=1;
if(score3==99)score3=60;
score3-=1;
if(score3==0)score3=60;
second=score3;
elseif(a4==0)
second=score4;
score4+=1;
if(score4==99)score4=60;
score4-=1;
if(score4==0)score4=60;
elseif(a5==0)
second=score5;
score5+=1;
if(score5==99)score5=60;
score5-=1;
if(score5==0)score5=60;
elseif(a6==0)
second=score6;
score6+=1;
if(score6==99)score6=60;
score6-=1;
if(score6==0)score6=60;
elseif(a7==0)
second=score7;
score7+=1;
if(score7==99)score7=60;
score7-=1;
if(score7==0)score7=60;
elseif(a8==0)
second=score8;
score8+=1;
if(score8==99)score8=60;
score8-=1;
if(score8==0)score8=60;
if(k==0){i=0;
while(!
}
四、系统调试
软件的设计与调试实行分模块实现的方法。
本设计软件调试中的分模块包括显示功能模块,调整时间功能模块,抢答功能模块以及报警功能模块。
各个独立模块功能调试成功后,将这些模块程序通过主程序合并在一起,最后再对合并后的总程序进行调试。
各软件模块首先要通过PC和仿真器进行软件调试,当仿真效果符合要求后在烧写进单片机看是否在实际电路板上正常工作。
本设计通过利用Proteus仿真,将所编写的程序用Keil软件编译,所仿真原理图见附录。
五、结论
自接触单片机以来,一直觉得单片机非常难,这次的课程设计我开始是以老师布置题目为主要选择对象的,但是后面发现,像八路抢答器在我脑海中根本没得一点意象,上网搜了很多资料,也感觉不怎么很懂,于是问老师怎么弄,后面发现老师的意见和我的原本的程序和图只有几个地方不同,于是便将两者综合了一下,经调试和运行后,发现还行的通,于是便开始了忐忑的正文模版之路,以为快搞完了,后面发现其实程序和图还是要细细的弄懂才能写好报告,于是我又将程序和图细细的剖析了一遍,慢慢的画出流程图,然后慢慢将流程图和proteus图画好和截取下来,经过最近这段时间的在电脑前面的驻守,觉得只要自己肯付出和努力,发现其实很多的东西不是那么难懂的,以后还是要好好提升自己的动手能力和独立思考的能力。
在此,还是非常感谢我们的指导老师,她是一位很负责和很细心的老师,谢谢她的辅导和鼓励,这次的课程设计给了我一个很好的开始,我会好好努力的以后。
纵然课程设计是学校所要求的科目,纵然每次都这么紧张和辛苦,但是我还是觉得有些东西做了,就一定会有一定的价值吧。
参考文献资料
[1]张迎新.《单片机初级教程》.北京航天航空大学出版社2000年.
[2]康华光.《电子技术基础(模拟部分)》.第四版高等教育出版社1999年.
[3]喻宗泉.《单片机原理与应用技术》.西安电子科技大学出版社2005年.
THANKS!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 八路 抢答 设计 报告