基于51单片机的六路抢答器设计与制作

更新时间:2024-06-02 13:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计(论文)

题 目: 基于51单片机的六路抢答器设计与制作

系 部: 电子信息技术系 专 业: 电子信息工程 学 号: 070306xxx 学生姓名: xxx 指导教师姓名: xx 指导教师职称: 副教授

二○一○年 五 月 八 日

摘 要

随着科学技术的不断发展,促使人们学科学、学技术、学知识的手段多种多样。抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低,减少兴致。做为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。

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

关键词: AT89C51 LED数码管 抢答器 计时 报警

目 录

第一章 绪 论 ............................................................. 1

1.1 课题研究的相关背景 ................................................ 1 1.2 选题的目的和意义 .................................................. 1 1.3 课题研究的内容 .................................................... 1 1.4 国内外研究现状 .................................................... 2 1.5 抢答器目前存在的主要问题 .......................................... 2 第二章 抢答器的系统概述 .................................................. 4

2.1 系统的主要功能 .................................................... 4 2.2 系统需求分析 ...................................................... 5 2.3 抢答器的工作流程 .................................................. 5 2.4 抢答器的工作过程 .................................................. 5 2.5 器件选型方案及详细清单 ............................................ 7 2.6 AT89C51特殊功能寄存器 ............................................ 7 2.7 AT89C51的功能及简介 .............................................. 7

2.7.1 AT89C51单片机的内部结构图 ................................... 7 2.7.2 AT89C51单片机 ............................................... 8 2.8 抢答器的优点及组成 ................................................ 9 第三章 系统总体方案的设计 ............................................... 10

3.1 硬件电路的设计 ................................................... 10 3.2 总体原理图 ....................................................... 10 3.3 时钟频率电路的设计 ............................................... 11 3.4 复位电路的设计 ................................................... 12 3.5 显示电路的设计 ................................................... 12

3.5.1 显示模块在系统软件中的安排 ................................. 13 3.6 键盘扫描电路的设计 ............................................... 15

3.6.1 键盘抖动的软件处理 ......................................... 15 3.7 发声 ............................................................. 16 3.8 系统复位 ......................................................... 16

3.9 本章小结 ......................................................... 17 第四章 软件设计 ......................................................... 18

4.1 主程序系统结构图 ................................................. 18 4.2软件任务分析 ..................................................... 18 4.3 程序流程图 ....................................................... 19 4.4本章小结 ......................................................... 20 第五章 Proteus仿真系列组图 .............................................. 20

5.1系统仿真图 ....................................................... 20

5.1.1复位图 ...................................................... 20 5.1.2设置计时时间 ................................................ 21 5.1.3非法抢答并显示座号 .......................................... 21 5.1.4抢答成功并显示倒计时 ........................................ 22 5.1.5三号选手抢答成功 ............................................ 23 5.2本章小结 ......................................................... 23 总结 .................................................................... 24 参考文献 ................................................................ 25 致 谢 .................................................................. 26 附录一 .................................................................. 27 附录二 .................................................................. 34

科技职业学院信息技术系 电子信息工程技术专业毕业设计

第一章 绪 论

1.1 课题研究的相关背景

抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。

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

1.2 选题的目的和意义

通过这次课程设计,掌握51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。

1.3 课题研究的内容

本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为15s,回答问题时间为10s。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发生提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器

1

科技职业学院信息技术系 电子信息工程技术专业毕业设计

实用的工程设计。

2.5 器件选型方案及详细清单

微控制器选用ATMAL公司生产的AT89C51,该芯片货源充足,并且价格也比较便宜。如表2-1所示。

2.6 AT89C51特殊功能寄存器

特殊功能寄存器也称专用寄存器,是具有特殊功能的所有寄存器的集合,简称SFR(Special Function Register)。特殊功能寄存器共含有22个不同寄存器。它们的地址分配在80H~FFH中,即在RAM地址中。这些寄存器的名称和地址如表2-2所示。 表2-1器件选型方案的详细清单

器件名称 规格型号 数量 微处理器 AT89C51 1 电阻 3WTT10K 8 电容 30PF 3 晶振 12MHZ 1 按钮 -------- 11 反相器 -------- 3 7段数码管 7SEG-MPX4CC 4 扬声器 -------- 1 虽然特殊功能寄存器地址在80H~FFH之中,但在80H~FFH的地址单元中,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的,如果对这些单元进行操作,得到的是一些随机数,而写入则无效。所以,用户编程时不应该将数据写入这些未确定的地址单元,它们是公司留待将来开发新产品时使用的。

2.7 AT89C51的功能及简介

2.7.1 AT89C51单片机的内部结构图

AT89C51单片机内部由CPU、4KB的FPEROM ,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。单片微机内部最核心的部分是CPU。CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数

7

科技职业学院信息技术系 电子信息工程技术专业毕业设计

据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。如图2-3所示。

外部定 时元件 系统时钟 定时/计数器 复位 ROM 中断 串行I/O口 并行I/O口 CPU 电源 RAM 图2-3 AT89C51单片机的内部结构图

为了提高数据处理和位操作功能,片内增加了一个通用寄存器B和一些专用寄存器,还增加了位处理逻辑电路的功能[3]。其内部结构如图2-3所示。

2.7.2 AT89C51单片机

