八路抢答器 - 范文中心

八路抢答器

04/22

2016届课程论文

《单片机原理及应用》

课程设计

《八路抢答器》

学生姓名 王佳

学 号

所属学院 信息工程学院

专 业 计算机科学与技术

班 级 16-4班

指导教师 孟洪兵

塔里木大学教务处

目录

摘要 ..................................................... 1

第一章 绪论 .............................................. 1

1.1 课题研究的相关背景 .............................. 1

1.2 选题的目的和意义 ................................ 1

1.3 设计步骤 .......................................... 2

1.4 实现的功能 ........................................ 2

第二章 实验设计原理 ...................................... 2

第三章 方案设计 .......................................... 3

3.1 元件介绍 .......................................... 3

3.1.1 AT89C51 ..................................... 3

3.1.2 74HC573 ..................................... 3

3.2仿真图 ............................................ 4

第四章 实物图 ............................................ 5

总结 ..................................................... 7

参考文献 ................................................ 7

附录 ..................................................... 8

源程序 ................................................ 8

摘要

抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的

使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。 本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

关键字:单片机 八路抢答器 AT80C51

第一章 绪论

1.1 课题研究的相关背景

抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢答时间的显示以及最后几秒钟的报警等等。 本课题利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,扬声器发声提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间30s;可以显示是哪位选手有效抢答,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法。

1.2 选题的目的和意义

在现在的科技水平下,促使人们学科学、学技术、学知识的手段多种多样,抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率校低,且有的要么制作复杂,要么可靠性低,减少兴致。作为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展。 而且目前多数抢答器存在以下3个不足之处:第一,现场线路连接复杂。因为每个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连接线。选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,而 且降低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。第二,电路

复杂。因为单片机只完成号码处理、计时、数据运算等功能,其它功能如选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。采用单片机扫描技术识别选手抢按号码时,电路的延迟时间较大。第三,选手抢按成功,但出现没有抢答被记录的问题。 鉴于上述原因和不足,设计了这个抢答器,主要是掌握51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。

1.3 设计步骤

(1) 设计一个八路抢答器

(2) 设置一个系统清除和抢答控制开关S,该开关由主持人控制

(3) 抢答器具有锁存与显示功能,选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时亮红灯。其他选手无法抢答。优先抢答选手的编号一直保持到主持人将系统清除为止。

1.4 实现的功能

(1) 必须有主持人按钮,当主持人按下按钮,开始30秒倒计时,这30秒内即是八位选手抢答的时长,若30秒内无人抢答,则视为所有选手弃权。

(2) 倘若主持人按下开始的30秒内有人抢答,则倒计时从10秒开始,同时在一屏幕上显示该抢答选手号码,若10秒内无法回答,则该选手视为题目回答错误,选手号码清零。

第二章 实验设计原理

1.准备工具:AT89C51单片机,一片74HC573锁存器芯片,三块单个的共阴数码管,两个十千欧的上拉排阻,红、黄、绿发光二极管各一支。

2.完成实验硬件部分后,软件部分用到了单片机定时器0和定时器1;其中定时器0负责倒计时30秒,定时器1负责倒计时10秒,两个单个的七段共阴数码管来显示倒计时秒钟。

3.单个的数码管用来显示选手号码1~8,由8个选手按键决定选手号码的显示。

4.初始化中选手号码显示0,倒计时秒钟无显示,定时器0和定时器1关中断。

5.主持人按下开始键,定时器0开中断,进行30秒倒计时,当中选手按键按下,定时器0关中断同时定时器1开中断,进行10秒倒计时,选手号码显示在单个数码管上。

6.倒计时中按下复位键,即相当于主持人按键重新开始30秒倒计时抢答。

该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编

号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。

第三章 方案设计

3.1 元件介绍

3.1.1 AT89C51

AT89C51单片机是ATMAL公司89系列单片机的一种8位Flash单片机。它最大特点是片内含有Flash存储器,用途十分广泛,特别是在生产便携式商品手提式仪器等方面,有着十分广泛的应用。

AT89C51单片机内部主要有以下部件:8031CPU、振荡电路、总线控制部件、中断控制部件、片内Flash存储器、片内RAM、并行I/O接口、定时器和串行I/O接口 AT89C51是89系列单片机的标准型,它是与MSC-51系列单片机兼容的。在内部含有4KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为0-24MHZ,有3级程序锁存器,内部含有128-256字节的RAM,有32条可编程I/O口线,2-3个16位定时/计数器,6-8个中断源,通用的串行接口,低电压空闲及电源下降方式。

3.1.2 74HC573

74HC573包含八进制3态非反转透明锁存器,SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 输出能直接接到CMOS,NMOS 和TTL 接口上。

操作电压范围:2.0V~6.0V

低输入电流:1.0uA

CMOS 器件的高噪声抵抗特性

特点:

·三态总线驱动输出

·置数全并行存取

·缓冲控制输入

·使能输入有改善抗扰度的滞后作用

原理说明:

74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时, 新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。

3.2仿真图

图1 仿真图

第四章

