基于单片机的八路抢答器设计毕业设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要: (2)
关键词: (2)
1绪论 (2)
1.1 课题研究的相关背景 (2)
1.2选题的目的和意义 (3)
1.3 课题研究的内容 (4)
1.4论文的组织结构 (4)
2系统总体设计 (5)
2.1系统设计要求 (5)
2.1.1系统设计基本要求 (5)
2.1.2系统的基本组成 (6)
2.2系统方案论证 (6)
2.2.1系统设计思路 (6)
2.2.2系统方案论证 (6)
3硬件电路设计 (8)
3.1系统硬件组成部分 (8)
3.2系统组要电路设计 (8)
3.2.1AT89C52单片机 (8)
3.2.2晶振复位模块 (9)
3.2.3LCD1602显示模块 (10)
3.2.4键盘扫描模块 (11)
3.2.5蜂鸣器音频输出模块 (13)
4系统软件设计 (14)
4.1系统软件总体设计 (14)
4.2主要模块软件设计 (16)
4.2.1开始按键扫描程序 (16)
4.2.2LCD1602液晶屏驱动函数 (16)
4.2.3按键扫描程序 (17)
4.2.4蜂鸣函数 (18)
5 操作结果分析 (20)
5.1实物图 (20)
5.2操作结果组图 (20)
6、总结与展望 (23)
6.1总结 (23)
6.2展望 (24)
参考文献 (24)
基于单片机的八路抢答器设计
摘要:答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。

本次抢答器设计主要
是研究AT89C52的多种功能和lcd1602的使用,本设计基于单片机为八路抢答
的基本理念。

考虑到依需设定限时回答的功能,利用AT89C52单片机及外围接
口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使液晶显示屏能够正
确地显示时间。

用开关做键盘输出,扬声器发生提示。

同时系统能够实现:在
抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时
间和回答问题的时间;可以显示是哪位选手有效抢答和无效抢答;抢答时间和
回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

关键词:八路数字抢答器 AT89C51 PROTEUS
1绪论
1.1 课题研究的相关背景
抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。

早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。

现在大多数抢答器均使
用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显
示、抢答时间的显示以及最后几秒钟的报警等等。

本课题利用AT89C52单片机
及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能
够正确地显示时间和选手号码。

用开关做键盘输出,扬声器发声提示。

系统达
到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;
抢答限定时间15s;可以显示是哪位选手有效抢答;按键锁定,在有效状态下,按键无效非法。

1.2选题的目的和意义
在现在的科技水平下,促使人们学科学、学技术、学知识的手段多种多样,抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

但抢答器的使
用频率校低,且有的要么制作复杂,要么可靠性低,减少兴致。

作为一个单位
若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长
期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的
开展。

而且目前多数抢答器存在以下3个不足之处:第一,现场线路连接复杂。

因为每个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连
接线。

选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,
而且降低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。

第二,电路复杂。

因为单片机只完成号码处理、计时、数据运算等功能,其它
功能如选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。


用单片机扫描技术识别选手抢按号码时,电路的延迟时间较大。

第三,选手抢
按成功,但出现没有抢答被记录的问题。

鉴于上述原因和不足,设计了这个抢答器,主要是掌握52单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,
提高动手能力和排除故障的能力。

同时通过本课题设计与装配、调试,提高自
己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多
功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计
数的各个单元电路。

初步掌握多功能抢答器的调整及测试方法。

提高动手能力
和排除故障的能力。

1.3 课题研究的内容
本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按键。

主持人有开始和结束、复位键。

开始时设定为初始的抢答时间20s主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发生提示、数码管开始闪烁提示。

如果主持人没有按下开始键而选手就抢答视为无效,数码显示屏显示不做显示。

主持人再可按键开,新一轮抢答将展开。

通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内部,第二,工作性能可靠,抗干扰能力优于目前抢答器。

所以本研究是一个实用的工程设计,而且课扩展的到许多人的抢答模式,具有创新性。

1.4 论文的组织结构
本论文章节的结构和内容如下:
第一章:绪论。

简要介绍了抢答器的发展现状,说明了本课题研究的内容。

第二章:抢答器系统概述。

说明了抢答器的工作过程和主要功能,并定下了本课题要达到的设计目标。

第三章:抢答器的电路的设计。

详细描述了本课题各个组成电路单元的设计思路。

第四章:程序的设计。

设计单片机内部运行的程序实现抢答及其他功能。

第五章:抢答器的仿真试验。

阐述了抢答器通过设计,制作成仿真原图之后的仿真试验。

第六章:抢答器的制作及调试。

简要的讲述了抢答器的电路制作焊接过程。

第七章:总结与展望。

总结课题设计,指出设计中的一些问题,提出改善的意见,并展望抢答器的未来设计。

