分类筛选
分类筛选:

关于抢答器论文范文资料 与基于单片机8路抢答器设计和实现有关论文参考文献

版权:原创标记原创 主题:抢答器范文 科目:毕业论文 2024-04-15

《基于单片机8路抢答器设计和实现》:该文是关于抢答器论文范文,为你的论文写作提供相关论文资料参考。

摘 要: 设计了一种以单片机AT89S51为控制核心的8路抢答器,从硬件电路制作和软件程序编写两个方面详细介绍了8路抢答器的设计方法.实验结果表明,该8路抢答器的设计达到了预期的要求,具有反应快、操作简便、成本低廉、使用性强等特点,对于单片机产品的开发具有一定的参考价值.

关键词: 单片机; 抢答器; CD4068

中图分类号: TP 368.1 文献标志码: A 文章编号: 1671-2153(2017)03-0089-03

0 引 言

随着当今社会的进步和科技的发展,各类比赛、娱乐活动层出不穷,其中抢答器的作用也就显而易见,它能快速准确、公平公正、直观地判断出抢答者的机器设备,并通过LED数码管、LED指示灯等手段显示出第一个抢答者.传统的抢答器采用模拟电路、数字集成电路、模数混合电路制作完成,这类抢答器往往线路复杂,成本偏高,操作不简便.本文以AT89S51单片机为系统控制核心设计了一款8路抢答器:首先进行硬件电路的设计和制作,然后进行相应软件程序的设计和编写,不断调试直至成功.

1 设计分析

使用8个按键作为参赛选手抢答的8路抢答信号,当主持人宣布抢答时,即按下开始键后,各路选手才可以抢答,对于第一个抢答的选手,通过一位LED数码管直观显示出该抢答选手的编号,如果主持人尚未宣布比赛活动开始,即没有按下开始键,就有某一路选手进行抢答,则这路的选手属于犯规,亮起红灯.本次设计中,用LED发光二极管来表示,并通过LED数码管显示出该犯规选手的编号,此时,按下复位键后重新开始抢答.

2 硬件电路设计

本设计以AT89S51单片机为系统控制核心制作8路抢答器,由于8路选手使用8个按键,假设采用8个独立按键,按键的识别是通过逐个查询每个按键的状态来判断是否按下的,如果有多个选手同时抢答,即几路按键同时按下,先查询的按键则被认为是第一个抢答的,显然就不公平了;假设采用4×4行列式按键,按键的识别如果采用输入输出线反转法,则无法识别多个按键,按键的识别如果采用逐行扫描法,此时有多个选手同时抢答,则先扫描到行的按键存在优先查询的情况,同样失去了公平性.因此,无论独立按键还是4×4行列式按键,都不能做到对多个按键同时按下作出判断.

为了解决这一问题,可以使用高速的数字电路芯片,但这增加了设计的成本和复杂性.本设计的思路是:使用单片机的外部中断,把8路上的按键信号作为外部设备,一旦有一个按键按下,立即进入外部中断服务子程序,先保存各路按键的状态,再确定是哪一路的按键引起的中断,在这期间,单片机的CPU不再响应其他任何中断.

由于8路抢答器的8个按键作为8个外部中断源,而MCS-51单片机只有两个外部中断源,这就需要扩展外部中断源来满足需要.本设计使用CD4068芯片来解决,结合中断和查询的方式来扩展外部中断源.CD406芯片是一个8输入的和门/和非门集成电路,管脚图和功能逻辑图如1所示.图1中:2,3,4,5,9,10,11,12是8路输入;1管脚是8路和门输出端;13管脚是8路和非门输出端;7管脚接地;14管脚接电源.

8路抢答器的电路原理图如图2所示.图2中,P3.2为外部中断0的中断请求输入端,将CD4068的1管脚接P3.2,8路抢答器的8个按键分别接CD4068的输入端,作为扩展的外部中断源.当没有抢答按键按下,根据和逻辑关系,P3.2端口为高电平,不响应.当8路中有一路或者多路抢答按键按下,P3.2端口为低电平,响应外部中断0的中断请求.然后,在外部中断0的服务程序中,确定究竟是哪路抢答的.S2为抢答开始按键,只有主持人宣布比赛开始,8位选手才能进行抢答.P3.1接红色发光二极管,当有选手违规时点亮.

3 軟件程序设计

3.1 主程序设计

在主程序main()函数中主要完成外部中断的初始化,如打开中断、设置外部中断信号的触发方式等,不断地查询抢答开始键是否按下,即主持人是否宣布开始抢答,只有宣布开始抢答之后,各路按下的按键才算有效,否则违规.一旦检测到抢答开始键按下,置抢答标志位keypress等于1,否则等待,其流程图如图3所示.具体程序如下:

sbit key等于P3^0;

bit keypress等于0;

int main() //主函数

{ IT0等于0; //设置外部中断0为电平触发方式

EA等于1;//打开中断

EX0等于1; //打开外部中断0

while(1); //死循环

{ if(!key); //判断抢答开始键是否按下

{ delay();

if(!key) //再次判断抢答开始键是否按下

{ keypress等于1; //设置抢答标志位

while(!key);}}}}

3.2 外部中断0程序设计

当8路抢答器中有选手按下抢答键,自动转入外部中断0服务程序执行,首先关闭中断、保存各路按键的状态,再通过逐位查询获取按键编号,确定究竟是哪一路的按键引起的中断,最后判断抢答标志位keypress,如果keypress等于1,说明抢答开始键已经按下,主持人已经宣布抢答开始,则数码管显示抢答选手的编号;如果keypress等于0,说明主持人尚未宣布抢答开始,则属于犯规,亮起红灯并显示犯规选手的编号,其流程图如图4所示.具体程序如下:

抢答器论文参考资料:

结论:基于单片机8路抢答器设计和实现为关于抢答器方面的的相关大学硕士和相关本科毕业论文以及相关竞赛抢答器论文开题报告范文和职称论文写作参考文献资料下载。

和你相关的