ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:259.19KB ,
资源ID:8006854      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8006854.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于80C51单片机的八路抢答器设计教材.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于80C51单片机的八路抢答器设计教材.docx

1、基于80C51单片机的八路抢答器设计教材专业论文题目:基于80C51单片机的八路抢答器设计摘要:八路智力抢答器是一个可供八个参赛组进行智力竞赛的电路装置,该装置主要是由单片机最小系统、控制电路(八个选手抢答按钮;三个主持人控制按钮;四个修改按钮)、数码显示电路与蜂鸣器电路组成的。单片机(MCU)是目前在电气控制技术中广泛应用的重要元件。它具有体积小,稳定性高,应用范围广,控制能力强,升级改造容易等诸多优点。本论文介绍采用ATMEL公司AT89S52单片机设计八路智能抢答器。软件采用汇编语言编程,汇编语言属于计算机领域的低级语言,具有简明易懂,执行效率高等的优点。智能八路抢答器具有抢答时间与答题

2、时间调整,抢答错误报警提示等功能,可以广泛应用于各类知识竞赛。关键词:抢答器;单片机; 硬件系统; 软件编程基于80C51单片机的八路抢答器设计一、系统概述与原理方框图在文中,我对八路抢答器的总体设计及其主要的功能特点进行简单的分析,并给出它的特点,实现的功能以及系统的简单操作,以对单片机及其控制系统的了解。(一)单片机技术发展的概述与系统问题的提出目前,单片机正朝着高性能和多品种方向发展,单片机的发展正朝着CMOS化,低功耗,小体积,大容量,高性能,低价格和外围电路的内装化等几个方面发展。近几年,由于某种原因CHMOS技术的进步,大大地促进了单片机的CMOS化,此种芯片除了低功耗外,还具有功

3、耗的可控性,使单片机可以工作在功耗精细管理状态,特别是IIC,API等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。 我们设计出的8路抢答器是一种基于MCS-51单片机的硬件和软件设计及实现方法,这种电路设计具有按键有效提示,输入错误提示,控制报警电路,在线修改功能等多种功能,保密性强,灵活性高,特别适用于家庭!办公室!学生宿舍及宾馆等场所。它具有全集成化,智能化,高精度,高性能,高可靠性和低价格等优点,是一个值得推广的一种方法。接下来我们就对方案与设计原理方框图进行比较分析。(二)设计思路与系统组成及主要特点为了使设计更具有针对性,使用性更强,我对其进行精心的

4、设计,在设计过程中,我们想到了很多的设计方案。1设计思路设计一个八路抢答器,可同时供8名选手或者8个代表队参加比赛,他们的编号分别为18,各用一个抢答器按钮,按钮的编号与选手的编号相对应,分别设为S1S8。节目主持人设置一组控制开关,用来控制系统的清零和抢答器的开始,修改抢答时间与答题时间,如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节键进入调节状态。并且抢答器具有数据锁存和显示的功能,抢答开始,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示,此外,要封锁输入电路,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。

5、2 系统的主要特点有:1)该产品的互换性好,响应速度快,抗干扰能力强,外围电路简单易懂,因此相对来说体积小。2) 该系统能用软件的方式设计硬件,所以用软件方式设计的系统向硬件系统的转换是由有关开发软件自动完成的,易操作。3) 具有具体数字显示的功能。4) 可以从以前的组合设计转向真正的自由设计,所以设计的移植性好,效率高。可适合大规模的现场制作。5) 利用按钮进行输入,输入简单。6) 具有智能报警的功能,当选定之后就马上锁定,并且发出音乐声音。大大提高了抢答器的可靠性。7) 因为整个系统可集成在一个芯片上,因此体积小,功耗低,可靠边性更高。3系统组成 硬件电路框架如图1.2所示:硬件部分由单片