2系统总体设计
2.1 系统设计要求
2.1.1系统设计基本要求
基本要求:
1.有至少8位选手,主持人按下开始键后,选手可以开始抢答,并显示相应抢答选手号和回答剩余时间,当剩余5秒时间时,给予响声提示;
2.如果主持人没有按下开始键而选手抢答,则视为犯规,并显示违规选手号和错误码,给予响声提示;
3. 主持人按结束键,可进行新一轮的抢答;
4. 抢答时间结束且无人抢答时,执行相应操作;
5. 可通过按键设置抢答时间和回答时间;
2.1.2系统的基本组成
系统需要良好的硬件动手能力和良好的单片机编程能力,是一个多技术融
合的设计系统,需要的基础包括AT89C52单片机内部资源的利用、单片机驱动LCD1602电路的运用、矩阵键盘输入电路的运用等。

总体上,系统由AT89C52
单片机控制模块、LCD1602显示模块、警报输出控制模块、键盘扫描模块等框
架组成。

2.2系统方案论证
2.2.1系统设计思路
抢答器由计数器、寄存器、集成定时器和译码显示等组合、时序电路组成。

可分为抢答电路,定时电路,报警电路等几个单元部分。

每个单元电路分别可
以处理一些抢答竞赛中的基本问题。

本次课程设计设计的是一个多路定时抢答器,是一个多于八位选手参赛的一个抢答器,具有锁存和显示功能。

同时有主
持人控制系统的停止和抢答的开始。

抢答开始后,若有任何一名选手按动抢答
按钮,抢答器就会显示该选手编号直至系统被主持人清零,并有扬声器发出提示,同时其他人再抢答就无效了。

这次设计的抢答器还有自动定时功能,主持
人可以设定选手答题的时间。

当主持人启动“开始”键后,定时器会自动减计时,这个会显示在显示器上。

选手只有在抢答时间内抢答才有效,若在答题时
间内没有选手答题,时间到时,报警电路就会发出警报并且禁止抢答。

2.2.2系统方案论证
抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器,555定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚
很多,实际搭建起来费时费力,焊接很容易出错。

于是,我想到了用单片机实现。

该系统采用51系列单片机AT89C52作为控制核心,该系统可以完成运算控
制、信号识别以及显示功能的实现。

由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。

整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。

其原理框图2.2.2如下:
图2.2.2系统原理框图
本系统采用模块化设计的八路抢答器,在抢答比赛中广泛应用,各组分别
有一个抢答按键。

一共有8个按键输入,分别对应8路选手的抢答按键。

主持人有开始和结束按键。

活动开始可以预设置抢答的时间,修改改上述
时间,主要是修改程序中的时间。

设置好时间后抢答开始,主持人按开始键后,选手开始抢答为有效,LCD1602液晶屏显示抢答时间倒计时和选手号,在最后
五秒扬声器发生提示。

如果主持人没有按下开始键而选手就抢答视为犯规,液
晶屏显示抢答号码。

单片机是整个抢答器的核心,内部电路设计用C语言编写。

它完成了时间
参数的设定,抢按号码的译码,保存;显示;输出,抢答者序号和倒计时间。

在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查
外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配
合工作,能否准确的实现所设计的功能。

3硬件电路设计
3.1系统硬件组成部分
系统硬件部分主要由AT89C52单片机主控制器模块、晶振复位模块、
LCD1602显示模块、键盘扫描模块、蜂鸣器音频输出模块等模块组成。

3.2系统组要电路设计
3.2.1 AT89C52单片机
AT89C52单片机内部由CPU、8KB的FPEROM ,256字节内部RAM,3个16
位的定时/计数器,4个8位的I/O端P0、P1、P2、P3等组成。

单片微机内部
最核心的部分是CPU。

CPU主要功能是产生各种控制信号,控制存储器、输入/
输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按
其功能可分为运算器和控制器两部分。

控制器由程序计数器PC、指令储存器、
指令译码器、实时控制与条件转移逻辑电路等组成。

它的功能是对来自存储器
中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内
部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。

运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。

AT89C52单片机引脚图如图3.2.1
图3.2.1单片机最小系统原理图
3.2.2晶振复位模块
晶振的频率为11.0592MHZ,提供89C52的时钟脉冲使89C52工作,复位电路是单片机初始化,使单片机重新开始执行程序。

当复位开关按下RST由低电平变为高电平,则程序从头开始执行。

晶振和复位电路图如图3.2.2
图3.2.2晶振复位电路
3.2.3 LCD1602显示模块
LCD1602液晶显示模块基本技术:主要功能 A、 40通道点阵LCD 驱动; B、可选择当作行驱动或列驱动; C、输入/输出信号:输出,能产生20×2个LCD驱
动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1∽V6); D、通过
单片机控制将所测的频率信号读数显示出来。

