基于STC89C52RC单片机的智力抢答器Word文件下载.docx
- 文档编号:22094946
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:50
- 大小:2.38MB
基于STC89C52RC单片机的智力抢答器Word文件下载.docx
《基于STC89C52RC单片机的智力抢答器Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于STC89C52RC单片机的智力抢答器Word文件下载.docx(50页珍藏版)》请在冰豆网上搜索。
在整个系统结构中相当于人体的大脑,它出现问题,整个系统就会出现瘫痪。
当代,单片机的应用非常广泛,如自动调节仪表、移动设备、智能万用表、娱乐设备、智能开关等。
新型产品配备了单片机,那它将被称为智能型。
如智能电饭锅等。
在知识竞赛抢答过程中,为了精确的知道哪一组或哪一位选手抢答到问题,必须要有个系统完成这样的任务。
如果在抢答过程中,只靠人的视觉或听觉是很难判断出是哪一组或哪一位选手先抢答到问题的。
利用单片机编程来设计抢答器并实现判断功能,就可以解决上述问题,即使两组的抢答时间相差几微秒,也能轻松分辨出是哪一组或哪一位选手先抢答到问题的。
本设计介绍了抢答器的工作原理及设计,以及主要用途。
基于单片机的智力抢答器的设计包括硬件设计和软件设计两部分,硬件设计可以用AltiumDesigner或Proteus设计完成,软件设计可以用KeilC51完成,设计完成后还可以通过Proteus和KeilC51联机进行仿真。
1.1课题研究的背景及意义,国内外有关本课题的研究动态
1.1.1课题研究的背景
随着社会经济和文化的发展,在很多公开竞争场合要求有公平的竞争裁决,因此出现了抢答器。
早期的抢答只由几个三极管、可控硅、发光管等组成,能通过发光管的指示分辨出选手号码。
随着发展,抢答器的制作不断的改进,现在大多数抢答器使用了单片机(如MCS-51)和数字集成电路,也增加了写功能,比如可以显示选手的号码,提前抢答或超时间的抢答的计时,选手得分的显示等功能。
但是也有很多不足之处。
比如小规模的数字逻辑电路比较复杂,用单片机设计的抢答器解决了以往设计方法中的不足之处,比如增强了时序控制的灵活性,同时由于输入输出端口丰富,可以在本设计的基础上稍加修改就可以设计具有更多组输入的抢答器。
同时也使我们能更完整了解单片机的开发流程,从而优化了设计项目,提高了设计效率。
在许多比赛活动中看,为了准确、公平、公正、直观地判断出第一抢答者,通常需要一台抢答器,通过数码显示管、蜂鸣等手段指示出第一抢答者。
所以,研究智力抢答器具有较强的实际意义。
我们采用STC89S52RC单片机来设计,从而巩固了自己的专业知识,也有利于提高自己分析问题的能力,让理论与实际得到完美的结合。
对KeilC51语言有了更深层次的掌握,对单片机的设计流程也有了更系统的学习。
1.1.2课题研究的动态
目前由于各种控制系统越来越偏向于智能化,小型化,低功耗,快速稳定准确。
越来越多的系统设计概念股偏向于EDA(电子设计自动化),比如VHDL(硬件描述语言)和FPGA设计,它克服了使用单片机设计系统同时I/O端口不足的问题,也克服了使用模拟电路和数字电路设计系统时硬件电路比较复杂和成本比较高的问题。
智力抢答器作为一种电子产品,早已广泛应用与各种智力和竞赛场合,但目前所使用的抢答器有的电路比较复杂不便于制作,可靠性低,实现起来很困难;
有的就用一些专用的集成块,而专业集成块的购买又比较困难。
抢答器由单片机以及外围电路组成,由于采用单片机,使得外围电路非常简单,但是功能并不比一般的抢答器少。
根据其搭配的配件不同,又分为非语音非计分抢答器和语音计分抢答器。
多适用于学校和企事业单位举行的简单的抢答活动。
非语音计分抢答器构造很简单,就是一个抢答器的主机和一个抢答按钮组成,在抢答过程中选手是没有记分的显示屏。
语音计分抢答器是有一个抢答器的主机和主机的显示屏和选手的计分显示屏。
而我们设计的就是语音计分抢答器中特例。
1.2课题研究的主要内容、拟解决的关键性问题
1.2.1课题研究的主要内容
可显示优先抢答代表队的编号,同时给出提示,并封锁输入,禁止其他选手抢答。
定时时间已到,无人抢答,本次抢答无效,其主要技术参数如下:
(1)可同时供16个代表队参加比赛
(2)给节目主持人一个控制开关,用来控制系统清零和抢答开始。
(3)具有蜂鸣报警功能。
(4)有数码显示功能。
1.2.2拟解决的关键性问题
16路智力抢答器设计关键性问题主要有总的硬件电路的设计,软件程序的设计。
具体的就包括4*4矩阵键盘设计,控制电路设计,LED显示电路设计及4*4矩阵键盘程序设计,控制电路设计程序设计,报警电路程序设计和延时程序等。
1.2.3自己的见解
我们都知道,任何一件东西有其优点自然也会尤其缺点,从哲学的角度看,任何事物都具有两面性,都是辩证存在的。
用单片机设计16路智力抢答器自然也一样,有其优点也有其缺点。
单片机设计系统时比较简单,硬件电路省去了很多复杂的电路,不像模拟电路和数字电路一样,设计起来比较复杂,也由于目前市场上的单片机已经发展很成熟,也是大批量的生产,市场价格比较便宜,所以设计成本低廉。
单片机越来越普遍的应用,使得我们对单片机有一种熟悉感,再加上我们目前接触和学习较多的也是单片机。
这给我们使用单片机来设计系统时提供了很大的人为方面的便利。
当然事物是辨证存在的,由于单片机有其固定的端口(40引脚),所以我们在设计比较大的系统时可能会出现I/O端口不足的情形,这给我们设计系统时带来了很大的不便。
如果我们要继续使用单片机来设计,就需要扩展芯片的功能,使其有足够的引脚来满足系统设计的要求,比如说8255的扩展。
I/O端口不足,需要用到其他芯片扩展,也增加了系统设计的成本。
第2章方案论证与比较
方案一:
采用纯数字逻辑电路实现
图2-1
优点是:
不用编程、思路简单、便于调试和掌握。
缺点是:
传统的方案实现定时抢答器的设计是以中规模的数字集成电路为主的。
这种集成电路的集成度不高,所以需要的芯片便相应的较多。
定时(如30秒)需要一个独立的定时电路,类似的报警音频发生,显示译码,数据锁存等,这些均为一些与主控制电路分离的专设分立电路,因此硬件电路较为复杂,所以产品体积就相应较大,携带起来不方便,而且中规模集成成品以后很难扩展功能(例如:
扩展多个定时:
45秒,60秒,90秒),因为它只能用于固定模式,所以不适用于现代发展的需要。
此外,由于采用逻辑芯片受外界条件影响大,容易产生较大失真,难于调试。
方案二:
采用单片机实现
硬件简单、功能齐全、,操作方便、成本较低、灵敏可靠。
用单片机内部时钟定时,功能也可根据需要自行扩展。
内部译码器的嵌入,更是减少了CPU负担及软件编写的复杂性。
利用单片机进行控制不但电路图简单,而且适用于多种条件下,还可方便扩展。
由于89C52的输出灌电流弱小,驱动能力很弱,在实际的应用中不能直接作为报警、数码显示等外围设备的驱动。
为此,理论上我们在蜂鸣器前需外加NPN型晶体管以放大驱动电流,才能使sounder正常工作。
综合比较,本设计采用方案二。
在抢答过程中,抢答器可以精确的判断哪一组或哪一位选手先抢答。
基于单片机的抢答器更是使外围电路变得简单,实现起来比较灵活,可靠性也很高,造价也很便宜。
本设计中抢答器的工作过程为:
STC89C52RC单片机上电复位,两位共阴极数码管显示30(即30秒倒计时)。
开始键没有按下时,单片机对增大、减小键扫描,此时按下增大键(或减小键)可对限时时间作增(或减)操作;
当开始键按下时,数码管进入倒计时,此时单片机对矩阵键盘进行扫描,当有按键按下时,凤鸣提示,并显示按下选手号码,当无按键按下时,倒计时5秒时有蜂鸣提示。
抢答结束,数码管显示0。
选手继续抢答无效。
按复位键重新开始,其他键无效。
设计思路:
1)选择程序编译器KeilC51及仿真软件Proteus;
2)设计系统框图并进行系统分析;
3)元件的选择及采购;
4)在Proteus中设计硬件布局及I/O连接;
5)程序的设计及编译;
6)硬件的焊接;
7)调试运行。
第3章硬件电路设计
3.1系统框图
STC89C52RC单片机要实现主持人按开始键后,抢答器开始30秒倒计时。
30秒之内有人抢答,则在LED数码管上显示该代表队编号并封锁输入,其他选手抢答无效。
此是按下开始键,复位键有效。
在开始抢答之前,主持人可预先设定抢答时间和限时时间。
系统具有声光提示功能。
由我们分析可以看到,核心部分还是STC89C52RC单片机,基于STC89C52RC单片机的系统框图如图3-1所示:
图3-1
3.2系统分析
智力抢答器设计采用STC89C52RC单片机进行设计,在STC89C52RC单片机的4个8位的I/O中,一个口(如P0口)控制七段数码管的显示,一个口(如P2口)驱动数码管即接数码管的DP接口,另一个口(如P1口)作为控制电路,控制抢答器的开始、停止、抢答时间的调节及限时时间的调节,最后一个口(P3口)则作为输入口也就是抢答器按钮,而往往我们在设计电路的时候,抢答器按钮一般设计成键盘形式,由于在本课程设计的要求中要求有16个代表队抢答,所以剩下的最好一个8位的I/O如果设计成独立键盘(要求每个端口控制一个按钮)的形式,8位的I/O并不满足16组抢答的要求,所以这里我们采用4×
4矩阵键盘的设计方案,满足了16个代表队抢答的要求。
从上面的分析可以看到,我们并不需要用8255进行键盘扩展,只需将它设计成矩阵键盘就可以达到要求。
也不存在单片机本身输入输出口不足的情况。
智能抢答系统接口的硬件设计主要包括时序控制电路、复位电路、抢答电路、显示电路、报警电路、控制电路几部分。
按键分两个部分:
一部分按键对应选手的号码,即当在规定的时间内第一个按键,对应号码就会在显示屏上显示。
另外一个按键为复位键,由主持人操控,键按下则清屏并开始计时。
同时可用数码显示器来完成显示功能。
具体操作过程为:
开始新的一轮答题时,主持人按复位键,初值为30秒的定时器开始倒计数,并在数码管上显示。
若此时有选手按下按键答题,则单片机扫描输入该选手的号码,并输出控制数码管显示该号码,同时封锁其他选手按键;
若一轮抢答过程中,无人按键答题,定时时间到则蜂鸣器响报警,并禁止任何选手按键。
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
1、选择元件:
P按钮
常用元件所在库及名称:
表3-1
名称
所在库名
元件名
51单片机
Microprocessor
AT89C51
电阻
Resistors
—
排阻
RESPACK
电容
Capacitors
晶振
Miscellaneous
CRYSTAL
三级管
Transistors
7段数码管(共阴极)
Optoelectronics
7SEG-COM-CAT
LED
LED-BLUE/GREEN
2、选择要使用的元件
在PickDevice窗口双击相应元件名称,即可将元件添加到主界面左侧的列表中。
3、放置元件到绘图区
单击列表中的元件,然后在右侧的绘图区单击,即可将元件放置到绘图区。
(每单击一次鼠标就绘制一个元件,在绘图区空白处单击右键结束这种状态)。
4、删除元件
右击元件一次表示选中(被选中的元件呈红色),选中后再一次右击则是删除。
5、移动元件
右击选中,然后用左键拖动。
6、旋转元件
左下角旋转工具栏。
7、元件连线
在引脚上鼠标指针变成X状,单击,移动到目的引脚,再次单击。
8、删除连线
同删除元件。
9、绘制电源和地
单击工具栏上的左起第8个工具(Inter-SheetTerminal),左侧工具栏显示TERMINALS,可在其中选择POWER或GROUND,像放置元件一样放置到绘图区。
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
3.3功能模块设计
智力抢答器设计功能模块的核心为STC89C52RC单片机。
在进行各功能模块设计之前先来简单了解一下STC89C52RC的功能。
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
4.用户应用程序空间为8K字节。
5.片上集成512字节RAM。
6.通用I/O口(32个)复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。
8.具有EEPROM功能。
9.具有看门狗功能。
10.共3个16位定时器/计数器。
即定时器T0、T1、T2。
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。
12.通用异步串行口(UART),还可用定时器软件实现多个UART。
13.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)。
14.PDIP封装。
引脚功能说明:
Vcc:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P1口的5、6、7引脚具有第二功能,主要用于ISP在线编程。
Flash编程和程序校验期间,P1接收低8位地址。
P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVE@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR))区中P2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其他控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口还接手一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
ALE/~PROG:
当访问外部程序存储器或数据存储器时,ALE(地址所存允许)输出脉冲用于所存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
S每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(~PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
~PSEN:
程序储存允许(~PSEN)输出是外部程序存储器的选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次~PSEN有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的~PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H---FFFFH),EA端必须保持低电平(接地)。
需要注意的是:
如果加密位LB1被编程,复位时内部会所存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程电压VPP。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
16路智力抢答器功能模块主要有时钟电路设计,复位电路设计,4*4矩阵键盘设计(抢答电路设计),控制电路设计,LED显示电路设计,报警电路设计。
3.3.1时钟电路设计
3.3.1.1功能分析
时钟电路主要为单片机运行提供时序脉冲,使单片机有效的运行。
单片机时钟电路主要有晶振提供时序,本设计采用12M石英晶体振荡器。
为单片机定时,计时提供了一定依据。
时钟电路的设计有固定的方式,主要有内部时钟方式和外部时钟方式两种。
3.3.1.2时钟电路硬件设计
STC89C52RC中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
由于单片机本身并不集成晶振,电容之类的比较大的器件,所以我们在设计单片机应用系统的时候首先需要对STC89C52RC进行时钟电路设计和复位电路的设计。
在进行时钟电路设计通常有两种方式:
内部时钟方式和外部时钟方式。
内部时钟方式利用单片机芯片内部的振荡器(接有负反馈电路的反相放大器),并在单片机外部引脚XTAL1、XTAL2两端跨接晶体谐振器(简称晶体或晶振)和电容,就构成了稳定的自激振荡器,产生的脉冲信号直接直接送入内部时钟电路。
外接晶振时,C1和C2的志通常选择30pF左右,C1和C2对时钟频率有微调作用.为了减小寄生电容,更好地保证振荡器稳定可靠的工作,晶振和电容应尽可能地安排得与单片机引脚XTAL1和XTAL2靠近。
89C52单片机内部时钟方式如图3-2所示:
图3-2
89C52时钟系统具有可判断功能,通过闲暇控制位端可关闭CPU的时钟信号;
通过掉电控制位可关闭自激振荡器。
时钟系统的可判断功能主要用于单片机的低功耗管理。
外部时钟方式:
外部时钟方式使用现成的外部振荡器产生的脉冲信号,在此智力抢答器设计中,我们采用12M晶振器。
在外部时钟方式中,外部时钟信号接到XTAL1端,而XTAL2端
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52RC 单片机 智力 抢答