AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx

上传人:b****4 文档编号:18163754 上传时间:2022-12-13 格式:DOCX 页数:29 大小:338.05KB
下载 相关 举报
AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx_第1页
第1页 / 共29页
AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx_第2页
第2页 / 共29页
AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx_第3页
第3页 / 共29页
AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx_第4页
第4页 / 共29页
AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx

《AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。

AT89C51单片机的8路抢竞赛答器的设计Word格式文档下载.docx

比赛开始,主持人读完题之后按下“开始键”,即抢答开始,蜂鸣器提示一次,此时数码管开始显示30s的倒计时;

直到有一个选手按下抢答键,对应的会在数码管上显示出该选手的编号和回答剩余的时间,同时蜂鸣器也会发出一次提示音,以示有人抢答本题;

如果在规定的30s时间内没有人做出抢答,则此题作废,开始新一轮的抢答。

在抢答和回答时间的最后5s,蜂鸣器都会给予报警提示。

在倒计时过程中,主持人可以随时按“停止键”结束本次回答或者抢答。

在主持未按下开始键,若果有人按下抢答键,则属于犯规抢答,此时,数码管上会显示违规选手的编号,同时蜂鸣器会以1s一次的频率发出警告。

在每次抢答前后,主持人都可以按下复位键让系统清零,此时数码管上会显示“FFF”。

第2章系统硬件设计

硬件电路部分是一个完整电路的关键部分,硬件性能的好坏关系到整个系统的性能。

本章节主要介绍了八路抢答器的硬件的选择及电路的设计。

2.1芯片的选择

芯片选择的原则是经济、寿命长、设计简单。

对此我们作了详细的论证。

2.1.1控制器的选择

控制器主要用于对显示、抢答、音乐、计分等模块进行控制。

控制器的选择有以下两种方案。

方案一:

采用FPGA(现场可编程门列阵)作为系统的控制器。

FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。

FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。

但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。

方案二:

采用AT89C51作为系统控制器的CPU方案。

单片机算术运算功能强、软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。

基于以上分析,本次设计我采用方案二。

2.1.2显示模块的选择

显示模块主要是显示时间和编号。

考虑有以下两种显示方案。

使用液晶屏显示时间。

液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。

但由于只需要显示时间和转向、相数这样的数字,信息量比较少,且液晶屏是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。

在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。

使用传统的数码管显示。

数码管具有低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护的优点,同时其精度高,称量快,精确可靠,操作简单。

数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。

根据以上的论述,我采用方案二。

2.1.3键盘的选择

键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。

键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。

在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。

独立式键盘

独立式键盘接口中使用几根I/O线,就有几个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。

因此可以根据实际需要对键盘中的按键灵活编码。

独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。

行列式键盘

行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,按键在行线和列线的每个交叉点上。

这种形式的键盘结构,能够有效地提高单片机系统中I/O的利用率。

CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲是时才去扫描键盘,响应操作人员的键盘输入,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。

在大多数情况下,CPU对键盘可能进行空扫描。

为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,即CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断请求,向CPU申请中断后,立即对键盘上有键盘进性扫描,识别闭合键,并做相应的处理。

根据以上的论述,我们采用方案一。

2.2.4芯片最终选择方案

根据上几节的论证,通过综合考虑,我们的芯片选择如表2-1。

表2-1器件选择方案详单

器件名称

规格型号

数量

微处理器

AT89C51

1

电阻

220欧姆

8

8K

1K

瓷片电容

30pF

2

电解电容

10uF

晶振

12MHZ

按钮

15

七段数码管

7SEG-MPX4-CC-BLUE

4

蜂鸣器

2.2硬件的构成及功能

本节主要介绍了抢答器的硬件部分的设计,硬件部分的设计是比不可少的,也是此次设计的核心。

2.2.1抢答器的硬件图

根据所要实现的功能,我们先大概将抢答器的硬件分为这几部分:

CPU、声音电路、显示电路、定时电路、开始结束键输入和抢答按键输入。

硬件图如图2-2所示。

图2-2抢答器硬件图

2.2.2时钟频率控制电路

单片机必须在时钟的驱动下才能工作。

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。

时钟频率控制电路如图2-3所示。

图2-3外部振荡电路

内部时钟振荡器一般选用石英晶体振荡器。

此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。

电路中两个电容C1、C2选用30PF大小,其作用有两个:

一是帮助振荡器起振;

二是对振荡器的频率进行微调。

单片机在工作时,由内部振荡器产生或由外部直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。

