单片机电子抢答器毕业设计论文v15.docx
《单片机电子抢答器毕业设计论文v15.docx》由会员分享,可在线阅读,更多相关《单片机电子抢答器毕业设计论文v15.docx(74页珍藏版)》请在冰点文库上搜索。
单片机电子抢答器毕业设计论文v15
本科毕业论文(设计)
题目基于单片机的电子智能抢答器
学院电子信息工程学院
专业通信工程
年级2009级
学号222009315220102
姓名杨勇
指导教师刘东卓
成绩
2013年5月1日
基于单片机的电子智能抢答器
1.3研究目标与内容
摘要:
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测日新月异更新。
本文介绍一种用AT89C51作为核心部件进行逻辑控制及信号产生的单片机技术和C语言编程设计的8路数字抢答器。
文章对抢答器的背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍,使我们不仅元器件的原理及设计有了深入的了解,也对单片机的设计研发过程有了更加深刻的体会
本设计主要采用单片机控制,采用手动抢答的方式,有人抢答后,系统自动封锁其他人的抢答按钮,使其不能再抢答,从而实现抢答功能。
该系统还增加了抢答倒计时和答题对错判断功能,另外抢答倒计时的时间可以调整。
若有人在主持人按下开始按钮之前按下抢答按钮,系统不会显示选手的号码,只有在开始按钮被按下之后,选手才可以有效的抢答,使抢答达到公平、公开的效果。
关键词:
单片机;抢答器;AT89C51;液晶
第1章引言
1.1抢答器的研究意义
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其他功能。
抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。
1.2抢答器系统的发展分析
在2007年以前,抢答器作为一种竞赛设备,一直没有得到多大的提高,在使用过程中只起到抢答作用,而且在设计上基本是采用模拟电路的方式,抢答的精确度不够高,而且要受到线路和距离的限制。
随着电脑的普及率在大幅提高,在新的信息化时代中,各类竞赛活动也发生了一些大的变化,不再是现场主持人念题,选手回答,这种固定的、单调且死板的方式。
现场要求有更多互动和更多娱乐的效果。
活动的策划者们在不断的思考和在活动环节上进行设计。
电脑抢答器的出现解决了策划者们面对的难题,电脑抢答器是以电脑做为操作平台,控制器方面采用了数字电路和单片机的方式和电脑进行通信,这样设计使知识竞赛长期以来固定的模式被打破[]。
活动中出现了更多的设计和新玩法,使知识竞赛走向了新的方向。
以电脑做为平台的抢答器系统,可以通过竞赛软件控制抢答器,答题器,记分屏,灯光效果等等。
通过知识竞赛软件可以做到各个环节中的题目显示,选手可以通过手中的抢答器抢答,抢答结果会显示在大屏幕上和分数会显示在LED记分屏中。
选手还能通过答题器对题目进行按键回答,在显示设备上显示出每位选手答题的情况,这样的方式很大程度的提高了比赛的档次和娱乐性。
除了电脑抢答器外还有数字电路式、单片机式的抢答器。
对数字电路式的抢答器来说电路复杂,且成本偏高,故障率高,显示方式简单,电脑抢答器不够便携[]。
随着单片机的应用不断深入,以单片机为核心的抢答器不断出现。
利用单片机的优点,使抢答器具有结构简单、功能强大、性能可靠等特点。
1.3研究目标与内容
本系统采用模块化设计抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。
主持人有开始和结束、复位键。
在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为30s,回答问题时间为60s。
通过加键和减键修改上述时间,改完后确认键确定。
新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示选手号和抢答时间倒计时,在最后五秒扬声器发生提示。
如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。
主持人可按键结束,新一轮抢答开始。
第2章总体方案设计
2.1系统主要功能
本系统是以单片机为主控芯片的八路抢答器,它包括了8路抢答按钮、计时显示、倒计时提示、开始与复位控制按钮、加时减时控制按钮。
系统的主要功能模块框图如图2-1所示。
图2-1抢答器的总体框图
Fig.2-1theoverallblockdiagramoftheresponder
在抢答比赛中八路抢答按钮分别对应一组选手。
计时显示以及其他的各种显示功能都由LCD1602液晶实现。
倒计时即将结束时蜂鸣器会响铃提示。
开始、复位、加时、减时按钮都由主持人控制。
在主持人按下开始键后才能开始抢答,在抢答时选手的抢答犯规、抢答成功都会显示在液晶屏幕上。
一轮抢答结束之后由主持人按下复位键复位。
在本设计中我们设定开始之后有5秒中的预备时间,在预备时间结束前抢答为犯规蜂鸣器持续响,预备时间结束之后可以开始抢答,有15秒抢答时间,15秒内无人抢答则本轮抢答结束,由主持人复位,复位后显示所有选手的得分。
在倒计时最后5秒时,每一秒蜂鸣器都会响铃提示。
总结其系统的需求分析如下:
1、在抢答时只有主持人按下开始后才能抢答。
在预备时间结束前抢答视为犯规。
2、可以显示抢答成功的选手和抢答犯规的选手。
抢答成功的选手显示他当前得分。
3、显示倒计时,倒计时将要结束时有响铃提示。
4、抢答成功后锁定按键,使其他选手的按键无效。
6、主持人复位后进入下一轮抢答。
2.2系统工作流程
系统的工作流程图如图2-2所示。
图2-2抢答器系统工作流程图
Fig.2-2respondersystemworkflowchart
根据图1-2所示的流程,一次具体的抢答过程如下:
上电后屏幕显示所有选手的得分,初始状态下得分都为10。
主持人按下开始键,进入5秒预备抢答的倒计时阶段,每一秒会响铃提示。
在5秒结束前有选手抢答判定为犯规,屏幕显示犯规选手编号,主持人按下复位键进入下一轮抢答。
预备时间结束后进入15秒倒计时的抢答阶段,有选手率先抢答时倒计时停止,屏幕显示抢答成功的选手编号,并锁定键盘,使其他选手的抢答无效。
此时抢答成功的选手进行答题,答题结束后主持人可以为该选手加分或减分(也可以既不加分也不减分),之后由主持人按复位键进行下一轮抢答,此时屏幕显示所有选手的得分。
如一直无人抢答,在最后5秒倒计时的每一秒会响铃提示,直到倒计时结束还无人抢答,则屏幕显示无人抢答,主持人复位进入下一轮抢答。
2.3软硬件方案选择
2.3.1硬件方案选择
(1)主控芯片选择方案
根据以上我们提出的需求,抢答器系统的主控芯片可以有多种选择方案。
嵌入式微处理器一般可分为四类,嵌入式微处理器(MPU)、嵌入式微控制器(MCU)、嵌入式DSP(DSP)、嵌入式片上系统(SoC)[]。
这些处理器都可以用于本设计。
除此之外,可编程逻辑器件(FPGA/CPLD)也可以用来作为主控芯片。
在本设计中,我们用MCU(又称单片机)中较为常见的8051系列单片机作为主控芯片。
该芯片相较于DSP、FPGA、ARM等芯片简单易用、价格便宜,而且完全能够满足本设计的要求。
能够加快我们设计的进程、节约设计成本。
本设计中使用的主控制器是宏晶科技生产的STC89C51RC。
该产品标准易用,价格便宜,是新一代超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机。
该型号单片机有LQFP44、PDIP、PLCC、PQFP四种封装,在本次设计中我们采用PDIP-40这种封装,其外部结构图如图2-3所示[]。
图2-3STC89C52RC外部结构图
Fig.2-3STC89C52RCexternalstructure
主要功能特性:
●8K的Flash程序存储器可擦写100000次以上
●512字节的RAM数据存储器
●EEPROM功能
●工作频率范围:
0-40MHz
●通用I/O口(32个),复位后为:
P1/P2/P3是准双向口(普通8051传统I/O口)P0是开漏输出,作为总线扩展用时,不加上拉电阻,做I/O口时需要加上拉电阻。
●ISP/IAP,无需专用编程器/仿真器可通过串口(P3.0/P3.1)直接下载用户程序。
●看门狗
●共3个16位定时器/计数器,其中定时器0还可当成2个8位定时器使用。
●外部中断4路,下降沿中断或低电平触发中断。
可行性分析:
从上述单片机的基本参数来看,STC89C552RC单片机拥有8K的程序空间,对于本设计而言是完全足够的。
而且本设计中除了液晶模块为了保证显示无延迟用了并行方式传输数据外,其它模块采用了尽量节省I/O口的设计思路,能保证单片机的I/O口足够。
而且有3个定时器,本设计只需用到1个。
综上所述,STC89C52单片机能够满足设计需求。
(2)抢答器显示模块选择方案
在抢答器系统运行的整个过程中都伴随着信息的显示,选择一种合理的信息显示方式能给我们的设计带来方便。
本设计中可用的显示设备有数码管、液晶。
数码管结构简单,易于控制,程序算法也相对简单,缺点是数码管占用端口资源多。
液晶显示(LCD)由于具有可编程驱动、接口控制方便、体积小、功耗低、具有良好的可视化人机界面等优点,在各种电子设备中得到广泛使用[]。
本设计考虑到需要显示的内容较多,用数码管作为显示模块需要占用很多端口资源,所以本设计采用带字库的12864液晶作为显示模块,利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面[]。
它的外部结构图如图2-4所示。
图2-412864外部结构图
Fig.2-412864externalstructure
该液晶模块可显示8×4行16×16的汉字,也可以显示128×64像素的图形。
其基本特性:
●低电源电压(VDD:
+3.0V--+5.5V)。
●显示分辨率:
128×64点。
●内置汉字库,提供8192个16×16点阵汉字。
●内置128个16×8点阵字符。
●2MHz始终频率。
●显示方式:
STN、案头、正显。
●视角方向:
6点。
●通讯方式:
串行、并行可选。
LCD12864的引脚功能表2-1所示。
表2-112864引脚说明
Table2-112864pindescription
引脚号
引脚名称
功能说明
1
GND
电源地
2
VCC
电源正端
3
V0
对比度调整
4
RS(CS)
并行数据/指令选择型号;串行片选信号
5
R/W(SID)
并行读写选择信号;串行的数据口
6
E(CLK)
并行使能信号;串行同步时钟
7-14
DB0-DB7
数据0-数据7
15
PSB
并/串行接口选择:
H-并行L-串行
16
NC
空脚
17
/RST
复位低电平有效
18
VOUT
倍压输出脚(VDD=+3.3V有效)
19
LED_A
背光源正极(LED+5V)
20
LED_K
背光源负极(LED-0V)
在本设计中我们采用并行的方式在单片机和12864模快之间通信。
8为并行连接时序图如图2-5和图2-6所示。
图2-5MPU写资料到模块
Fig.2-5MPUwritedatatothemodule
图2-6MPU读出资料
Fig.2-6MPUreaddata
可行性分析:
本设计中需要显示的信息有倒计时的显示,选手分数显示,抢答成功和犯规的显示。
由ST7920驱动的12864液晶,能够显示汉字、图形、数字、字母以及其他ASCII字符,完全能够满足本设计的需求。
(3)抢答器键盘的选择方案
在一个单片机应用系统中,键盘是系统中并不可少的输入设备,是控制系统与操作人员对话的窗口。
键盘通常有两种结构形式:
线性键盘和矩阵键盘。
在不同的场合下,这两种键盘都得到了广泛的应用,线性键盘是由若干独立的按键构成,每个按键的一端与单片机的一个I/O口相连[]。
有几个按键就要有几根连线与单片机的I/O口相连,因此,线性键盘一般只适用于按键较少的场合。
矩阵式键盘的按键是按N行M列排列,每个按键在行列的一个交点上,需要的I/O口数目是N+M,能提供的最大按键数是N×M。
显然,用矩阵键盘可以有效减少单片机I/O口的连线数,简化结构,是一般单片机常用的键盘结构。
根据矩阵键盘的识键和译键方法的不同,矩阵键盘又分为非编码键盘和编码键盘两种。
非编码键盘是用软件的方法识键和译键。
根据按键扫描方法的不同,可以分为扫描行法、扫描列法和反转法3种。
编码键盘是用硬件来实现按键的扫描和识别,一般使用专用接口芯片,在硬件上要求较高。
行列式键盘有节省I/O口的优点。
考虑到本设计所需的按键较多,为了节省端口资源,降低硬件要求本设计采用非编码行列式键盘。
(4)发声模块选择方案
有源蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单[]。
由此可知,有源蜂鸣器的控制和LED的控制对单片机而言是没有区别的。
无源蜂鸣器则要交流驱动,改变驱动频率可以奏简单音乐。
本设计中的发声装置只需要发出固定频率的提示音即可,无需改变发声的频率。
为求简化软件设计,本设计中选用有源蜂鸣器作为发声装置。
可行性分析:
发声模块在本设计中用于报警,只要能够发出一定频率的提示音即可。
使用蜂鸣器即可满足设计需求。
2.3.2软件方案选择
C语言和汇编语言是单片机应用系统开发常用的编程工具。
C语言是一种高级编程语言。
早在1985年便出现了51单片机专用的C语言,简称C5l。
C51除了遵循一般C语言的语法规则外,还有自身的特点。
它增加了变量数据类型(如bit、sb)、中断服务函数(如interruptn),对80C5l单片机的特殊功能寄存器的定义是C51特有的,是对标准C语言的扩展。
C语言作为一种高级语言,接近人的自然语言,编写的程序与人们通常的思路相近,而且不依赖于计算机的结构和指令系统,是面向过程而且独立于机器的通用语言,容易学习、通用性好、便于移植。
汇编语言是为了方便使用而设计的一种符号语言。
它用易于理解和记忆的英文名称或缩写形式(助记符)来表示二进制指令。
指令助记符、语句标号、数据变量、伪指令以及它们的使用规则构成了整个汇编语言的内容。
汇编语言的程序占用内存少,执行速度快,并且可以直接对硬件进行编程,能够充分发挥计算机的硬件功能。
它是计算机所能
提供的最快、最有效的语言。
主要应用在实时性要求高、对硬件设备进行控制的场合。
使用C语言与使用汇编语言相比:
不需要掌握8051系列单片机的指令集,只需了解单片机内部特殊功能寄存器的用途;编程人员不必考虑寄存器的分配和寻址方式等细节,都有编程器自动进行管理;利于结构化编程,易于维护;由于可以实现模块化编程技术,大量例程直接调用,节省开发时间,提高效率[]。
基于以上所讲述的在单片机领域中的C语言和汇编语言编程各自的优缺点。
考虑到本设计整体结构简单,生成的代码占用空间小,一般的单片机足以满足需求,并且对时序的要求不高。
所以采用C语言编写程序能更方便快捷的完成我们的设计,并且具有良好的可移植性,方便以后移植系统到其他硬件设备上。
在集成开发环境(IDE)上我们选择目前最流行的KeilC51,KeilC51是KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。
如果你使用C语言编程,那么Keil几乎就是你的不二之选。
KeilC51生成目标代码的效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
Proteus软件是LabCenterElectronics公司的一款电路设计与仿真软件,它包括ISIS,ARES等模块,它能仿真大量的单片机芯片,比如MCS-51系列,PIC系列等等,以及单片机外围电路[]。
通过Proteus软件的使用我们能很容易获得一个强大,方便的单片机实验系统。
同时Proteus兼有PCB板绘制的功能。
并且Proteus与Keil的结合使用能很方便的完成单片机的调试工作。
作为目前市场上最流行的单片机仿真软件,它的好处是资源丰富,在网上能获得最多的技术支持与帮助。
本设计即是采用Keil作为集成开发环境,以Proteus作为仿真原理图、PCB设计工具。
第3章硬件设计
3.1总体设计
本设计包含了硬件设计和软件设计两部分,两者紧密结合,不可分离。
硬件设计是这个系统运行的基础,没有硬件一切都无从谈起。
软件设计是系统正常运转的核心,在硬件的基础上软件控制着系统的运作,实现系统的功能。
随着技术的发展,硬件电路的集成度越来越高,各种功能强大的芯片降低了硬件设计的复杂程度。
为是硬件电路设计更加合理,应注意以下几个方面:
(1)尽量使用集成度更高功能更强的芯片,以简化电路。
功能更强大的芯片能只占用较少的端口资源就完成同样的甚至是跟多的功能。
本设计中除了主控制芯片以外,显示模块采用了一块高度集成的12864液晶,在兼顾显示界面的友好美观的情况下极大程度的简化了硬件电路的设计工作,而且节约了单片机的I/O端口。
(2)留有一定设计余地。
在硬件设计是,往往不是一次成型的。
考虑到以后修改扩展的方便。
要留有一定的余地,以避免为了一点小小的修改而全面返工。
本次设计采用的硬件电路均在一块开发板上,硬件电路已经经过生产厂商的测试,比较可靠,可以放心的使用,将更多经历投入到软件的设计过程中去。
(3)程序空间。
应该选择内部程序空间足够大的单片机。
所以你需要估计自己设计程序的复杂程度,选择相匹配的单片机。
本设计所采用STC89C52RC单片机拥有8K的程序空间,基本上能够满足电子抢答器的设计所需的空间大小。
(4)RAM空间,单片机内部的RAM空间不多。
如果片内空间不够就需要增加片外RAM,设计时需要预留I/O接口。
在本设计中,系统的功能简单,已有的单片机完全可以满足需要,无需考虑这个问题。
(5)I/O端口:
在设计的初期就要对各个I/O口资源合理分配,可以预留若干备用,也许在后期的调试过程中就会派上用场。
在本设计中使用的开发板上硬件电路已经固定,I/O端口的分配也很合理,无需再重新分配I/O端口。
本次设计的总体硬件电路原理图如图3-1所示。
图3-1硬件电路原理图
Fig.3-1hardwarecircuitprinciplediagram
图2-1中主控制器为STC89C52RC单片机,显示模块为一块集成的LCD12864液晶。
由于采用并行传输数据,液晶模块的DB0-DB7接单片机P0口。
RS脚接P1.0、R/W脚接P1.1、E脚接P2.5、PSE脚接P1.2、RST脚接P1.4。
所有的按键全部在接在P3口的键盘阵列中,第一行和第二行按键为8为选手的抢答按键,第三行是主持人控制按键,左一为加分键、左二为减分键、左三为开始键、左四为复位键。
BUZ1为蜂鸣器,作为系统中的响铃提示功能。
3.2时钟频率电路的设计
单片机与其他微机一样,它的各种操作都是按着节拍有序的工作的。
89C51内部有一个高增益反响放大器,用于构成振荡器。
反相放大器的输入端为XTAL1,输出端为XTAL2,两断跨接石英晶体及两个电容就可以构成稳点的自己振荡器。
时钟电路如图2-2所示。
图3-2外部震荡源电路
Fig.3-2externaloscillatorscircuit
C1和C2通常取30pF左右,可以稳定频率并对震荡频率有微调作用[]。
震荡脉冲频率范围为fosc=0~24MHz,我们所用的震荡频率为12MHz。
3.3键盘扫描电路的设计
键盘是单片机应用中必不可少的硬件之一,由于其设计方法多种多样,所以在应用系统设计时,应根据整个系统的硬件结构、软件设计等信息综合考虑,设计出稳定可靠、结构紧凑、成本低廉、简单易用、性能优良的人机键盘界面[]。
键盘是进行人机交互的主要设备。
在单片机应用中主要是独立键盘和矩阵键盘。
其中独立键盘结构简单,程序设计也较为简单,一般用于对硬件电路要求不高的简单电路中;矩阵键盘在硬件结构上较为复杂,程序算法上也比独立键盘复杂得多,但是矩阵键盘更加能够节省端口资源,适合在按键较多的电路中使用。
在本设计中,为了节省端口资源,采用矩阵键盘。
按键电路如图3-3所示。
图3-3按键电路
Fig.3-3keycircuit
在这个4*3的矩阵键盘中,上两行8个按键是8为选手的抢答按键,最下面一行是主持人控制的加减分按键和开始、复位按键。
这个矩阵键盘接在单片机的P3端口上,P3.0到P3.2接行线,P3.4到P3.7接列线,在必要的时候可以再加一行按键,行线接P3.3扩展为4*4的矩阵键盘。
在按键的过程中会出现抖动现象,这种现象会造成按下按键判定不准确,要消除这种影响就需要在扫描程序中采用消抖动处理[]。
通常采用的方法是,延时重复扫描的办法,在检测到按键按下之后延时一段时间再次检测按键电平是否保持原状态,进行多次扫描后如果键盘的电平保持不变则判定按键被按下,否则判定为无效。
3.4复位电路的设计
使CPU回到初始状态,从0000H地址开始执行程序的过程脚系统复位,系统的复位可分为硬件复位和软件复位[]。
硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。
上电复位,人工按键复位和看门狗复位均为硬件复位。
硬件复位后,各个寄存器状态呗初始化,对片内通用寄存器的内容没有影响。
软件复位就是用一系列指令来模拟硬件复位功能。
软件复位中对中断标志的清除工作常被遗忘,但清除中断标志非常重要。
在本设计中的主持人控制的复位按键只是使程序结束当前的抢答过程进入到下一轮的抢答环节,并不是真正意义上的对整个单片机系统进行复位。
对整个系统复位后,所有选手的分数也将会清零。
复位电路如图2-4所示。
图3-4复位电路
Fig.3-4resetcircuit
复位电路主要由电解电容C3、电阻R1、按键S1组成。
由于单片机是高电平复位,所以当复位键按下时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。
当上电后,由于电容的缓慢放电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。
需要强调的是,在本设计中的主持人复位,并没有使系统回到0000H开始执行,只是回到抢答的开始阶段开始执行程序,不属于以上所述的复位的范畴。
如果需要整个系统重新启动进行工作,则可以按下Reset键进行硬件复位。
3.5发声电路的设计
蜂鸣器是众多电子产品中常用的发声器件,本设计中也使用蜂鸣器作为发声装置,本设计中的发声电路如图2-5所示。
图3-5发声电路
Fig.3-5soundingcircuit
本设计中的发声装置一端接在单片机的P2.3脚,当P2.3脚为低电平是蜂鸣器发声,当P2.3为高电平时蜂鸣器静音。
单片机内部通过编程控制I/O口的高低电平就能控制蜂鸣器的响铃时常和频率。
3.6综合PCB板的设计
印制电路板(PCB)是各种电子产品中电路元器件的载体,PCB提供了电路元件和器件之间的电气连接,PCB设计的好坏对产品性能有很大影响[]。
因此,在进行PCB设计时。
必须遵守PCB设计的一般性原则,并应符合抗干扰设计的要求。
为了设计出优质低廉的PCB,应遵循一些原则。
3.6.1布局的原则
1、要考虑PCB尺寸大小。
PCB尺寸过大时,印制线就条长,同时阻抗增加,抗噪声能力也会下降,成本也增加;过小,则散热不