您的当前位置:首页正文

基于单片机的抢答器的设计

来源:九壹网
基于单片机的抢答器系统的设计 焦建净

摘 要

随着电子技术的飞速发展,基于单片机的控制系统已广泛应用于工业、农业、电力、电子等行业。在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中是很难判别哪一组先抢答,利用单片机系统来设计抢答器可以使以上问题解决。即使两组的抢答时间相差几微秒,也可以分辨出哪一组优先答题。

本文介绍了一种基于AT89C51单片机的抢答器系统的设计,它设计简单实用。它除了具有基本的抢答功能之外, 还有定时报警和数显的功能。主持人可以手动设置抢答和答题时间。当抢答开始后系统会自动倒计时,当有选手摁下按键后将显示该选手的组号并伴有蜂鸣声,且进入答题时间倒计时。若还未开始抢答倒计时,有选手抢答,则将显示该选手号并给予报警。在抢答和答题环节,当剩下五秒时,蜂鸣器都会给出报警。

关键词:单片机、抢答、数显、报警、仿真

I

基于单片机的抢答器系统的设计 焦建净

ABSTRACT

With the rapid development of electronics technology and the control system which based on Monolithic integrated circuits has been widely used in agriculture, industry, the electrical and electronic industries. In answer process, in order to know which one group or which a player to answer, have to design a system to complete this task. If there is very difficult to determine which group to answer,use monolithic integrated circuits can solve the above questions. Even the time difference between the two groups of Answer a few microseconds, you can also distinguish which team does.

This article describes a monolithic integrated circuits eight groups which based on at89c51, it is simple functional design. In addition its basic Answer function, there are regular police and figures show functions. The host can set Answer time. When qiangda starts,the system automatically counted down, when the player pressed the key ,LED will show the group number, and being the answer the question time count down, qiangda time and answer time all you can set. In qiangda and answer time, when there are five seconds, the buzzer will give the alarm..

Key words:singlechip、 vie to answer 、figures show 、give an alarm、emulation

II

基于单片机的抢答器系统的设计 焦建净

目 录

摘 要 ................................................................................................................................... I ABSTRACT ............................................................................................................................. II 目 录 ............................................................................................................................... III 前 言 ................................................................................................................................... V 第一章 抢答器的系统概述 ................................................................................................. 1

1.1 国内外的研究现状 ................................................................................................. 1 1.2 系统设计的功能要求 ............................................................................................. 1 1.3 系统的原理及组成 ................................................................................................. 1

1.3.1抢答器的系统总体框图 .............................................................................. 1 1.3.2 抢答器基本工作原理 ................................................................................. 2 1.4 抢答器的工作过程 ................................................................................................. 2 第二章 硬件电路设计及其功能介绍 ................................................................................. 4

2.1 方案论证 ................................................................................................................. 4 2.2 方案比较 ................................................................................................................. 4

2.3.1 AT89C51的主要特性 ................................................................................ 4 2.3.2 引脚描述 ..................................................................................................... 5

第三章 硬件电路设计 ......................................................................................................... 7

3.1单片机最小系统电路图 .......................................................................................... 7 3.2单片机的单元电路 .................................................................................................. 7

3.2.1报警电路 ...................................................................................................... 7 3.2.2单片机的主控电路 ...................................................................................... 8 3.2.3复位和晶振电路 .......................................................................................... 8 3.2.4主持人控制端电路 ...................................................................................... 8 3.2.5选手控制电路 .............................................................................................. 9 3.2.6显示电路 ...................................................................................................... 9

第四章 软件设计——程序流程图及程序 ....................................................................... 10

4.1系统主程序流程图 ................................................................................................ 10 4.2 时间调整子程序流程图 ....................................................................................... 11 4.3倒计时子程序流程图 ............................................................................................ 12 4.4抢答器源程序 ........................................................................................................ 12 4.5 Proteus软件仿真系列组图 ................................................................................... 23

III

基于单片机的抢答器系统的设计 焦建净

第五章 元器件及焊接调试 ............................................................................................... 25

5.1元器件 .................................................................................................................... 25

5.1.1四位一体共阴数码管 ................................................................................ 25 5.1.2蜂鸣器 ........................................................................................................ 25 5.2焊接与调试 ............................................................................................................ 26

5.2.1电路板的制作与检查 ................................................................................ 26 5.2.2电路模块调试 ............................................................................................ 26

第六章 总结 ....................................................................................................................... 27 致 谢 ................................................................................................................................. 28 参考文献 ............................................................................................................................. 29 附 录 ................................................................................................................................. 30