其大小是时钟信号频率的倒数。

该设计中时钟频率选为12MHz。

2.2.3复位电路的设计

在抢答器中复位是为定时做铺垫的,在抢答之前要复位,抢答完毕要复位,按了复位键之后LED显示F。

单片机的复位引脚RST出现2个机器周期以上的高电平时即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-4所示。

图2-4复位电路

图中复位电路由按键和电解电容C3、电阻R9构成的按键及上电复位电路。

由于单片机是高电平复位,所以当按键按下时,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。

当上电后由于电容缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。

在此设计中使用了硬件复位和软件复位两种。

硬件复位可将寄存器及存储器的值都恢复到初始值。

而在设计中,倒计时时间存在记忆功能,因此还设计了软复位功能。

软复位实际上就是当程序执行完毕后,讲程序指针通过一条跳转指令让它跳转到该段程序的起始地址。

2.2.4报警电路的设计

我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个管脚的高低电平,则在该管脚上就能产生一定频率的矩形波,接上蜂鸣器就能发出一定频率的声音,若利用延时程序控制高低电平的持续时间,就能改变输出频率,从而改变蜂鸣器发出的音调。

在本设计中此电路起到报警功能。

它会在第一位选手按下抢答按钮时响一次,以提示有人抢答本题,并且在该选手的60秒抢答过程中或30秒等待过程中剩余最后5秒时响起,以提示到此题结束还有5秒钟。

本次设计如图2-5所示,图中用到单片机的10、11和16管脚。

10管脚具有读入功能,11管脚具有输出功能,而16管脚具有外部数据写功能,单片机通过内部定时器的操作实现交替变换的波形输出驱动蜂鸣器发生。

图2-5报警电路

2.2.5显示电路的设计

显示功能与硬件的关系极大,显示电路有两种选择,液晶屏显示和传统数码管显示。

液晶屏具有轻薄、无辐射危险、可视面积大、分辨率高和抗干扰能力强的特点,但是由于显示信息少、编程工作量大和成本偏高。

而数码管具有低耗能、低损耗、低压、寿命长和精确度高、操作简单的优点,本设计中采用的是4位七段数码管显示。

数码管显示通常显示分为动态显示和静态显示。

其中,静态显示的特点是显示稳定不闪烁,编程简单,显示亮度高,但占用I/O口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

而动态显示的稳定性虽没静态显示的好,编程复杂,但是相对静态显示而言占用的端口资源少。

本设计采用的是动态显示方法。

通过查表法将值在数码管上显示出来。

其中单片机的P0口为字型码输入端,P2口得低三位为字选段输入端。

4位七段数码管显示电路如图2-6。

图2-6七段数码管显示电路

数码管有共阴极和共阳极两种接法。

共阴极接法,各发光二极管的阴极连在一起并接地,当某一发光二极管的阳极输入高电平时,则该段发光;

共阳极接法,各发光二极管的阳极连在一起并接电源,当某一发光二极管的阴极输入低电平时,则该段发光。

本设计采用4位一体的七段共阴极数码管,其中A-G段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码COM1,COM3,COM4分别接到单片机的P2.0,P2.1,P2.2,由单片机来决定当前该显示的是哪一位。

在电路图中还有8个220欧姆的电阻分别连接在P0口上,用作P0口的上拉电阻,保证P0口没有数据输出时处于高电平状态。

2.2.6键盘扫描电路的设计

键盘扫描电路由两部分组成:

抢答电路和定时电路。

键盘是人机交互的主要设备,键盘电路分为独立式和矩阵式。

其中,独立式键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;

矩阵式键盘硬件电路比独立式键盘电路复杂,而且程序设计繁琐,但它节省端口,适合于多按键电路。

本设计基于简单硬件电路要求的基础上,采用的是独立键盘的方式。

在定时电路的设计中,有1个抢答时间调整按键、1个回答时间调整按键、加一按键、减一按键和1个开始按键、1个结束按键。

电路图如图2-7所示。

图2-7定时电路图2-8抢答电路

图中和AT89C51芯片的12管脚连接的为抢答时间30s的调整按键,和13管脚连接的为回答时间60s的调整按键,与14管脚连接的为加一按键,与15管脚连接的为减一按键。

这四个按键用于主持人对回答时间和抢答时间的调整。

开始按键与单片机的10管脚连接,停止按键与11管脚连接。

这里用到了单片机10、11管脚复合功能中的IO端口功能,单片机通过读取10、11脚的P3.0、P3.1的IO端口值来判断当前是否处于抢答开始状态或抢答结束状态。