6、机控制模块、按键模块、蜂鸣器模块和数码显示模块组成。图1.2二、系统硬件电路的设计(元器件选择) 硬件电路应能完成以下功能:当主持人按下开始键时,参与选手对主持人提出的问题要在最短的时间内作出判断 ,并按下抢答按键回答。当第一个人按下按键后,则在显示器上显示此参赛选手号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。若有人在主持人按下开始键之前按键,应有违规提示。当选手开始答题时,电路具有倒计时功能,倒计时时间可以设置并显示,倒计时时间到时提醒主持人时间到。如果在规定时间内没有人抢答则蜂鸣器报警提示。回答完或超时后,由主持人将所有按键恢复,重新开始下一轮答题。(一)单片机控制模块

7、该模块采用AT89C52单片机作为核心控制元件,它对整个抢答器起到控制作用。当主持人按下开始按键后,选手就可以按下自己的抢答键进行抢答,当主持人没有按下开始键时,选手按下自己的抢答键是无效的。AT89C52(二)按键输入模块(加口电路的介绍)该模块主要由两部分组成,一部分是主持人按键起到控制的作用,一部分是选手按键。其中,主持人按键起到控制的作用,当主持人没有按下开始键时,选手不能抢答。另外,当选手答题完毕后,主持人要按下复位键,准备进行下一轮的抢答,当在规定的时间内,没有选手抢答时,主持人也要按下复位键,使其进入下一轮的抢答。按键开关是实现人机对话的最简单地输入设备,通过它能随时发出各种控制

8、指令和数据到单片机。按键输入模块的基本工作原理:当有按键被按下时按键所接的单片机端口引脚接地,其引脚电平为0,未按下时引脚电平为1。所以,判断按键开关是否有信号输入,是通过测量按键所接的引脚电平高低,当检测到按键所接引脚的电平为0时,说明该按键被按下,然后再检测到电平为1时,说明按键按下后又被放开,完成一次信号输入的过程。单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。通常采用上电自动复位和按键手动复位两种方式。当运行出错或进入死循环时,可按复位键重新运行。复位操作可使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从

9、0000H地址单元开始执行。 按键电平复位电路单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,应为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软复位。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序的初始位置。(三)外部晶振模块外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元。单片机内部有一个高增益的反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,

10、输出端为XTAL2。内部振荡方式:是在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个电容构成稳定的自激振荡电路。外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内。 电容C1和C2通常取30pF,对振荡频率有微调作用。晶振频率范围是1.2MHz12MHz。(四)蜂鸣器模块该模块主要是起到提醒和报警的作用,当主持人按下开始键时,蜂鸣器响,当有选手犯规时,蜂鸣器也要发出声音,还有就是当倒计时开始时,蜂鸣器就要发出报警的声音。单片机I/O引脚以软件延时方法产出一定频率的方波输出,控制接在该引脚的三极管导通和截止,从而会使接在三极管上的蜂鸣器发出声响。其发生模块由三部分组成:(1)

11、产生方波输出、(2)确定发生频率、(3)确定维持发生的时间。蜂鸣器发声时工作在三极管的饱和状态,不发声时工作在三极管的截止状态。三极管在电路中起到开关与放大作用,即:发射结正偏,集电结反偏时三极管起放大作用;发射结正偏,集电结正偏时三极管起饱和(开关闭合)作用;发射结反偏 集电结反偏时三极管起截止(开关断开)作用。电路中发射极与集电极上的电阻是限流电阻,起到保护三极管作用。在这里使用的是无缘蜂鸣器,工作时需要接入音频方波,改变方波频率可以得到不同音调的声音。(五)数字显示模块(加四位一体数码管的原理) 图2.5.1 图2.5.2图2.5.3该模块主要显示两部分内容。一部分是参加选手的编号,另一