IV

基于单片机的抢答器系统的设计 焦建净

前 言

单片微型计算机(Single Chip Microcomputer)简称单片机,又称微控制器 (Microcontroller Unit)或嵌埋式控制器(Embeded Controller),是将计算机的基本部件微型化,使之集成在一块芯片上的微机。片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。

1970年微型计算机研制成功之后,随着就出现了单片机(即单片微型计算机)。美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,特别是1976年MCS-48单片机问世以来,在短短的二十几年间,经历了四次更新换代,其发展速度大约每二、三年要更新一代、集成度增加一倍、功能翻一番。其发展速度之快、应用范围之广,已达到了惊人的地步,它已渗透到生产和生活的各个领域。

随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出很强的生命力。它和一般的集成电路相比有较好的抗干扰能力,对环境的温度和湿度都有较好的适应性,可以在工业条件下稳定工作。

当今社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,智力竞赛是一种生动活泼的教育方式,通过抢答和必答两种答题方式能引起参赛者和观众的极大兴趣,并且能在极短的时间,使人们迅速增加一些科学知识和生活常识。那么也就必然离不开抢答器,为竞赛的公平、公正提供有力的保障。

在竞赛中往往分为几组参加,这时针对主持人提出的问题,各个组一般要进行必答和抢答,对必答一般有时间限制,到时有声响提示;对于抢答要判断哪组先按键,为了公正,这就要有一种逻辑电路抢答器作为裁判员。抢答器在竞赛中有很大用处,它能准确、公正、直观的判断出第一抢答者。通过抢答器的数码显示、警示蜂鸣等手段显示出第一抢答者。

V

基于单片机的抢答器系统的设计 焦建净

第一章 抢答器的系统概述

1.1 国内外的研究现状

抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块,而专用集成块的购买又很困难。为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普遍,易于购买等优点,很好的解决了制作者制作困难和难于购买的问题。在国内外已经开始了普遍应用。

1.2 系统设计的功能要求

(1)抢答器可供八名选手或队伍参加比赛。 (2)抢答器分为选手控制端和主持人控制端。

(3)主持人端可设置抢答时间、答题时间、控制抢答开始并进行系统清零。 (4)当主持人启动\"开始\"键后,显示器上显示抢答倒计时。

(5)参赛选手在设定的时间内进行抢答,抢答有效,显示器转而显示优先抢答的选手编号。同时蜂鸣器发出报警声响提示,声响持续的时间1秒左右。 (6)如果设置的抢答时间已到,无人抢答,则本次抢答无效,系统报警并禁止抢答,显示器上显示00。

(7)每次抢答完成后主持人可手动使系统清零。

1.3 系统的原理及组成

1.3.1抢答器的系统总体框图 抢答器系统总体框图如图1.1所示。

图1.1 系统总体框图

1

基于单片机的抢答器系统的设计 焦建净

由系统总体框图可知,该系统由五部分组成,分别是单片机主控电路、复位和晶振电路、抢答按键电路、主持人端按键及报警电路和显示模块。对于各部分的功能下面做一个具体介绍。

1.单片机主控电路

单片机主控电路是一片AT89C51芯片,它是此电路的核心,在芯片中写入程序后,才能使系统正常工作。其中用P0口作为数码管的八个段选,用P2口作为4个数码管其中3个位选,P1口接选手控制端按键,P3接主持人控制端。

2.复位和晶振电路

单片机必须在时钟的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。复位后单片机的各状态都恢复到初始化状态。

3.抢答按键电路

八个抢答按键分别接入单片机的P1.0-P1.7端口,当有选手摁下按键时,单片机通过读取P1.0-P1.7的值来判断当前输入的是八个按键中的哪一个。

4.显示模块

用四位一体共阴极LED数码管来显示,其中A-H段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码CMOS1、CMOS3、CMOS4分别接到单片机的P2.0、P2.1、P2.2,由单片机来决定当前该显示的是哪一位。

5.主持人端按键及报警电路

由P3.2-P3.5接四个按键,做答题时间调整、抢答时间调整,加1、减1调整之用。同时主持人控制开始和停止按键。电路采用蜂鸣器报警,P3.6接蜂鸣器驱动电路,报警现象明显。

1.3.2 抢答器基本工作原理

