基于单片机实现的六路抢答器设计毕业设计.docx
- 文档编号:22821828
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:41
- 大小:557.35KB
基于单片机实现的六路抢答器设计毕业设计.docx
《基于单片机实现的六路抢答器设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的六路抢答器设计毕业设计.docx(41页珍藏版)》请在冰豆网上搜索。
基于单片机实现的六路抢答器设计毕业设计
一、六路抢答器设计任务及要求……………………………………………………1
1.1设计任务……………………………………………………1
1.2设计要求……………………………………………………………………1
1.2.1系统设计要求…………………………………………………………1
1.2.2设计目标………………………………………………………………
二、系统组成及工作原理……………………………………………………2
2.1方案选择……………………………………………………………………2
2.1.1利用译码芯片………………………………………………………2
2.1.2利用单片机…………………………………………………………2
2.2原理分析……………………………………………………………………3
2.3设计方案…………………………………………………………………3三、抢答器硬件系统设计……………………………………………………4
3.1时钟电路和复位电路………………………………………………………4
3.1.1时钟电路………………………………………………………………5
3.1.2复位电路……………………………………………………………5
3.2键盘电路…………………………………………………………………6
3.3显示电路………………………………………………………………7
3.3.1显示驱动电路………………………………………………………7
3.3.2显示报警电路…………………………………………………………8
3.4芯片介绍…………………………………………………………9
3.4.1集成芯片AT89S52……………………………………………………9
3.5共阳数码管介绍…………………………………………………………11
四、软件系统设计………………………………………………………………12
4.1设计思想………………………………………………………………12
4.2资源分配………………………………………………………………12
4.3程序设计流程图……………………………………………………13
4.3.1定时器中断服务程序流程………………………………………13
4.3.2抢答违规流程图……………………………………………………13
4.3.3显示程序流程……………………………………………………14
4.3.4主程序流程图……………………………………………………15
五、调试及使用说明…………………………………………………………16
5.1实物调试……………………………………………………………16
5.2使用说明……………………………………………………………16
六、设计心得体会及教学建议………………………………………………17
6.1设计体会……………………………………………………………18
6.2教学建议……………………………………………………………18
致谢…………………………………………………………………………………19
参考文献……………………………………………………………………20
附录Ⅰ电路原理图…………………………………………………………21
附录ⅡPCB元器件布局图……………………………………………………22
附录ⅢPCB顶层图…………………………………………………………23
附录ⅣPCB底层图…………………………………………………………24
附录Ⅴ元器件清单……………………………………………………………25
附录Ⅵ程序清单……………………………………………………………27
一、六路抢答器设计任务及要求
1.1设计任务
设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S0、S1、S2、S3、S4、S5。
要求一人一组在一周时间内完成实物并打印《单片机技术》课程设计说明书一份。
1.2设计要求
1.2.1系统设计要求:
(1)该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态;
(2)主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;
(3)主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;
(4)正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号;
(5)在30S,内选手提前答完,由主持人按下停止,并显示答题时间,主持人按复位,等待下一轮抢答:
(6)各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮;
1.2.2设计目标:
(1)通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能;
(2)熟悉电路中所用到的各集成芯片的管脚及其功能;
(3)进行电路的装接、调试,直到电路能达到规定的设计要求;
(4)掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力告,以后从事电子电路设计、研发电子产品打下良好的基础。
二、系统组成及工作原理
2.1方案选择
2.1.1利用译码芯片
先根据74LS148的优先功能,确定了先抢答到的选手的编码号,再根据74LS279的锁存功能,将其信号保持下来,并实现了锁定功能,将选手的编码锁定。
再者,根据74LS48的译码功能,将74LS279锁定的数字编译成二进制,将信号送到显示器中。
这样就实现了抢答功能。
原理框图如图2.1所示。
图2.1原理框图
2.1.2利用单片机
可以利用单片机的定时/计数器进行计时,设定抢答时间和答题时间;可以利用单片机的I/O口线接按键,通过按键按下后,所接口线电平的变化来判断那位选手按下键。
我选择利用单片机做抢答器。
2.2原理分析
根据对功能要求的简要分析,将定时抢答器电路分为主题电路和扩展电路两部分。
主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答器按钮时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。
扩展电路完成定时抢答及报警功能。
比赛开始时,接通电源,节目主持人将开关置于“清零”位置,抢答器处于禁止工作状态,编号显示器灭灯,定时显示器上显示设定时间。
当节目主持人宣布“抢答开始”,同时将控制开关拨到“开始”位置,抢答器处于工作状态,定时器开始倒计时。
若定时时间到,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。
若选手在定时时间内按动抢答按钮时,抢答器要完成以下四项工作:
1.优先编码器电路立即分辨出抢答者的编号,并由锁存器进行锁存,然后由译码显示电路显示编号;
2.扬声器发出短暂声响,提醒节目主持人注意;
3.控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;
4.控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人将系统清零为止。
当选手将问题回答完毕时,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。
上述方案所示抢答器的工作过程:
主持人按动开始抢答的开关后,最先抢答的选手的电平信号先经过优先编码器,再依次经过数据锁存器,此时已经限制了其他选手的抢答,信号再经过译码器和七段数码显示器,将最先抢答的该选手的编号显示出来,并同时产生报警信号,到此完成的是抢答功能;如果没有人抢答,30秒减计数器减到00时也会发出报警信号,此时完成计时功能。
它的优点表现在以下几个方面:
这种方案原理比较简单。
主持人对整体电路的控制只需几个门电路就可完成,不必用特别的芯片来组成控制电路;更容易实现报警提示功能,在有选手抢答后或者计时开始和结束时。
既减少了布线使整个电路更直观简单,又降低了产生错误的可能性。
2.3设计方案
本系统采用AT89S52单片机作为核心,该系统需要单片机产生内部脉冲,控制单处机的运行速度.选手的抢答通过连接P1口的按键完成,主持人置位/复位通过复位电路完成.抢答完成后,选手作答.时间显示在数码管上.因此该系统所需的模块分别为:
单片机最小系统、显示模块、显示驱动模块、抢答开关模块。
抢答器原理框图如图2.3所示。
图2.3抢答器原理框图
设计出总体框图之后,然后进行单元电路设计。
单元电路设计分为时钟和复位电路、键盘电路、显示驱动电路、违规报警电路等。
再根据课程设计选题中所提供的参考器件,设计出总体电路图见附录。
三、抢答器硬件系统设计
本抢答器的硬件系统包括以下几个部分:
3.1时钟电路和复位电路
3.1.1时钟电路
单片机的时钟信号是利用单片机内部时钟电路产生的。
如图3.1.1所示,用于产生单片机工作所需要的时钟信号,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片外部,XTAL1和XTAL2之间跨接晶体震荡器和微调电容,从而构成一个稳定的自激震荡器,这就是单片机的时钟电路。
时钟电路产生的震荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
在此电路中,电容C1和C2取30皮法,晶振用12MHz。
时钟信号的产生:
在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器,除使用晶体振荡器外,如对时钟频率要求不高,还可以用电感或陶瓷谐振器代替。
电路中的电容C1和C2一般取30PF左右(该电子钟采用的是33PF的电容),而晶体的振荡频率范围通常是1.2MHz~12MHz(该电子钟采用的是12MHz),晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
但反过来运行速度快对存储器的速度要求也高,对印制电路板的工艺要求也高(线间寄生电容要小)。
图3.1.1时钟电路图
3.1.2复位电路
手动按钮复位需要人为在复位输入端RST上加入高电平(图3.1.2)。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
图3.1.2复位电路图
3.2键盘电路
键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。
因此可以根据实际需要对键盘中的按键灵活的编码。
最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。
独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。
图3.2.1键盘电路图
键盘电路如图3.2.1所示,当无键按下时,单片机的P1.0~P1.7高电平。
当有键按下时,单片机的相应口线通过按键与地线相连被拉成低电平,其它口线电平状态不变。
因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下。
3.3显示电路:
显示电路可由LED来实现。
此处选用七段数码管选用共阳管,其亮度好,节能,使用简单方便。
3.3.1显示驱动电路:
由于单片机所能提供的电流太弱,需要放大,才能驱动数码管,不加也行,就是很暗。
三极管晶体管有三种工作状态:
(1)截止状态:
当基极电流很小时,无论基极电流如何变化,集电极电流都接近为0,集电极电流不随基极电流而变化,也就是管子不导通;
(2)放大状态:
当基极电流增大到一定值以后,集电极电流此后大于0,且集电极电流随着基极电流而变化,这是放大状态;
(3)饱和状态:
当基极电流继续增大,达到一定值以后,集电极电流此后再也大不上去了,此后即便是基极电流再增加,集电极电流也不能增大,即饱和了。
对于单片机端口通过晶体管驱动负载的情况,无论负载是数码管还是继电器,晶体管都只能工作在截止状态或饱和状态,是不能工作在放大状态的。
也就是说,51的IO口通过驱动数码管亮灭的原理是使三极管工作在饱和区和截至区才能起到电流放大的作用.
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),七它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻,这里的限流电阻选470Ω。
数码显示程序流程如图3.3.1.
图3.3.1数码管显示图
3.3.2显示报警电路
考虑到一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流,见下方原理图3.2.1。
图3.3.2蜂鸣器报警电
蜂鸣器的正极性的一端联接到5V电源上面,另一端联接到三极管的集电极,三极管的基级由单片机的P36管脚通过一个与非门来控制,当P36管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
当P36管脚为高时,与非门输出低电平,三极管截止,蜂鸣器不发出声音。
在这里与非门是作为非门来用的,这里采用一个非门的作用是为了防止系统上电时峰鸣器发出声音,以为系统复位以后,I/O口输出的是高电平。
用户可以通过程序控制P36管脚的置低和置高来使蜂鸣器发出声音和关闭。
蜂鸣器的声音大小及音调可以通过调整P36管脚的置高时间及输出的波形进控制,这一点可以在调试程序的时候来试验.
图3.3.3指示灯报警电路
当P3.2为低电平时,二极管变亮,指示报警。
3.4芯片介绍
3.4.1集成芯片AT89S52
AT89S52是一种低功耗、高性能的CMOS工艺的8位单片机。
它带有8KB的可在线编程的Flash存储器,该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业上标准型80C51单片机的指令系统及引脚完全兼容;片内的Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景
图3.4.1集成芯片AT89S52图
AT89S52单片机为40引脚芯片如图3.4.1所示,具有PDIP,PLCC和TQFP3钟封装形式。
(1)VCC:
电源。
(2)GND:
地线。
(3)P0口:
是一个8位漏极开路的双向I/O口。
作为输出口,每个引脚可吸入8个TTL输入。
当把“1”写入P0口的引脚时可作为高阻输入。
当访问外部程序存储器和数据存储器时,P0口也可作复用的地址/数据总线。
在此状态下,P0口有内部上拉电路。
P0口也在Flash编程时,接收代码字节,而在程序校验时,输出代码字节。
在程序校验期间,需要外部上拉电路。
(4)P1口:
是一个具有内部上拉电路的8位双向I/O口。
P1口的输出缓冲器能够吸入/放出4个TTL输入。
当对P1口的引脚写“1”时,它被内部上拉电路拉高,并能作输入使用,作为输入时,由于上拉电路的作用,由外部拉低的P1口引脚将放出电流(IIL)。
(5)P2口:
是一个具有内部上拉电路的8位双向I/O口,P2口输出缓冲器能吸入/放出4个TTL输入。
当对P2口引脚写“1”时它们被内部上拉电路拉该,并能作为输入使用,此时,由于内部上拉电路的作用,被外部拉低的P2口引脚将放出电流(IIL)。
当访问外部程序存储器及使用16位地址的是数据存储器(MOVX@DPTR)时,P2口输出高8位地址。
这种情况下,当不置“1”时,P2口使用强大的内部上拉电路。
当访问使用8位地址的外部存储器(MOVX@RI)时,P2口输出P2口锁存器的内容。
(6)P3口:
是一个具有内部上拉电路的8位双向I/O口,P3输出缓冲器能吸入/放出4个TTL输入。
当对P3口引脚写“1”时,则它们被内部上拉电路拉高,并能作为输入使用。
此时,由于内部上拉电路的作用,被外部拉低的P3口引脚将放出电流
(7)P3口也提供AT89C52各种专用功能,表3.1为AT89C52的P3口第二功能。
表1P3口第二功能
P3口引脚
替代的专用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
(8)RST:
复位端。
当振荡器工作时,此引脚上出现两个机器周期的高电平将系统复位。
(9)ALE/PROG:
当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地址的低8位字节的书粗脉冲。
在Flash编程期间,此引脚也可用于输入编程脉冲(PROG)。
在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲,它是用作对外输出的时钟,需要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
如果希望禁止ALE操作,可通过将特殊功能寄存器中位地址为8EH那位置的“0”来实现。
该位置的“1”后。
ALE仅在MOVE或MOVC指令期间激活,否则ALE引脚将被略微拉高。
若微控制器在外部执行方式,ALE禁止位无效。
(10)PSEN:
外部程序存储器读选取通信号。
当AT89C52在读取外部程序时,每个机器周期将PSEN激活两次。
在此期间内,每当访问外部数据存储器时,将跳过两个PSEN信号。
(11)EA/Vpp:
访问外部程序存储器允许端。
为了能够从外部程序存储器的0000H至FFFFH单元中取指令,EA必须接地,然而要注意的是,若对加密位1进行编程,则在复位时,EA的状态在内部被锁存。
执行内部程序EA应接VCC。
不当选择12V编程电源时,在Flash编程期间,这个引脚可接12V编程电压。
(12)XTAL1:
振荡器反向放大器输入端和内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器输出端。
3.5共阳数码管介绍
四位一体数码管有四个位控脚,八个段控脚,四位一体数码管内部结构图如3.5.1所示,四位一体数码管外观图如3.5.23所示,四位一体数码管采用动态显示。
图
3.5.1四位一体数码管内部结构图
图3.5.2四位一体数码管外观图
四、软件系统设计
4.1设计思想
把八个选手的按键接在P1口,在P1口接上拉电阻。
如果有键按下,接这个键的口线将被拉低,通过键扫判断那根口线被拉低,得到键值,显示到数码管上。
主持人按启动键,开启定时器0,有选手抢答,开启定时器1。
4.2资源分配
(1)定时/计数器的使用
定时/计数器0,定时功能,工作方式1,定时50ms。
定时/计数器1,定时功能,工作方式1,定时50ms。
(2)中断源的使用
定时/计数器0,计满20次即得秒计时单位。
定时/计数器1,计满20次即得秒计时单位。
(3)按键设定
P1.0-P1.7分别设定为S1-S8按键,其中S1-S6接P1.0-P1.5分别代表6个参赛抢答选手。
S7接P1.6,作启动键。
S8接P1.7,作抢答停止和复位按键。
八个选手按键全接在P1口,方便抢答和控制.
(4)数码管的使用
P0.7-P0.0段控线,分别接led1和led2的显示dp,g,f,e,d,c,b,a,采取并联的接法。
P2.0-P2.3位控线,分别接led1的4、3、2、1,P2.4—P2.7位控线,分别接led2的4、3、2、1。
4.3程序设计流程图
4.3.1定时器中断服务程序流程
定时器中断服务程序流程如图4.3.1所示。
图4.3.1定时器中断服务程序流程图
4.3.2抢答违规流程图
图4.3.2抢答违规流程图
4.3.3显示程序流程
显示程序流程如图4.3.3所示
图4.3.3显示程序流程图
4.3.4主程序流程图
主程序程序流程图如图4.3.4所示
图4.3.4主程序程序流程图
五、调试及使用说明
5.1实物调试
(1)显示器上不显示数字,我们从后级往前级进行测试,首先用1.5~2V的电压作用各个笔段,看对应各笔段是否亮,判断是否完好。
若完好则继续检测三极管芯片是否烧坏。
然后再看与数码管的引脚焊接是否都是实焊.看是否能显示数字。
无显示的故障一般问题出在这两个环节。
(2)显示器上显示的是不符合要求的数字,在设计原理正确的前提下,先通过测试判断AT89S52的输出口与LED管的a~g笔段是否连接有错。
其方法是AT89S52的输出P0.1-P0.7分别按规律输入高低电平,观察LED管是否显示相应的数字。
如果这个环节正常,则问题在二极管编码电路,再逐一进行检查。
(3)在测试的过程中我们一定要注意,高低电平的测试电压数值要针对不同的电路而选取不同的数值。
比如,针对LED管,高电平只能用1.5~2V,而在CD4511的输入端高电平要用到8V以上的电源电压。
选高了,会烧管子;选低了,会看不到效果,甚至产生误判断。
(4)当一切都检查好了且都没有问题之后,导入程序发现数码管能够正常显示,但是有一些位比较亮有一些位则比较暗.检查程序发现是延时不够,加长延时时间之后一切显示正常.
5.2使用说明
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人有两个键,启动键和复位键。
(1)主持按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;
(2)主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用。
比如1号选手在主持人按下启动键之前抢答,他违规,显示器显示违规台号1,同时违规指示灯亮。
(3)正常抢答,显示器显示台号,蜂鸣器发出声响,其它抢答按钮无效。
比如1号选手正常抢答,显示器显示台号1,蜂鸣器发出声响。
(4)正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号,蜂鸣器发出声响。
比如1号选手在答题30s内没有答完题,超时处理,违规指示灯亮,显示器显示违规台号1。
(5)显示器各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮,主持人有权在任何时候停止抢答。
六、设计心得体会及教学建议
6.1设计体会
通过本次毕业设计熟悉了PCB制作的流程,硬件设计和软件设计。
protel99中画PCB时应意线的宽度,线距,最重要的是布局,如果布局合理,线就比较少,甚至布出单面板,一定要注意焊盘的大小,太小了,打孔时会把焊盘打掉,太大了布出的线会有很多。
在转印PCB时一定要把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 抢答 设计 毕业设计