当主持人按下开始键,抢答电路和定时电路将进入正常抢答状态;

当回答完毕,主持人可以按下结束键停止计时。

抢答电路完成两个功能:

一是分辨出选手按键先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;

二是其他选手操作无效。

抢答电路如图2-8所示,图中8个抢答按键分别接入单片机的P1.0-P1.7端口,单片机通过读取P1.0-P1.7的值来判断当前输入的是8个抢答按键中的哪一个。

如果主持人未按下开始按键判断到有人违规操作,蜂鸣器会发出警报声,并且数码管会显示出犯规者的编号。

第3章系统软件设计

3.1系统主程序设计

1.系统主程序设计思路

为了能达到公平、公正、合理的设计理念,应该在主持人发布抢答命令之前设定好抢答时间。

当时间设定好了之后,主持人发布抢答命令。

按下开始按键后,程序开始打开,定时中断开始倒计时,然后调用键盘扫描子程序,当扫描到有人按下了抢答键,马上关闭抢答中断计时器T1,调用显示程序,此时封锁抢答键盘,启动计时器T0。

2.主程序框图

根据抢答器设计要求,其软件设计部分流程图如图3-1:

图3-1主程序流程图

3.2键盘扫描程序设计

抢答选手的抢答程序设计是本设计的关键。

键盘扫描流程图如图3-2所示。

图3-2键盘扫描程序流程图

3.3显示程序设计

本次设计的显示部分在按下开始键时,后两个数码管显示倒计时间,以1s变换一次,并且调用延时程序,此时定时器采用中断方式,可以充分利用CPU。

在有选手按下抢答键时,第一个数码管显示选手号,最后两个数码管显示倒计时,定时器同样采用中断方式。

除此之外,本设计数码管具有闪烁功能,当有违规抢答时,第一个数码管会显示选手号,后两个数码管会闪烁显示FF,一个周期为每秒1次。

以示抢答无效,此时定时器采用定时中断的工作方式。

连接时段选信号接在P0口的P0.0~P0.6七个I/O口上,P1口是准双向I/O接口在输出驱动部分,所以在接电阻时选择接220Ω限流电阻。

而在位选方面采用P2口的P2.0~P2.2,用单片机P2.2三个I/O口作为位选信号的输出口。

第4章系统调试与软件仿真

系统调试包括硬件调试和软件调试,二者密不可分。

我们设计好的硬件电路和软件程序必须经过联合调试才能验证其正确性。

4.1硬件调试

硬件调试分为单元电路调试和联机调试,单元电路调试在硬件电路设计中已经进行,这里只对其印刷版电路进行检验。

线路检查:

根据硬件逻辑设计图,仔细检查电路是否正确,并且核对元器件的型号、规格和安装是否符合要求,必要时可用万用表检测线路通断情况。

先用万用表检查各管脚之间是否有短路、虚焊、漏焊现象。

检查无误后,测试各个芯片是否有损,待检查完毕后,将各个芯片插入各自的槽位。

电源调试:

电路的第一次通电测试很重要,调试方法有两种:

一种是断开电路稳压电源的输出端,检查空载时电源的工作情况;

另一种是拔下电路上的主要继承芯片,检查电源的负载能力。

确保电源无故障并符合性能要求。

通电检查:

首先按下复位键,用万用表测试复位键的第四引脚是否有高电平输出,然后测试其第一管脚是否有低电平输出,如果是的话说明电路连接正确。

然后按下开始键,再按下抢答键1,之后依次按下抢答键2、3、4、5、6、7、8,分别观察数码管有无变化。

最后对蜂鸣器进行验证,看看是否正常发声。

同理分别按下其它7个抢答键进行检查。

4.2WAVE6000集成调试软件

软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

本设计用到了WAVE6000软件,首先打开WAVE6000,将程序输入;

然后进行调试,将程序中的语法错误和逻辑错误纠正,调试完毕后,创建HEX文件,HEX文件用于烧写芯片,将制定程序写入已设计好的电路板中,使其能根据我们的要求实现相应的功能;

最后将HEX文件烧写入AT89C51芯片,运行电路,让其实现八路抢答的功能。

如图4-1所示。

图4-1WAVE6000软件

4.3Proteus仿真

首先将电路图根据设计要求在软件中准确地画出,即进行ISIS原理图设计,我们的仿真也是完全基于ISIS原理图模块下进行的,Proteus有两种截然不同的仿真方式:

