单片机课程设计8路竞赛抢答器_8路抢答器课程设计

2020-02-27 其他范文 下载本文

单片机课程设计8路竞赛抢答器由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“8路抢答器课程设计”。

课程设计任务书设计内容

⒈设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、7、8,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S0、S1、S2、S3、S4、S5、S6、S7。

⒉给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。

⒊抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。

4.用中小规模集成电路组成智力竞赛抢答器电路,画出各单元电路图和总体逻辑框图,正确描述各单元功能,合理选用电路器件,画出完整的电路设计图以及写出设计总结报告 2 设计要求

⒈抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30s)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时蜂鸣器发出声响。

⒉参赛选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。

⒊如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。

摘要

抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。工厂、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。在我校举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,为解决这个问题,我们小组准备就本次大赛的机会制作一个低成本但又能满足学校需要的八路数显抢答器。

本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

目录

一.方案设计与论证.........................................................................................1 二.实现的原理和电路......................................................................................2

2.1组成部分............................................................................................2 2.2抢答器................................................................................................2 2.3锁存器................................................................................................2 三.硬件电路设计.............................................................................................3

3.1抢答器的电路框图..............................................................................3 3.2单元电路设计.....................................................................................4

3.2.1抢答器的设计...........................................................................4 3.2.2时序电路的设计.......................................................................4 3.2.2复位电路的设计.......................................................................5 3.2.4外部振荡电路...........................................................................5 3.2.5显示电路的设计.......................................................................6 3.2.6按钮输入电路的设计................................................................6 3.2.7报警电路的设计.......................................................................6 3.2.8发声.........................................................................................7

四.软件设计....................................................................................................7

4.1系统主程序的设计..............................................................................8 4.2抢答信号的处理设计..........................................................................9 4.3键盘扫描子程序...............................................................................10 4.4显示子程序......................................................................................12 五.系统的仿真...............................................................................................12 六.调试功能说明...........................................................................................14

6.1系统的调试......................................................................................14 6.2 软件调试问题及解决.......................................................................14 七.参考文献..................................................................................................15 八.心得体会..................................................................................................16

一.方案设计与论证

方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。

方案二:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。MCS-51单片机特点如下:

可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。

单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。

控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。

方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外80C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。二.实现的原理和电路

2.1组成部分:

输入锁存控制电路——按键S1~S8,锁存器D1及相关门电路 数码显示电路——译码器,全加器,及3个数码管

报警电路——定时器(构成多谐振荡器)和三极管,蜂鸣器

2.2抢答器

工作过程:接通电源,主持人将控制开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯。当主持人宣布抢答题目后,说一声“开始”同时将控制开关拨到“开始”位置,抢答器处于工作状态。当选手按动抢答时,抢答器完成3项工作。

1)优先编码电路立即分辨出抢答者的编号,并由锁存器进行锁 存,然后由数码管显示电路编号。

2)扬声器发出声响,提醒主持人注意

3)控制电路要对输入编码电路进行封锁,避免其他人再次抢答,并保持到主持人清零。当选手将问题回答完毕后,主持人操作控制开关,使系统恢复到禁止工作状态,以便下一次抢答。

2.3锁存器

锁存器输入信号均为同一电平时,锁存器控制电路的输出信号将锁存器打开,这时锁存器输入端的信号送往相应的输出端。当有一输入端的电平发生跳变时,其对应输出端电平也跟着变化,此变化的输出电平送入锁存器控制电路,控制电路立即产生控制信号封锁锁存器,此时输入不影响输出。电路图如下:

三.硬件电路设计

3.1抢答器的电路框图

如上图

(一)所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“开始,停止”。由电路框图下面的总体设计图

(二)总设计图的工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。

总体设计图

(二)3.2单元电路设计

3.2.1抢答器的设计

由总体设计图

(二)可知该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次的抢答。

3.2.2时序电路的设计

时序控制电路是抢答器设计的关键,它要完成以下功能:

a.主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。

b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。3.2.2复位电路的设计

外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如下图示:

3.2.4外部振荡电路

外部震荡电路单片机必须在AT89C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图。3.2.5显示电路的设计

显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮。

3.2.6按钮输入电路的设计

抢答器的输入按钮使用常开开关,这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。

3.2.7报警电路的设计

报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性,8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次*作“清除”和“开始”状态开关。图面是数字抢答器的报警电路图。其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。

3.2.8发声

这里能利用程序来控制单片机P3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。

四.软件设计