AT89C51是一种低功耗、高性能的含有4KB闪速可编程电擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51指令系统和引脚完成兼容。芯片上的FPEROM允许在线或采用通用的非易失存储编程器对程序存储器重复编程。 (1)AT89C51的主要性能包括:AT89C51与MCS—51控制器系列产品兼容,片内有4K可在线重复编程闪速电擦除存储器(Flash Memory),存储器可循环写入/擦除1000次;存储器数据保存时间可达10年;工作电压范围宽:Vcc可由2.7V到6V;全静态工作可由0Hz到16MHz;程序存储器具有3级锁存保护;128*8位内部RAM;32条可编程I/O线;两个16位定时器/计数器;中断结构具有5个中断源和2个中断优先级;可编程全双工串行通信;空闲状态维持低功耗和掉电状态保存存储内容。

8

科技职业学院信息技术系 电子信息工程技术专业毕业设计

(2)FPEROM的编程:AT89C51的I/O口P0、P1、P2和P3除具有与80C51相同的一些性能和用途外,在FPEROM编程时,P0口接收代码字节,并在程序检验时输出代码字节,但在程序校验时需要外部上拉负载电阻,在FPEROM编程和程序校验期间,P1口接收低位地址字节,P2口接收高位地址字节和一些控制信号,P3口也接收一些FPEROM编程和校验用的信号,此时ALE/PROG引脚是编程脉冲输入(PROG)端,在FPEROM编程期间,如果选择12V编程电压、那么EA/Vpp引脚也允许接受12V编程电压(Vpp)。

2.8 抢答器的优点及组成

在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用AT89C51单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路六个按键输入抢答信号;利用存储程序来完成软件的设计;利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,控制数码管和语音芯片工作。在数码管上显示哪一组先答题,并通过语音系统读出第N组请答题,从而实现整个抢答过程。

9

科技职业学院信息技术系 电子信息工程技术专业毕业设计

第三章 系统总体方案的设计

3.1 硬件电路的设计

本设计分为硬件设计和软件设计[5],这两者相互结合,不可分离;从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。为使硬件电路设计尽可能合理,应注意以下几方面:

(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。

(2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。

(3) 程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。 (4) RAM空间,AT89C51内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如选用8155作I/O接口,就可以增强256字节RAM.如果有大批数据需要处理,则应配置足够的RAM,如6264,62256等。随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留足够的RAM空间,哪怕多设计一个RAM的插座,暂不插芯片也好。

(5) I/O端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。

3.2 总体原理图

10

科技职业学院信息技术系 电子信息工程技术专业毕业设计

DS1DPYafegdbcdpfeDPYagdbcdpfeDPYagdbcdpfeDPYagdbcdp加一减一回答时间调整S1S8S10S11ABCDEFG1234抢答时间调整1234567393837363534333221222324252627281011121314151617LS1U1+5VR2R3R4R13R14R15R16XTAL1XTAL2/RSENALE/EA1918293031+5VC3P1.0P1.1P1.2P1.3P1.4P1.5P1.7P1.8RSTP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7S14S15912345678结束开始S9C1C2Y1R1S7S6S5S4S3S2123456 图3-1系统原理图

P1.0为开始抢答[9],P1.7为停止,P1.1-P1.6为六路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2为时间加1调整,P3.3为时间减1调整。

3.3 时钟频率电路的设计

单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。如图3-2所示。

图3-2为外部振荡源电路

11

科技职业学院信息技术系 电子信息工程技术专业毕业设计

附录一

源程序代码

OK EQU 20H;抢答开始标志位

RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB

ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#0FH MOV R2,#0AH MOV TMOD,#11H MOV TH0,#0F0H MOV TL0,#0FFH MOV TH1,#3CH

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

27

科技职业学院信息技术系 电子信息工程技术专业毕业设计

SETB TR1 SETB TR0 ;=====查询程序===== START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY JB P1.0,NEXT ACALL DELAY

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

ACALL BARK;按键发声 MOV A,R1

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

SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R3,0AH;抢答只显示计时,灭号数

AJMP COUNT;进入倒计时程序,\查询有效抢答的程序\在COUNT里面 NEXT: JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START

;=====非法抢答处理程序===== FALSE1: ACALL BARK MOV R3,#01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H

28

科技职业学院信息技术系 电子信息工程技术专业毕业设计

AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR

;=====INT0(抢答时间R1调整程序)===== INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY

JNB P3.2,INC0;P3.2为+1s键,如按下跳到INCO JNB P3.3,DEC0;P3.3为-1s键,如按下跳到DECO JNB P1.7,BACK0;P1.7为确定键,如按下跳到BACKO AJMP INT0SUB INC0: MOV A,R1

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

MOV R1,#00H ACALL DELAY1

29

科技职业学院信息技术系 电子信息工程技术专业毕业设计

AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1

JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUB BACK0: RETI

;=====INT1(回答时间R2调整程序)===== INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.2,INC1 JNB P3.3,DEC1 JNB P1.7,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB

30

科技职业学院信息技术系 电子信息工程技术专业毕业设计

ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI

;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)===== COUNT: MOV R0,#0000 MOV TH1,#3CH MOV TL1,#0B0H

RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AH

DIV AB;除十分出个位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H

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

CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECK

31

本文来源:https://www.bwwdw.com/article/lnq6.html

Top