交互式仿真和基于图表的仿真,在本设计中我们用到的是交互式仿真,用于校验所设计的电路是否能正常运行。

如图4-2所示。

图4-2八路抢答器原理图

然后将KeiluVision2生成的HEX文件链接到该中原理图,即设计文档的建立。

如图4-3所示。

图4-3建立设计文档

文档建立好之后,按Ctrl+F12开始运行,然后按F12,执行程序。

下面是几组仿真图。

图4-4复位显示FFF图4-5启动开始键,倒计时30s

图4-63号选手非法抢答图4-75号选手正常抢答

第5章总结

此次设计主要以硬件系统为基础,硬件系统关系到电子产品的好坏,如系统的抗干扰性,安全性和可行性等,所以要合理地选择,合理地安排,尽量减少干扰,以提高系统性能。

单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机,以减少对其的干扰,防止程序的混乱现象。

硬件系统的好坏很大部分在于经验,比如焊接是否干净利落,器件是否完好,操作是否规范等,所以我们要有好的动手能力。

而软件设计确实设计的核心,具有多样化,灵活性高,易移植等优点。

首先我们要深深领会各指令的含义才能更加熟练应用。

中断的合理利用可以有效减少对CPU的占用,更好的处理好其他功能。

延时的应用会顺利地实现显示,鸣笛等功能,同时还可以去掉系统固有的不稳定性。

定时的应用则比较实际,能实现我们所需的功能。

软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。

在此次设计中,我总结了很多不足,同时也学到了很多新的知识,并且巩固了课堂知识,但最终设计的系统仍有不足,敬请提出!

参考文献

[1]贾海瀛.数字电子技术与实训.北京:

机械工业出版社,2008.1

[2]张立科.单片机典型模块设计实例导航.第一版.人民邮电出版社,1988

[3]单片机课程设计指导书皮大能北京理工大学出版社2010.7

[4]8051单片机实践与应用吴金戎清华大学出版社2003.8

[5]单片机技术基础教程与实践夏路易电子工业出版社 2008.1

[6]MCS-51单片机原理接口及应用王质朴北京理工大学出版社2009.11

[7]基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2009.7

附录一主程序清单

OKEQU20H;

抢答开始标志位

RINGEQU22H;

响铃标志位

ORG0000H

AJMPMAIN

ORG0003H

AJMPINT00

ORG000BH

AJMPT00

ORG0013H

AJMPINT11

ORG001BH

AJMPT11

ORG0040H

MAIN:

MOVR1,#30;

设抢答时间30s

MOVR2,#60;

设答题时间60s

MOVTMOD,#11H;

设置定时器为模式1

MOVTH0,#0F0H

MOVTL0,#0FFH

MOVTH1,#3CH

MOVTL1,#0B0H;

50ms为一次溢出中断

SETBEA

SETBET0

SETBET1

SETBEX0

SETBEX1;

允许四个中断T0/T1/INT0/INT1

CLROK

CLRRING

SETBTR1

SETBTR0;

一开始运行定时器,开始显示FFF

LOOP:

MOVR5,#0BH

MOVR4,#0BH

MOVR3,#0BH

ACALLDISPLAY;

调用显示FFF子程序

JBP3.0,LOOP1;

判断未开始答题,若有人按下抢答,跳到LOOP1非法抢答处理程序

ACALLDELAY

判断已开始答题,则向下执行

ACALLBARK;

蜂鸣器响

MOVA,R1

MOVR6,A;

将R1中30s送入R6

SETBOK;

复位,用于COUNT中判断是否查询抢答

MOVR7,#01H;

读抢答键按下数,要求只读一次有用信号

MOVR3,#0AH;

抢答时间指显示计时,不显示号数

AJMPCOUNT;

进入COUNT倒计时子程序,查询有效抢答程序

LOOP1:

JNBP1.0,FALSE1

JNBP1.1,FALSE2

JNBP1.2,FALSE3

JNBP1.3,FALSE4

JNBP1.4,FALSE5

JNBP1.5,FALSE6

JNBP1.6,FALSE7

JNBP1.7,FALSE8

AJMPLOOP;

非法抢答查询程序,若没有跳回主程序

FALSE1:

MOVR3,#01H;

1号选手违规

AJMPERROR;

跳转到ERROR非法抢答处理程序

FALSE2:

MOVR3,#02H

AJMPERROR

FALSE3:

MOVR3,#03H

FALSE4:

MOVR3,#04H

FALSE5:

MOVR3,#0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1