此电路包括显示和驱动,显示LCD1602液晶显示屏,驱动用P1.0、P1.1、
P1.2口来接到LCD1602D的RS、RW、E端,抢答15秒倒计时、正常抢答者编
号和回答问题时间15秒倒计,时液晶屏显示倒计时。

数据断接P1.4 、P1.5
P1.6 、P1.7 I/O口,当为液晶屏显示清楚在其VO断接一个10K滑动电阻。

LCD1602显示电路如图3.2.3.1;LCD实物图如图3.2.3.2
图3.2.3.1LCD1602显示电路
图3.2.3.2LCD实物图
3.2.4键盘扫描模块
按键的在按下时会产生抖动,这时电平不稳定,为了防止错误执行或重复执行。

本次使用软件延时来消抖,延时一般大于5ms,若取10-20ms,便会避开抖动阶段。

如果读健过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成抖动处理。

八个抢答按键的输入电平
由74LS30输入与非门和74HC04反向器组成的电路改变输入电平。

图3.2.4.1便是74LS30输入与非门和74HC04反向器组成的消抖电路。

图3.2.4.1按键消抖电路
本文设计中采用独立键盘的方式,本文设计8给按键输入,通过I/O口接到单片机P0口;一个开始按键,一个结束按键,此外还有抢答时间调整键,加一按键,减一按键。

抢答时间调整键接到单片机的P3.1,加一和减一接到P3.0和P3.3;开始和结束按键接到单片机的P2.0和P2.1,如图3.2.4.2。

图3.2.4.2按键输入电路
3.2.5蜂鸣器音频输出模块
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单
片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。

通过控制不同频率的矩形脉冲来控制蜂鸣器发声。

此次课程设计中只需要
一些简单的提示声音,抢答时间结束和回答时间结束到得提示声。

8550的基极
接到单片机的P2.2 I/O口。

如图3.2.5所示:
图3.2.5蜂鸣器音频输出电路
4 系统软件设计
4.1系统软件总体设计
系统软件部分采用模块化方式编程,即将整个设计的程序划分为几个小模块,并且每个模块具有相对的独立性,各模块之间可以通过函数调用相联起来。

这种编程方式有助于程序的测试、修改及维护。

在编程语言方面,系统程序设
计采用的是C语言,C语言是一种结构化的高级语言,其优点是可读性强、易
移植,是普遍使用的一种计算机语言。

系统软件设计流程:首先在单片机开发平台Keil uVision4上编写好程序,然后设置软件编译生成hex文件,再利用程序下载工具进行程序下载。

通过反
复测试和修改,最终完成设计。

系统主程序流程图如图4.1.1所示:
图4.1.1软件系统结构图
程序设计流程如图4.1.2所示:
图4.1.2程序设计流程图
4.2 主要模块软件设计
本节主要介绍单片机的内部运行的程序。

程序分为八个模块:主函数、延时函数、LCD1602液晶屏驱动函数、按键扫描函数、复位键扫描函数、蜂鸣函数、中断服务函数。

主函数是函数的主体,其他的各个函数是实现不同的功能用的:例如蜂鸣函数、是生成声音信号是蜂鸣器发声用的。

在本节主要介绍开始键扫描函数、LCD1602液晶屏驱动函数、按键扫描程序,蜂鸣函数。

