毕业设计(论文)-基于单片机的八路扫描式抢答器设计.doc_第1页
毕业设计(论文)-基于单片机的八路扫描式抢答器设计.doc_第2页
毕业设计(论文)-基于单片机的八路扫描式抢答器设计.doc_第3页
毕业设计(论文)-基于单片机的八路扫描式抢答器设计.doc_第4页
毕业设计(论文)-基于单片机的八路扫描式抢答器设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计八路扫描式抢答器 数理与信息工程学院毕 业 设 计 题 目: 八路扫描式抢答器 专 业: 计算机科学与技术(专升本) 班 级: 计056班 姓 名: 学号: 实验地点:数理与信息工程学院 电子系统设计室指导老师: 成 绩: ( 2006.6 )目 录第1节 引 言 1 1.1 抢答器的概述 1 1.2 本设计主要任务 1 1.3 系统主要功能 1第2节 系统硬件设计 32.1 芯片的选择 32.2 工作原理 32.3 系统的硬件构成及功能 32.3.1抢答器的电路图32.3.2单元电路设计 52.3.3定时电路设计 72.3.4报警电路设计 7第3节 系统软件设计 93.1 系统主程序设计 93.2 抢答器的源程序 9第4节 技术指标及故障处理 204.1 主要技术参数 204.2 使用说明 204.3 常见故障 21 结束语22 参考文献 23 - 2 -浙江师范大学数理与信息工程学院课程设计八路扫描式抢答器八路扫描式抢答器数理与信息工程学院 05计算机专升本指导教师: 第1节 引 言当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,那么也就必然离不开抢答器。而现在的抢答器有着数字化,智能化的方向发展,这就必然提高了抢答器的成本。鉴于现在小规模的知识竞赛越来越多,操作简单,经济实用的小型抢答器必将大有市场。本抢答器通过十分巧妙的设计仅用两块数字芯片便实现了数显抢答的功能,与其他抢答器电路相比较有分辨时间极短、结构清晰,成本低、制作方便等优点,并且还有防作弊功能。因此,我们制作了这款简易八路抢答器屏弃了成本高,体积大,而且操作复杂。我们采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,因而本抢答器具有显示直观,不需要人干预的特点。而且在显示时抢答器会发出叮咚声使效果更为生动。工厂、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。1.1八路扫描式抢答器的概述本文介绍的八路数显抢答器具有电路简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好, 具有较高的推广价值。无线遥控抢答器,它由8个发射器和1个接收器组成,可用于8组或8组以下的智力竞赛中。比赛前,将参赛组从0至7编号,每组发给对应的一个发射器。将接收器放于各组中央或前方。主持人按一下启动键后,抢答开始。此后,哪一组最先按下发射器上的抢答键,接收器就立即显示该组的组号并锁定,同时发出3次清脆的“叮咚”声。以后,按下任何一路抢答键均不起反映。只有主持人再次按动启动键后,才能进行下一次抢答该电路由直流稳压电源、抢答器、超时报警与电子计分四部分组成。1.2本设计任务及要求任务:设计一个供8名选手参加八路扫描式抢答器。1.3系统主要功能 每名选手有一个抢答按钮,按钮的编号与选手的编号相对应,抢答器具有第一个抢答信号的鉴别和数据锁存、显示的功能。抢答开始后,若有选手按抢答按钮,刚该选手指示灯亮,并在数码管上显示相应编号,扬声器发出音响提示。同时,电路应具备自锁功能,禁止其他选手再抢答,优先抢答选手的编号一直保持到主持人将系统清0 为止。抢答器具有计分、显示功能。预置分数可由主持人设定,并显示在每名选手的计分牌上,选手答对加10分,答错扣10分。抢答器具有定时抢答的功能。一次抢答的时间由主持人设定,在主持人发出抢答指令后,定时器立即进行减计时,并在显示器上显示,同时扬声器发出短暂声响,声响时间持续0.5s左右。选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器显示选手编号和抢答时刻的时间,并保持到主持人将系统清0为止。第2节 系统硬件设计2.1芯片的选择本设计使用到的元器件包括:8051芯片、数码LED显示器、七段LED数码管的译码。2.2工作原理基于这个设计的上述要求,根据功能要求,须设计有抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路,各个电路都有其自己的功能。通过复位按键FW,电路进入就绪状态,等待抢答。首先由主持人根据题目的难易程度,可以用“JIA SHI”和“JIAN SHA”两个按键,设定时间在(0S-99S)之间,然后再由主持人发布抢答命令(按下KS按键)同时发光二极管随即变亮,当看到二极管亮,进入倒计时状态和抢答状态。在电路中“S1-S8”为8路抢答器的8个按键,如果有人按下按键,程序就会判断是谁先按下的,然后从P2口输出抢答者号码的七段码值,经GAL16V8驱动,送到码管显示,并封锁键盘,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。如果在设定的时间中没有一个人按下按键,一到时间,则产生报警信号已经超时,不可以抢答。当要进行下一次的抢答时,由主持人先按一下复位按键FW,电路复位,进入下一次抢答的就绪状态。2.3系统的硬件构成及功能2.3.1 抢答器的电路框图 如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作清除和开始状态开关。图11.1抢答器框图图11.2抢答电路的接口电路2.3.2 单元电路设计(1)抢答器电路参考电路如图11.2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。工作过程:开关S置于“清除”端时,RS触发器的 端均为0,4个触发器输出置0,使74LS148的 0,使之处于工作状态。当开关S置于开始时,抢答器处于等待工作状态,当有选手将键按下时(如按下S5),74LS148的输出 经RS锁存后,1Q=1, =1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为5。此外,1Q1,使74LS148 =1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的 此时由于仍为1Q1,使=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一轮抢答。74LS148为8线3线优先编码器,表11、1为其功能表。图11.2抢答器电路表10.174LS148的功能真值表(2)时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到开始位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。 b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。(3)复位电路的设计当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位*作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位*作通常有两种基本形式:上电复位和上电或开关复位。8051的复位方式可以是自动复位,也可以是手动复位,见下图。此外,RESET/Vpd还是一复用脚,VCC掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。2.3.3 定时电路设计为了达到抢答的合理性、完整性、可控性,需根据题目的难易程度的不同设定相应的抢答时间。所以本设计设置了抢答定时电路。它包括两个按键,一个是加(JIA SHI)、另一个是减(JIAN SHI),该两个按键由主持人用于在发布开始命令之前设定时间(可以设定在00S-99S),每按一下“JIA SHI”按键就会在原来的数字的基础上加上一,如果是按的“JIAN SHI”按键就会在原来的数值上减去一。图11.3可预置时间的定时电路 由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如图11、3所示。2.3.4 报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图11.4报警电路图。8051驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次*作清除和开始状态开关。图面是数字抢答器的报警电路图。其中555构成多谐振荡器,振荡频率fo143(RI2R2)C,其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。图11.4报警电路第3节 系统软件设计3.1系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,所以应该得根据题目的难易程度事先设定时间,因而在编开始抢答前的程序得先编写设定时间的程序,在硬件电路中可以看到有两个按键(JIAN SHI 和 JIAN SHI)所以按下硬件的这两个按键相应的在软件进行对数据的加减。当时间设好了之后,主持人发布抢答命令按下KS按键同时二极管变亮,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了键,马上关闭T0、调用显示程序、封锁键盘。3.2抢答器的源程序一、八路扫描式抢答器参考程序清单P1.0-P1.7为八路抢答输入 数码管段选P0口,位选P2口,蜂鸣器输出为P3.6口。P3.0为开始抢答,P3.7为停止。K EQU 20H;抢答开始标志位;将P1口与P2口互换,P3.0-P1.0,P3.1-P1.7 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN:MOV R1,#0FH;初设抢答时间为15s MOV R2,#0AH;初设答题时间为10s 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 RING SETB TR1 SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置 TH1/TL1就可以了;*查询程序*START:MOV R5,#0BHMOV R4,#0BHMOV R3,#0BH ACALL DISPLAY;未开始抢答时候显示FFFJB P3.0,NEXT ACALL DELAYJB P3.0,NEXT;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询ACALL BARK;按键发声MOV A,R1 MOV R6,A;送R1-R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R3,0AH;抢答只显示计时,灭号数AJMP COUNT;进入倒计时程序,查询有效抢答的程序在COUNT里面NEXT:JNB P1.0,FALSE0JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6JNB P1.7,FALSE7 AJMP START;*非法抢答处理程序*FALSE0: ACALL BARK;按键发声 MOV R3,#00H AJMP ERRORFALSE1: ACALL BARK;按键发声 MOV R3,#01H AJMP ERRORFALSE2: ACALL 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 ERROR;*INT0(抢答时间R1调整程序) *INT0SUB: 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.7,BACK0;P3.7为确定键,如按下跳到BACKO AJMP INT0SUB INC0: MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99了,R1就置0,重新 加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: 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 P1.7,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1:MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI ;*倒计时程序(抢答倒计时和回答倒计时都跳到改程序)* COUNT: MOV R0,#00H;重置定时器中断次数 MOV 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,#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 P1.7,QUIT;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT: JNB P1.0,TRUE0JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6JNB P1.7,TRUE7 AJMP RECOUNTQUIT: CLR OK;如果按下了停止键执行的程序 CLR RING AJMP START;*正常抢答处理程序*TRUE0: ACALL BARK; 按键发声 MOV A,R2;抢答时间R2送R6 MOV R6,A MOV R3,#00H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE1: ACALL BARK;按键发声 MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 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;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 COUNT;*犯规抢答程序*ERROR: MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV 34H,R3;犯规号数暂存与(34H)HERE:MOV A,R0CJNE A,#0AH,FLASH;0.5s向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AHMOV 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.7,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;*显示程序*DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,R5 MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY RETDAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;灭,1,2,3,4,5,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 DELAY1 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 RETI END第4节 技术指标及故障处理4.1主要技术参数电源电压:交流220V10% 工作功耗:交流5W倒计时范围:1-99秒可设4.2抢答器使用说明开展竞赛活动时,请先布置好场地,将抢答按钮装于参赛桌上,每组按钮的二条线根据实际场地大小,连上合适长度,分别接到3.5MM的组别插头上,然后再将插头插入机后插座中8个组中。(1) 开机按电源开关,显示屏左边的抢答指示灯亮,数码管显示。(2) 设定抢答倒计时时间在显示屏左边的抢答指示灯亮,数码显示时,按+、-键可以设定抢答倒计时时间,在1-99秒之间设定,按住+或-键不放,可以快速累加或累减。设定好以后按一下抢答计时键。(3) 设定答题倒计时时间按一下答题计时键。显示屏显示0闪烁,进入等待状态。(4) 测试各组抢答按键试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出叮咚的提示音,按取消键,返回0闪烁状态。(5) 启动抢答倒计时,开始抢答0闪烁状态下,当主持人宣布抢答开始时,马上按一下抢答计时键,屏幕显示所设定的抢答倒计时时间并开始倒计时,提示倒计时时间马上临近结束。倒计时到0以后,仪器发出叮咚的结束提示音,同时显示屏返回0闪烁待命状态。在抢答倒计时中,如果有参赛组抢答,仪器屏幕立即显示该组的组别号,同时发出叮咚的抢答成功提示音。需要返回0待命状态,按取消键即可。(6) 启动答题倒计时0闪烁状态下,或有参赛组抢答成功后,需要开始答题的计时时,按答题计时键,屏幕显示所设定的答题倒计时时间并开始倒计时,提示倒计时时间马上临近结束。倒计时到0以后,仪器发出丁冬的结束提示音,同时显示屏返回0闪烁待命状态。(7) 提前取消倒计时无论是抢答还是答题的倒计时时间,需要提前退出,只要按一下取消键,即可返回到0闪烁待命状态。(8) 重设倒计时时间需要重新设置倒计时时间,可按倒计时重设键,屏幕显示。左边抢答计时指示灯点亮,即可重新设定倒计时时间,设定方法与前面相同。 (9) 主机控制加/减分答题完毕后,可给抢答组酌情评分,加分直接按对应抢答组再按预设的分数进行加减即可(预设有1分和10分),每按一次得分或扣分键,给加或减5分, 如主持人评定抢答有误,应于扣分,则可按

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论