整个程序的设计思路如下:首先用进位标志C作为主持人按键的状态标志,C=0为可以开始抢答(如果需要也可用一个发光二极管将C的状态显示出来,只需将程序做小小的修改即可);接下来开外部中断0;然后是读取按键状态,只要有一个按键按下(引脚为高电平)并且为C=0,则开始进入分析按键状态程序,用循环移位指令分析出事第几个按键按下,并将其放入P1口进行显示输出。上述程序相对来说很简单,首先它从硬件的微妙数量级处理速度上确保了不会同时按下2个按键,因此程序没有区分重复按键的部分,另外程序使用了外部中断,从而保证了主持人按键的权限是所有按键中权限最高的。

主程序流程图如下:

4.1系统主程序的设计

主程序的功能主要是完成内部各寄存单元的初始化,对接口电路的初始化,内部定时器的初始化,中断的初始化及调节显示程序对初始状态的显示以及对外部信号的等待处理,也就是说完成前期的准备工作等待随时对外部信号进行响应。程序清单如下:

OK EQU 20H

;抢答开始标志位 RING EQU 22H ;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H

AJMP INTOSUB

ORG 00BH

AIMP T01NT

ORG 0013H

AJMP INT1SUB

ORG 001BH

AJMP T1INT

ORG 0040H

MAIN:MOV R1,#30

;初设抢答时间为30S

MOV R2,#60

;初设答题时间为60S

MOV TMOD,#11H

;设置未定时器、模式1

MOV TH0,#0F0H

MOV TLO,#0FFH

;越高发声频率越高,越尖

MOV TH1,#3CH

MOV TL1,#0B0H

;50MS为一次溢出中断

SETB EA

SETB ETO

SETB T1

SETB EX0

SETB EX1

;允许四个中断,T0,T1,INTO,INT1

CLR OK

CLR RING

SETB TR1

SETB TRO 一开始就运行定时器,显示FFF,如果想重新计数,重置TH1,TL1就可以了。

4.2抢答信号的处理设计

当主持人按下开始抢答键后开始抢答,程序部分采用中断方式处理。在中断处理程序中完成相应操作,修改计时单元的数据并使红色指示灯亮。程序清单如下:

START:MOV R5,#0BH

MOV R4,#0BH

MOV R3,#0BH

ACALL DISPLAY

;未开时抢答的时候显示FFF

JB P3.0,NEXT

;DDDDDDD

ACALL DELAY

JB P3.0,NEXT

;去抖动如果“开始键”按下就向下执行,否则跳到非法抢答查询

ACALL BARK

;按键发声

MOV A,R1

MOV R6,A

;送R1->R6因为R1中保存了抢答时间

SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答

MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号

MOV R3,#0AH ;抢答只显示计时,灭号数

AJMP COUNT

;进入倒计时程序,“查询有效抢答的程序”在COUNT里

NEXT:JNB P1.0,FALSE1

JNB P1.1,FALSE2

JNB P1.2,FALSE3

JNB P1.3,FALSE4

JNB P1.4,FALSE5

JNB P1.5,FALSE6

JNB P1.6,FALSE7

JNB P1.7,FALSE8

AJMP START 4.3键盘扫描子程序

对行列式键盘的扫描方法有两种。一为扫描法,对键盘按行逐行扫描查询,其结构清晰但对于最后行列的按键需经多次扫描;一为反转法,它先使行全为零,读人列的状态暂存,然后使列全为零,读人行的状态保存,对两次保存数据进行查询即可得知按下键的行列数从而确定键值。在程序中采用反转法对键盘进行扫描。键盘扫描程序在确定键值后保存等待后续处理。程序清单如下:

AAAA1:MOV A,P1

CJNE A,#0FFH,AA1 ;当不全为0时的数据为有效数据

AA0:MOV 36H,A

;将有效数据送到36H暂存

AJMP LOOP2

AA1:DEC R7

AJMP AA0(1)键值处理子程序

此子程序根据键盘扫描所取得的键值作出相应的处理。在抢答时,只对数字(代表相应抢答分组)1^8按下有效,其他键按下无效。抢答成功,开始答题键按下给出相应信号指示。程序清单如下:

TRUE1:ACALL BARK

MOV A,R2

MOV R6,A

;抢答时间R2送R6

MOV R3,#01H

CLR OK ;因为答题的计时不在查询抢答,所以就锁了抢答

AJMP COUNT TRUE2:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#02H

CLR OK

AJMP COUNT TRUE3:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#03H

CLR OK

AJMP COUNT TRUE4:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#04H

CLR OK

AJMP COUNT

TRUE5:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#05H

CLR OK

