竞赛抢答器课程设计教材Word格式文档下载.docx
《竞赛抢答器课程设计教材Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《竞赛抢答器课程设计教材Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
在现代科技的迅速发展的前提下,生活和生产中都要求尽可能的实现自动化控制,自动化控制不仅为我们的生活和生产过程带来了许多的方便,同时也显示了一个国家的科技发展水平。
在我们日常生产生活以及学习中,对一些娱乐竞赛的活动需求日趋增加,而在绝大部分的娱乐比赛当中,如果在抢答中,靠视觉是很难判断出哪组先答题。
因此比赛中如何判断出第一个举手或抢答的人成为许多学者研究的课题。
为了保证比赛的准确性、公正性、直观性,通常比赛会设置竞赛抢答器。
本此微机原理课程设计课题是利用微机原理及接口技术,设计出一个竞赛抢答器系统,该抢答系统具有8个人的抢答控制按钮(本课题中使用开关作为按钮),选手通过按钮来进行抢答。
本设计主要是以8086为核心,通过加上必要的支持芯片,比如时钟电路、地址锁存器、收发器、8255,8253等,构成一台完整微机系统。
通过8255A与外部键盘相连,工作方式为定时扫描,利用定时器产生中断、CPU响应中断后对键盘进行扫描,或软件定时扫描,并在有键按下时转入键功能处理程序。
中断优先级管理器8259A在本系统中用来管理选手按键中断信息。
可编程定时器/计数器8253用来设定扬声器的发声频率和发声时间。
LED显示器用来连接到8255A的B口,用来显示选手号。
抢答器对采样获得的各路抢答信号进行分柝,能够识别超前违规信号、有效抢答信号,并对它们进行处理。
使每一次抢答过程都有效。
并且能够清楚的判断抢答后的回答时间是否超时,操作方便,功能齐全。
整个课程设计不仅让学生在课堂上学到的纯理论知识学以致用,而且还充分锻炼了学生的分析问题解决问题的能力,开拓创新的精神,严谨了学生的思维,提高了学生的综合素质,为以后的更加独立自主的学习打下了一个良好的基础。
1课程设计的目的
课程设计是学生综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法的重要实践环节。
通过独立或协作提出并论证设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教学和实验教学内容的掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、硬件开发方法。
通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练:
(1)调查研究、分析问题的能力;
(2)使用设计手册、技术规范的能力;
(3)查阅中外文献的能力;
(4)制定设计方案的能力;
(5)计算机应用的能力;
(6)设计计算和绘图的能力;
(7)技术经济指标的分析能力;
(8)语言文字表达的能力
2课程设计的任务与要求
主要进行两个方面的设计,即单片机最小系统和存储器扩展设计、接口技术应用设计。
其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。
存储器扩展设计要求学生掌握常用半导体芯片与单片机的接口,如EPROM存储器用作外部程序存储器时与单片机的连接关系,SRAM存储器用作外部数据存储器时与单片机的连接关系,E2PROM存储器用作外部程序/数据存储器时与单片机的连接关系。
能合理分配和使用单片机的内部和外部存储器,编程实现正常的读写功能。
在进行智力竞赛时,为了具有一种反应准确显示方便的抢答装置,下面设计了一种带有定时功能的多路抢答器
1、八路抢答,各用一个抢答按钮;
2、设置一个控制开关,该开关由主持人控制;
3、具有数据锁存和显示功能,抢答开始后若有选手按动抢答按钮,编号立即锁存,此外,要封锁输入电路,禁止其他选手抢答。
优先抢答选手的编号一直保持到系统清零为止;
4、当主持人按下“开始”按钮,抢答开始。
5、当某一路抢答成功时,在数码管上显示成功信息和该路的号数;
6、当某一路抢答违规时,能在数码管上显示违规信息和号数;
可扩展以下功能:
7、具有定时抢答的功能,选手在设定的时间内抢答有效,且一次抢答的时间设定为30秒,超时扬声器报警;
8、定时抢答的时间到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时抢答,时间显示器上显示00。
9、开始开关未动作,在数码管上显示出选手的编号和抢答时刻,同时扬声器给出音响提示,选手抢答无效,并报警,系统复位,重新开始
3设计方案与论证
3.1方案一
(1)
本方案定时抢答器的总体框图如下图所示,它由主体电路和扩展电路两部分组成。
主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答,扩展电路完成定时抢答的功能。
(2)
定时抢答器的工作过程是:
接通电源时,节目主持人将开关置于“消除”位置,抢答器处于禁止工作状态,编号显示器灭灯,定时器倒计时,当定时时间到,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。
当选手在定时时间内按动抢答键时,抢答器要完成以下四项工作:
优先编码电路立即分辨出抢答者的编号,并由锁存器进行锁存,然后由译码显示电路显示编号;
扬声器发出短暂的声响,提醒节目主持人注意;
控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;
控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人将系统消零为止,当选手将问题回答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。
3.2方案二
本方案完成的功能如图
所示,当主持人宣布抢答开始的时候,按下开始按钮,此时电路进
入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机
输出到显示输出电路中。
此时有人第一按下相应的抢答按钮,经过单片机的控制选择,在八
段显示器上显示相应的号码,并锁存,同时禁止其他按钮的输入。
基于以上两种方案做以简要分析,第一种方案电路较为复杂,但无需进行软件设计,直接进行线路的连接就可以运行。
第二种方案电路较为简单,需要进行复杂的软件设计,并需要进行很长时间调试,费工费时。
说以决定选择第一种方案.
4设计原理及功能说明
4.1设计原理
系统选择8086CPU,8255A片选地址为04A*H,如下图所示8255A的A口只作输出使用,驱动数码管。
8255的B口只作输入使用,作为8个抢答信号的输入。
8255的C口作位操作,驱动发光管。
A口地址为04A0H。
B口地址为04A2H,C口地址为04A4H,控制字地址04A6H。
A口工作方式选方式0,B口工作方式选方式1。
8255A工作方式控制字为86H(1000,0110)B。
C口的最高两位PC6,PC7作位操作,驱动发光管二极管。
抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。
设置一个系统清除和抢答控制开关S,该开关由主持人控制。
抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在七段数码管上显示选手号码。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动“开始”键后,定时器进行减计时。
参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
4.2功能说明
本次实验是要求设计一个竞赛抢答器。
在做本实验之前,我们先熟悉了中断优先级管理器8259A、可编程并行接口接口芯片8255A、可编程定时器/计数器8253和数码管的用法,掌握了汇编程序的设计。
通过本次实验掌握了微机系统的开发步骤,锻炼了我们的对硬件和软件的的综合操作。
本次设计需要熟练掌握汇编语言,熟悉中断优先级管理器8259A、可编程并行接口接口芯片8255A、可编程定时器/计数器8253的内部结构、外部引脚和功能,熟悉LED显示器的结构及译码方式。
可编程并行接口接口芯片8255A在本系统中用来连接选手的按键,逻辑开关K0—K7代表竞赛抢答按钮0—7号,当某个逻辑开关置1时,相应某组抢答按钮按下。
在七段数码管上将其组号(0—7)显示出来,并使微机扬声器响
1、设计思路
首先初始化8255,然后判断是启动还是复位操作,若是复位操作,则控制8255输出的数据使绿色和红色指示灯、LED数码管全灭;
否则启动下一次抢答,使绿色发光二极管亮,当8255的输入口A有不为0的数据时,则使红色发光二极管点亮、并判断先拨动开关的组号,在LED上显示出其组号。
2、使用设备
并行接口8255:
通过编程来指定它要完成的功能,是并行数字设备与微机间的接口。
数码管:
指示先抢答的组号。
二极管:
指示抢答。
开关:
作为抢答者的按钮。
5单元电路的设计
5.1总体设计
因为这次的任务是设计一个8路竞赛抢答器,所以必须要用到数码显示、中断控制、计时以及分频等功能,所以初步分析之后,需要8255、8259、8253等芯片。
经过进一步的分析,实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。
为此,可将8个抢答按钮信号通过一个8位并行输入口接至微机中。
当主持人启动抢答过程后,微机通过该并行输入口循环对8路抢答信号进行采样。
当采样到那一组的抢答信号已经发出,则立即停止采样,并记录下该组的组号。
每路抢答按钮电路可以参考图2.1进行设计
由图可知,当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,而当微机采样到这8位数据不为0时,则表示有一组获得了抢答机会,然后通过逐位查询个位状态,即可判断出哪一组抢答成功,最后利用并行输出接口将抢答成功的组号现实出来.在实验中,可以仅用一位7段数码管来显示抢答选手的组号。
为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时计时器,先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间已到。
扬声器鸣叫,由于设计要求扬声器鸣叫的声音频率不同,所以必须还有一个计数器进行分频工作。
由于本系统要求对犯规的组亮红灯警告,主持人按下启动键后需要绿灯显示,以及抢答成功后需要亮黄灯,所以要设置一个LED显示电路例如,在主持人按下启动按键之前,如果有抢答钮被按下,则该抢答选手犯规,可以通过并行接口输出一个信号使该组的红色发光二级管点亮以示该组选手犯规。
5.2抢答器电路设计
抢答电路是整个系统的重要组成部分,是面向选手和观众的。
本部分所设计的抢答电路是基于八路按键式数字抢答器所设计的,它可供8名选手或8个代表队参加比赛,并且分别用8个按键开关进行抢答,选手在规定时间内抢答有效。
本电路和报警电路、时序电路和定时电路相互配合共同完成功能强大的竞赛抢答功能。
电路说明
电路选用优先编码器74LS148和锁存器74LS297来完成。
该电路主要完成两个功能:
一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路编号(显示电路采用七段数字数码显示管);
二是禁止其他选手按键,其按键操作无效。
(2)工作过程
接通电源后,主持人将开关置于“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;
当主持人宣布说“开始抢答”,同时将开关置于“开始”状态,扬声器给出声响提示后,定时器进行减计时。
选手在定时时间内按动抢答按钮时,抢答器要完成优先判断、编号锁存、编号显示、扬声器提示四项工作。
当一轮抢答之后,定时器停止,禁止二次抢答,定时器显示剩余时间,并保持到主持人将系统清零为止,当选手将问题回答完毕后,主持人操作控制开关,使系统清零,以使进行下一轮抢答。
5.3定时电路设计
该部分主要由555定时器、十进制同步加/减计数器74LS192减法计数电路、74LS48译码电路和两个7段数码管及相关电路组成。
主持人设定抢答器时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供,可预置时间进行倒计时电路选十进制同步可逆,计数器74LS192进行设计,倒计时到零时,定时电路输出低电平有效的“定时到信号
”
原理及设计
两块74LS192实现减法计数,通过译码电路74LS48显示到数码管上,其时钟信号由时钟产生电路提供。
74192的预置数控制端实现预置数,由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。
按键弹起后,计数器开始减法计数工作,并将时间显示在共阴极七段数码显示管DPY_7-SEG
上,当有人抢答时,停止计数并显示此时的倒计时时间;
如果没有人抢答,且倒计时时间到时,
输出低电平到时序控制电路,控制报警电路报警,同时以后选手抢答无效。
5.4时序控制电路
功能说明
在任何时刻,电路的输出不仅取决于该时刻的输入,而且还取决于电路原来的状态。
不难想到,时序逻辑电路中必然包含某些存储器件,用来存储或者说记忆电路原来的状态。
时序控制电路是抢答设计的关键,电路要满足以下三个功能要求:
主持人将控制开关拨到“开始’位置时,扬声器发声,抢答电路和设定电路进行正常抢答工作状态。
当参赛选手按动抢答按钮时,扬声器发声,抢答电路和设定电路停止工作。
当设定的抢答时间到,无人抢答时,扬声器发声,系统报警并禁止抢答,同时,抢答电路和定时电路停止工作,定时显示器上显示00
(2)工作原理分析
根据上面的功能要求以及数字抢答电路图所示,设计时序控制电路如图所示。
其中门
的作用是控制电路如图所示。
的作用是控制时钟信号CP的放行与禁止,门
的作用是控制74LS148选通输入端
5.5报警电路设计
报警电路用于报警,当遇到报警信号时,发出警报。
一般喇叭是一种电感性图5报警电路图。
8951驱动喇叭的信号为各种频率的脉冲。
因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。
在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。
不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。
选手在设定的时间内抢答时,实现:
优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次作"
清除"
和"
开始"
状态开关。
5.6选手抢答键
AT89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。
6硬件的制作与调试
硬件连接电路图
下图为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。
在七段数码管上将其组号(0~7)显示出来,并使微机扬声器响一下。
下图为竞赛抢答器的原理图,逻辑开关K0—K7代表竞赛抢答按钮0—7号,当某个逻辑开关置1时,相应某组抢答按钮按下。
在七段数码管上将其组号(0—7)显示出来,并使PC喇叭响一下
编程提示
设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。
根据读取数据可判断其组号。
从键盘上按空格键开始下一轮抢答,按其它键程序退出
调试过程
(1)实验步骤
1)硬件连线
8255模块的WR、RD分别连到ISA总线接口的IOWR、IORD。
k8255模块的数据(AD0~7)、地址线(A0~7)分别连到ISA总线接口数据(LAD0~7)、地址线(LA0~7)。
l8255模块选通线CE连到ISA总线接口模块的IOY0。
m8255的PA0~7连到键盘显示模块的KD0~7;
8255的PB0~3连到键盘显示模块的KL1~4。
2)将程序键入电脑上,并保存到D盘(文件名为8255.ASM)。
3)对程序进行调试:
首先,进行编译,如有错误,进行改正,直至完全正确,再进行连接,最后运行。
4)拨动开关,观察数码管和二极管的变化。
(2)出现的问题
a、程序运行时,L1一直亮,L2不亮。
解决方法:
检测L1,L2,出现故障。
则将L1替换为L8,L2替换为L6,即8255的端口B(如PB2、PB1)分别和发光二极管L6(绿)、L8(红)连接。
b、数码管不亮。
解决方法:
由于复位后数码管PB高四位置0,启动后没有进行置1,故在启动时,与L1同时置1.
c、四个数码管都亮。
将程序
K6:
MOV
DX,PB
;
让B口的L1亮L2灭
(11111101B),表示有人抢答
AL,0FDH
OUT
DX,AL
改为:
让B口的L1亮L2灭
(01000100B),表示有人抢答
AL,044H
;
送位选信号,即第三个亮
DX,AL
d、一次抢答完后,无法进行下一次抢答。
加一个程序
JMP
K1
7总结
通过本次实验掌握了微机系统的开发步骤,掌握了中断优先级管理器8259A、可编程并行接口接口芯片8255A、可编程定时器/计数器8253和数码管的用法,掌握了汇编程序的设计。
可编程并行接口接口芯片8255A在本系统中用来连接选手的按键,主持人的开始键和复位键,用来连接黄灯、红灯、绿灯三个发光二极管,用来提示抢答信息,用来连接LED显示器控制显示器的输出,还连接到8253的GATE1端,控制计数器的启动计数和停止计数的操作。
通过本次课程设计我也获得了许多收益,首先,让我更好的掌握了8259A、8255A、8253芯片的工作原理、方式及其应用。
其次,让我学会了如何设计一个简单的微机系统,以及设计一个简单微机系统所需要的步骤和设计中需要注意的地方。
本人在设计中遇到很多困难,大都是对和芯片的应用还不是很熟练,还需更加努力更加深入的了解微机系统和芯片功能。
通过对抢答器这一课题的设计和实现,使我更好的将理论与实践相结合,我更加深入地理解了,微机原理课程上讲到的并行芯片8255的功能,以及引脚的作用,同时加深了对于该芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程。
更重要的是通过这个实验,进一步掌握了程序设计的合理结构。
但要达到这样的程度其首要条件还是要学好课本上的基础知识,理解每一条指令的意义。
由于我的能力和时间的限制,没能通过硬件的验证实验,只是通过查找一些资料和大脑抽象来设计本次课程设计,设计的抢答器还存在一些问题有待改进
参考文献
电子工业出版社.2005.
[2]
周润景、张丽娜.基于PROTEUS的电路及单片机仿真.
[3]
胡耀辉、朱朝华等.单片机系统开发实例经典.北京:
冶金工业出版社.2006.
[4]
张迎新.单片机初级教程.
北京:
中国电力出版社
[6]顾晖.微机原理与接口技术:
基于8086和Proteus仿真.电子工业出版社2011
[7]彭虎.微机原理与接口技术(第2版).电子工业出版
附录1:
总体电路原理图
附录2:
元器件清单
(1)8255A接口芯片:
用来实现数据的输入及输出显示
(2)74LS244锁存器:
用来锁存数据
(3)七段数码管:
用来显示抢答的组号
(4)按键开关:
用于各个小组进行抢答
(5)导线若干,pc机
中断优先级管理器8259A、可编程并行接口芯片
8255、可编程定时器/计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个6输入与非门,一个非门,一个扬声器,一个LED显示器,8个按键。
附录3:
程序源代码
M8254C0EQU0C840H
M8254MEQU0C843H
M8255AEQU0C860H
M8255BEQU0C861H
M8255CEQU0C862H
M8255MEQU0C863H
DATASEGMENT
TABDB60H,0CAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,M8255M;
初始化8255
MOVAL,98H
OUTDX,AL
BEGIN:
MOVDX,M8255C;
检查脉冲信号
INAL,DX
ANDAL,80H
JZBEGIN
MOVDX,M8254M;
定义8254方式
MOVAL,31H
MOVDX,M8254C0;
定时10秒
MOVAL,0AH
gate开启
MOVAL,00000101B
OUTDX,AL
JCH:
MOVDX,M8255A;
检查是否有人按键
TESTAL,11111111B
JNZKAISHI;
有则跳至kaishi
MOVDX,M8255C;
检查10秒是否到
ANDAL,40H
JZJCH
JNZLABA
KAISHI:
MOVSI,0;
判断哪个抢到
YR:
SHLAL,1
INCSI
JNCYR
DECSI
MOVAL,TAB[SI];
显示
M