基于单片机的4位抢答器设计论文.docx
- 文档编号:27444113
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:29
- 大小:991.68KB
基于单片机的4位抢答器设计论文.docx
《基于单片机的4位抢答器设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的4位抢答器设计论文.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机的4位抢答器设计论文
单片机课程设计报告
项目名称基于单片机的抢答器设计
摘要
此次设计提出了用STC89C52单片机为核心控制元件,设计一个简易的抢答器,本方案以STC89C52单片机作为主控核心,发光二极管、数码管、蜂鸣器等构成四路抢答器,利用了单片机的按键复位电路、时钟电路、定时/中断等电路,设计的抢答器具有实时显示抢答选手的号码的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用C语言编程,使其实现一些基本的功能。
本设计的系统实用性强、判断精确、操作简单、扩展功能强。
它的功能实现是比赛开始,主持人读完题之后按下总开关,此时数码管显示初始状态0,直到有一个选手抢答时,对应的会在数码管上显示出该选手的编号,同时发光二极管出现闪烁状态,蜂鸣器也会发出声音,以提示有人抢答本题,主持人按下复位键,示意可以答题。
关键字:
STC89C52单片机;动态显示;中断;按键控制
Abstract
ThisdesignuseSTC89C52asthecorecontrolelementispresentedtodesignasimpleresponder,thisschemeisSTC89C52singlechipmicrocomputerascontrolcore,light-emittingdiode,digitaltube,buzzerandsoonfourroadviestoanswerfirstdevice,usingthesinglechipmicrocomputerbuttonresetcircuit,clockcircuit,timing/interruptcircuit,designofviestoanswerfirstappliancehasthecharacteristicofreal-timedisplayviestoanswerfirstcontestant'snumber,andresetcircuit,tostartanewroundoftheanswerand,atthesametimealsouseofClanguageprogramming,makeitimplementssomebasicfunctionality.
Thedesignofthesystemispractical,accuratejudgment,simpleoperation,strongextendedfunctionality.Itsfunctionrealizationisthematchbegan,andthehosttoreadthetopicafterpressthemainswitch,thedigitaltubedisplayinitialcondition0,untilthereisacontestantviestoanswerfirst,thecorrespondinginthecontestant'sserialnumberisshownonthedigitaltube,light-emittingdiodes,flickerstatusatthesametime,thebuzzerwillsound,toremindsomeoneviestoanswerfirstontology,hostpresstheresetbutton,thesignalcanbetheanswer.
Keywords:
STC89C52microcomputer;Dynamicdisplay;Interrupt;Thekeycontrol
第1章绪论
1.1单片机抢答器的背景
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词--“智能型”。
在知识竞赛中,往往会用到抢答器。
故此我们就选择利用单片机编程来设计抢答器,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题。
1.2单片机抢答器的意义
本系统采用单片机作为整个控制核心。
控制系统的四个模块为:
显示模块、存储模块、语音模块、抢答开关模块。
该系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能,用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。
本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。
系统工作原理本系统采用STC89C52单片机作为核心。
控制系统四个模块分别为:
存储模块、显示模块、语音模块、抢答开关模块。
该抢答器系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能。
工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设计。
1.3抢答器的应用
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。
抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。
第2章系统硬件部分的设计
2.1设计要求
(1)总共6个按键,两个供主持人用于“开始抢答”和“复位”操作,四个供四个选手用作“抢答”操作。
(2)用1个发光二极管用作开始抢答的指示灯,用4个发光二极管分别显示4个选手的抢答状态。
(3)开始抢答后,哪个选手抢答键最先按下,抢答指示灯点亮,蜂鸣器报警,数码管显示选手号码,表示该选手抢答成功,此时其他选手再按键为无效。
(4)开始抢答前,若有选手按下抢答键,则其对应的指示灯变为闪烁,蜂鸣器报警,数码管显示选手号码,表示该选手犯规,此时所有选手按键都将无效。
(5)出现犯规后,主持人可以利用“复位键”重新开始。
2.2总体设计方案
方案:
依据课题要求,基于STC89C52单片机制作的抢答器,其最大的好处就是处理准确性高、可靠性好、控制功能强。
采用STC89C52单片机作为控制中心,系统可以完成运算控制、信号的控制以及显示的功能。
选手通过按键开光作为输入信号完成输入信号的触发,主持人根据选手的输入信号准确的判断最先按下的选手且屏蔽其他的抢答信号,让选手作答。
使用外部中断方式来实现开始抢答,运用按键复位来实现系统的复位,其系统原理框图如下:
图2-1系统原理框图
2.3单元模块设计
2.3.1单片机简介
STC89C51单片机是采用高性能的静态80C52设计由先进CMOS工艺制造并带有非易失性Flash程序存储器,全部支持12时钟和6时钟操作。
P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。
图2-2STC89C52单片机引脚图
各引脚功能介绍如下:
●VCC:
供电电压
●GND:
接地
●P0口:
P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
●P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
●P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
●P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
同时P3口同时为闪烁编程和编程校验接收一些控制信号。
●RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高平时间。
●ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
●PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现。
●EA/VPP:
当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
●XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
●XTAL2:
来自反向振荡器的输出。
2.3.2最小系统的设计
单片机的最小系统电路图:
图2-3单片机的最小系统图
说明:
①复位电路:
由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。
典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C取10,R取8.2K。
当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;
②复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。
此电路除具有上电复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平;
③晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的方波便于12分频,方便定时操作);
④单片机:
一片STC89C51/52或其他51系列兼容单片机;
注意:
对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行;
⑤电源部分:
接+5伏特的电压。
2.3.3数码管显示电路
其中数码管的显示可以分为两种:
静态显示和动态显示。
静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管,在这种采用这种方式,必须要给LED恒定的电压,要求电压一直保持,所以一般在LED和单片机之间加锁存器,这种显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的CPU时间少。
动态显示驱动:
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共端COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
从电路上,按数码管的接法不同又分为共阴和共阳两种。
图2-4是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
其数码管的外形如下图所示:
图2-4数码管的共阴和共阳极接法
2.3.4按键模块设计
4个抢答按键分别接入单片机的P3.0~P3.3端口,单片机通过读取P3.0~P3.3的值来判断当前输入的是4个抢答按键中的哪一个。
图2-5按键电路
按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或重复执行。
现在一般均用软件延时的方法来避开抖动阶段,这一延时过程一般大于5ms,例如取10-20ms。
如果监控程序中的读键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,则该延时子程序便可直接插入读键过程中。
图2-6数码管显示电路
第3章系统的软件设计
在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。
把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
3.1抢答器工作原理
抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。
在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。
在整个抢答器工作过程中,显示电路、声音电路等还要根据现场的实际情况向外电路输出相应信号。
3.2流程图
流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。
总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。
流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。
为便于识别,绘制流程图的习惯做法是:
方框表示:
要执行的处理(Process)
平行四边型表示:
代表资料输入(Input)
不规则图形代表资料输出(Output)或报表输出(Print)
菱形表示:
决策或判断(例如:
If...Then...Else)
图3-1主程序流程图
在抢答竞赛或呼叫时,有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。
在整个抢答器工作过程中,显示电路还要根据现场的实际情况向外电路输出相应信号。
3.3KEIL软件简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
打开Keil软件,首先,建立工程文件,然后新建一文档,输入自己编写的程序。
点击保存,保存为.ASM文件(C语言为.C文件)。
然后,然后再单击AddFilestoGroupSourceGroup1。
然后勾选生成.HEX文件选项,最后点击编译,如图3-2所示。
图3-2Keil软件程序编写
第4章系统的仿真与调试
4.1软件的仿真与调试
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件,它可以仿真、分析(SPICE)各种模拟器件和集成电路。
该软件的主要特点总结后有以下四点:
①实现了单片机仿真和SPICE电路仿真相结合的功能。
②支持目前主流单片机系统的仿真。
③提供了软件调试功能,并可以与WAVE联合仿真调试。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
在电子领域中也起到了很大的作用,它的出现仿真不需要先焊接电路,可以先仿真调试通过后在焊电路,节省了不少在硬件调试上所花的时间。
ProteusISIS的工作界面是一种标准的Windows界面。
它包括标题栏、主菜单、状态栏、标准工具栏、绘图工具栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口等十几个工具,方便了使用者的使用。
首先打开已经画好的proteusDSN文件,双击图中的STC89C52芯片,就弹出一个窗口,在ProgramFile项中通过路径选择在WAVE中生成的HEX文件,双击选中后确定,这样仿真图中的STC89C51芯片就已经读取了本设计中的HEX文件。
单击“三角形按钮”进行仿真。
通过对仿真结果的观察来对程序进行修改,最终使程序到达设计要求。
4.2硬件的安装与调试
按照之前设计好的抢答器原理图,详细计算系统中各个元件的参数,选择相应器件,焊接实际电路板。
由于考虑到万能板大小的问题及元件之间连线的方便,在焊接元器件前必须考虑元件的布局然后进行实际操作。
制作好的电路板可以用万用表(200欧姆档)的红、黑表笔测试电路板的每条走线,当其电阻非常小时,证明走线没有断开,当其电阻很大时,证明该条走线断了,应该重新走线,使电路板在电气上得到正确地连接。
选用万用表的20K欧姆档,检测电路中是否存在短路。
因为系统采用的是共阴极数码管作为显示电路,必须确保数码管的公共端接的是低电平。
4.2.1晶振电路的测试
在单片机正常运行的必要条件是单片机系统的时钟稳定正常。
实际中,因为各种原因导致系统时钟不正常而出现系统无法正常运行的情况时有,因此系统时钟是否振是通电检查的首要环节。
在系统通电的状况下,用万用表的直流电压档(20V),分别测量XTAL1和XTAL2引脚的电压,看是否正常,在调试过程中,测得电压XTAL1引脚应为2.05V,XTAT2应为2.15V。
4.2.2复位电路的测试
复位不正常也会导致系统不能工作。
如果复位引脚始终为高电平,系统将始终处于复位状态;如果始终为低电平,不能产生复位所需的高电平信号脉冲,则系统也可能无法正常工作。
单片机正常工作时,RST复位引脚应为0V,按下复位按键时,复位引脚为高电平5V左右。
4.2.3显示电路的测试
显示电路是抢答器正常运行最直观的观察窗口,我们可以通过观察显示电路的显示结果观察系统能否正常运行。
当显示电路按照电路图焊接好后,用万用表的测二极管档位,将黑表笔接共阴数码管的公共段,然后将红表笔接数码管的各段,当数码管的段能正常显示,说明各点焊接正常。
将R3到R9及共阴数码管焊好,再将集成电路插座焊上,这样这部分电路就制作完成了。
接下来对这部分电路进行测试,接上电源,数码管全灭,用一导线的一端与地线相连,另一端依次碰集成电路插座的20脚到26脚,一边碰一边查看数码管,正常时可以看到每碰一个脚,对应一段数码管灯亮。
若不亮,仔细查看与该脚相连的电阻及数码管是否虚焊。
将烧录好程序的AT89C2051芯片插上(我们提供的芯片中已烧录好程序),注意方向不要插错(反插容易损坏芯片),芯片上有一个小三角的标记处为1脚。
只要元件焊接无误,按以上制作流程操作,装好后就可以正常工作。
制作完成的4路抢答器见。
所有元件全部制作完成后,接上电源,电源指示灯亮,按动4路抢答开关中的任何一路,音乐响起,同时数码管显示相应的抢答开关号。
抢答成功后,按下复位键,系统返回抢答状态。
总结
本次课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
通过这次课程设计,我对单片机的知识有了进一步的学习。
通过这次设计,本人在多方面都有所提高。
通过这次设计,综合运用本专业所学课程的理论,设计工作的实际训练从而培养和提高学生独立工作能力,巩固所学的内容,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 抢答 设计 论文