抢答器的工作原理是基于单片机AT89C51的定时器T0、T1中断来完成,其余状态利用循环调用显示子程序,并用4联共阴极LED数码管来显示。用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2作为4个数码管其中3个位选,P1口接8个按键,作为选手抢答按键,P3.0、P3.1分别作为开始抢答计时、结束抢答计时,P3.2、P3.3、P3.4、P3.5四个接口接四个按键,分别提供抢答时间调整,答题时间调整,加1,减1调整之用。

1.4 抢答器的工作过程

1.如果想调节抢答时间,按“加一”键或“减一”键进入调节状态,此时会显示

2

基于单片机的抢答器系统的设计 焦建净

现在设定的抢答时间或回答时间值,如想加一秒按一下“加一”键,如想减一秒按一下“减一”键,时间LED上会显示改变后的时间,调整范围为0—99s,0s时再减1s会跳到99,99s时再加1s会变到0s。

2.主持人按“抢答开始”键,会有提示音,并立刻进入抢答倒计时(预设20s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入答题倒计时(预设30s答题时间),只有第一个按抢答按键的选手有效。倒数时间到小于5s会每秒响一下提示音。

3.如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。

4.如果主持人未按“抢答开始“键,而有选手按了抢答按键,犯规抢答,LED上不断闪烁犯规号数并响个不停,直到按下”停止“键为止。

总而言之,本论文利用AT89C51单片机及外围接口实现的抢答系统设计了抢答器,该抢答器增加了新功能、提高了系统的可靠性、简化了电路结构、节约了成本,是一个实用的设计。

3

基于单片机的抢答器系统的设计 焦建净

第二章 硬件电路设计及其功能介绍

2.1 方案论证

方案一:纯数字电路抢答器它是由各个元器件如集成电路74LS148、74LS192、74LS192、74LS121、电容、电阻等74LS系列按照一定功能和结构组合在一起实现我们所需要得到的功能。系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答器输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成抢答器的基本功能,但由于系统要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较繁琐,使用不太方便。

方案二:该系统采用MCS-51系列单片机AT89C51作为控制核心,其片内带有4KflashROM,128的RAM,以及15根I/O口线能满足设计要求。该系统可完成运算控制、信号识别以及显示功能的实现。

2.2 方案比较

从第一个方案我们可以看出,这个抢答器是由抢答电路,定时电路,报警电路,时序控制电路四个电路组成。它的功能很齐全,设计的电路也很稳定。但是它的造价却很高,这跟我们的设计理念是相冲突的。而方案二采用单片机,可靠性好,结构简单,具有显示选手号,倒计时功能等。该模式充分体现了原有系统性能的改进,且比较经济实用,所以我们选用单片机的方案。

2.3 AT89C51简介

2.3.1 AT89C51的主要特性 AT89C51是一个低电压,高性能CMOS 8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。

AT89C51的引脚图如图2.1所示 。

图2.1 AT89C51的引脚图

4

基于单片机的抢答器系统的设计 焦建净

2.3.2 引脚描述 VCC:电源电压 GND:地

RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。

EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。

P0口:P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。作为输出口时,每一个管脚都能够驱动8个TTL电路。当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0口在闪烁编程时,P0口接收指令,在程序校验时,输出指令,需要接电阻。

P1口:P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1口接收低8位地址。

P2口:P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时,

5

基于单片机的抢答器系统的设计 焦建净

可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。闪烁编程或校验时,P2口接收高位地址和其它控制信号。

P3口:P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。

P3口除作为一般的I/O口外,更重要的用途是它的第二功能,如表2.1所示。

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD TXD INT0 INT1 T0 T1 WR RD 表2.1 P3口的第二功能表

P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。 XTAL1:震荡器反相放大器及内部时钟发生器的输入端。 XTAL2:震荡器反相放大器的输出端。

6

基于单片机的抢答器系统的设计 焦建净

第三章 硬件电路设计

3.1单片机最小系统电路图

对于51系列单片机来说,单片机加晶振电路加复位电路,便组成了一个最小系统。该电路的功能是在单片机最小系统基础上加显示电路,抢答电路,报警电路实现的。单片机最小系统电路图如图3.1所示。

图3.1 单片机最小系统电路图

3.2单片机的单元电路

3.2.1报警电路

该电路采用蜂鸣器报警,P3.6接蜂鸣器驱动电路,报警现象明显。报警电路图如图3.2所示。

图3.2 报警电路图

7

基于单片机的抢答器系统的设计 焦建净

3.2.2单片机的主控电路

该电路用P0口作为数码管的八个段选,用P2口作为4个数码管其中3个位选,P1口接选手控制端按键,P3接主持人控制端。在单片机中写入程序后,才能使系统正常工作,它是此系统的核心。单片机的主控电路图如图3.3所示。

图3.3 单片机的主控电路图

3.2.3复位和晶振电路

该电路的复位电路采用上电自动复位方式,上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容储能增加,电容电压也逐渐增大充电电流减小。这样会建立一个脉冲电压,调节电容与电阻大小可对脉冲的持续时间进行调节。复位和晶振电路图如图3.4所示。

图3.4 复位和晶振电路图

3.2.4主持人控制端电路

由P3.2-P3.5分别接四个按键K1,K2,K3,K4,做答题时间调整、抢答时间调整,加1、减1调整之用。主持人控制端电路图如图3.5所示。

图3.5 主持人控制端电路图

8

基于单片机的抢答器系统的设计 焦建净

3.2.5选手控制电路

在单片机应用中用得最多的形式是独立键盘及矩阵键盘。它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中。矩阵键盘与独立键盘有很大区别,它在节省端口资源上有优势得多,因此它更适用于多按键电路。本设计采用了独立键盘的方式。在图中八个抢答按键1-8分别接入单片机的P1.0-P1.7端口,单片机通过读取P1.0-P1.7的值来判断当前输入的是八个按键中的哪一个。选手控制端电路图如图3.6所示。

3.6 选手控制端图

3.2.6显示电路

用四位一体共阴极LED数码管来显示,其中A-H段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码CMOS1、CMOS3、CMOS4分别接到单片机的P2.0、P2.1、P2.2,由单片机来决定当前该显示的是哪一位。图中还有七个10K的电阻,连接在P0口上,用作P0口的上拉电阻,可增加数码管的亮度。显示电路图如图3.7所示。

图3.7 显示电路图

9

基于单片机的抢答器系统的设计 焦建净

第四章 软件设计——程序流程图及程序

4.1系统主程序流程图

P1.0-P1.7为八路抢答器的输入端口,数码管段选P0口、位选P2口,蜂鸣器输出为P3.6。此程序采用定时器T0和T1中断完成,其余状态循环调用显示子程序。主程序流程图如图4.1所示。

开始 各变量赋初值 初始化 调用显示程序 调用键扫描程序 调用键值处理程序 图4.1 主程序流程图

10

基于单片机的抢答器系统的设计 焦建净

4.2 时间调整子程序流程图

时间调整子程序是用来调整抢答时间和答题时间。其中抢答时间的初始值是20秒,答题时间的初始值是30秒。当主持人按开始键后从20秒开始抢答倒计时,当有选手抢答后立即从30秒开始进行答题倒计时。抢答时间和答题时间都可在0至99秒间变动。时间调整子程序流程图如图4.2所示。

开始 初始化 计时 Y K3按下 N Y 时间上调 K4按下 N Y 时间下调 K1按下 N 结束 图4.2 时间调整流程图

11

基于单片机的抢答器系统的设计 焦建净

4.3倒计时子程序流程图

倒计时子程序流程图如图4.3所示。

开始 初始化 显示总时间 键按下 N Y 减1并显示 Y 大于5秒 N 提 醒 减1并显示 N 等于0秒 Y 计时完毕 结束 图4.3 倒计时子程序流程图

12

基于单片机的抢答器系统的设计 焦建净

4.4抢答器源程序

ORG 00H

LJMP START ORG 03H LJMP INT0SHIFT ORG 0BH LJMP T0INT ORG 13H LJMP INT1SHIFT ORG 1BH LJMP T1INT ORG 30H START:

MOV SP,#60H ;建堆栈

MOV R1,#20 ;初设抢答时间为20s MOV R2,#30 ;初设答题时间为30s MOV TMOD,#11H ;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH MOV TH1,#3CH

MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1

;允许T0中断 ;允许T1中断 ;允许INT0中断 ;允许INT1中断

;设置发声频率

CLR 10H ;10H为允许通过标志位 CLR 12H ;12H为响铃标志位

SETB TR1

SETB TR0 ;------查询程序------ INQURY:

MOV R5,#00H MOV R4,#00H

13

;一开始就运行定时器,以开始显示00

基于单片机的抢答器系统的设计 焦建净

MOV R3,#00H

LCALL DISPLAY ;未开始抢答时候显示00 JB P3.0,DEBUGGING LCALL DELAY

JB P3.0,DEBUGGING ;去抖动,如果\"开始键\"按下就向下执行,否则跳到非法抢答查询

LCALL WARN ;有按键就发声 MOV A,R1

MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB 10H ;抢答标志位,用于COUNTDOWN指程序中判断是否查询抢答

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

信号

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

LCALL COUNTDOWN ;进入倒计时程序,\"查询有效抢答的程序\"在COUNTDOWN里面 ;------查询犯规程序------ DEBUGGING:

JNB P1.0,NO1 ;在此查错程序中有一定得时间误差,但很小可忽略 JNB P1.1,NO2 JNB P1.2,NO3 JNB P1.3,NO4 JNB P1.4,NO5 JNB P1.5,NO6 JNB P1.6,NO7 JNB P1.7,NO8 LJMP INQURY

NO1: MOV R3,#01H ;如果犯规则显示号数和FF LJMP ERROR NO2: MOV R3,#02H LJMP ERROR NO3: MOV R3,#03H LJMP ERROR NO4: MOV R3,#04H

14

基于单片机的抢答器系统的设计 焦建净

LJMP ERROR NO5: MOV R3,#05H LJMP ERROR NO6: MOV R3,#06H LJMP ERROR NO7: MOV R3,#07H LJMP ERROR NO8: MOV R3,#08H LJMP ERROR

;------INT0(抢答时间R1调整程序)------ INT0SHIFT:

MOV A,R1

MOV B,#10 DIV AB MOV R5,A MOV R4,B MOV R3,#0AH

LCALL DISPLAY ;先在两个时间LED上显示R1 JNB P3.4,INC0 ;P3.4为+1s键,如按下跳到INCO JNB P3.5,DEC0 ;P3.5为-1s键,如按下跳到DECO JNB P3.1,BACK0 ;P3.1为确定键,如按下跳到BACKO LJMP INT0SHIFT INC0: MOV A,R1

CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。

MOV R1,#00H LCALL DELAY1 LJMP INT0SHIFT ADD0: INC R1 LCALL DELAY1 LJMP INT0SHIFT DEC0: MOV A,R1

JZ SETR1 ;如果R1为0, R1就置99 DEC R1

15

基于单片机的抢答器系统的设计 焦建净

LCALL DELAY1 LJMP INT0SHIFT SETR1: MOV R1,#63H LCALL DELAY1 LJMP INT0SHIFT BACK0: RETI

;-----INT1(回答时间R2调整程序)-----

;R1置99

INT1SHIFT:

MOV MOV DIV MOV MOV MOV LCALL JNB JNB JNB LJMP INC1: MOV CJNE MOV LCALL LJMP ADD1: INC LCALL LJMP DEC1: MOV JZ DEC LCALL LJMP SETR2: MOV LCALL

A,R2 ;与调节抢答程序一样 B,#0AH AB R5,A R4,B R3,#0AH DISPLAY P3.4,INC1 P3.5,DEC1 P3.1,BACK1 INT1SHIFT A,R2

A,#63H,ADD1 R2,#00H DELAY1 INT1SHIFT R2 DELAY1 INT1SHIFT A,R2 SETR2 R2 DELAY1 INT1SHIFT

R2,#63H ;设置R2为99 DELAY1

16 基于单片机的抢答器系统的设计 焦建净

LJMP INT1SHIFT BACK1: RETI

;-----倒计时程序(抢答倒计时和回答倒计时都跳到改程序)----- RERUN:

MOV A,R2 ;使用锦囊时重新计时

MOV R6,A CLR 12H COUNTDOWN:

MOV R0,#00H ;重置定时器中断次数 MOV TH1,#3CH

MOV TL1,#0B0H ;重置定时器

COUNT: MOV A,R6 ;R6保存了倒计时的时间 MOV B,#10

DIV AB ;分离个位、十位 MOV 30H,A MOV 31H,B

MOV R5,30H ;取十位 MOV R4,31H ;取个位 MOV A,R6 SUBB A,#07H

JNC CONTINUE ;大于5s跳到CONTINUE,小于等于5s会提醒 MOV A,R0

CJNE A,#0AH,RUNOUT ;1s中0.5s向下运行 CLR 12H LJMP CHECK RUNOUT:

CJNE A,#14H,CHECK ;下面是1s的情况,响并显示号数并清R0 SETB 12H MOV A,R6

JZ QUIT ;计时完毕 MOV R0,#00H

DEC R6 ;一秒标志减1 LJMP CHECK CONTINUE:

17

基于单片机的抢答器系统的设计 焦建净

MOV A,R0

CJNE A,#14H,CHECK ;如果1s向下运行,否者跳到查\"停/显示\" DEC R6 ;计时一秒R6自动减1 MOV R0,#00H

CHECK: JNB P3.1,QUIT ;如按下停止键退出 JNB 10H,CHECK1 ;只在回答倒计时才有效 LJMP CHEAK3 CHECK1:

JNB P3.0,RERUN ;判断是否使用锦囊

CHEAK3:

LCALL DISPLAY

JB 10H,ACCOUT ;如果是抢答倒计时,如是抢答允许则查询抢答,否者跳过查询继续倒数 LJMP COUNT ACCOUT:

MOV A,36H JNB ACC.0,YES1 JNB ACC.1,YES2 JNB ACC.2,YES3 JNB ACC.3,YES4 JNB ACC.4,YES5 JNB ACC.5,YES6 JNB ACC.6, YES7 JNB ACC.7, YES8 LJMP COUNT

QUIT: CLR 10H ;如果按下了\"停止键\"执行的程序 CLR 12H LJMP INQURY ;-----正常抢答处理程序----- YES1: LCALL WARN MOV A,R2

MOV R6,A ;抢答时间R2送R6 MOV R3,#01H

18

基于单片机的抢答器系统的设计 焦建净

CLR 10H ;因为答题的计时不再查询抢答,所以就锁了抢答 LJMP COUNTDOWN YES2: LCALL WARN MOV A,R2 MOV R6,A MOV R3,#02H CLR 10H

LJMP YES3: lCALL MOV MOV MOV CLR LJMP YES4: LCALL MOV MOV MOV CLR LJMP YES5: LCALL MOV MOV MOV CLR LJMP YES6: LCALL MOV MOV MOV CLR LJMP YES7: LCALL MOV

COUNTDOWN WARN A,R2 R6,A R3,#03H 10H

COUNTDOWN WARN A,R2 R6,A R3,#04H 10H

COUNTDOWN WARN A,R2 R6,A R3,#05H 10H

COUNTDOWN WARN A,R2 R6,A R3,#06H 10H

COUNTDOWN WARN A,R2

19 基于单片机的抢答器系统的设计 焦建净

MOV R6,A MOV R3,#07H CLR 10H

LJMP COUNTDOWN YES8: LCALL WARN MOV A,R2 MOV R6,A MOV R3,#08H CLR 10H

LJMP COUNTDOWN ;-----非法抢答处理程序----- ERROR:

MOV R0,#00H

MOV TH1,#3CH MOV TL1,#0B0H

MOV 34H,R3 ;犯规号数暂存与(34H) HERE: MOV A,R0

CJNE A,#06H,FLASH ;0.3s向下运行->灭并停响 CLR 12H MOV R3,#0AH MOV R4,#0AH

MOV R5,#0AH ;三灯全灭 LJMP CHECK2

FLASH: CJNE A,#0CH,CHECK2 ;下面是0.8s的情况,响并显示号数并清R0,重新计数

SETB 12H MOV R0,#00H

MOV R3,34H ;取回号数 MOV R5,#0BH

MOV R4,#0BH ;显示FF和号数 LJMP CHECK1 CHECK2: JNB P3.1,QUIT1 LCALL DISPLAY LJMP HERE

20

基于单片机的抢答器系统的设计 焦建净

QUIT1: CLR 12H CLR 10H LJMP INQURY ;-----显示程序----- DISPLAY:

MOV DPTR,#TAB1 ;查表显示程序,利用P0口做段选码口输出

/P2低三位做位选码输出 MOV A,R3 MOVC A,@A+DPTR MOV P2,#0feH MOV P0,A LCALL DELAY2 MOV DPTR,#TAB2 MOV A,R5 MOVC A,@A+DPTR MOV P2,#0fdH MOV P0,A LCALL DELAY2 MOV A,R4 MOVC A,@A+DPTR MOV P2,#0fbH MOV P0,A LCALL DELAY2 RET

TAB1: DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;共阴数码管显示

TAB2: DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;-----去抖动用到的延时-----

DELAY: MOV 32H,#12H ;延时4236个机器周期 LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET ;----加减时间延时-----

21

基于单片机的抢答器系统的设计 焦建净

DELAY1: MOV 35H,#08H LOOP0: LCALL DISPLAY DJNZ 35H,LOOP0 RET ;-----显示用到的延时----

DELAY2: MOV 32H,#43H ;延时4236个机器周期 LOOP3: MOV 33H,#1EH

MOV A,R7 ;每隔60~70个机器周期读一次P1口,全为1时继续读,有一个不为1时,转到正常抢答处理

JNZ AA0 ;没读到有效数据时继续转到AA0 LOOP2: DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET

;-----读抢答按键数据口程序-----

AA0: MOV A,P1 ;故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性

CJNE A,#0FFH,AA2 ;当不全为1时的数据为有效数据; AA1: MOV 36H,A ;将有效数据送到36H暂存 LJMP LOOP2 AA2: DEC R7 AJMP AA1 ;-----发声程序----- WARN: SETB 12H ACALL DELAY1 ACALL DELAY1

CLR 12H ;按键发声 RET

;-----TO溢出中断(响铃程序)----- T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB 12H,OUT;

CPL P3.6 ;响铃标志12H为1时候P3.6口使喇叭发出声音 OUT: RETI

;-----T1溢出中断(计时程序)-----

22

基于单片机的抢答器系统的设计 焦建净

T1INT: MOV TH1,#3CH MOV TL1,#0B0H

INC R0 END

RETI

4.5 Proteus软件仿真系列组图

系统用到了Proteus软件,通过仿真可以完全显示出所设计系统的功能,对于程序的调试有很大的帮助,系统仿真时首先将程序转化为.HEX文件,编译无误时进行Proteus仿真,其仿真图如下:

1.当接通电源后数码管显示为00,如图4.4所示。

图4.4

2.当主持人按下开始键后,从20秒开始倒计时,会有提示音,如图4.5所示。

图4.5

3.当有选手抢答后,比如说5号选手,则显示该选手的组号,会有提示音,答题时间从30秒开始倒计时,如图4.6所示。

图4.6

同时系统还可以设置抢答时间和答题时间。

4.基于单片机的抢答器系统的仿真图如图4.7所示。

23

基于单片机的抢答器系统的设计 焦建净

24

图4.7 基于单片机的抢答器系统的仿真图 基于单片机的抢答器系统的设计 焦建净

第五章 元器件及焊接调试

5.1元器件

5.1.1四位一体共阴极数码管 首先数码管有共阴极和共阳极之分,区别它们的方法是若公共端接地,其他端接电源,若各段测试能亮,说明是共阴的,反之共阳的;若公共端接电源,其他端分别接地,测得各端亮,则说明是共阳的,反之为共阴的。 四位一体共阴数码管如图5.1所示:

图 5.1 四位一体共阴极数码管实物图

四位一体共阴极数码管4位一体数码管,引脚如图5.2所示。a、b、c、d、e、f、g、dp为段引脚,1、2、3、4分别表示四个数码管的位。

e d dp c g 4 图5.2 四位一体共阴数码管的引脚图 1 a f 2 3 b 四位一体共阴 数码管 5.1.2蜂鸣器

该蜂鸣器驱动电路用到了三极管S9013,为NPN型,在电路中起到开关作用。P3.6接5.6K的电阻,S9013接电阻的另一端,发射极接地,集电极接蜂鸣器的负极,蜂鸣器的正极接电源。蜂鸣器驱动电路如图5.3所示。

25

图5.3 蜂鸣器驱动电路图

基于单片机的抢答器系统的设计 焦建净

5.2焊接与调试

5.2.1电路板的制作与检查

考虑到本系统所用元器件较少,大部分功能是通过软件编程来实现的,本设计所用的板子是自己手工制作的PCB版。在电路板的制作中,首先要进行电路的排线。利用PROTEL99软件模拟实际电路板的线路走向,避免线路出现交叉短路,电源线路尽量安排在电路板的最外圈。PCB板刻录完成之后,开始进行焊接工作。焊接完成后进行电路板检查,将原线路图与实际焊接的电路板进行对比,由于线路不多,所以用万用表的欧姆档来焊点的检测,以避免焊接时漏焊、虚焊和配线错误的问题,同时保证了所制作出来的线路与原设计线路的一致性。

5.2.2电路模块调试

本设计硬件部分主要为显示模块,按键模块。硬件电路功能检测主要针对这两部分进行测试。对于显示电路由于使用的是四联共阴数码管,首先要确定数码管的共阴还是共阳极。因此先用万用表,检测数码管的极性,及确定引脚的具体功能。检查显示电路能否正常显示,最后再焊接上去。对于按键部分,首先要确定各个按键是否完好,先自己接到一个简易的电路上测试下,确定完好后再焊接。

焊接好以后,插上电源发现数码管的显示不正常,于是检查了整个电路未发现有断路的地方,各元器件也正常,正处于百思不得其解之际,孙老师的一句话指导了我,原来有一个红色的按键焊错了,后来改过以后数码管显示正常了,抢答器的基本功能实现了。

26

基于单片机的抢答器系统的设计 焦建净

第六章 总结

本篇论文详细介绍了基于单片机的抢答器系统的设计要求、设计流程、软硬件的设计过程、仿真过程及具体的焊接过程。从而实现了抢答器的抢答、数显、计时功能。

本次设计,全面检测了所学的电子学知识,设计能力得到了进一步的提高,在信息的搜寻与选择上,能力有了大幅度的提高。同时深刻的了解了单片机的有关知识,对于单片机AT89C51的性能、引脚特点及通过程序的编写与修改,使我进一步加强了有关单片机方面的知识。同时单片机的方便与实用的特点,是我看到了它的巨大发展潜能。

仿真软件的使用,使要做的项目电路可提前进行仿真,易于进行修改和发现错误,可以进行反复仿真,使电路设计的成功性大大提高,从而可以避免设计错误造成的浪费现象。因而我们可以看到,对于设计人员,合理运用Proteus仿真软件,可以节省人力、物力,缩短设计周期。

27

基于单片机的抢答器系统的设计 焦建净

致 谢

本次论文设计是在孙惠章老师的精心指导下完成的。孙老师授课认真负责,对同学们指导耐心细致,不断鼓励我,帮助我,我才能顺利的完成此次设计,实现专业学习的又一次飞跃!

通过本次论文设计,我学到了很多,从寻找有关抢答器的资料,到在电脑及实验箱上验证,再到做PCB板,焊元器件,验证,我学到了每一个环节该做些什么,什么是重点。

有了孙老师对于专业知识的讲解和耐心的指导,我们的进程一直很顺利,到最后终于把元器件焊到板子上,此时我们很是高兴。接下来该去插电源验证了,终于电源接通了,数码管亮了,但是抢答功能和倒计时功能都不正常。原因出在哪里了呢?我们首先仔细对照了PCB图,没有错误。用万用表检查电路没有短路的地方。元器件也都良好。况且电路在Proteus仿真软件上验证工作正常。百思不得其解之际,孙老师给了我们提醒,原来有一个按键安错了方向。终于把板子做好了,感到莫大的欣慰。

设计过程中,我也得到了张凌飞老师、班玛东周老师的大力支持和帮忙。他们不厌其烦, 不断帮我们找材料、想办法、解决问题,在此表达我深深的谢意!

在做毕业设计的这段时间我感触颇深。首先要学好专业知识,增强动手能力和思考能力。其次要有勇于创新的精神,遇到困难不应逃避,应积极面对。我很感谢我的老师们,尤其是孙老师,也感谢我的室友仓决,她在本次论文排版过程中给了我很大的帮助,再次感谢老师同学们,感谢我含辛茹苦的父母!

28

基于单片机的抢答器系统的设计 焦建净

参考文献

[1] 李金平,沈明山,姜余祥.电子系统设计[M].北京:电子工业出版社,2007.8 [2] 刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009.8

[3] 张毅刚.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1997 [4] 刘守义.单片机应用技术[M].西安:西安电子科技大学出版社,2003 [5] 阎石主.数字电子技术基础[M].清华大学电子学教研组编,2006.5 [6] 潘永雄,沙河编著.电子线路CAD实用教程[M].西安:西安电子科技大学出版社,2007.7

[7] 李晶皎,曹阳编著.逻辑与数字系统设计[M].北京:清华大学出版社,2008.5 [8] 阎石.数字电子技术基础[M].第五版.北京:高等教育出版社,2004 [9] 康华光.电子技术基础(模拟部分)[M].第四版.北京:高等教育出版社,1999 [10] 谢嘉奎.电子线路(线性部分)[M].第四版.北京:高等教育出版社,1999

29

基于单片机的抢答器系统的设计 焦建净

附 录

附录1 实物图

基于单片机的抢答器系统的实物图(正面):

基于单片机的抢答器系统的实物图(反面):

30

基于单片机的抢答器系统的设计 焦建净

附录2 基于单片机的八路数字抢答器的PCB图

31

基于单片机的抢答器系统的设计 焦建净

附录3 元器件清单

元器件描述 单片机 LED显示屏 蜂鸣器 电容 电阻 按键 晶体振荡器 电解电容 电阻

元器件编号 AT89C51 四位一体共阴极 22pF 10K 10uF 5.1K 数量 1 1 1 2 8 15 1 1 1 32

因篇幅问题不能全部显示,请点此查看更多更全内容

Top