摘 要
在日常生活中,我们可以在电视,或者现实生活活动现场可以看到在答题或
者游戏中,他总能第一时间测到谁是第一个,让我们的世界少了那些不必要的争
议,那是什么,那就是抢答器。
通过一次又一次科学的进步,单片机在发展,各种功能运用到现实生活的各
种领域让我们生活更加的接近理想话以及通过简单的操作完成手工无法完成或
者很难做到的事情,例如家电,通信,商业,工业,航空,航天,军事以及汽车
方面。当然这次我们做的是其中的一种那就是抢答器,它具有很高的安全性、可
靠性,准确性,应用日益广泛。
本次设计使用 AT89C51 实现一基于单片机的抢答器设计,其主要具有如下
功能:
(1)抢答时间调试,限时时间调试这两个功能都是要在最开始时调试。可
以改变调试抢答时间和限时时间。
(2)声光报警系统。抢答时间倒计时时会报警闪烁,以及蜂鸣器报警还有
时间提示。
(3)锁定功能。为了很好的在第一时间锁定第一位,抢答器做了很好的反
馈功能,为此能够更加精确的锁定反馈第一位
抢答器是由一个 AT89C51、输出八段显示电路。另外系统还有 LED 提示灯,
报警蜂鸣器等。
抢答器的功能在于反馈以及最快的时间做出选择:
(1)限时时间调试·抢答时间调试功能:这是一个十分人性化的设计,他
可以在不同的场合用不同的时间来限定抢答以及限时时间的调试。
(2)抢答锁定功能:当按下抢答键时,抢答器会判断第一个抢答的以及显
示抢答人的编号。
(3)报警系统:当抢答倒计时到 5 秒时开始二极管开始闪烁报警蜂鸣器开
始鸣叫。
主要的设计实施过程:首先,选用 ATMEL 公司的单片机 AT89C51,以及选购其
他电子元器件。第二步,使用 Protel 设计硬件电路原理图,并设计 PCB 图完成
人工布线。第三步,使用 Medwin 软件编写单片机的 C 语言程序、仿真、软件调
试。第四部,使用 PROTEUS 软件进行模拟软、硬件调试。最后,联合软、硬件
实训设计
1
调试电路板,完成本次设计。
目 录
概 述..........................................................................................4
1 总体设计方案............................................................................4
1.1 系统设计方案.....................................................................5
1.2 系统总体结构框图.............................................................5
1.3 功能显示区.........................................................................6
2 软件设计....................................................................................6
2.1 主程序流程图.....................................................................7
3 仿真和调试................................................................................6
4 附录............................................................................................9
实训设计
2
概 述
随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技
术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用
计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成
本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工
业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品
中,成为现代电子系统中最重要的智能化工具。
本文所涉及的是市场占有率最高的是 MCS—51 系列,因为世界上很多知名的
IC 生产厂家都生产 51 兼容的芯片。到目前为止,MCS—51 单片机已有数百个品
种,还在不断推出功能更强的新产品。
本设计是基于单片机的抢答器设计方案,根据要求,给出了该单片机抢答器
的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、
单片机存储单元的分配、汇编语言源程序及详细注释等内容
1 总体设计方案
方案一:采用数字电路控制。
采用数字显示电路的好处就是设计简单。用以在 P0 口外接电阻做输出口并
接数码管来显示时间 ,共设了 8 个用户输入键,当抢答的时候,其中只有 1 个
是有效按键,其它的都是干扰按键,若按下干扰键,将无反应只显示第一位抢答
编号,如果用户抢答的时间剩下 5 秒(一般情况下,用户不会超过 5 秒,若用户
觉得不便,还可以修改)电路将报警。
电路由两大部分组成:显示器电路和主电源电源(UPS),其中设置时间调整
是为了可以合理的调节时间更加的人性化和用于不同的场合。
方案二:采用一种是用以 AT89C51 为核心的单片机控制方案。利用单片机灵
活的编程设计和丰富的 IO 端口,及其控制的准确性,不但能实现基本的抢答器
功能,还能添加调节功能等等。
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求
的功能而且能在很大的程度上扩展功能,故本次设计采用方案二。
实训设计
3
1.1 系统设计方案
本方案采用一种是用以 AT89C51 为核心的单片机控制方案。利用单片机灵活
的编程设计和丰富的 I/O 端口,及其控制的准确性,实现基本的抢答显示功能。
初步设计思路如下:
抢答器用按钮为了更加方便直观的使用。
LED 数码管显示第一位抢答号以及抢答时间以及限时时间。
用发光二极管代替报警的电路,发光表示倒计时已经进入 5 秒计时。
到计时间到,系统报警。
打开电源后,显示器显示“F FF”,只要第一个按下抢答器的就会显示抢答
号。这样可预防抢答的时候出现不必要的麻烦。
按“复位”键,清除显示器为“F FF”。
按开始键开始抢答倒计时,当有人抢到第一个诞生那么主持人开始问问题,
并且按下限时按钮开始倒计时,一共为二十秒,抢答人必须要在 20 秒内讲出答
案如果进入最后 5 秒那么开始报警闪光提示,当闪光介绍那么就说明答题介绍并
且蜂鸣器鸣叫以提示。然后进入第二轮的抢答要按下复位按钮,来更好的完成接
下来的任务。
1.2 系统总体结构框图
本次设计主控制器为 AT89C51 单片。
实训设计
4
1.3 功能实现显示区
在本次设计中,基于节省材料的原则,暂时用发光二极管代替提示系统,发光管
亮,表示 5 秒倒计时;灭,表示倒计时介绍。当 P 口输出低电平时,二极管发光,
提示答题即将结束。
硬件设计
2.软件设计
主要过程是 LED 数码管提示开始倒计时和限时抢答号,通过按键抢答,同时
LED 显示倒计时情况,按下抢答键后判断第一位抢答号,作出倒计时和抢答号已
经报警提示处理。
由于采用多个按键来完成抢答,那么其中一个第一个完成按键的会在数码管
上显示抢答号。在抢答过程中,首先要进入开始抢答的步骤,接着根据抢答号由
显示的抢答人来答题,直到回答出或者倒计时结束,才能完成抢答过程。进入抢
答号的判断比较处理状态并给出相应的处理过程。
实训设计
5
2.1 程序流程图
3 仿真和调试
采用 Keil 和 Protues 软件相结合进行仿真。
数码管初始化显示“F FF”:
实训设计
6
按下开始按钮后,进入抢答倒计时:
选手在 20 秒内抢答,如 8 号选手:
进入倒计时(5s):
实训设计
7
非正规抢答,如 6 号选手:
//标志位
//时间调整标志位
4 附录(源代码:)
#include
#define uchar unsigned char
#define uint unsigned int
char s;
uchar num=0;
char time=20; //抢答时间
char datitime=30;
//答题限时时间
uint tt,t1; //T0,T1 定时器定一秒时
bit flag,s_flag=1,b_flag,fall_flag;
bit K_startcountflag,K_timecountflag;
sbit K0=P3^0;
sbit beep=P3^7;
sbit rled=P3^1;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
sbit K6=P1^5;
sbit K7=P1^6;
sbit K8=P1^7;
sbit K_Time=P3^2; //答题计时键
sbit K_startcount=P3^3; //开始抢答时间调整键
//蜂鸣器输出口
//指示灯输出口
实训设计
8