八路智能抢答器_第1页
八路智能抢答器_第2页
八路智能抢答器_第3页
八路智能抢答器_第4页
八路智能抢答器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、洛阳理工学院 单片机课程设计报告八路智能抢答器 系别:计算机与信息工程系 专业:计算机应用技术专业 班级: 学号: 姓名: 辅导教师:摘 要电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。在当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,

2、那么也就必然离不开抢答器。而现在的抢答器有着数字化,智能化的方向发展,这就必然提高了抢答器的成本。鉴于现在小规模的知识竞赛越来越多,操作简单,经济实用的小型抢答器必将大有市场。本抢答器通过十分巧妙的设计仅用两块数字芯片便实现了数显抢答的功能,与其他抢答器电路相比较有分辨时间极短、结构清晰,成本低、制作方便等优点,并且还有防作弊功能。我们采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,因而本抢答器具有显示直观,不需要人干预的特点。而且在显示时抢答器会发出叮咚声使效果更为生动。工厂、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。关键词:单片机 矩阵式键盘 显示 抢

3、答器 目录摘 要2第一章概 述41.1八路智能抢答器的概述41.2 本设计的任务及要求4基本功能41.3 系统主要功能5第二章 系统硬件设置52.1 芯片的选择52.2 工作原理52.3 系统的硬件构成及功能62.3.1 抢答器的电路62.3.2 单元电路设计72.3.2 定时电路的设计82.3.4 报警电路设计9第三章 系统软件设置103.1 系统主程序设计103.2 抢答器的源程序10第四章 技术指标及使用说明184.1 主要技术参数184.2 抢答器使用说明18第五章 设计心得19参考文献20第一章 概 述1.1八路智能抢答器的概述本设计是利用单片机实现的一个八路抢答器,其具有电路简单、

4、成本较低、操作方便、灵敏可靠等优点,经使用效果良好, 具有较高的推广价值的无线遥控抢答器,它由8个发射器和1个接收器组成,可用于8组或8组以下的智力竞赛中。比赛前,将参赛组从0至7编号,每组发给对应的一个发射器。将接收器放于各组中央或前方。主持人按一下启动键后,抢答开始。此后,哪一组最先按下发射器上的抢答键,接收器就立即显示该组的组号并锁定,同时发出3次清脆的“叮咚”声。以后,按下任何一路抢答键均不起反映。只有主持人再次按动启动键后,才能进行下一次抢答该电路由直流稳压电源、抢答器、超时报警与电子计分四部分组成。1.2 本设计的任务及要求基本功能(1)抢答器同时供8名选手或8个代表队比赛,分别用

5、8个按键S0 S7表示。(2)设置一个系统清除按键,该开关由主持人员控制。(3)抢答器具有锁存与显示功能。即选手按动抢答按键,锁存相应的编号,在LED数码管上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。1.3 系统主要功能每名选手有一个抢答按钮,按钮的编号与选手的编号相对应,抢答器具有第一个抢答信号的鉴别和数据锁存、显示的功能。抢答开始后,若有选手按抢答按钮,刚该选手指示灯亮,并在数码管上显示相应编号,扬声器发出音响提示。同时,电路应具备自锁功能,禁止其他选手再抢答,优先抢答选手的编号一直保持到主持人将系统清0 为止。抢答器具有计分、显示功能。预置分数

6、可由主持人设定,并显示在每名选手的计分牌上,选手答对加10分,答错扣10分。抢答器具有定时抢答的功能。一次抢答的时间由主持人设定,在主持人发出抢答指令后,定时器立即进行减计时,并在显示器上显示,同时扬声器发出短暂声响,声响时间持续0.5s左右。选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器显示选手编号和抢答时刻的时间,并保持到主持人将系统清0为止。第二章 系统硬件设置2.1 芯片的选择本设计使用到的元器件包括:8051芯片、数码LED显示器、七段LED数码管的译码。2.2 工作原理基于这个设计的上述要求,根据功能要求,须设计有抢答电路、译码显示电路、主持人控制电路、定时电路、报警

7、电路,各个电路都有其自己的功能。通过复位按键FW,电路进入就绪状态,等待抢答。首先由主持人根据题目的难易程度,可以用“JIA SHI”和“JIAN SHA”两个按键,设定时间在(0S-99S)之间,然后再由主持人发布抢答命令(按下KS按键)同时发光二极管随即变亮,当看到二极管亮,进入倒计时状态和抢答状态。在电路中“S1-S8”为8路抢答器的8个按键,如果有人按下按键,程序就会判断是谁先按下的,然后从P2口输出抢答者号码的七段码值,经GAL16V8驱动,送到码管显示,并封锁键盘,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。如果在设定的时间中没有一个人按下按键,一到时间

