基于单片机的多路抢答器设计
- 格式:doc
- 大小:140.50 KB
- 文档页数:21
基于单片机8路抢答器的设计与实现引言:抢答器是一种用于比赛或考试中进行抢答的设备,它可以实现多个参与者同时抢答,实时显示最先抢答者的编号。
本文将介绍一种基于单片机的8路抢答器的设计与实现。
一、设计方案:1.硬件设计:本设计采用单片机作为主控制器,使用LED显示器显示抢答编号。
按键用于选择参与抢答的编号。
____________________+------------------,P1.0,,P1.1,,P1.2,,P1.3Infrared sensor ----- ------- ----- -----+------------------,P1.4,,P1.5,,P1.6,,P1.7LED display ----- ------- ----- -----+---------------+---------+---------+---------+---------+AVRMicrocontroller+---------------+---------+---------+2.软件设计:本设计的软件部分主要涉及中断、定时器、按键扫描和显示控制几个方面的内容。
(1)中断:使用外部中断响应红外传感器的触发信号,并处理中断程序。
(2)定时器:使用定时器来实现LED显示的时序控制,以达到流畅的显示效果。
(3)按键扫描:定时扫描按键,当一些按键按下时,触发相应的抢答编号。
(4)显示控制:根据抢答编号,通过对LED显示器的控制,实现编号的显示。
二、实现步骤:1.硬件部分的实现:(1)按照上述连接图的方式,将红外传感器和LED显示器与单片机进行连接。
(2)编写硬件程序,对红外传感器和LED显示器进行初始化配置。
2.软件部分的实现:(1)编写中断服务函数,用于响应红外传感器的触发信号,并完成相应的中断处理。
(2)编写定时器中断服务函数,用于控制LED显示的时序。
(3)编写按键扫描函数,用于检测按键是否按下,并触发相应的抢答编号。
基于单片机8路抢答器的设计与实现基于单片机的8路抢答器是一种常见的电子竞赛设备,用于测验、培训或竞赛等活动中进行抢答的过程。
它能够为多个参与者提供公平竞争机会,并通过显示屏和声音提示来呈现结果。
下面是一个基于单片机的8路抢答器的设计与实现的参考内容。
一、硬件设计:1. 微控制器选择:可以选择一款适合的单片机作为抢答器的主控芯片,常见的选择有STC89C52、AT89C52、PIC16F877A 等。
2. 输入部分设计:为每个参与者设置一个按钮,用于抢答。
可以使用电子按键、触摸按钮等。
3. 显示部分设计:可以选择LCD液晶显示屏或数码管进行显示,显示参与者的编号或抢答进度等信息。
4. 声音提示设计:可以使用蜂鸣器或扬声器作为声音提示装置,用于鸣笛提示抢答结果。
5. 电源部分设计:选择合适的电源模块,如直流电源模块或电池供电。
二、软件设计:1. 系统初始化:设置IO口的输入输出状态,初始化LCD显示屏,配置中断等。
2. 抢答逻辑:设置抢答模式,设定抢答者数量,记录抢答时间,并根据抢答顺序进行显示和提示。
3. 显示与提示:根据抢答结果,将结果显示在LCD屏幕上,并通过声音提示器进行声音提示。
4. 延时与计时:设置合适的延时函数和计时器用于计算抢答的时间长度。
5. 节拍控制:设置一个节拍控制函数,用于判断抢答按钮的按下时间是否在某一节拍内,以增加抢答的公平性。
6. 按键检测与处理:使用中断或轮询方式对抢答器上的按键进行检测和处理,并根据按键的触发来执行相应的命令。
三、实现步骤:1. 硬件搭建:按照上述设计,完成抢答器的硬件搭建,包括连接单片机与按钮、显示屏和声音提示器等。
2. 程序编写:根据所选的单片机型号,使用对应的编程软件,编写相应的程序。
3. 调试与测试:将编写好的程序下载到单片机中,通过串口或者编程器与单片机进行连接,进行调试与测试。
4. 优化与改进:根据实际使用情况,进行程序的优化和改进,以提高系统的稳定性和可靠性。
一、概述大学四年的学习生活中,会遇到各种各样的竞赛,抢答器便成为了主要的工具之一。
而现在的抢答器智能化越来越强,这必然会提高抢答器的成本。
本抢答器与其他抢答器电路相比较成本低、制作方便,并且还有作弊显示功能。
因此,这款四路抢答器摒弃了成本高、体积大、操作复杂等不足。
我们采用了数字显示器直接指示,因而本抢答器具有显示直观,操作简单的特点。
二、主要功能及技术指标抢答器的工作原理是用矩阵式键盘进行抢答。
采用动态显示组号。
主持人按下开始抢答键才可以抢答。
主持人没有按下开始抢答按纽(P3.2),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。
主持人按下开始抢答按纽(P3.2),蜂鸣响声提示,且数码管10秒倒计时(10秒内抢答有效),有人在10秒抢答,蜂鸣器响声提示并显示他的组号,3秒开始20秒倒计时(20秒内必须回答完问题)。
20秒后主持人按下复位开关为下一题的抢答做准备。
单片机最小系统、抢答按键模块(四位并行数码显示、1*4矩阵式键盘)、显示模块、抢答开关模块、蜂鸣器输出模块。
三、系统组成及原理1、分图四、软件1、分配流程图2、源程序ORG 0000HLJMP MAINORG 0013HLJMP ESS1ORG 0100HMAIN:SETB EASETB EX1SETB IT1 ;外部中断1初始化 L16:MOV P1,#0FFHMOV R2,#00HCLR P1.0INC R2JB P1.4,L0LCALL DE0L0:INC R2JB P1.5,L1LCALL DE0L1:INC R2JB P1.6,L2LCALL DE0L2:INC R2JB P1.7,L3LCALL DE0L3:SETB P1.0CLR P1.1INC R2JB P1.4,L4LCALL DE0L4:INC R2JB P1.5,L5LCALL DE0L5:INC R2JB P1.6,L6LCALL DE0L6:INC R2JB P1.7,L7LCALL DE0L7:SETB P1.1CLR P1.2INC R2JB P1.4,L8LCALL DE0L8:INC R2JB P1.5,L9LCALL DE0L9:INC R2JB P1.6,L10LCALL DE0L10:INC R2JB P1.7,L11LCALL DE0L11:SETB P1.2LJMP L16;读行列式键盘ESS1:MOV 70H,#30D ;外部中断1MOV R7,#0CHCLR P3.0S2:LCALL DELAYDJNZ 70H,S2SETB P3.0 ;蜂鸣器提示开始抢答 MOV TMOD,#00010000BMOV R3,#0AHL20:MOV 55H,#14HL19:MOV TH0,#3CHMOV TL0,#0B0H ;定时器1初始化 SETB TR1 ;启动定时器1MOV A,R3MOV B,#0AHDIV ABMOV DPTR,#TABMOVC A,@A+DPTRMOV 53H,ACLR P2.4MOV P0,53HLCALL DELAY1SETB P2.4MOV A,BMOVC A,@A+DPTRMOV 54H,ACLR P2.5MOV P0,54HLCALL DELAY1SETB P2.5L18:JNB TF1,L18CLR TF1DJNZ 55H,L19DEC R3CJNE R7,#00H,D6D6:CJNE R3,#0FFH,L21LJMP L22L21:LJMP L20 ;抢答倒计时L22:MOV 73H,#02DS5:MOV 70H,#20DMOV 71H,#20HCLR P3.0S4:LCALL DELAYDJNZ 70H,S4SETB P3.0S6:LCALL DELAYDJNZ 71H,S6DJNZ 73H,S5 ;抢答倒计时时间到声音提示D5:RETIDE0:MOV DPTR,#TAB ;抢答违规报警并显示抢答违规组号 MOV A,R2MOV B,#0AHS10:MOV 72H,#20DMOV 73H,#10DCLR P3.0S8:LCALL LCCDJNZ 72H,S8SETB P3.0S9:LCALL LCCDJNZ 73H,S9DJNZ 71H,S10L17:LCALL LCCLJMP L17LCC:CLR P2.4MOV P0,50HLCALL DELAYDELAY1:MOV P1,#0FFH ;正常抢答读键MOV R4,#250DW17:MOV R2,#00HCLR P1.0INC R2JB P1.4,W0LCALL DE1W0:INC R2JB P1.5,W1LCALL DE1W1:INC R2JB P1.6,W2W2:INC R2JB P1.7,W3LCALL DE1W3:SETB P1.0CLR P1.1INC R2JB P1.4,W4LCALL DE1W4:INC R2JB P1.5,W5LCALL DE1W5:INC R2JB P1.6,W6LCALL DE1W6:INC R2JB P1.7,W7LCALL DE1W7:SETB P1.1CLR P1.2INC R2JB P1.4,W8LCALL DE1W8:INC R2JB P1.5,W9LCALL DE1W9:INC R2JB P1.6,W10LCALL DE1W10:INC R2JB P1.7,W15LCALL DE1W15:SETB P1.3DJNZ R4,W16LJMP W18W16:LJMP W17W18:RETDE1:MOV P1,#0FFH ;抢答成功声音提示及回答问题时间20秒倒计时 MOV 70H,#20DCLR P3.0S3:LCALL DELAYDJNZ 70H,S3SETB P3.0SETB P2.0MOV DPTR,#TABMOV A,R2MOV B,#0AHDIV ABMOVC A,@A+DPTRMOV 56H,AMOV A,BMOVC A,@A+DPTRMOV 57H,AMOV TMOD,#00000001B MOV R5,#16HL32:MOV R6,#14HL31:MOV TH0,#3CHMOV TL0,#0B0HSETB TR0CLR P2.4MOV P0,56HLCALL DELAYSETB P2.4CLR P2.5MOV P0,57HLCALL DELAYSETB P2.5CJNE R5,#14H,L34LJMP L35L34: JC L35LJMP L30L35: MOV A,R5MOV B,#0AHDIV ABMOVC A,@A+DPTRMOV 58H,AMOV A,BMOVC A,@A+DPTRMOV 59H,ACLR P2.6MOV P0,58HLCALL DELAYSETB P2.6CLR P2.7MOV P0,59HLCALL DELAYSETB P2.7L30:JNB TF0,L30CLR TF0DJNZ R6,L31DEC R5CJNE R5,#0FFH,L32MOV P1,#0FFHMOV 70H,#50DCLR P3.0S7:LCALL DELAYDJNZ 70H,S7SETB P3.0MOV P2,#0FFHMOV R3,#00HMOV R7,#00HRETDELAY:MOV 51H,#10D ;延时子程序D0:MOV 52H,#248DD1:DJNZ 52H,D1DJNZ 51H,D0RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END五、分析这次实训遗憾的是,我的实训材料是买的成品的板,没有自己去焊制自己的实训板,当然这节省了一些时间,但是,在原理图上确实也花费了一些时间。
基于单片机的多路抢答器设计在教育场景中,为了增加学生的参与度和互动性,常常会设置抢答环节。
为了简化抢答的流程,提高效率,很多学校会选择使用基于单片机的多路抢答器。
本文将详细介绍基于单片机的多路抢答器的设计过程。
一、设计目标设计一个基于单片机的多路抢答器,满足以下要求:1.支持多路抢答,最少支持4个人同时抢答;2.抢答按照先后顺序进行,每个人只有一次机会;3.可以显示抢答的状态,并且能够记录抢答的时间;4.方便操作,使用简单。
二、硬件设计1.单片机选择在本设计中,我们选择常用的STM32单片机作为主控芯片。
其具有强大的计算能力和丰富的外设接口,能够满足本设计的需求。
2.LCD显示屏为了显示抢答的状态和时间,我们需要选择一个合适的显示屏。
在本设计中,我们选择4行16列的液晶显示屏,能够满足显示需求。
3.按键为了实现学生的抢答操作,我们需要设计抢答按钮。
在本设计中,我们选择使用一个矩阵按键,可以支持多路抢答。
4.时钟模块为了记录抢答的时间,我们需要使用一个时钟模块。
在本设计中,我们选择使用DS1302时钟模块。
5.电源模块为了供给系统电源,我们需要设计一个电源模块。
在本设计中,我们选择使用一个DC稳压电源模块。
三、软件设计1.系统初始化在系统启动时,进行各个模块的初始化,包括单片机、LCD显示屏、按键、时钟模块等。
2.抢答操作当学生按下抢答按钮时,检测到按键信号,单片机会记录下当前的时间,并根据抢答顺序显示学生的抢答状态。
每次抢答完毕后,禁用对应的按键。
3.时间记录单片机通过时钟模块获取当前时间,并将抢答的时间记录下来。
4.状态显示利用LCD显示屏,实时显示当前抢答的状态,包括谁在抢答、抢答时间等信息。
5.结果统计当所有学生抢答完毕后,统计每个学生的抢答时间,并按照顺序显示出来。
四、系统测试完成软硬件的设计后,需要对系统进行测试,确保系统功能正常运行。
测试的主要内容包括:1.是否能够正确识别学生的抢答操作;2.是否能够正确记录抢答的时间;3.是否能够正确显示抢答的状态;4.是否能够正确统计抢答结果。
基于单片机的多路抢答器摘要抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。
目前大多数抢答器均使用单片机和数字集成电路。
本设计利用89C51单片机及外围接口实现多路抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
关键词:抢答器;单片机89c51 ;数字集成电路;定时器/计数器AbstractResponder is a kind of widely used equipment, in all kinds of competition, it can quickly and objectively identify the players get voice. Now most of the responder all use SCM and digital integrated circuit, This topic USES 89 c51 and peripheral interface implementation vies to answer first system, with the help of the microcontroller timer/counter timing and number principle, software and hardware organically, and makes the system can correctly to the time, at the same time make digital tube display the time correctly.Key Words: Responder, 89c51, Digital integrated circuit, Timer/counter1.引言目前电视节目日益丰富,其中的竞赛环节也越来越多,其中抢答器是不可或缺的器材。
基于51单片机八路抢答器的设计八路抢答器是一种常见的电子设备,利用该设备可以实现多人同时抢答的功能。
本设计基于51单片机,通过电路和程序的设计,实现了一个八路抢答器。
一、硬件设计1.单片机选择本设计选择51单片机作为控制核心,采用STC89C52微控制器,该单片机具有丰富的外设接口和较大的存储空间,能够满足实现八路抢答器的要求。
2.抢答按键设备中需要设置八个抢答按键,用于参与者抢答。
按键采用常闭型按键,接通时为低电平,用于触发中断。
3.电源设计为了提供稳定的电源给抢答器,设计中采用了5V稳压电源电路,供电采用AC220V转DC5V电源适配器。
4.显示设计为了方便显示抢答结果,本设计采用了一个共阴数码管,用于显示抢答结果。
具体显示方式根据需求进行编程显示。
5.连接器设计为方便接线和扩展,设计中使用了排针排插连接器,将各个按键、数码管等连接到主控板上。
二、软件设计1.引脚设置首先需要对单片机的I/O引脚进行设置,将各个按键连接到相应的引脚上。
同时,还需要设置数码管的引脚,用于控制显示。
2.中断设置为了实现按键的检测和抢答功能,需要设置外部中断。
具体的中断设置根据引脚的连线情况进行配置。
3.抢答逻辑抢答的逻辑可以根据需求进行设计,本设计采用最先按下的键位为答题者,其他键位将被屏蔽。
按下按键后,相应的数码管会显示该答题者的编号或名称,并输出一个信号用于记录答题者的顺序。
4.结果显示抢答结束后,根据答题者的顺序,将结果显示在数码管上。
可以根据需求进行设计,如按照答题者的编号显示。
5.功能扩展除了基本的抢答功能外,还可以对设备进行功能扩展。
如设置答题时间限制,设置显示答题者的得分,设置答题者的排名等。
三、PCB设计完成硬件电路和软件设计后,需要进行PCB设计,将各个元件进行布局,进行连线和焊接。
PCB设计需要保证连接的正确性和布线的合理性。
四、测试与调试完成PCB的焊接后,需要进行设备的测试与调试。
通过逐个按下按键,观察数码管的显示结果是否正确。
《单片机原理及应用》基于单片机的抢答器设计1 系统设计1.1 设计要求1.1.1 设计任务设计一个基于单片机的抢答器,实现抢答器的基本功能。
1.1.2 性能指标要求1、设计好电路并焊接电路板。
2、设计一个主持人控制开关和6路抢答按扭,当主持人允许抢答时才能进行抢答操作,并用一个数码管显示抢答选手的号码,同时其他选手不能再抢答。
3、当主持人允许抢答后倒计时5秒时间,在这5秒内抢答有效,过后就不能进行抢答了。
4、电路上设置一个蜂鸣器的电路,当有选手抢答时蜂鸣器响一下。
5、当有选手抢答后,进行倒计时20秒作为选手回答问题时间,用两个数码管显示,倒计时时间到时有声光提示。
6、画电路板时要增加下载接口,方便调试程序。
7、扩展功能(选做),用按键可设置倒计时的时间,范围在5秒到30秒之间。
1.2 设计思路及设计框图1.2.1设计思路我首先制作主持人控制开关和6路抢答电路,在单片机I/O 口的P3.2口作为选主持人开关接入口,P1.0-P1.5作为6路选手抢答按钮接入口。
将P2.0-P2.3作为4位数码管的位选控制端口,接入数码管。
P3.3作为蜂鸣器控制端口,蜂鸣器连接上拉电阻和三极管。
P2.5作为LED 控制端口。
设置S9作为复位键,复位电路接入单片机上的RST 口。
主持人按钮按下后,4位数码管上有2位数码管分别显示’0’和’5’,表示5秒倒计时,然后P1.0和P1.5其中一个接通,也就是选手抢答,按钮按下,1位数码管显示选手序号,蜂鸣器响,然后2位数码管显示20秒倒计时,倒计时结束时,LED 亮,蜂鸣器响。
1.2.2总体设计框图2 各个模块程序的设计1)时钟频率振荡电路电路中的振荡源(晶振)能产生时钟信号送到单片机中,使其工作,晶振的频率为12MHZ。
电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
C1,C2的值为22pF。
2)复位电路复位电路是单片机初始化,当按下按键S9时,RST由低电平变为高电平,数码管显示清零,程序从头开始运行。
基于单片机应用的多路无线抢答器的设计一、引言多路无线抢答器是一种常见的教育教学设备,它可以帮助老师更好地组织课堂抢答活动,激发学生的学习兴趣和积极性。
本文将介绍基于单片机应用的多路无线抢答器的设计方案。
二、硬件设计1. 抢答器主控板设计本设计采用STC89C52单片机作为主控芯片,通过串口通信与无线模块进行数据传输。
主控板还需要接收来自按键模块的信号,并通过LED灯指示当前状态。
2. 无线模块选择考虑到稳定性和传输距离等因素,本设计选择了nRF24L01+ 2.4GHz 无线模块作为通信模块。
3. 按键模块设计按键模块需要包括多个按键和一个编码器,编码器将按键输入转换为数字信号并发送给主控板。
三、软件设计1. 主控板程序设计主控板程序需要实现以下功能:(1)初始化各个外设;(2)接收来自无线模块的数据,并根据数据指令执行相应操作;(3)接收来自按键模块的信号,并将其转换为数字信号发送给无线模块;(4)控制LED灯的亮灭。
2. 无线模块程序设计无线模块程序需要实现以下功能:(1)初始化nRF24L01+无线模块;(2)接收来自主控板的数据,并将其转发给其他无线模块;(3)接收来自其他无线模块的数据,并将其发送给主控板。
3. 按键模块程序设计按键模块程序需要实现以下功能:(1)初始化编码器和按键;(2)检测按键输入,并将其转换为数字信号发送给主控板。
四、系统测试经过硬件和软件设计后,我们进行了系统测试。
测试结果表明,本设计具有稳定的通信距离和快速的响应速度,可以满足教学需求。
五、结论本文介绍了基于单片机应用的多路无线抢答器的设计方案。
该方案采用了STC89C52单片机作为主控芯片,nRF24L01+ 2.4GHz无线模块作为通信模块,以及编码器和按键等外设。
经过系统测试,该设计具有良好的稳定性和响应速度,可以满足教学需求。
单片机实例分享,简单实用的多路大屏幕抢答器方案设计多路抢答器的原理非常简单,是借助单片机与普通电脑进行串口通信来实现的,需要用VisualBasic 6.0编写上位机软件,最后的抢答结果通过电脑连接投影仪呈现在大屏幕上,效果非常好,就像电视上的知识竞赛一样。
原理图如图12.1所示,需要准备的硬件见表12.1。
图12.1 多路抢答器的原理图表12.1 硬件准备图12.2 STC89C52单片机最小系统图12.3 抢答器按键(带3.5mm插头和10m长导线)图12.4 USB转TTL模块图12.5 3.5mm单声道耳机插座(正好匹配抢答器按键插头)图12.6 7×9万用板(铜柱用来支撑、固定电路板)图12.7 2.54mm排针硬件连接01 准备好硬件就可以连接了,参考原理图,先把3.5mm单声道耳机插座和单片机最小系统焊接在万用板上。
02 连接 USB 转 TTL 模块和抢答器按键,单片机最小系统的供电由USB转TTL模块提供,取自电脑USB口。
03 如果你喜欢,可以自己加一个外壳,这样能显得美观些,也防止落入灰尘。
软件设计组装完毕后,就需要把单片机下位机程序(见图12.8)下载到单片机里,由于选择的是STC单片机,支持串口下载,所以通过USB转TTL模块就可以把程序下载到单片机最小系统,单片机的所有代码可以到qq群657864614进行下载。
图12.8 部分代码界面电脑上位机软件我用VisualBasic来编写(见图12.9),用MSComm控件来实现单片机与电脑串口的通信功能。
在VisualBasic 的常用控件里,是没有MSCOMM控件的,我们可以通过工程→部件→钩选Microsoft COM Control 6.0 来添加。
由于篇幅限制,我在这里不能详细列出代码,同样可以在qq群657864614进行下载。
图12.9 用VisualBasic编写上位机软件效果展示将单片机下位机程序下载到单片机最小系统,插上USB转TLL模块,就可以运行电脑上位机软件,最后通过电脑连接投影仪,投影在会场的大屏幕上,效果很好。
基于51单片机的抢答器设计设计一个基于51单片机的抢答器,可以用于教育培训、竞赛等场合。
抢答器由主控制器、抢答器模块和显示器等组成,可以实现多人同时抢答、自动计分和答题结果显示等功能。
1.系统结构设计:系统由主控制器、抢答器模块和显示器组成。
主控制器使用51单片机,通过IO口与抢答器模块和显示器进行通信。
抢答器模块包括按钮、指示灯和计分器等,用于获得用户的抢答信号和显示计分信息。
显示器用于显示抢答排名、答题结果以及题目等信息。
2.功能设计:-多人抢答功能:主控制器通过轮询方式检测抢答器模块的按钮状态,记录首先按下按钮的参与者信息,并显示其抢答排名。
-自动计分功能:主控制器根据参与者的抢答顺序和答题正确与否,自动计算得分。
得分可以通过显示器进行实时显示。
-答题结果显示功能:在抢答结束后,主控制器将抢答排名、得分和题目等信息发送给显示器,显示器将其显示。
3.系统硬件设计:主控制器部分由51单片机、外围电路和通信接口组成。
外围电路包括时钟电路、复位电路和按键矩阵扫描电路。
通信接口与抢答器模块和显示器相连,通过IO口进行通信。
抢答器模块由按钮和指示灯组成,用于用户抢答和显示抢答状态。
计分功能可以通过数字显示器实现。
显示器部分包括LCD显示屏和控制电路,用于显示抢答排名、答题结果和题目等信息。
4.系统软件设计:主控制器的软件设计主要包括抢答状态检测、计分规则实现和与外围设备的通信。
-抢答状态检测:通过轮询方式检测抢答器模块的按钮状态,记录首先按下按钮的参与者信息,并显示其抢答排名。
-计分规则实现:根据参与者的抢答顺序和答题正确与否,自动计算得分并更新显示器上的得分信息。
-与外围设备通信:与抢答器模块和显示器进行通信,发送抢答排名、得分和题目等信息。
5.系统优化:为提高系统的稳定性和可靠性-设计合理的接口电路,提高抗干扰能力。
-采用合适的检测算法,提高抢答状态检测的准确性。
-优化算法,提高计分规则的实时性和正确性。
基于单片机的多功能抢答器设计
引言
抢答器是各种智力竞赛中必不可少的一种硬件设备。
实现抢答器的方式有多种多样,传统的抢答器普遍采用模拟电路、数字电路或者模数混合电路来设计。
这类抢答器所需元器件比较多,随着功能增多,电路也越复杂,并且成本偏高,故障率高,操作不方便,不便于参数调节及功能的升级换代。
本文采用AT89C51为核心,结合键盘、数码管、蜂鸣器等外围设备,设计了具有抢答、计时、时间调整、蜂鸣器报警等功能的4路抢答器。
总体设计
设计需求
按照设计需求,本系统具有以下几个主要功能:(1)抢答器可同时供4名选手或四支参赛队伍使用;(2)抢答或回答时间主持人可自行设置;(3)能够显示抢答或答题时间的倒计时;(4)在有人犯规时可以显示选手号、闪烁显示以及蜂鸣器报警;(5)答题时间还剩5s时,蜂鸣器报警提示。
抢答器的工作原理
利用单片机控制各个功能模块实现抢答功能,单片机收集选手的抢答信号,运用寄存器来识别并记录第一个选手号,传输信息给数码管显示,同时内部定时器工作,记录有关时间并产生超时信号,在抢答成功、倒计时结束都伴随有蜂鸣器警报提醒,从而实现单片机抢答的功能。
根据设计需求,结合单片机的工作原理,设计抢答器的工作流程图如图1所示。
硬件设计
在硬件设计方面利用单片机AT89C51控制抢答模块、显示模块、计时。
单片机四路抢答器的设计一、设计需求分析在设计四路抢答器之前,我们首先需要明确其功能需求。
1、能够同时支持四路选手进行抢答。
2、当有选手按下抢答按钮时,能够迅速锁定并显示抢答者的编号。
3、具备倒计时功能,在规定时间内无人抢答则显示超时。
4、要有声音提示,如抢答成功、违规抢答、倒计时结束等。
二、硬件设计1、单片机选择我们选用常见的 51 系列单片机,如 STC89C52 单片机。
它具有性能稳定、价格低廉、编程方便等优点。
2、输入模块使用四个独立按键作为四路选手的抢答按钮,分别连接到单片机的四个 I/O 口。
3、显示模块采用数码管显示抢答者的编号和倒计时时间。
可以选择共阴极或共阳极数码管,通过单片机的 I/O 口进行驱动。
4、声音模块使用蜂鸣器来实现声音提示功能。
通过单片机控制蜂鸣器的通断,产生不同频率的声音。
5、电源模块为整个系统提供稳定的电源,可以使用 5V 直流电源适配器。
三、软件设计1、编程语言选择 C 语言进行编程,C 语言具有语法简洁、可读性强、可移植性好等优点。
2、主程序流程系统初始化后,进入等待抢答状态。
当有选手按下抢答按钮时,判断是否违规抢答(即在倒计时未结束前抢答)。
如果是合法抢答,锁定抢答者编号并显示,同时发出抢答成功的声音提示;如果是违规抢答,则发出违规提示音并显示违规者编号。
在抢答成功后,开始倒计时,倒计时结束时发出超时提示音。
3、中断处理利用单片机的外部中断功能,实现对抢答按钮按下事件的快速响应。
4、计时与显示程序通过定时器实现倒计时功能,并将剩余时间实时显示在数码管上。
四、系统调试1、硬件调试首先检查电路连接是否正确,有无短路、断路等情况。
然后测量各个电源点的电压是否正常,确保硬件工作在稳定的状态。
2、软件调试将编写好的程序下载到单片机中,通过单步调试、断点调试等方式,检查程序的执行流程和逻辑是否正确。
同时观察数码管显示和蜂鸣器发声是否符合预期。
五、设计优化与拓展1、增加更多的抢答通道,以满足更多选手参与的需求。
目录第一部分、设计任务与调研 (2)第二部分、设计说明 (3)第三部分、设计成果 (11)第四部分、结语 (12)第五部分、致谢 (13)第六部分、参考文献 (14)第一部分、设计任务与调研1毕业设计及主要任务给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。
在主持人允许的情况下,优先抢答者发出抢答信号,此时其他参赛者的抢答电路失去控制作用;在主持人解除抢答信号后,电路才恢复到各组又均可抢答的状态中。
2设计的思路方法一、当节目主持人启动“开始”键后,要求定时器(如30秒)立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。
二、参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定抢答时刻的时间,并保持到主持人将系统清零为止。
三、如果定时抢答的时间已到,却没有选手抢答,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时抢答,时间显示器上显示00。
四、选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键。
3调研与总结抢答器广泛应用在学校和企事业单位举行的各种竞赛、抢答活动中,它能通过指示灯显示、语音提醒、数字显示、警示显示等手段迅速、准确、公正、地判断出最先获得发言权的选手。
通过这次课程的设计,了解简单多功能数字电路抢答器的组成原理,初步掌握数字电路抢答器的调整及测试方法,提高思考能力和实践能力。
同时通过本课题的设计,巩固已学的理论知识,简历逻辑数字电路的理论和实践的结合,了解多功能抢答器个单元之间的关系及相互影响,从而正确设计和计算定时计数的各个单元电路。
初步掌握多功能抢答器的调整及测试方法。
第二部分、设计说明1设计需求及工作原理按照设计需求,本系统具有以下几个主要功能:(1)抢答器同时供8名选手或8支参赛队伍使用;(2)抢答或回答时间主持人可自行设置;(3)能够显示抢答或答题时间的倒计时;(4)在有人犯规时可以显示选手号、闪烁显示以及蜂鸣器报警;(5)答题时间还剩5s时,蜂鸣器报警提示。
基于单片机的多路抢答器1引言此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的抢答器,本方案以AT89C51单片机作为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的八路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用C语言编程,使其实现一些基本的功能, 本设计的系统实用性强、判断精确、操作简单、扩展功能强。
本文介绍一种以51系列单片机为控制核心的智能型抢答器的电路组成、设计思路和功能。
该抢答器除具有基本的强大功能外,还具有计时和报警功能。
它对采样的各路抢答信号进行分析,识别超前违规信号、有效抢答信号,并对它们进行处理,从而使每一次抢答过程都有效,保证了抢答过程的快速性、有效性、准确性、公平性。
2设计方案及原理2.1抢答器设计方案(1)抢答器同时供8名选手或8个代表队比赛,分别用8个按钮“1”~“8”表示。
(2)设置一个系统清除和抢答控制的“开始”开关,该开关由主持人控制。
2.2抢答器设计原理(对原理图进行说明)图1 抢答器原理图3硬件设计3.1系统原理电路图基于各个模块的设计,可以设计出系统原理电路图,P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口,RST复位,XTAL1和XTAL2接晶振电路。
系统原理电路图如图1.2所示。
图2 系统原理电路图3.2 音频报警模块设计蜂鸣器的正极接到VCC (+5V )电源上面,蜂鸣器的正极接到三极管的发射极E ,三极管的基极B 经过限流电阻R1后由单片机的P1.7引脚控制,当P1.7输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,可以通过程序控制P1.7脚的电平来使蜂鸣器发出声音或关闭。
音频模块连接如图4所示。
3.3 音频报警模块设计图3 音频模块连接图4软件设计4.1程序流程图程序流程图如图4所示。
目录1 前言 (1)2 功能概括 (1)抢答器工作原理 (1)设计目的与要求 (1)设计任务 (1)运转环境及工具 (2)3 系统硬件设计 (2)芯片的选择 (2)原理及电路总框图 (2)晶振复位及开始抢答电路 (3)选手抢答键 (3)显示与显示驱动电路 (4)蜂鸣器音频输出电路 (4)4 系统软件设计 (5)系统主程序设计 (5)系统流程图 (6)程序清单 (7)5 系统仿真结果 (14)开始抢答仿真 (14)抢答犯规仿真 (15)抢答成功仿真 (16)6 课程设计的总结与领会 (17)参照文件资料 (17)1前言此刻的社会竞争日趋强烈,选拔人材,评比优越,知识比赛之类的活动更加屡次,那么也就必定离不开抢答器。
而此刻的抢答器有着数字化,智能化的方向发展,这就必定提升了抢答器的成本。
鉴于此刻小规模的知识比赛愈来愈多,操作简单,经济适用的小型抢答器势必大有市场。
本抢答器与其余抢答器电路对比较有分辨时间极短、构造清楚,成本低、制作方便等长处,并且还有防舞弊功能。
所以,我们制作了这款简略多路(十六路)数字抢答器摒弃了成本高、体积大、操作复杂。
我们采纳了数字显示器直接指示,自动锁存显示结果,因此本抢答器拥有显示直观,操作简单的特色。
并且在显示时抢答器会发出蜂鸣声使成效更加生动。
工厂、学校和电视台等单位常举办各样智力比赛 , 抢答记分器是必需设施。
2功能概括2.1 抢答器工作原理抢答器的工作原理是采纳单片机最小系统,用查问式键盘进行抢答。
采纳动向显示组号。
主持人按下开始抢答键才能够抢答。
主持人没有按下开始抢答按纽(),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关从头抢答。
主持人按下开始抢答按纽(),蜂鸣响声提示,且数码管 10 秒倒计时(10 秒内抢答有效),有人在 10 秒抢答,蜂鸣器响声提示并显示他的组号, 3 秒开始 20 秒倒计时(20 秒内一定回答完问题)。
20 秒后主持人按下复位开关为下一题的抢答做准备。
长沙学院《单片机原理及应用》课程设计说明书题目基于单片机的多路抢答器设计系(部) 电子与通信工程系专业(班级)姓名学号指导教师起止日期《单片机原理及应用》课程设计任务书长沙学院课程设计鉴定表目录目录目录 (4)1设计内容与要求 (5)2 设计方案 (6)3.电路仿真图 (7)4.程序框图 (9)5.心得体会 (10)6.参考文献: (10)概要数字抢答器由主体电路与扩展电路组成。
优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出用控制电路和主持人开关启动报警电路,以上两部分组成主体电路.通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。
经过布线、焊接、调试等工作后数字抢答器成形。
单片机体积小价格低,应用方便,稳定可靠。
单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。
单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。
对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。
抢答器不考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气选手们都站在同一个起跑线上,体现了公平公正的原则。
关键字:抢答电路定时电路报警电路1设计内容与要求设计内容设计一个抢答器,可供位选手抢答,主持人可通过开关复位控制,具有抢答、设计要求设计一个抢答器,可以同时供8名选手或8个队伍参加比赛,他们的编号分别是1、2、3、4、5、6、7、8,各用一个抢答按钮,按钮的编号与选手的编号相对应,也是给节目主持人设置一个控制开关9,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
抢答器具有数据锁存和显示功能。
抢答开始,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时扬声器给出音响提示。
此外要封存输入电路,禁止其他选手抢答。
优先抢答选手的编号一直保持到系统清零为止。
抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定,档节目主持人按下“9”按钮后,同时扬声器发出短暂声,抢答有效,定时器停止工作,显示器上显示选手的编号,并保持到主持人将系统清零为止。
2 设计方案抢答按钮连接控制电路,抢答开始,有选手按下抢答按钮后,控制电路是锁存器锁存各个抢答路的电平高低,从而锁存了第一位抢答者的抢答信号,同时切断其他抢答者的抢答信号,阻止其他选手的抢答。
编码器将抢答结果译成二进制数送给下一级译码显示电路,译码显示电路显示抢答成功者的号码。
声响电路可以发出提醒声响。
3.电路仿真图总电路图辅助电路部分:共阳极的数码显示电路部分:1~9号按键电路部分(包括主持人的开关复位按键9)蜂鸣电路(唱歌的)4.程序框图5.心得体会我在这一次抢答器的设计过程中,很是受益匪浅。
通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。
这为自己今后进一步深化学习,积累了一定宝贵的经验。
实习的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。
培养了我运用所学知识解决实际问题的能力。
通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。
这个实验十分有意义我获得很深刻的经验。
通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。
我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家通过自己的手来解决问题比用脑子解决问题更加深刻。
学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。
这种做法既有助于完成理论知识的巩固又有助于带动实践解决实际问题加强我们的动手能力和解决问题的能力6.参考文献:1. 单片机课程设计实例指导,李光飞,北京航天航空大学出版社,20042. 单片机原理及接口技术(第3版),李朝青,北京航空航天大学出版社,20023. 单片机C程序设计及应用实例,胡伟,人民邮电出版社,20034. 单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,20075.电子电路及电子器件, 郭培源,高等教育出版社.,2003附录:#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define uint unsigned int#define uchar unsigned charuchar Flag;uint a;uchar code sound[]={0xff,0x39,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x2b,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0x30,0x30,0x2b,0x30,0x26,0x30,0x39,0x30,0x30,0x30,0x39,0x30, 0x30,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x30,0x30,0x30,0x2b,0x30,0x2b,0x30,0x24,0x30,0x24,0x30,0x24,0x30,0x30,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x2b,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0x39,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x2b,0x30,0x30,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x30,0x39,0x30,0x2b,0x30,0x2b,0x30,0x26,0x30,0x24,0x30,0x24,0x30,0x24,0x30,0x30,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0x2b,0x30,0x30,0x30,0x2b,0x30,0x30,0x30,0x2b,0x30,0x26,0x30,0x2b,0x30,0x30,0x30,0x26,0x30,0x26,0x30,0x2b,0x30,0x2b,0x30,0x30,0x30,0x30,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x30,0x30,0x30,0x33,0x30,0x33,0x30,0x33,0x30,0x33,0x30,0x33,0x30,0x39,0x30,0x33,0x30,0x26,0x30,0x39,0x30,0x26,0x30,0x20,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x30,0x30,0x39,0x30,0x20,0x30,0x39,0x30,0x20,0x30,0x20,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x39,0x30,0x26,0x30,0x2b,0x30,0x2b,0x30,0x26,0x30,0x39,0x30,0x39,0x30,0x30,0x30,0x30,0x30,0x26,0x30,0x39,0x30,0x39,0x30,0x26,0x30,0x39,0x30,0x33,0x30,0x33,0x30,0x26,0x30,0x39,0x30,0x26,0x30,0x20,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x39,0x30,0x30,0x30,0x39,0x30,0x20,0x30,0x39,0x30,0x20,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x39,0x30,0x26,0x30,0x2b,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0x26,0x30,0x39,0x30,0x39,0x30,0x33,0x30,0x33,0x30,0x33,0x30,0x2b,0x30,0x30,0x30,0x33,0x30,0x33,0x30,0x39,0x30,0x39,0x30,0x00,// 0xff,0x26,0x40,0x2b,0x40,0x33,0x40,0x30,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x33,0x40,0x39,0x40,0x39,0x40,0x24,0x40,0x26,0x40,0xff,0x40,0x26, 0x40,0x2b,0x40,0x19,0x40,0x18,0x40,0x26,0x40,0x2b,0x40,0x18,0x40,0x19,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0xff,0x40,0x1c,0x40,0x1c,0x40,0x2b,0x40,0x24,0x40,0x26,0x40,0x1c,0x40,0x24,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x26,0x40,0xff,0x40,0x26,0x40,0x2b,0x40,0x19,0x40,0x18,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x33,0x40,0x39,0x40,0x39,0x40,0x24,0x40,0x26,0x40,0x13,0x40,0x15,0x40,0x19,0x40,0x18,0x40,0x13,0x40,0x15,0x40,0x18,0x40,0x19,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0xff,0x40,0x1c,0x40,0x18,0x40,0x18,0x40,0x18,0x40,0x18,0x40,0x19,0x40,0x1c,0x40,0x18,0x40,0x19,0x40,0x1c,0x40,0x19,0x40,0xff,0x40,0x33,0x40,0x30,0x40,0x2b,0x40,0x24,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x33,0x40,0x1c,0x40,0x1c,0x40, 0x1c,0x40,0xff,0x40,0x00,//0xff,0x26,0x20,0x2b,0x20,0x26,0x20,0x2b,0x20,0x26,0x20,0x33,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0xff,0x20,0x30,0x20,0x26,0x20,0x39,0x20,0x33,0x20,0xff,0x20,0x4c,0x20,0x39,0x20,0x33,0x20,0x30,0x20,0xff,0x20,0x4c,0x20,0x4c,0x20,0x2b,0x20,0x4c,0x20,0x2b,0x20,0x4c,0x20,0x33,0x20,0x55,0x20,0x60,0x20,0x39,0x20,0xff,0x20,0x60,0x20,0x4c,0x20,0x39,0x20,0x33,0x20,0xff,0x20,0x4c,0x20,0x60,0x20,0x33,0x20,0x39,0x20,0x39,0x20,0xff,0x20,0x33,0x20,0x30,0x20,0x2b,0x20,0x4c,0x20,0x30,0x20,0x24,0x20,0x4c,0x20,0x2b,0x20,0x48,0x20,0x4c,0x20,0x55,0x20,0x60,0x20,0x4c,0x20,0x55,0x20,0x60,0x20,0x33,0x20,0xff,0x20,0x55,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x33,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0xff,0x20,0x60,0x20,0x4c,0x20,0x39,0x20,0x33,0x20,0xff,0x20,0x4c,0x20,0x40,0x20,0x33,0x20,0x30,0x20,0xff,0x20,0x4c,0x20,0x4c,0x20,0x2b,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x33,0x20,0x2b,0x20,0x60,0x20,0x39,0x20,0xff,0x20,0x60,0x20,0x4c,0x20,0x39,0x20,0x33,0x20,0xff,0x20,0x4c,0x20,0x60,0x20,0x33,0x20,0x39,0x20,0xff,0x20,0x33,0x20,0x30,0x20,0x2b,0x20,0x26,0x20,0x40,0x20,0x48,0x20,0x4c,0x20,0x2b,0x20,0x48,0x20,0x4c,0x20,0x2b,0x20,0x30,0x20,0x4c,0x20,0x55,0x20,0x30,0x20,0x33,0x20,0xff,0x20,0x55,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x33,0x20,0x55,0x20,0x30,0x20,0x39,0x20,0xff,0x20,0x60,0x20,0x26,0x20,0x39,0x20,0x33,0x20,0xff,0x20,0x4c,0x20,0x40,0x20,0x33,0x20,0x30,0x20,0xff,0x20,0x4c,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x55,0x20,0x4c,0x20,0x33,0x20,0x55,0x20,0x60,0x20,0x39,0x20,0xff,0x20,0x60,0x20,0x4c,0x20,0x39,0x20,0x33,0x20,0xff,0x20,0x4c,0x20,0x60,0x20,0x33,0x20,0x39,0x20,0x00,// 0xff,0x2b,0x40,0x26,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x39,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x2b,0x40,0x26,0x40,0x26,0x40,0x26,0x40,0x20,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x26,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0x20,0x40,0x26,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x2b,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0x2b,0x40,0x30,0x40,0x1c,0x40,0x2b,0x40,0x30,0x40,0x1c,0x40,0x2b,0x40,0x26,0x40,0x30,0x40,0x2b,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x20,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x1c,0x40,0x1c,0x40,0x20,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0x2b,0x40,0x26,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x1c,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x2b,0x40,0x26,0x40, 0x26,0x40,0x26,0x40,0x20,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x26,0x40, 0x26,0x40,0x26,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40, 0x20,0x40,0x26,0x40,0x26,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40, 0x20,0x40,0x2b,0x40,0x26,0x40,0x26,0x40,0x2b,0x40,0x26,0x40,0x26,0x40, 0x2b,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40,0x1c,0x40, 0x2b,0x40,0x30,0x40,0x1c,0x40,0x2b,0x40,0x30,0x40,0x1c,0x40,0x2b,0x40, 0x26,0x40,0x30,0x40,0x2b,0x40,0x26,0x40,0x20,0x40,0x1c,0x40,0x20,0x40,0x26,0x40,0x2b,0x40,0x30,0x40,0x1c,0x40,0x1c,0x40,0x20,0x40,0x1c,0x40, 0x1c,0x40,0x1c,0x40,0x1c,0x40,0x00, //0xff,0x20,0x40,0x26,0x20,0x20,0x20,0x30,0x40,0x30,0x40,0x39,0x40,0x30,0x40, 0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x20,0x2b,0x20,0x26,0x40,0x2b,0x20, 0x30,0x20,0x2b,0x40,0x2b,0x40,0x2b,0x40,0xff,0x40,0x20,0x40,0x26,0x20, 0x20,0x20,0x30,0x40,0x19,0x40,0x1c,0x40,0x30,0x40,0x20,0x40,0x20,0x40, 0x20,0x40,0x2b,0x20,0x26,0x20,0x24,0x40,0x19,0x40,0x30,0x40,0x30,0x40, 0x30,0x40,0x30,0x40,0x1c,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x19,0x40, 0x1c,0x20,0x19,0x20,0x30,0x40,0x1c,0x20,0x19,0x20,0x30,0x20,0x1c,0x20, 0x1c,0x20,0x20,0x20,0x26,0x20,0x30,0x20,0x2b,0x40,0x2b,0x40,0x2b,0x40, 0x20,0x40,0x26,0x20,0x30,0x20,0x30,0x40,0x19,0x40,0x1c,0x40,0x30,0x40, 0x20,0x40,0x20,0x40,0x20,0x40,0x2b,0x20,0x26,0x20,0x24,0x40,0x19,0x40, 0x30,0x40,0x30,0x40,0x30,0x40,0x20,0x40,0x26,0x20,0x20,0x20,0x30,0x40,0x30,0x40,0x1c,0x40,0x30,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x20,0x2b,0x20,0x26,0x40,0x2b,0x20,0x30,0x20,0x2b,0x40,0x2b,0x40,0x2b,0x40,0x20,0x40,0x26,0x20,0x20,0x20,0x30,0x40,0x19,0x40,0x1c,0x40,0x30,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x2b,0x20,0x26,0x20,0x24,0x40,0x19,0x40,0x30,0x40,0x30,0x40,0x30,0x40,0x00,//0xff,0x26,0x20,0x2b,0x20,0x26,0x40,0x26,0x40,0xff,0x20,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x40,0x30,0x40,0xff,0x40,0x39,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x39,0x20,0x20,0x40,0x20,0x40,0x26,0x20,0x2b,0x20,0x26,0x40,0x26,0x40,0xff,0x20,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x40,0x30,0x40,0xff,0x40,0x39,0x20,0x30,0x20,0x2b,0x40,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x20,0x20,0x20,0x40,0x20,0x40,0xff,0x40,0x26,0x20,0x20,0x20,0x20,0x40,0x20,0x40,0xff,0x20,0x20,0x20,0x39,0x20,0x20,0x20,0x26,0x40,0x26,0x40,0xff,0x40,0x2b,0x20,0x26,0x20,0x2b,0x40,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x39,0x20,0x39,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0xff,0x40,0x20,0x20,0x20,0x20,0x39,0x20,0x30,0x20,0x33,0x20,0x39,0x20,0x20,0x20,0x26,0x20,0x2b,0x20,0x2b,0x20,0x26,0x20,0xff,0x20,0x26,0x20,0x26,0x20, 0x20,0x20,0x1c,0x40,0x1c,0x40,0xff,0x20,0x39,0x20,0x26,0x20,0x2b,0x20, 0x2b,0x40,0x2b,0x40,0xff,0x40,0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x20, 0xff,0x20,0x30,0x20,0x30,0x20,0x33,0x20,0x39,0x20,0x33,0x20,0x26,0x40,0xff,0x20,0x39,0x20,0x39,0x20,0x33,0x20,0x39,0x20,0x20,0x20,0x26,0x20,0x2b,0x20,0xff,0x20,0x26,0x20,0x2b,0x20,0x26,0x20,0x20,0x40,0x20,0x40,0xff,0x20,0x20,0x20,0x20,0x20,0x39,0x20,0x39,0x20,0x20,0x20,0x26,0x20,0x2b,0x20,0xff,0x20,0x20,0x20,0x20,0x20,0x39,0x20,0x30,0x40,0x30,0x40,0x30,0x40,0xff,0x40,0x00, //0xff,0x26,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0x26,0x20,0x30,0x20, 0x2b,0x30,0x2b,0x30,0x30,0x30,0x2b,0x30,0x2b,0x30,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x30,0x20,0x39,0x20,0x30,0x20,0x39,0x20,0x30,0x30,0x30,0x30,0x26,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0xff,0x30,0x39,0x30,0x39,0x30,0x20,0x30,0x39,0x30,0x39,0x30,0x39,0x20,0x39,0x20,0x20,0x30,0x20,0x30,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x20,0x2b,0x30,0x2b,0x20,0x30,0x20,0x2b,0x20,0x30,0x20,0x2b,0x30,0x2b,0x30,0x2b,0x20,0x26,0x20,0x2b,0x30,0x2b,0x30,0x2b,0x30,0xff,0x30,0x26,0x30,0x26,0x30,0x2b,0x30,0x26,0x30,0x26,0x30,0xff,0x20,0x30,0x20,0x2b,0x30,0x2b,0x30,0x30,0x30,0x2b,0x30,0x2b,0x30,0x26,0x20,0x2b,0x20,0x30,0x20,0x39,0x20,0x30,0x20,0x39,0x20,0x30,0x20,0x39,0x20,0x30,0x30,0x30,0x30,0x26,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0xff,0x30,0x20,0x20,0x39,0x30,0x39,0x30,0x20,0x30,0x39,0x30,0xff,0x30,0x39,0x20,0x26,0x20,0x20,0x30,0x20,0x30,0x20,0x30,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x26,0x30,0x20,0x30,0x20,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x30,0x10,0x30,0x10,0x30,0x10,0xff,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x30,0x26,0x30,0x39,0x30,0x20,0x30,0x26,0x30,0x20,0x30,0x20,0x30,0x20,0x20,0x20,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x30,0x26,0x30,0x26,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0xff,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x26,0x30,0x2b,0x20,0x30,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x20,0x2b,0x30,0x26,0x20,0x2b,0x20,0x30,0x30,0x2b,0x30,0x2b,0x30,0x2b,0x30,0xff,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b,0x30,0x26,0x30,0x39,0x30,0x20,0x30,0x26,0x30,0x20,0x30,0x20,0x30,0xff,0x20,0x20,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x30,0x30,0x30,0x26,0x30,0x39,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0xff,0x30,0xff,0x20,0x20,0x20,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0xff,0x20,0x39,0x20,0x20,0x30,0x20,0x30,0x39,0x20,0x26,0x20,0x26,0x20,0x2b,0x20,0x30,0x30,0xff,0x20,0x30,0x20,0x2b,0x30,0x2b,0x30,0x2b,0x20,0x26,0x20,0x26,0x20,0x20,0x30,0x2b,0x20,0x26,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,//0xff,0xff,0x40,0x26,0x40,0x26,0x20,0x2b,0x20,0x2b,0x40,0x2b,0x40,0x2b,0x40, 0x2b,0x20,0x26,0x20,0x30,0x40,0x39,0x40,0x26,0x40,0x26,0x20,0x2b,0x20, 0x2b,0x40,0x2b,0x40,0x2b,0x40,0x2b,0x20,0x26,0x20,0x30,0x40,0x30,0x20, 0x39,0x20,0x39,0x20,0x39,0x20,0x20,0x40,0x20,0x20,0x26,0x20,0x20,0x20, 0x1c,0x20,0x30,0x40,0x20,0x40,0x20,0x20,0x26,0x20,0x20,0x20,0x26,0x20, 0x20,0x20,0x30,0x20,0x39,0x40,0x39,0x20,0x30,0x20,0x30,0x20,0x39,0x20, 0x39,0x40,0x30,0x40,0x2b,0x40,0x30,0x40,0x2b,0x40,0x26,0x40,0x26,0x40, 0xff,0x40,0x30,0x20,0x2b,0x20,0x2b,0x20,0x30,0x20,0x30,0x40,0x30,0x20, 0x30,0x20,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x26,0x40,0x26,0x40,0x2b,0x10,0x26,0x10,0x2b,0x10,0x2b,0x10,0x30,0x10,0x20,0x10,0x1c,0x40,0xff,0x40,0x00,0xff,0xff,0x40,0x26,0x40,0x26,0x20,0x2b,0x20,0x2b,0x40,0x2b,0x40,0x2b,0x40,0x2b,0x20,0x26,0x20,0x30,0x40,0x39,0x40,0x26,0x40,0x26,0x20,0x2b,0x20, 0x2b,0x40,0x2b,0x40,0x2b,0x40,0x2b,0x20,0x26,0x20,0x30,0x40,0x30,0x20, 0x39,0x20,0x39,0x20,0x39,0x20,0x20,0x40,0x20,0x20,0x26,0x20,0x20,0x20, 0x1c,0x20,0x30,0x40,0x20,0x40,0x20,0x20,0x26,0x20,0x20,0x20,0x26,0x20, 0x20,0x20,0x30,0x20,0x39,0x40,0x39,0x20,0x30,0x20,0x30,0x20,0x39,0x20, 0x39,0x40,0x30,0x40,0x2b,0x40,0x30,0x40,0x2b,0x40,0x26,0x40,0x26,0x40, 0xff,0x40,0x30,0x20,0x2b,0x20,0x2b,0x20,0x30,0x20,0x30,0x40,0x30,0x20, 0x30,0x20,0x2b,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x26,0x40,0x26,0x40,0x2b,0x10,0x26,0x10,0x2b,0x10,0x2b,0x10,0x30,0x10,0x20,0x10,0x1c,0x40,0xff,0x40,0x00};//uchar zdjs=0, jp;del(yj);sbit voice=P3^4;sbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;sbit key5=P2^4;sbit key6=P2^5;sbit key7=P2^6;sbit key8=P2^7;sbit key9=P3^2; // 复位void main(){uint dpjs;uchar yj;TMOD=0x01,IE=0x82;TH0=0xd8, TL0=0xef;IT0=1;EA=1;EX0=1;TR0=1;while(!Flag)//执行一次就停止了先检测到的相应复位后有效{if(!key1) {P1=0x9E;Flag=1;dpjs=0;a=0;}//else if(!key2){del(yj);P1=0x24;Flag=1;dpjs=320;a=320;}//else if(!key3){P1=0x0C;Flag=1;dpjs=494;a=494;}//else if(!key4){P1=0x98;Flag=1;dpjs=814;a=814;}//else if(!key5){P1=0x48;Flag=1;dpjs=1102;a=1102;}//else if(!key6){P1=0x40;Flag=1;dpjs=1320;a=1320;}//else if(!key7){P1=0x1E;Flag=1;dpjs=1592;a=1592;}//else if(!key8){P1=0x00;Flag=1;dpjs=2030;a=2030;}//}while(Flag){zdjs=0;dpjs++; yj=sound[dpjs];dpjs++; jp=sound[dpjs];while(zdjs!=jp){if(yj!=0xff){if(yj!=0){voice=!voice;del(yj);}else{dpjs=a;break;}}else{voice=0;del(jp);}}}}time0() interrupt 1 using 1{TH0=0xd8, TL0=0xef; zdjs++;}del(yj){uchar yj2=2;while(yj!=0){while(yj2!=0) {yj2--; }yj2=2;yj--; }}void fuwei(void) interrupt 0 {Flag=0;P1=0xff;// dpjs=0;}。