12、部分是显示倒计时。图2.5.1中R2R8七个330欧姆电阻起到限流作用,可用来控制显示管的亮度,亮度随阻值的增大而增大。图2.5.2中数码管上的8个引脚依照A、B、C、D、E、F、G、DP与单片机P0.0、P0.1、P0.2 、P0.3、P0.4、P0.5、P0.6、P0.7相连接的阳极接口。BIT1、BIT2、BIT3、BIT4是数码管的片选,对应选择第几个数码管可以亮。对于图2.5.3中的七段数码管,各段二极管的阴极连接在一起作为公共端,这样可以使驱动电路简单,将阴极连接在一起的称为共阴极数码管,用高电平驱动数码管各段的阳极,其COM端接地。(六)抢答器电路接线图三、系统的软件程序设计(一

13、)抢答器功能介绍1如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s键,如果想减一秒按一下-1s键,时间LED上会显示改变后的时间,调整范围为0s99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。 2主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 3如倒计时期间,主持人想停止倒计时可以随时按停止

14、按键,系统会自动进入准备状态,等待主持人按抢答开始进入下次抢答计时。 4如果主持人未按抢答开始键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下停止 键为止。 5P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入 数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。(二)程序流程(三)程序设计OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0000H AJMP MAINORG 0003HAJMP INT0SUB

15、ORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30;初设抢答时间为30s MOV R2,#60;初设答题时间为60s MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR

16、RING SETB TR1 SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=查询程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开始抢答时候显示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送R1-R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢

17、答 MOV R3,#0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,查询有效抢答的程序在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,TZ1 JNB P1.7,TZ2 AJMP STARTTZ1: JMP FALSE7TZ2: JMP FALSE8;=非法抢答处理程序=FALSE1: ACALL BARK;按键发声 MOV R3,#01H AJMP ERRORFALSE2: ACALL

18、 BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERRORFALSE7: ACALL BARK MOV R3,#07H AJMP ERRORFALSE8: ACALL BARK MOV R3,#08H AJMP ERROR;=INT0(抢答时间R1调整程序)=INT0SUB

19、: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在两个时间LED上显示R1 JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCO JNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECO JNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKO AJMP INT0SUBINC0:MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0S

20、UBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;=INT1(回答时间R2调整程序)=INT1SUB: MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P

21、3.1,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=COUNT: MOV R0,#00H;重置定时器中断次数 MOV

22、 TH1,#3CH MOV TL1,#0B0H;重置定时器RECOUNT: MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AH DIV AB;除十分出个位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECKFULL: CJNE A,#

23、14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查停/显示 DEC R6;计时一秒R6自动减1 MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT:

24、 JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TZ3 JNB P1.7,TZ4 AJMP RECOUNT TZ3: JMP TRUE7 TZ4: JMP TRUE8 QUIT: CLR OK;如果按下了停止键执行的程序 CLR RING AJMP START;=正常抢答处理程序=TRUE1: ACALL BARK;按键发声 MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H CLR OK;因为答题的计时不再查询抢答

25、,所以就锁了抢答 AJMP COUNTTRUE2: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK

26、; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;=犯规抢答程序=ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH;0.5s向下运行

27、-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1;下面是1s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示FF和号数 AJMP CHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;=显示程序=DISPLAY: MOV DPT

28、R,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY RETDAT1: DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;灭,1,2,3,4,5,

29、6,7,8,9,灭,FDAT2: DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一个为零,其他与上相同,因为十位如果为零显示熄灭;=加减时间延时(起到不会按下就加N个数)=DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET;=延时(显示和去抖动用到)=DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET;=发声程序=BARK: SETB RING ACALL DELAY

30、1 ACALL DELAY1 CLR RING;按键发声 RET;=TO溢出中断(响铃程序)=T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT; CPL P3.6;RING标志位为1时候P3.6口不断取反使喇叭发出一定频率的声音OUT: RETI;=T1溢出中断(计时程序)=T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETIEND总 结单片机课程设计是一门很实用,很难的设计。这个设计用到了单片机,电路等方面的知识,通过这次课程设计,使我对单片机及其附属电路有了一定的了解,对课本上的知识有了近一步的掌握,也深刻明白了自己的不足。通过这短短一周的实践

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

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