8、,则产生报警信号已经超时,不可以抢答。当要进行下一次的抢答时,由主持人先按一下复位按键FW,电路复位,进入下一次抢答的就绪状态。2.3 系统的硬件构成及功能2.3.1 抢答器的电路     如图2-1为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次

9、抢答必须由主持人再次操作"清除"和"开始"状态开关。图2-1 抢答器框图如下是抢答器原理仿真图:2.3.2 单元电路设计(1)抢答器电路参考电路如图2-3完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。工作过程:开关S置于“清除”端时,RS触发器的 端均为0,4个触发器输出置0,使74LS148的 0,使之处于工作状态。当开关S置于"开始"时,抢答器处于等待工作状态,当有选手将键按下时(如按下S5),74LS148的输出 经RS锁存后,1Q=1, =1,74LS4

10、8处于工作状态,4Q3Q2Q=101,经译码显示为"5"。此外,1Q1,使74LS148 =1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的 此时由于仍为1Q1,使=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一轮抢答。74LS148为8线3线优先编码器,表2-1为其功能表。图2-3 抢答器电路如下表2-1 74LS148的功能真值表(2) 时序控制电路设计 时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到"开

11、始"位置时,扬声器发声,抢答电路和定时电路进 人正常抢答工作状态。 b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。(3) 复位电路的设计当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位*作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位*作通常有两种基本形式:上电复位和上电或开关复位。8051的复位方式可以是自动复位,也可以是手动复位,见下图。此外,RESET/Vpd还是一复用脚,VCC掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。2.3.2 定时电路的设计为达

12、到抢答的合理性、完整性、可控性,所以本设计设置了抢答定时电路。它包括两个按键,一个是加(JIA SHI)、另一个是减(JIAN SHI),该两个按键由主持人用于在发布开始命令之前设定时间(可以设定在00S-99S),每按一下“JIA SHI”按键就会在原来的数字的基础上加上一,如果是按的“JIAN SHI”按键就会在原来的数值上减去一。 图2-4 可预置时间的定时电路由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如图2-4所示。2.3.4 报警电路

13、设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图2-5报警电路图。8051驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次*作"清除"和"开始"状态开关。

14、图面是数字抢答器的报警电路图。其中555构成多谐振荡器,振荡频率fo143(RI2R2)C,其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。 图2-5 报警电路第三章 系统软件设置3.1 系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,所以应该得根据题目的难易程度事先设定时间,因而在编开始抢答前的程序得先编写设定时间的程序,在硬件电路中可以看到有两个按键(JIAN SHI 和 JIAN SHI)所以按下硬件的这两个按键相应的在软件进行对数据的加减。当时间设好了之后,主持人发布抢答命令按下KS按键

15、同时二极管变亮,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了键,马上关闭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 INT0

16、SUB  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 

17、       MOV TH0,#0F0H        MOV TL0,#0FFH; 越高发声频率越高,越尖        MOV TH1,#3CHMOV TL1,#0B0H; 50ms为一次溢出中断       SETB EA        SETB ET0 

18、;       SETB ET1  SETB EX0  SETB EX1; 允许四个中断,T0/T1/INT0/INT1        CLR OK  CLR RING         SETB TR1         SETB TR0; 一开始就运行定时器,以开始显示FFF.如

19、果想重新计数,重置TH1/TH2 ;*查询程序*START:MOV R5,#0BH      MOV R4,#0BH      MOV R3,#0BH ACALL DISPLAY; 未开始抢答时候显示FFF      JB P3.0,NEXT       ACALL DELAY      JB P3

20、.0,NEXT; 去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询      ACALL BARK; 按键发声      MOV A,R1  MOV R6,A; 送R1->R6,因为R1中保存了抢答时间     SETB OK; 抢答标志位,用于COUNT只程序中判断是否查询抢答     MOV R3,0AH; 抢答只显示计时,灭号数 

21、60;    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,FALS

22、E7    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 MO

23、V 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&

24、#160;   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

25、:  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  

26、0;     AJMP INT0SUB DEC0:   MOV A,R1    JZ SETR1; 如果R1为0, R1就置99,    DEC R1    ACALL DELAY1    AJMP INT0SUB SETR1:  MOV R1,#63H        ACALL DELAY1    

27、;    AJMP INT0SUB BACK0:  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

28、0;   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  

