基于51单片机8路抢答器.docx
- 文档编号:24892493
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:38
- 大小:879.28KB
基于51单片机8路抢答器.docx
《基于51单片机8路抢答器.docx》由会员分享,可在线阅读,更多相关《基于51单片机8路抢答器.docx(38页珍藏版)》请在冰豆网上搜索。
基于51单片机8路抢答器
一、毕业设计的任务和具体要求:
毕业设计的任务:
1.使学生复习、巩固所学过的理论与专业知识,并予以适当的深化。
2.强调理论联系实际、严肃认真、高度负责的工作态度,从事电路设计和进行分析调试。
3.进一步训练学生的基本技能(如:
搜集资料、整理思路、绘制电路原理图仿真图及PCB图、
发现与分析问题、寻求解决问题的方案、撰写学术论文等>。
4.训练学生掌握计算机软件操作和单片机技术,运用计算机软件及相关专业知识汇编语言等较好完成该项设计任务。
具体要求:
1.抢答器可同时供8名选手或8个代表队比赛,分别用8个按键S1~S8进行抢答。
2.主持人可以通过智能抢答器的按键设定每道题的抢答时间和回答时间。
3.具有清零和非法抢答控制功能,并由主持人操纵,避免选手在主持人说“开始”前提前抢答,违反规则。
4.当主持人启动“开始抢答键”后,定时器进行减计时,在30S内无人抢答表示所有参赛选手或参赛队对本题弃权,抢答时间耗尽后禁止抢答。
5.倒计时5S时,如果仍无人抢答,则系统每1S报警一次,用以提示参赛选手。
6.抢答器具有锁存与显示功能。
即选手按下按键,锁存相应选手的参赛号码,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,其他按键者将不能响应,以便公平地选择第一个抢答者。
7.参赛选手在设定的时间内进行抢答,抢答有效,显示器上显示选手的编号同时进入回答问题的60S倒计时。
8.倒计时期间,如果主持人想终止倒计时,可以按下“停止”按键,系统会自动进入准备状态。
二、毕业设计应完成的图纸:
图2-14位七段数码管显示电路图,见3页
图2-2独立式键盘,见4页
图2-3行列式键盘,见5页
图2-4抢答按键及调整按键,见5页
图2-5外部振荡源电路,见6页
图2-6复位电路,见6页
图2-7发声电路,见7页
图2-8单片机结构框图,见8页
图2-9AT89S51单片机管脚图,见8页
三、其他要求:
1.先用5V直流电源调试成功后再接电源部分。
2.焊接时注意不要出现不良焊接,以免造成短路。
3.尽量做到简化电路板,使其美观。
四、毕业设计的期限:
自2018年8月30日至2018年11月20日
五、毕业设计<论文)进度计划:
起至日期
工作内容
备注
2018.8.30-2018.9.5
2018.9.6-2018.9.19
2018.9.20-2018.9.26
2018.9.27-2018.10.10
2018.10.11-2018.10.17
2018.10.18-2018.10.24
2018.10.25.-2018.11.14
2018.11.15-2018.11.20
确认题目为《8路智能抢答器》
图书馆或上网查资料
去买相应的电子元器件
研究电子元器件的使用方法和用途
研究《8路智能抢答器》电路原理图
运用汇编语言编写相应的程序
焊接调试及测试元件
写论文进行总结
成员积极参与毕业设计,认真拟定毕业设计方案计划,在老师的精心指导下,不懈努力,从设计之初到设计完成,提高了动手实践能力,从中收获到了宝贵的经验。
基于51单片机的8路抢答器
摘要
此次设计提出了用AT89S51单片机为核心控制元件,设计一个简易的抢答器,本方案以AT89S51单片机作为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的八路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用汇编语言编程,使其实现一些基本的功能。
本设计的系统实用性强、判断精确、操作简单、扩展功能强。
它的功能实现是比赛开始,主持人读完题之后按下总开关,即计时开始,此时数码管开始进行30s的倒计时,直到有一个选手抢答时,对应的会在数码管上显示出该选手的编号和抢答所用的时间,同时蜂鸣器也会发出声音,以提示有人抢答本题,如果在规定的60s时间内没有做出抢答,则此题作废,即开始重新一轮的抢答。
在抢答和回答时间的最后5s,蜂鸣器都会给予报警提示。
关键词:
单片机、AT89S51、抢答器
第一章前言1
第二章各模块的选择和论证3
2.1抢答器显示模块选择3
2.2控制器选择4
2.3键盘选择5
2.4时钟频率电路的设计7
2.5复位电路的设计7
2.6报警电路8
2.7AT89C51单片机简单概述8
2.7.1AT89C51单片机的结构8
2.7.2AT89C51单片机管脚说明9
第三章模块最终方案的设计12
3.1总体设计思路12
3.2功能介绍12
3.3抢答器的软件设计12
3.4数码显示软件设计13
第四章系统调试与仿真15
4.1软件调试问题分析15
4.2Proteus仿真16
第五章电路板的制作与检查17
5.1焊接的问题及解决17
第六章总结18
6.1论文总结18
6.2工作展望19
参考文献、资料索引20
致 谢21
附录22
附录一主程序清单22
附录二单片机八路智能抢答器原理图32
附录三Proteus仿真原理图33
第一章前言
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机按其内部中央处理器CPU(CentralProcessingUnit>的字长分为1位机、4位机、8位机、16位机等。
从1976年8位单片机诞生以来,单片机领域中一直是以8位机为主流机型,预计这种情况还将继续下去。
因此我们以Intel公司的8位机为例来谈谈单片机的发展历史。
1.第一阶段——单片机阶段(1976年~1978年>。
这阶段的任务是探索计算机的单芯片集成。
以Intel公司的MCS-48为代表,其CPU、存储器、定时器/计数器、中断系统、I/O端口、时钟以及指令系统都是按嵌入式系统要求专门设计的。
参与这—阶段探索的公司还有Motorola、Zilog等。
2.第二阶段——单片机的完善阶段(1978年一1982年>。
计算机的单芯片集成探索取得成功后,随后的任务就是要完善单片机的体系结构。
作为这一阶段的典型代表是Inlel公司将MCS—48向MCS—5l系列的过渡。
它在以下几个重要方面奠定了单片机的体系结构。
1.完善的外部总线。
有8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
2.CPU外围功能单元的集中管理模式。
3.设置面向工控的位地址空间及位操作方式。
4.指令系统突出控制功能。
3.第三阶段——微控制器形成阶段(1983年一1990年>。
这一阶段单片机的主要技术发展方向是满足测控对象要求的外围电路的增强,如A/D转换、D/A转换、高速I/O口、WDT(程序监视定时器>、DMA<高速数据传输)等,强化了智能控制的特征。
4.第四阶段——微控制器全面发展阶段(1990年以后>。
即当前的单片机时代,其显著特点是百花齐放、技术创新。
单片机正在满足各个方面的需求.从玩具、小家电、工业控制单元到机器人、智能仪表,过程控制,个人信息终端等无所不能。
随着微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、微机应用技术的发展,使单片微型计算机也得到迅速的发展,单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域故又称为微控制器。
第二章各模块的选择和论证
2.1抢答器显示模块选择
显示模块主要是显示抢答的时间,组别号码等。
考虑有以下两种显示方案。
方案一:
使用液晶屏显示时间。
液晶显示屏 但因为只需要显示时间和转向、相数这样的数字,信息量比较少,且因为液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。 在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。 方案二: 在使用传统的数码管显示。 数码管具有: 低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高<低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。 数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。 根据以上的论述,我选择采用方案二。 显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。 在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种: 一种是静态显示,一种是动态显示。 其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是: 显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。 在本设计中根据实际情况采用的是动态显示方法。 4位七段数码管显示电路如下图所示。 图2-14位七段数码管显示电路图 上图中数码管采用的是4位一体七段共阳数码管,其中A~H段分别接到单片机的P0口,由单片机输出的P0口数据来决定段码值,位选码COM1,COM3,COM4分别接到单片机的P2.0,P2.1,P2.2,由单片机来决定当前该显示的是哪一位。 在图中还有八个电阻,连接在P0口上,用作P0口的上拉电阻,保证P0口没有数据输出时候处于高电平状态。 通过查表法,将其在数码管上显示出来,其中P0口为字型码输入端,P2口低3位为字选段输入段。 在这里我们通过查表将字型码送给7段数码管显示的数字。 2.2控制器选择 控制器主要用于对显示、抢答、音乐、计分等模块进行控制。 控制器的选择有以下两钟方案。 方案一: 采用FPGA<现场可编程门列阵)作为系统的控制器。 FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。 FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。 但因为本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且因为其集成度高,使其成本偏高,同时因为芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。 方案二: 采用ATMEL公司的AT89S51作为系统控制器的CPU方案。 单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且因为其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。 基于以上分析,我选择采用方案二。 2.3键盘选择 键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。 键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。 在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。 方案一: 独立式键盘 键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。 因此可以根据实际需要对键盘中的按键灵活的编码。 如图2-2。 最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。 独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。 图2-2独立式键盘 方案二: 行列式键盘 行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,在行线和列线的每个交叉点上。 这种形式的键盘结构,能够有效的提高单片机系统中I/O的利用率,列线接P1.0~P1.3行线接P1.4~P1.7,行列适用于按键输入多的情况。 CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲是时才去扫描键盘,响应操作人员的键盘输入,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。 在大多数情况下,CPU对键盘可能进行空扫描。 为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,既CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断请求,向CPU申请中断后,立即对键盘上有键盘进性扫描,识别闭合键,并做相应的处理。 图2-3行列式键盘 图2-4抢答按键及调整按键 2.4时钟频率电路的设计 单片机必须在时钟的驱动下才能工作。 在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。 时钟电路如下图所示。 图2-5外部振荡源电路 一般选用石英晶体振荡器。 此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。 电路中两个电容C1,C2的作用有两个: 一是帮助振荡器起振;二是对振荡器的频率进行微调。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。 其大小是时钟信号频率的倒数。 图中时钟频率为12MHz。 2.5复位电路的设计 单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下所示: 图2-6复位电路 2.6报警电路 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的巨型波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。 本文设计如下图所示。 图中单片机的14脚输出具有复合功能,此处用到了单片机17脚的IO端口功能,单片机通过内部定时器的操作实现交替变换的波形输出驱动扬声器发声。 图2-7发声电路 2.7AT89S51单片机简单概述 2.7.1AT89S51单片机的结构 AT89S51单片机是美国Atmel公司生产低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器 AT89S51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。 图2-8为AT89S51单片机的基本组成功能方块图。 由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。 下面介绍几个主要部分。 图2-8单片机结构框图 2.7.2AT89S51单片机管脚说明 图2-9AT89S51单片机管脚图 ATMEL公司的AT89S51是一种高效微控制器。 采用40引脚双列直插封装形式。 AT89S51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。 VCC: 供电电压。 GND: 接地。 P0口: P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。 当P1口的管脚第一次写1时,被定义为高阻输入。 P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。 在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口: P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是因为内部上拉的缘故。 在FLASH编程和校验时,P1口作为第八位地址接收。 P2口: P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时,P2口的管脚被外部拉低,将输出电流。 这是因为内部上拉的缘故。 P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。 在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。 P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口: P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。 当P3口写入1后,它们被内部上拉为高电平,并用作输入。 作为输入,因为外部下拉为低电平,P3口将输出电流。 P3口也可作为AT89S51的一些特殊功能口,如下表所示: P3口管脚备选功能 P3.0RXD<串行输入口) P3.1TXD<串行输出口) P3.2INT0<外部中断0) P3.3INT1<外部中断1) P3.4T0<记时器0外部输入) P3.5T1<记时器1外部输入) P3.6 <外部数据存储器写选通) P3.7 <外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 ALE/ : 当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。 在FLASH编程期间,此引脚用于输入编程脉冲。 在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是: 每当用作外部数据存储器时,将跳过一个ALE脉冲。 如想禁止ALE的输出可在SFR8EH地址上置0。 此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。 PSEN: 外部程序存储器的选通信号端。 在由外部程序存储器取指期间,每个机器周期两次PSEN有效。 但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /VP: 当 保持低电平时,则在此期间外部程序存储器<0000H-FFFFH),不管是否有内部程序存储器。 注意加密方式1时, 将内部锁定为RESET;当 端保持高电平时,此间内部程序存储器。 在FLASH编程期间,此引脚也用于施加12V编程电源。 XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2: 反向振荡器的输出,如采用外部时钟源驱动器件,应不接。 第三章模块最终方案的设计 3.1总体设计思路 主控制器模块: 采用AT89S51单片机控制 抢答器显示模块: 数码管显示 电源方案的选择: 采用5V电源供电 抢答器键盘模块: 独立式键 3.2功能介绍 如果想调节抢答时间或答题时间,按“抢答时间调节”键或“回答时间调节”键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如果想加1秒按一下“加1秒”键,如果想减1秒按一下“减1秒”键,时间LED上会显示改变后的时间,调整范围为0S~99S,0S时再减1S会跳到99,99S时再加1S会变到0S。 主持人按“抢答开始”键,会有提示音,并立刻进入抢答倒计时<预设30S抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时<预设60S回答时间),不进行抢答查询,所以第一个按抢答的选手有效。 倒数时间到小于5S会每秒响一下提示音。 如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“抢答开始”进入下次抢答计时。 如果主持人未按“抢答开始”键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下“停止”键为止。 3.3抢答器的软件设计 系统软件由主程序和INT0中断服务组成。 主程序由验键,违规显示,倒计时等功能子程序组成,系统完成初始化后循环检查各个功能当用户使用某个功能时,按下相应的按钮<或开关)单片机进入相应的功能处理。 INT0中断服务程序完成抢答信号采样和识别处理。 该智能抢答器以AT89S51单片机为控制核心,控制精度较高,操作误差主要来自晶振自身所造成的误差。 其他外围电路包括复位电路、时钟电路、报警电路、LED显示电路、抢答按键、功能设置键等。 该智能抢答器具有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定;通过按键扫描输出按键信息,并通过单片机将它转化为在七段数码管上显示的字形符。 单片机的P1口为8组抢答按键的输入口,P0.0~P0.6为数码管的段选口,P2.0~P2.2为数码管的片选口。 外部中断INT0和INT1分别为抢答时间和回答时间的调整口,P3.4和P3.5分别实现时间调整时的加1和减1功能;P3.6为报警电路的控制口。 3.4数码显示 数码显示管用来作为时间的显示输出,一般用7段数码显示管。 本次设计中采用7段共阳数码显示管应用简单、可靠性高、成本低,作为显示输出。 连接时段选信号接在P0口的P0.0~P0.6七个I/O口上,P1口是准双向I/O接口在输出驱动部分具有驱动4个TTL负载的能力,即输出电流不大于400μA,所以在接电阻时选择接510Ω限流电阻。 而在位选方面采 用P2口的P2.0~用单片机P2.2三个I/O口作为位选信号的输出口。 第四章系统调试与仿真 系统调试包括硬件调试和软件调试,而且两者是密不可分的。 我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。 硬件调试分单元电路调试和联机调试,单元电路实验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后实验电路是否正确,并排除一些加工工艺性错误<如错线、开路、短路等)。 这种调试可单独模拟进行,也可通过开发装置由软件配合进行,硬件联机调试则必须在系统软件的配合下进行。 软件调试一般包括分块调试和联机调试两个阶段。 程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。 这时该程序功能块已调试完毕,可去掉附加程序段。 其它程序功能块可按此法进行调试。 程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。 从而实验程序整体运行的完整性、正确性和与硬件电路的配合情况。 在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。 在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。 系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。 4.1软件调试问题分析 数码管显示问题: 本次设计的最终方案是采用数码管显示屏实现显示功能,最初数码管显示不正常,出现闪烁现象。 通过调试发现这是因为延时时间选择不当会使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 抢答