实物图

图2 实物运行图

图3 实物连接图

总结

设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。下面我对整个设计的过程做一下简单的总结。第一,接到任务以后进行选题。选题是设计的开端,选择恰当的、感兴趣的题目,这对于整个设计是否能够顺利进行关系极大。好比走路,这开始的第一步是具有决定意义的,第一步迈向何方,需要慎重考虑。否则,就可能走许多弯路、费许多周折,甚至南辕北辙,难以到达目的地。因此,选;题时一定要考虑好了。第二,题目确定后就是找资料了。查资料是做设计的前期准备工作,好的开端就相当于成功了一半,到图书馆、书店、资料室去虽说是比较原始的方式,但也有可取之处的。总之,不管通过哪种方式查的资料都是有利用价值的,要一一记录下来以备后用。第三,通过上面的过程,已经积累了不少资料,对所选的题目也大概有了一些了解,这一步就是在这样一个基础上,综合已有的资料来更透彻的分析题目。第四,有了研究方向,就应该动手实现了。其实以前的三步都是为这一步作的铺垫。通过这次设计,我对数字电路设计中的逻辑关系等有了一定的认识,对以前学的数字电路又有了一定的新认识,温习了以前学的知识,就像人们常说的温故而知新嘛,但在设计的过程中,遇到了很多的问题,有一些知识都已经不太清楚了,但是通过一些资料又重新的温习了一下数字电路部分的内容。在这次设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法我们更好的理解知识,所以在这里非常感谢帮助我的同学。 在此要感谢我的指导老师,感谢老师给我这样的机会锻炼。在整个设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。

优点:该抢答器结构简单,实用性强,具有数据锁存功能,能应用于各活动中。 缺点:该八路抢答器没有限时抢答功能,没有音讯输出功能。

改进:增加讯响电路和抢答限时电路,是八路抢答器的功能更完好。实验效率低, 许多原件功能不清楚。

总之,在设计过程中学到了许多。作为现代的大学生,如果仅停留在以往的层次上,是远远跟不上时代的步伐,也无法使自己立足在竞争如此激烈的社会里,通过此次实习,看到了自己的水平和差距,学要在今后的学习中又进一步的提高。

参考文献

[1]《数字电子技术》 蒋正萍等编著 化学工业出版社

[2]《电子技术课程设计指导》彭介华主编 高等教育出版社

[3]《电子线路设计、实验、测试》谢自美主编 华中理工出版社

[4]《经典集成电路400例》任致程主编 机械工业出版社

[5]《电子数字基础(数字部分)》 康华光主编 高等教育出版社

附录

源程序

C语言八路抢答器设计#include

#define uchar unsigned char

#define uint unsigned int

sbit wela1=P3^1;

sbit wela2=P3^7;

sbit rest=P3^5;

sbit host=P3^6;

sbit key1=P1^0;

sbit key2=P1^1;

sbit key3=P1^2;

sbit key4=P1^3;

sbit key5=P1^4;

sbit key6=P1^5;

sbit key7=P1^6;

sbit key8=P1^7;

uchar hao,shu,shu1,shi,ge,t0,t1,start,flag;

uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴

uchar code table2[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阳

void init();/*初始函数申明*/

void display(uchar shi,uchar ge,uchar hao);

void delay(uint z);

void keyscan();

void main()

{

init();

display(shi,ge,hao);

while(1)

{

if(host==0) //主持人

{

delay(5);

if(host==0)

{

flag=1;

start=1;

delay(5);

while(!host);

}

}

if(rest==0) //复位

{

delay(5);

if(rest==0)

{

shu=30;

hao=0;

delay(5);

start=1;

delay(5);

while(!rest);

}

}

if(flag==1)

{

if(start==0)//选手按下,倒计时10秒 {

wela1=0;

wela2=0;

delay(1);

TR0=0;

TR1=1;

display(shi,ge,hao);

delay(1);

}

if(start==1)//主持人按下,倒计时30秒 { wela1=0;

wela2=0;

delay(1);

TR0=1;

TR1=0;

display(shi,ge,hao);

delay(1);

keyscan();

}

}

}

}

void init()/*初始化*/

{

t0=0;

t1=0;

flag=0;

shu=30;

shu1=10;

hao=0;

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

EA=1;

ET0=1;

ET1=1;

TR0=0;

TR1=0;

}

void display(uchar shi,uchar ge,uchar hao)/*数码管动态扫描*/ {

wela1=1;

P0=table1[ge];

delay(5);

wela2=1;

P0=table1[shi];

delay(5);

P2=table2[hao];

delay(5);

}

void keyscan()/*按键扫描函数*/

