




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的四路抢答器设计小组成员:丁 霏 10272094乐燕思 10272096刘 颖 10272104目录摘要2一需实现的功能2二硬件设计22.1抢答器电路图22.2单元电路设计32.2.1.主持人开关:32.2.2选手开关电路:42.2.3报警系统:52.3.4显示系统:52.3.5晶振系统:62.3.6鉴别电路:7三软件设计73.1原理框图73.2程序流程图83.3程序10四实践过程2341具体过程:234.2碰到的问题及解决方案24五总结与体会26摘要现在抢答器很广泛地用于各种场合的竞赛,为竞争增添了刺激性、娱乐性。抢答器的出现为人们带来了方便,能准确无误的从若干名参赛中确定出最先抢答者,并且有显示,声效等功能。本文介绍一种四路抢答器,由抢答电路,定时电路,报警电路等组成。关键字:四路抢答器 抢答电路 定时电路 报警电路 一需实现的功能1.接通电源后,数码管显示为“F FF”,此时抢答器处于禁止抢答状态;2.主持人可通过抢答时间调节按键与答题时间调节按键来调节时间长短,再按下停止键后,主持人按下“开始”键,宣布“开始”抢答,定时器开始倒计时且蜂鸣器提示,选手在规定的15s定时时间内抢答;3.当有选手按下抢答按键时,则显示选手编号与剩余答题时间显示且蜂鸣器提示,此时其他选手不能再进行抢答;4.答题结束后,主持人按下停止键,如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关,此时抢答时间与答题时间恢复为默认值,分别为15s和45s,但若主持人只停止键后就开始下一轮抢答则抢答时间与答题时间为上一轮设置的时间。 二硬件设计2.1抢答器电路图如图2.1所示为电路图,其工作原理为:接通电源后主持人将开关拨到“清零”状态,抢答器处于禁止状态,定时器设定时间,主持人将开关置“开始”,宣布抢答开始时,定时器倒计时,扬声器发出响声。选手要在规定时间内完成抢答;优先判断,编号锁存,扬声器提示。图2.1 抢答器电路图2.2单元电路设计如图2.2所示为硬件电路设计模块:图2.2 硬件电路设计模块2.2.1.主持人开关:如图2.2所示,该图为主持人宣布抢答开始与结束信号的输入装置。图2.2.1 主持人开关2.2.2选手开关电路:如图2.2.2所示,该图为各个选手抢答信号的输入装置,在通过单片机,选择有效信号,同时封锁。图2.2.2 选手开关电路2.2.3报警系统:如图2.2.3所示,报警电路用于报警,当遇到信号时,发出报警。选手在设定时间内抢答时,实现优先判断编号锁存等提示。图2.2.3 报警系统电路图2.3.4显示系统:如图2.3.4所示,显示电路用于显示抢答时间以及抢答信号,同时对犯规抢答组进行闪烁显示。图2.3.4 显示系统电路图2.3.5晶振系统:如图2.3.5所示2.3.5 晶振系统电路图2.3.6鉴别电路:如图2.3.6所示2.3.6 鉴别电路图三软件设计3.1原理框图如图3.1所示为总体原理框图。图3.1 总体原理框图3.2程序流程图如图3.2所示为程序流程图。图3.2 程序流程图3.3程序OK EQU 20H ;抢答开始标志位 RING EQU 22H ;响铃标志位DATA0 EQU 36H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#15 ;初设抢答时间为15s MOV R2,#45 ;初设答题时间为45s mov 38h,#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 ;允许二个中断,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=;=查询程序=;=START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示FFF JNB P3.3,SELSUB0 JNB P3.4,TZ3 ;倒计时调整 JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 SETB EX0 ;开放INT0 ACALL BARK ;按键发声 MOV A,R1 MOV R6,A ;送R1-R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,在使用锦囊时用作判断是抢答倒计时还是回答倒计时 MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP COUNT ;进入倒计时程序,查询有效抢答的程序在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,TZ1 JNB P1.3,TZ2 AJMP STARTTZ1: AJMP FALSE3TZ2: AJMP FALSE4TZ3: AJMP SELSUB1 AJMP START;=;=非法抢答处理程序=;=FALSE1: MOV R3,#01H AJMP ERRORFALSE2: MOV R3,#02H AJMP ERRORFALSE3: MOV R3,#03H AJMP ERRORFALSE4: MOV R3,#04H AJMP ERROR;=;=SELSUB0(抢答时间R1调整程序)= ;=SELSUB0: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在两个时间LED上显示R1 JNB P3.5,INC0 ;P3.5为+1s键,如按下跳到INCO JNB P3.6,DEC0 ;P3.6为-1s键,如按下跳到DECO JNB P3.1,BACK0 ;P3.1为确定键,如按下跳到BACKO AJMP SELSUB0INC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP SELSUB0ADD0: INC R1 ACALL DELAY1 AJMP SELSUB0DEC0: MOV A,R1 JZ SETR1 ;如果R1为0, R1就置99 DEC R1 ACALL DELAY1 AJMP SELSUB0SETR1: MOV R1,#63H ACALL DELAY1 AJMP SELSUB0BACK0: AJMP START;=;=SELSUB1(回答时间R2调整程序)=;=SELSUB1: MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.5,INC1 JNB P3.6,DEC1 JNB P3.1,BACK1 AJMP SELSUB1INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP SELSUB1ADD1: INC R2 ACALL DELAY1 AJMP SELSUB1DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP SELSUB1SETR2: MOV R2,#63H ACALL DELAY1 AJMP SELSUB1BACK1: AJMP START;=;=启用锦囊程序=;=REPEAT: MOV A,38h ;使用锦囊时重新计时 MOV R6,A CLR RING ;当倒计时进入最后5秒的时候,启用锦囊能消除蜂鸣;=;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)= ;=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 P3.1,QUIT ;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTTCHECKK: JNB P3.0,REPEAT ;判断是否使用锦囊NEXTT: ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT: MOV A,DATA0 JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TZ7 JNB ACC.3,TZ8 AJMP RECOUNT TZ7: AJMP TRUE3 TZ8: AJMP TRUE4 AJMP RECOUNT QUIT: CLR OK ;如果按下了停止键执行的程序 CLR RING AJMP START;=;=正常抢答处理程序=;=TRUE1: 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 COUNT;=;=犯规抢答程序=;=ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3 ;犯规号数暂存与(34H)HERE: MOV A,R0 CJNE A,#06H,FLASH ;0.3s向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH ;三灯全灭 AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1 ;下面是0.6s的情况,响并显示号数并清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 DPTR,#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,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.7 ;RING标志位为1时候P3.7口不断取反使喇叭发出一定频率的声音OUT: RETI;=;=T1溢出中断(计时程序)= ;=T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI=INTT0中断服务程序=INTT0: MOV DATA0,P1 CLR EX0 RETI END四实践过程41具体过程:1、在Protues ISIS软件上模拟电路及程序;2、在面包板上连接电路,如图4.1为面包板上的模拟电路;3、在万能板上焊接电路,完成作品; 4、通过Proteus简化电路图,完成PCB制板的模拟。4.1 面包板模拟电路4.2碰到的问题及解决方案1、模拟程序的选择与安装 程序模拟是焊板子与制板的第一步,本来打算安装protel 2004,但是在程序安装时候遇到了很大的问题,无论如何也安不上,破解很难,即便是按照要求都做了,仍然行不通,而且通过上网了解得知protel很难上手,相比来说,proteus要比较容易上手一些。 2、proteus程序学习,包括ISIS里面原件的寻找,电路连接,在蜂鸣器的连接这里出了问题,只单纯的认为只要蜂鸣器的正极接单片机,负极接地就可以工作了,程序模拟时就出现问题了,蜂鸣器不工作,为此还到处找问题,是不是程序写错了,还是电路连接不对,后来通过查找资料,和他人的系统对比,发现是少了三极管的电路放大,至今为止仍然不明白为什么。 3、元件的选取,我们去中发一共去了三次,第一次是三个人一起去的,买东西的时候很快发现问题,买芯片是需要型号的,做电路模拟的时候就知道需要四进一出的与门和单非门,型号是什么还是现场查的,可不可靠很难说。电源的选取,开始我们就在想,+5v的电池要怎么买,店家也表示没有,告诉我们两节干电池就能带起来,害我们焊接好了电路板没有相应还以为是接错了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法学债权课件
- 北美雅思考试真题及答案
- 民歌欣赏课件
- 民族风土人情课件
- 新质生产力国际贸易现状分析
- 基层林业新质生产力发展路径
- 新技术驱动新质生产力案例
- 新质生产力与资本的协同发展
- 助推新质生产力发展的策略
- 2025年康复医学综合评估与康复方案设计考试卷答案及解析
- 2025国家能源集团招聘笔试历年参考题库附带答案详解
- 编织课件教学课件
- 认证机构保密管理办法
- 土建类安全员C2模拟试题及参考答案
- 公司财务报表分析技巧与方法
- 硒鼓基础知识培训内容课件
- 心脏猝死教学课件
- 成长型思维培养-洞察及研究
- (2025)全国辅警考试题库及答案
- 体操新课标解读
- 2025年初级薪税师(三级)《理论知识》考试真题(题后附答案及解析)
评论
0/150
提交评论