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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

六路抢答器设计.docx

1、六路抢答器设计1问题描述 1.1设计任务设计制作一个可容纳六组参赛队的智力竞赛抢答器,每组设置一个抢答按钮供抢答者使用。 电路具有第一抢答信号的鉴别和锁存功能。1.2设计要求要求确定第一个输入的抢答信号,并保持该信号不变,同时使后输入的信号无效。在发出“抢答开始命令”后开始计时,经过规定的抢答时间后若没有人抢答,就发出“抢答时间到”信号,并锁定输入电路,使各路抢答信号无法再输入。 设置计分电路,开始时每组预置为100分或其他,答对一次加10分,答错减10分(可选)。2设计思想课程设计此次课程设计有点难度,刚开始是一直都没有设计思路,后来通过在网上收集资料,参考一些比较成功的设计思路。慢慢就有了

2、一些自己的想法以及思路的形成。我设计的智力竞赛抢答器可同时供6名选手或6个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、, 各用一个抢答按钮,按钮的编号与选手的编号是相对应的,分别是S1、S2、S3、S4、S5、S6;给节目主持人设置二个控制按钮开关,用来控制系统的清零和抢答的开始抢答器具有程序存储、数据锁存和显示功能,抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在数码管上显示出选手的编号,同时蜂鸣器给出音响提示,此外,要封锁输入电路,禁止其他选手 抢答,优先抢答选手的编号一直保持到主持人将系统清零为止如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节键进入调节状态,

3、此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s键,如果想减一秒按一下-1s键,时间就会显示改变后的时间,调整范围为0s99s, 0s时再减1s会跳到99,99s时再加1s会变到0s,主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设15s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设10s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入准备状态,等待主持人按下“抢答开始开关”进入下次抢答计时。如果主持人未按抢答开始键,而有

4、人按了抢答按键,犯规抢答,显示器上不断闪烁FF和犯规号数并响个不停,直到按下停止 键为止。 有想过设计记分系统但程序太过于复杂,在我的能力之外,因此只能有以上粗陋的设计思路。我相信还有很大的发展的空间需要我们去完善,去扩展。3电路原理与电路图3.1电路原理图:图3.1 硬件电路图3.2电路原理和过程说明电路工作原理和过程说明:上图是硬件电路图应用单片机实现了六路抢答的功能,89c51是性能很好的单片机运用了单片机的各个接口的原理。其中p1.1到p1.6是抢答开关的接口,p1.0是开始按键的接口,p1.7是停止按键的接口。只要一按下开始键电路就会开始倒计时,然后选手就开始抢答,在LED显示器上显

5、示选手的编号以及时间的倒计时,但在规定时间的后5s还没回答出就会发出警告的声音。当有选手犯规时则显示选手的编号同时发出报警的声音。4流程图与仿真结果4.1系统原理如图2.2所示: 图2.2系统原理图说明:系统原理图是根据单片机的功能和不同的程序而设计的一个模块,能够反应系统的工作原理。让你在没看到元件之前就先知道运用的范围,给人初步的认知。此系统原理图简单明了,分为三大部分有系统初始化模块、按键模块(非法抢答模块、正确抢答模块、调整抢答时间、调整回答时间)、数码显示模块。4.2程序流程图 否 是 否 否 否 是 是 是 否 是图2.1流程图说明:开始键按下,进入抢答倒计时,要是有人抢答则开始回

6、答问题。如果没人抢答则且倒计时间到则按超时处理。要是在没有开始就有人抢答则按犯规处理,并结束此次抢答进入下一次抢答。4.3仿真结果及说明说明:当按下PIAY键时出现如下图所示的起始现象。这段由主持人控制,其可以进行清零和抢答开始的控制。 图4.1 说明:按下开始开关即为抢答时间倒计时15S,此时间可以随意设置。如图4.2所示但在截图之前已经过去了2s 图4.2说明:当按下开始键后选手就可以抢答,下图4.3显示的是一号选手正确抢答,回答时间为10s开始倒计时。对选手的序号进行锁存显示器显示其序号。证明其数据锁存、显示功能正常。图4.3说明:当按下开始键后选手就可以抢答,下图4.4显示的是五号选手