29、      ACALL DELAY1        AJMP INT1SUB DEC1:  MOV A,R2    JZ SETR2    DEC R2    ACALL DELAY1    AJMP INT1SUB SETR2:  MOV R2,#63H      &

30、#160; ACALL DELAY1        AJMP INT1SUB BACK1:  RETI ;*倒计时程序(抢答倒计时和回答倒计时都跳到改程序)* COUNT:  MOV R0,#00H; 重置定时器中断次数        MOV TH1,#3CH        MOV TL1,#0B0H; 重置定时器RECOUNT: MOV A,R6; R6保存了倒计时

31、的时间,之前先将抢答时间或回答时间给R6        MOV B,#0AH    DIV AB; 除十分出个位/十位    MOV 30H,A; 十位存于(30H)    MOV 31H,B; 个位存于(31H)    MOV R5,30H; 取十位    MOV R4,31H; 取个位    MOV A,R6    

32、; 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,重新计  &

33、#160;     SETB RING        MOV A,R6    JZ QUIT; 计时完毕    MOV R0,#00H    DEC R6; 一秒标志减1    AJMP CHECKLARGER: MOV A,R0        CJNE A,#14H,CHECK; 如果1s向下运行

34、,否者跳到查"停/显示"    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

35、0;  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; 按键发声 &

36、#160;    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; 因为答题的计时不再查询抢答,所以就锁了抢答 

37、;  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;    

38、  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 COUNT

39、TRUE6: 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 

40、   CLR OK    AJMP COUNT;*犯规抢答程序*ERROR: MOV R0,#00H       MOV TH1,#3CH       MOV TL1,#0B0H       MOV 34H,R3; 犯规号数暂存与(34H)HERE:  MOV A,R0    &

41、#160;  CJNE A,#0AH,FLASH;0.5s 向下运行->灭并停响    CLR RING     MOV R3,#0AH    MOV R4,#0AH       MOV R5,#0AH; 三灯全灭    AJMP CHECK1FLASH: CJNE A,#14H,CHECK1; 下面系1s的情况,响并显示号数并清R0,重新计 

42、0;     SETB RING        MOV R0,#00H    MOV R3,34H; 取回号数    MOV R5,#0BH        MOV R4,#0BH; 显示FF和号数    AJMP CHECK1CHECK1: JNB P3.7,QUIT1    &

43、#160;   ACALL DISPLAY    AJMP HEREQUIT1:  CLR RING        CLR OK    AJMP START;*显示程序*DISPLAY:MOV DPTR,#DAT1; 查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出        MOV A,R5    MOVC A,A+D

44、PTR  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

45、,6fh,00H,71H; 灭","1","2","3","4","5","6","7","8","9","灭","F"DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H; 一个为零,其他与上相同, 因为十位如果为零显示熄灭;*加减时间延时(起到不会按下就加N个数)*DELAY1: MOV 35H,#08HL

46、OOP0:  ACALL DISPLAY        DJNZ 35H,LOOP0        RET;延时(显示和去抖动用到) DELAY:  MOV 32H,#12HLOOP:   MOV 33H,#0AFHLOOP1:  DJNZ 33H,LOOP1        DJNZ 32H,LOOP   

47、RET;*发声程序*BARK:   SETB RING        ACALL DELAY1        ACALL DELAY1        CLR RING; 按键发声    RET;*TO溢出中断(响铃程序)* T0INT:  MOV TH0,#0ECH     &#

48、160;  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

49、60;   RETI END第四章 技术指标及使用说明4.1 主要技术参数电源电压:交流220V±10% 工作功耗:交流5W倒计时范围:1-99秒可设4.2 抢答器使用说明(1) 开机按电源开关,显示屏左边的"抢答"指示灯亮,数码管显示。(2) 设定"抢答"倒计时时间在显示屏左边的"抢答"指示灯亮,数码显示时,按"+、-"键可以设定抢答倒计时时间,在1-99秒之间设定,按住"+"或"-"键不放,可以快速累加或累减。设定好以后按一下"抢答

50、计时"键。(3) 设定"答题"倒计时时间 按一下"答题计时"键。显示屏显示"0"闪烁,进入等待状态。(4) 测试各组抢答按键试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出"叮咚"的提示音,按"取消"键,返回"0"闪烁状态。(5) 启动抢答倒计时,开始抢答"0"闪烁状态下,当主持人宣布抢答开始时,马上按一下"抢答计时"键,屏幕显示所设定的抢答倒计时时间并开始倒计时,提示倒计时时间马上临近结束。倒计时到0以后,仪器发出&qu

温馨提示

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

评论

0/150

提交评论