4.2.1开始按键扫描程序
if(Key_start==0) //开始——————》》》
{ led=1;
delay_ms(20);
if(Key_start==0)
{ Key_start_flag=1; //开始标志位
sentbyte(0x01,0); //清屏
luck=0; //异常抢答标志位 Answer_time= Chang_answer_time;
Rush_in_answer_time=Chang_Rush_in_answer_time;
TR0=1; //开启定时器0
TR1=0; //关闭定时器1
while(!Key_start); //松手检测
}}
4.2.2 LCD1602液晶屏驱动函数
#define DATA_PORT P1
#define RS_0() lcd_RS = 0
#define RW_0() lcd_RW = 0
#define E_0() lcd_EN = 0
#define RS_1() lcd_RS = 1
#define RW_1() lcd_RW = 1
#define E_1() lcd_EN = 1
void readbusy(void); //读忙函数
void sentbyte(unsigned char i,unsigned char tybe);// 发送一节数
void Init_1602(void); //初始化1602液晶显示
void Locate_xy(unsigned char x,unsigned char y ); //定位写位置void Displaychar(unsigned char x,unsigned char y, unsigned char wdata);//1602液晶显示一个字符
void Displaypstr(unsigned char x,unsigned char y,unsigned char *str);
//1602液晶显示一个字符串
4.2.3按键扫描程序
unsigned int keyscan_num(void)
{ int num;
if(Key1==0)
{ delay_ms(20); //消抖
if(Key1==0)
{ num=1;
while(!Key1); //松手检测}}
if(Key2==0)
{ delay_ms(20);
if(Key2==0)
{ num=2;
while(!Key2);}}
if(Key3==0)
{ delay_ms(20);
if(Key3==0)
{ num=3;
while(!Key3);}}
if(Key4==0)
{ delay_ms(20);
if(Key4==0)
{ num=4;
while(!Key4);}}
if(Key5==0)
{ delay_ms(20);
if(Key5==0)
{ num=5;
while(!Key5);}}
if(Key6==0)
{ delay_ms(20);
if(Key6==0)
{ num=6;
while(!Key6);}}
if(Key7==0)
{ delay_ms(20);
if(Key7==0)
{ num=7;
while(!Key7);}}
if(Key8==0)
{ delay_ms(20); //消抖
if(Key8==0)
{ num=8;
while(!Key8); //松手检测}} return num;}
4.2.4蜂鸣函数
void Beep_num(unsigned char num,unsigned char time_ms) { unsigned char i;
for(i=num;i>0;i--)
{ Beep = 1 ;
delay_ms(time_ms);
Beep = 0 ;
delay_ms(time_ms); }}
5 操作结果分析
通过对系统多次的操作与测试,发现系统已能实现了文章提到的全部功能,并且这些功能全部符合选题要求,并且系统具有稳定性强、成本低等优点。

虽然系统设计最终顺利完成,但由于系统大部分为纯手工制作,还有本人
的实力和技术有限,做出的作品总存在一些不可避免的误差,但是这只是系统
的一个小缺陷,并不会影响系统的总体性能。

本设计的局限性在于系统的硬件
模块分得太散、无法把整个作品做成一体化,可能会影响整机效应,本想进一
步把它做好,但是由于时间、能力等方面的因素,没能完成该项工作。

5.1实物图
抢答器实物电路如图5.1所示:
图5.1抢答器实物图
5.2操作结果组图
主持人按开始抢答键,LCD1602显示抢答倒计时,如图5.2.1所示:
图5.2.1开始抢答倒计时
有选手抢答,LCD1602显示抢答选手号并显示回答倒计时,如图5.2.2所示:
图5.2.2选手抢答和回答倒计时
主持人没按开始键,有选手违规抢答,LCD1602显示违规选手号,如图5.2.3所示:
图5.2.3选手违规抢答
按下修改键可修改抢答时间和回答时间,如图5.2.4所示:
图5.2.4修改抢答时间
6、总结与展望
6.1 总结
本文研究与设计的八路多功能抢答器采用了通用的电子元器件,利用
AT89C52单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时和
记数的原理,将软、硬件有机地结合起来。

理论联系实践,体现出大学生动手
能力。

通过查资料和搜集有关的文献,培养了自学能力和动手能力。

并且由原
先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很
大的突破。

在以往的传统的学习模式下,我们可能会记住很多的书本知识,但
是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎
么更好的处理知识和实践相结合的问题。

把握重点、攻克难关,学到用到、活
学活用。

在设计过程中由于时间仓促有很多地方难免存在不足之处,硬件设计
已经完成,在软件设计中有些功能还尚未开发出来。

但在以后的工作中,我们
会严格要求自己,追求完美。

整个设计通过了实际做板测试。

我想这对于自己以后的学习和工作都会有
很大的帮助的。

在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不
但要深入地理解,而且要不断地更正以前的错误思维。

对于单片机设计,其硬
件电路是比较简单的,主要是解决程序设计中的问题。

而程序设计是一个很灵
活的东西,它反映了你解决问题的逻辑思维和创新能力。

它才是一个设计的灵
魂所在。

因此在整个设计过程中大部分时间是用在程序上面的。

很多子程序是
可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单
片机的结构很熟悉。

因此可以说单片机的设计是软件和硬件的结合,二者是密
不可分的。

但是,通过这次设计我也发现自己的很多不足之处。

在设计过程中我发现
自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应
用软件还不够多,我希望自己的这些不足之处能在今后的工作和学习中得到改善。

而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将
为以后的学习做出了最好的榜样!
6.2 展望
回头再看看该设计,还可以将设计的扩展功能增强:1、可以设计声控装置,在主持人说开始时,系统自动完成清零并开始计时的功能。

2、增加记分模块,可以设定初始积分,并记录每次抢答完成后的积分。

3、将抢答按键用无线实现,如红外线,使抢答者可以远距离进行抢答,并简化按键模块的线路布置。

如果
提供相应的器材及时间上的宽限,一定可以完成上述扩展功能,进一步完善作品。

参考文献
1.C程序设计,谭浩强,清华大学出版社,2005
2.单片机原理及接口技术(第3版),李朝青,北京航空航天大学出版社,2002
3. 单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,2007
4. 单片机课程设计实例指导,李光飞,北京航天航空大学出版社,2004。

相关文档
最新文档