7、正确抢答,回答时间为10s开始倒计时。图4.4说明:回答时间可以调整下图4.5为按下回答时间调整开关时间从15加到60S图4.5说明:当有选手犯规会出现如图4.6所示情况,显示犯规选手的编号并且不停的跳动发出报警的声音 图4.6 5设计总结课程设计很有挑战性也很有难度,我在这次课程设计中花费了很多的时间和精力。从开始选择课题到最后的成型阶段遇到了很多的困难。但在其中收获的遇到的困难要多的多,因此还是非常乐意去将课程搞好。 在这次课程设计中申老师给了我很多的建议和帮助,在开始根本没有思路的时候我第一反应就是问老师,老师在第一时间给了我答复。模型的建立需要一段时间的研究,这就是体现我们组员的合作精

8、神的时候了,每个人都把自己的想法说出来然后进行讨论。在老师的要求下我们达成了一致,就是在共同设计的基础上要有所不同。在遇到问题时我们就会在网上或通过电话联系争取在老师规定的时间内做好。对有些我们不知道的东西我们很主动的联系老师,比喻我在选择仿真器件的时候不知道哪些功能要全面一些。在选择单片机的类型方面遇到了一些难题,因为不同的单片机的功能不完全相同。比喻89c51就要比80c51要强很多,所以必须得考虑好该使用那些器件。我觉得什么事情都的自己去花心思才能得到自己想要的结果,你只有自己全心的去做了是不会让老师失望的。 总的来说这次课程设计我收获了很多东西,使我的动手能力有了极大的提高,也让我在考

9、虑问题的多样性方面更加全面。我个人认为这次课程设计是成功的,让我明白了只要自己能够坚持去做一件事,并且有多学多问的习惯没有什么事是做不到的。加之老师的帮助以及同学之间的合作,我觉得只要自己想去做就一定会完成的。我觉得人生在世是需要很多帮助的,单凭自己一个人是不会过的很好的。当我们帮助别人或被帮助时我们都的怀着一颗感谢的心。在这次课程设计中我要感谢我的指导老师申寿云老师,申老师是一个非常负责的老师,值得信任。同时也很感谢给过我帮助的同学,要不是你们的帮助我是很难完成这次课程设计的,谢谢你们的帮助和支持。参考文献1 李建忠.单片机原理及应用.西安电子科技大学出版社,20082 张迎新.单片机初级教

10、程单片机基础.北京航空航天大学出版社,2006 3 张俊谟.单片机中级教程-原理与应用.北京航空航天大学出版社,2006附录程序设计源代码:OK 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 0040H;主程序MAIN: MOV R1,#0FH ;初设抢答时间为15s MOV R2,#

11、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,#0BH MOV R4,#

12、0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示FFF JB P1.0,NEXT ;ddddddd ACALL DELAY JB P1.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.1,FALSE1 JNB P1

13、.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START;=非法抢答处理程序=FALSE1: 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

14、 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 P1.7,BACK0 ;P3.1为确定键,如按下跳到BACKO AJMP INT0SUBINC0: MOV A,R1 CJNE

15、A,#63H,ADD0 ;如果不是99,R2加1,如果加到99了,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: 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 DI

16、V 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 DELA

17、Y1 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

18、 ;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECK FULL: CJNE A,#14H,CHECK;下面系1s的情况,响并显示号数并清R0,重新计 SETB RING MOV A,R6 JZ QUIT ;计时完毕 MOV R0,#00H DEC R6 ;一秒标志减1 AJMP CHECK LARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查停/显示 DEC R6 ;计时一秒R6自动减1 MOV R0,#00H CHECK: JNB P1

19、.7,QUIT ;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNT ACCOUT:JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE5 AJMP RECOUNT QUIT: CLR OK ;如果按下了停止键执行的程序 CLR RING AJMP START;=正常抢答处理程序=TRUE1: ACALL BARK ;按键发声 MOV A,R2 M

20、OV 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

21、 R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H 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向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH ;三灯全灭 AJMP CHECK1FLASH: CJN

22、E A,#14H,CHECK1 ;下面系1s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H ;取回号数 MOV R5,#0BH MOV R4,#0BH ;显示FF和号数 AJMP CHECK1CHECK1:JNB P1.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,#01

23、H 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;第一个为零,其他与上相同

24、,因为十位如果为零显示熄灭;=加减时间延时(起到不会按下就加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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2