AJMP COUNT TRUE6:ACALL BARK

MOV A ,R2

MOV R6,A

MOV R3,#06H

CLR OK

AJMP COUNT TRUE7:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#07H

CLR OK

AJMP COUNT TRUE8:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#08H

CLR OK

AJMP COUNT

4.4显示子程序

此程序仅完成6位数据的动态显示,可显示数据和代码。初始状态显示8位全熄灭。程序清单如下:

DISPLAY:MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出,P2低三位做选码输出

MOV A,R3

MOVC A,@A+DPTR

MOV P2,#0FEH

MOV P0,A

ACALL DELAY2

MOV DPTR,#DAT2

MOV A,R5

MOVC A,@A+DPTR

MOV P2,#0FDH

MOV P0,A

ACALL DELAY2

MOV A,R4

MOVC A,@A+DPTR

MOV P2,#0FBH

MOV P0,A

ACALL DELAY2

RET

DAT1:DB 00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;“灭”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“灭”,“F”

DAT2:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H ; 第一个为零,其他与上同,因为十位如果为零显示熄灭

五.系统的仿真

1.抢答器protenus软件的仿真

绘制抢答器的软件仿真图步骤分一下四步:(1)、查找所需要的元器件;(2)、根据电路图进行连线;(3)、是用来写线所对应的坐标,即下图所示的P1.1等坐标;

(4)、下载所写完的C程序即可以仿真。通过以上步骤,来实现抢答器设计的仿真实现,仿真如上图所示:

六.调试功能说明

6.1系统的调试

系统调试包括硬件调试和软件调试,‘

硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,主要用数字万用表测量电路。

软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。

6.2 软件调试问题及解决

下面说一下如何在keil中调用proteus进行MCU外围器件的仿真。(1)、安装keil 与 proteus。

(2)、把安装proteus MODELS目录下 VDM51.dll文件复制到Keil安装目录的 C51BIN目录中。

(3)、修改keil安装目录下 Tools.ini文件,在C51字段加入TDRV5=BINVDM51.DLL(“Proteus VSM Monitor-51 Driver”),保存。(注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。引号内的名字随意)

3、打开proteus,画出相应电路,在proteus的debug菜单中选中use remote debug monitor4、在keil中编写C语言程序

5、进入KEIL的project菜单option for target '工程名'。在DEBUG选项中右栏上部的下拉菜单选中 Proteus VSM Monitor-51 Driver。

6、在keil中进行debug吧,同时在proteus中查看直观的结果(如LCD显示„)这样就可以像使用仿真器一样调。

问题:有时候在自己创建的元器件的管脚上无法实现连线。

回答:应该是管脚的间距太小了。因为在ISIS中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线的同时按住 “CTRL”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。

七.参考文献

[1]51单片机原理与实践/高卫东,辛友顺,韩彦征编著.北京航空航天大学出版社,2008.1 [2]刘红玲、邵晓根,《微机原理与接口技术》,中国电力出版社,2006年第一版

[3]冯博琴,《微型计算机原理及接口技术》,清华大学出版社 [4]艾德才,《微型计算机原理与接口技术》,高等教育出版社 [5]沈美明,《IBM-PC汇编语言程序设计》,清华大学出版社 [6] 任致程,《经典集成电路400例》机械工业出版社,2002 [7] 胡 锦.《数字电路与逻辑设计》 高等教育出版社

八.心得体会

通过二周的课程设计,使我对数字电路有了进一步的了解,在设计抢答器、报警器、定时器的过程中,通过翻阅资料,上网搜索等,我对各电路器件(如:与非门和LED显像管等)及原理有了更深一层次的认识,既增强了我的理解能力,也使我能更好的运用所学的知识。开始时我还不太明白电路是如何连接的,并且对其原理也不甚了解,但通过对所学知识更深入的了解和同学的讲解和帮助,最终使我克服了难关,并成功地作出了设计。四周的锻炼,28天的不同感受,我有过对知识掌握不足时的迷茫,也有过思路不清时的懊恼,但一路走来,我却收获了知识,收获了希望和努力后的成果。

在此我要感谢老师的谆谆教导和同学们的帮助,我相信这十几天的不懈努力会给我未来的学习带来很多的启发,我会在以后的工作生活中更好的理论联系实际,证明自己的能力。

《单片机课程设计8路竞赛抢答器.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
单片机课程设计8路竞赛抢答器
点击下载文档
相关专题 8路抢答器课程设计 单片机 课程设计 抢答器 8路抢答器课程设计 单片机 课程设计 抢答器
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文