{

if(key1==0)

{

delay(5);

if(key1==0)

{

hao=1;

P2=table2[hao];

start=0;

TR1=1;

TR0=0;

delay(5);

while(!key1);

}

}

if(key2==0)

{

delay(5);

if(key2==0)

{

hao=2;

P2=table2[hao];

start=0;

delay(5);

while(!key2);

}

}

if(key3==0)

{

delay(5);

if(key3==0)

{

hao=3;

P2=table2[hao];

start=0;

delay(5);

while(!key3);

}

}

if(key4==0)

{

delay(5);

if(key4==0)

{

hao=4;

P2=table2[hao];

start=0;

delay(5);

while(!key4);

}

}

if(key5==0)

{

delay(5);

if(key5==0)

{

hao=5;

P2=table2[hao];

start=0;

delay(5);

while(!key5);

}

}

if(key6==0)

{

delay(5);

if(key6==0)

{

hao=6;

P2=table2[hao];

start=0;

delay(5);

while(!key6);

}

}

if(key7==0)

{

delay(5);

if(key7==0)

{

hao=7;

P2=table2[hao];

start=0;

delay(5);

while(!key7);

}

}

if(key8==0)

{

delay(5);

if(key8==0)

{

hao=8;

P2=table2[hao];

start=0;

delay(5);

while(!key8);

}

}

}

void delay(uint z)/*延时函数*/

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void time0() interrupt 1/*定时器0*/

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

shi=shu/10;

ge=shu%10;

t0++;

if(t0==20)

{

t0=0;

shu--;

shi=shu/10;

ge=shu%10;

if(shu==0)

{

while(1)

{

shu=0;

hao=0;

wela1=1;

wela2=1;

delay(1);

display(shi,ge,hao);

}

}

}

}

void time1() interrupt 3/*定时器1*/

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

shi=shu1/10;

ge=shu1%10;

t1++;

if(t1==20)

{

t1=0;

shu1--;

shi=shu1/10;

ge=shu1%10;

if(shu1==0)

{

while(1)

{

shu1=0;

hao=0; wela1=0;

wela2=0;

delay(1);

display(shi,ge,hao);

}

}

}

}


相关内容

  • 单片机八路抢答器课设
    目录 前言................................................................ 1 1.1设计背景及意义 ..................................... ...
  • 20**年少先队辅导员考试试题
    2015年少先队辅导员考试试题(带答案) 发布时间:2015-04-27 一.演练题: 1.请问少先队的入队誓词是什么?再演示旗手出队旗的动作并简要说明要领. 我是中国少年先锋队队员.我在队旗下宣誓:我热爱中国共产党,热爱祖国,热爱人民,好 ...
  • 八路军和新四军的协作关系
    抗日战争时期八路军和新四军的协作关系 [ 摘 要] 八路军和新四军是抗日战争时期我党的两支重要军事力量.他们 在这一时期相互支持.相互援助,为抗战胜利和中共的发展壮大作出了重要贡献. 他们的协作关系主要表现在:两军分别在华北.华中开辟抗日根 ...
  • 12要好好学字
    12要好好学字 教学目标: 1. 学习本课生字新词,能够正确.流利.有感情地朗读课文. 2. 学生在自主阅读课文的过程中自主生成问题,自主解决问题,在阅读探究的过程中理解"参加革命了,要好好学字啊!"这句话的意思.懂得干 ...
  • 英雄小八路观后感
    <英雄小八路>观后感 方 悦 丞 在上个星期的少先队活动课上,我们观看了<英雄小八路>这部影片.影片中的5个小八路用自己的身体充当电话线而使战争胜利了.我觉得这部影片中包含了科学原理,还有小八路的勇敢和信心.如果我是 ...
  • 八路军中存在时间最短的"独立第一师"番号
    从红一师到独立团 1930年1月,彭德怀.滕代远率领红5军主力到达遂川.1930年1月18日至21日,中共赣西.湘赣边特委和红五军军委在遂川之零四圩召开联席会议,决定将江西红军独立第二.三.四.五团与赣西南红军游击队合编为红军第六军.军长黄 ...
  • 陕甘宁边区市民:八路军没来以前没人吃猪下水
    2013年05月17日 09:03 来源:凤凰网历史 作者:陈学昭 分享到:更多 14人参与 0条评论 核心提示:在八路军未到之前,猪肉比菜还不值钱,一元可以买到十二三斤,而且陕北的人脾气很特别,猪肚里的东西是不吃的,猪肝呀,猪肠呀--都抛 ...
  • 89c51抢答器制作
    郑州科技学院 本科课程设计论文 题 目 专 业 姓 名 学 号 指导老师 郑州科技学院信息工程学院 二〇一四年 摘要 ............................................................. ...
  • 基于单片机的三路抢答器的设计 王辉
    基于单片机的三路抢答器的设计 1课程设计的任务与要求 1.1 课程设计的任务 (1)设计一个可供3人进行的抢答器. (2)系统设置复位按钮,按动后,重新开始抢答. (3)抢答器开始时数码管显示序号00,选手抢答实行优先显示,优先抢答选手的编 ...
  • 政委制度的恢复
    政委制度的恢复经过 1937年8月25日,中共中央革命军事委员会发布命令,宣布中国工农红军改编为国民革命军第八路军.改编命令虽然任命任弼时为八路军政治部主任.邓小平为副主任,但取消了政治委员,并将八路军下辖三个师的政治部改为政训处.一一五师 ...