基于单片机的四人抢答器设计文档.docx
- 文档编号:15923158
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:25
- 大小:190.39KB
基于单片机的四人抢答器设计文档.docx
《基于单片机的四人抢答器设计文档.docx》由会员分享,可在线阅读,更多相关《基于单片机的四人抢答器设计文档.docx(25页珍藏版)》请在冰点文库上搜索。
基于单片机的四人抢答器设计文档
工程大学机电学院
课程设计说明书
课程设计名称:
单片机原理及应用
课程设计题目:
基于单片机的四路抢答器的设计
指导教师:
王国义
专业班级:
电气2124班
学生姓名:
武云
学号:
312107040432
起止日期:
2014/7/7—7/18
总评成绩:
课程设计任务书
设计目的:
设计一个基于单片机的四路抢答器包含计时和锁存功能
设计要求:
(1)抢答器同时供4名选手或4个代表队比赛,分别用4个按钮①~④表示。
(2)设置一个系统清除S1和抢答控制开关S2,该开关由主持人控制。
(3)抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在1602液晶屏上显示,同时蜂鸣器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。
当主持人启动"开始"键后,定时器进行减计时。
(5)如果定时时间已到,无人抢答,本次抢答无效,系统禁止抢答,定时显示器上显示01s。
指导教师(签名):
年月日
前言
电子技术和微型计算机的迅速发展,促进了微型计算机测量和控制技术的迅速发展和广泛应用,单片机的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。
它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机,抢答器就是常见的单片机。
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能。
并简化其电路结构。
控制系统的三个模块为:
显示模块、存储模块、抢答开关模块。
该系统通过开关电路四个按键输入抢答信号,利用1602液晶屏来完成显示功能,用按键来让选手进行抢答,在液晶屏上显示抢答最快的及时间,从而实现整个抢答过程。
本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。
系统工作原理本系统采用AT89C51单片机作为核心。
工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设计。
基于单片机的四路抢答器
摘要
抢答器可以在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答成功者。
通过抢答者的指示灯、液晶屏显示和声音显示等手段指示出第一抢答者。
一般抢答器由单片机以及外围电路组成,分为四路、八路等不同,四路和八路的差别是,抢答器背面的接口有几组,和外形基本没有关系。
本设计是以四路抢答为基本理念。
利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。
同时系统能够实现:
在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答无效;正确按键后有声音提示;抢答时间倒记时显示,满时后系统计时自动停止及主控强制复位;按键锁定,在有效状态下,按键无效。
关键字:
液晶屏,AT89C51,按键
FourWayResponderBasedonSingleChipMicrocomputer
ABSTRACT
Respondercancontest,sportsandentertainmentactivities(Responderactivities),andaccurate,impartialandvisuallydeterminetheanswerwinner.Answerbythoselights,LCDdisplayandsounddisplaymeansindicatesthatthefirstanswerthose.GeneralResponderbythemicrocontrollerandperipheralcircuits,dividedintofourdifferences,suchasdifferenteight,four,andeightistheanswerinthebackoftheinterfacehasseveralgroups,andtheshapedoesnotmatter.
Thedesignisbasedonfourbasicconceptsanswer.UseAT89C51microcontrollerandperipheralinterfaceRespondersystem,usingsingle-chiptimer/countertimingandcountingprinciple,thesoftwareandhardwareorganicallycombined,allowsthesystemtobetimedcorrectly,andbeabletodisplaythetimecorrectly.Switchtodowiththekeyboardoutput,speakeroccurtips.Andthesystemcanbeachieved:
Inanswer,theonlyanswerisonlyvalidafterthestart,iftheanswerbeforethestart,isinvalid;thecorrectkeyvoiceprompts;Respondertimecountdowndisplay,thetimerstopsautomaticallywhenthesystemisfullandthemasterforcedreset;keyslockedintheactivestate,thekeyisinvalid.
Keywords:
LCDdisplay,AT89C51,Button
第1章绪论
1.1引言
随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。
本设计就是基于单片机设计抢答系统,通过串口通信动态传输数据,使抢答系统有了更多更完善的功能。
单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。
对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。
抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。
选手们都站在同一个起跑线上,体现了公平公正的原则。
抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块,而专用集成块的购买又很困难。
为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普通,易于购买等优点,很好地解决了制作者制作困难和难于购买的问题。
1.2方案设计
抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。
通过抢答按键模块,连接按键进行抢答。
此电路完成的功能如图1-1所示,当主持人宣布抢答开始的时候,按下开始按钮,此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机输出到显示输出电路中。
此时有人第一按下相应的抢答按钮,经过单片机的控制选择,在液晶屏上显示相应的,并锁存,同时禁止其他按钮的输入。
系统是采用模块化设计的智能抢答器,主控与参赛者设为终端分系统。
主控分系统有:
开始与清零控制按钮、复位按钮、各种相关显示调控功能等。
参赛者分系统设有:
抢答按钮、计时显示、提示功能等。
图1-1抢答器系统结构框图
第2章硬件电路的工作原理
2.151单片机的功能简介
AT89C51是89系列单片机的标准型,它是与MSC-51系列单片机兼容的。
在部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。
全静态工作为0-24MHZ,有3级程序锁存器,部含有128-256字节的RAM,有32条可编程I/O口线,2-3个16位定时/计数器,6-8个中断源,通用的串行接口,低电压空闲及电源下降方式。
图2-1AT89C51单片机的部结构图
AT89C51单片机部由CPU、4KB的FPEROM,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。
单片微机部最核心的部分是CPU。
CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。
2.2液晶屏显示电路
如图2-2,使用液晶屏显示抢答成功者、时间。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。
图2-2液晶屏显示电路图
2.3时钟频率电路
单片机必须在时钟的驱动下才能工作。
在单片机部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机部的各个单元,决定单片机的工作速度。
时钟电路如图2-3所示。
图2-3时钟电路图
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1,C2的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
单片机在工作时,由部振荡器产生或由外直接输入的送至部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数,常用fosc表示。
图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。
2.4复位电路
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-4所示:
图2-4复位电路图
图2-4中由按键RESET1以及电解电容C3、电阻R2构成按键及上电复位电路。
由于单片机是高电平复位,所以当按键RESET1按下时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。
当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。
2.5报警电路
我们知道,声音的频谱围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。
本文设计如图2-5所示,此处用到了单片机23脚的IO端口功能,单片机通过部定时器的操作实现交替变换的波形输出驱动扬声器发声。
图2-5报警电路图
第3章软件设计流程
本次设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
本次设计的主程序中包括时钟设计程序,定时器中断子程序,数码管显示程序以及按键控制子程序。
抢答器主流程图如图3-1所示:
图3-1抢答器主程序流程图
抢答器定时中断流程图如图3-2:
图3-2抢答器定时器中断流程图
第4章系统调试和结果分析
统调试包括硬件调试和软件调试,而且两者是密不可分的。
我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。
软件调试一般包括分块调试和联机调试两个阶段。
程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。
这时该程序功能块已调试完毕,可去掉附加程序段。
其它程序功能块可按此法进行调试。
程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。
从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。
在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。
在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。
系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。
1)图4-1为主持人按下清零键后的截图,此时液晶屏两项均显示0.
图4-1
2)主持人按下启动键后的截图,液晶屏显示从10秒开始倒计时。
如图4-2:
图4-2
3)选手按下时的截图,显示对应的选手编号,例如2号选手,如图4-3所示:
图4-3
本设计具有清零装置和抢答控制,可由主持人操纵。
具有定时功能,在10S无人抢答表示所有参赛选手对本题弃权。
10S时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。
电路中的六个按键从上到下分别是清零键、开始键和四组选手的按键。
仿真现象及调试结果如图4-1、图4-2、图4-3所示。
小结
本文研究与设计的四路多功能抢答器采用了通用的电子元器件,利用AT89C51单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来。
相较于传统亮灯指示抢答选手的设计,本次设计中采用了液晶屏显示抢答选手的方式,显示结果更加直观。
抢答电路中还加入了计时模块与报警模块,在主持人宣布抢答开始打开抢答计时开关的同时,液晶屏显示剩余抢答时间,若倒计时结束仍无人抢答,报警器响起提示主持人时间到并禁止选手抢答。
这些设计都提高了抢答效率,方便了主持人的操作。
对于单片机类设计,其硬件电路是比较简单的,主要是解决程序设计中的问题。
而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。
因此在整个设计过程中大部分时间是用在程序上面的。
很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。
因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
当然,在设计过程中由于时间仓促有很多地方难免存在不足之处,硬件设计已经基本完成,在软件设计中有些功能还尚未开发出来。
我们还可以将设计的扩展功能增强:
1、可以增加记分模块,可以设定初始积分,并记录每次抢答完成后的积分。
2、将抢答按键用无线实现,如红外线,使抢答者可以远距离进行抢答,并简化按键模块的线路布置。
如果提供相应的器材及时间上的宽限,一定可以完成上述扩展功能,进一步完善作品。
参考文献
[1]于海生等,微型计算机控制技术[M],北京:
清华大学,2008.
[2]郭天祥,51单片机C语言教程——入门、提高、开发、拓展全攻略[M],电子工业
[3]Themeasurementofoilconsumptiononengine[A].Proceedingsof4thInternationalSymposiumonTestandMeasurement(Volume2)[C],2001
[4]增生.对《抢答器》的改进[J].电子制作,2000,(12).
[5]蔡.单片机控制实习与专题制作[M].北京:
北京航空航天大学,2006
[6]丁建伟.抢答器电路设计[J].工业高等专科学校学报,2008,(04)
[7]胡学海.单片机原理及应用系统设计[M].北京:
北京电子工业,2005
附录1元器件清单
元件名称
型号
数量
单片机
AT89C51
1
电解电容
10uf
1
开关
Button
7
电阻
R(200)
1
电阻
R(600)
1
电阻
R(10k)
9
晶振
CRYSTAL
1
电容
10uf
2
液晶屏
1602
1
电源
5v
2
附录2C语言程序
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharnum;//定义中断变量,num计满20表示1秒时间到
ucharnum1;//十秒倒计时显示初始值
ucharflag1,flag2;//清零键及开始键按下标志位
ucharflag3,flag4=0;//定义键盘按下标志位
#defineLCDPORTP0
sbitLCD1602_RS=P2^0;
sbitLCD1602_EN=P2^1;
sbitsp=P2^2;//定义蜂鸣器端口
sbitclear=P1^0;//定义清零键
sbitstart=P1^1;//开始键
sbitkey1=P1^2;
sbitkey2=P1^3;
sbitkey3=P1^4;
sbitkey4=P1^5;//key1到key4为选手按键
voiddelay(uintz)//延时函数
{
uinti,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
voidWriteCmd_1602(unsignedcharcmd)
{
LCD1602_RS=0;
LCDPORT=cmd;
delay
(1);
LCD1602_EN=1;
delay
(1);
LCD1602_EN=0;
}
voidWriteByte_1602(unsignedchardate)
{
LCD1602_RS=1;
LCDPORT=date;
delay
(1);
LCD1602_EN=1;
delay
(1);
LCD1602_EN=0;
}
voidInit_1602()
{
LCD1602_EN=0;
WriteCmd_1602(0x38);
WriteCmd_1602(0x0c);//光标不显示地址
WriteCmd_1602(0x06);
WriteCmd_1602(0x01);
}
voidbeep()//定义蜂鸣器函数
{
sp=0;
delay(500);
sp=1;
//delay(500);
}
voiddis(uchar*p)
{
while(*p!
='\0')
{
WriteByte_1602(*p++);
}
}
voiddisplay_init()
{
WriteCmd_1602(0x80);
dis("SerialNumber:
");
WriteCmd_1602(0x80+0x40);
dis("SurplusTime:
");
WriteCmd_1602(0x80+0x40+13);
dis("00s");
}
voiddisplay_num(uchara)//选手编号显示函数
{
WriteCmd_1602(0x80+15);
WriteByte_1602(a);
}
voidclr()//清零函数(主持人按下清零键后数码管显示0)
{
WriteCmd_1602(0x80+15);
WriteByte_1602('0');
}
voiddis10s()//十秒倒计时显示函数
{
ucharshi,ge;
shi=num1/10;
ge=num1%10;
WriteCmd_1602(0x80+0x40+13);
WriteByte_1602(shi+0x30);
WriteCmd_1602(0x80+0x40+14);
WriteByte_1602(ge+0x30);
}
voidplayer()//选手按键检测函数
{
if(key1==0&&flag4==0)
{
delay(10);
if(key1==0&&flag4==0)
{
display_num('1');
TR0=0;
flag1=flag2=0;
flag4=1;
beep();
while(!
key1);
}
}
if(key2==0&&flag4==0)
{
delay(10);
if(key2==0&&flag4==0)
{
display_num('2');
TR0=0;
flag1=flag2=0;
flag4=1;
beep();
while(!
key2);
}
}
if(key3==0&&flag4==0)
{
delay(10);
if(key3==0&&flag4==0)
{
display_num('3');
TR0=0;
flag1=flag2=0;
flag4=1;
beep();
while(!
key3);
}
}
if(key4==0&&flag4==0)
{
delay(10);
if(key4==0&&flag4==0)
{
display_num('4');
TR0=0;
flag1=flag2=0;
flag4=1;
beep();
while(!
key4);
}
}
}
voidkeyscan()//检测按键
{
if(clear==0&&flag2!
=1)//判断清零键,判断语句的作用是按下开始键清零键失效
{
delay(10);
if(clear==0&&flag2!
=1)
{
while(!
clear);//等待按键释放
flag1=0;
flag2=0;
flag3=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 抢答 设计 文档