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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

多路抢答器设计论文.docx

1、多路抢答器设计论文 多路抢答器的设计 摘要 本作品以AT89S52单片机作为主要模块、数码管做为显示模块。本抢答器主要是通过八个按键开关来摸拟八路选手的抢答,开始键按下,则进入到八个按键的扫描中,同时显数倒计时时间。同时该抢答器还有时间的加减、数据的清零、八路选择手犯规报警功能;通过数码管来显示抢答的时间和抢答选手的号数。本作品造价便宜,硬件比较简单,通俗易懂,趣味十足。关键词:单片机, 抢答器,显示一、作品设计方案论证与比较1、主控部分的方案比较方案一:用以AT89S52为核心的单片机控制方案,通过相应的程序,并通过按键来进行电平识别,再由单片机输出相应的程序,并将相应数值通过数码来显示,运

2、用这个方案来实现题目的要求,其硬件电路的设计简单,编程并不是很复杂,作品功能的调试只要稍微结合电路,修改一下相应程序即可。方案二:采用数字电路实现输出电压的控制方案,用加减计数器,通过加减键实现加计数或减计数,通过计数器的自动加减,锁存器的锁存显示等。用这种方法来实现,其优点是不用编程,但其不足的之处是电路复杂,焊接工程量大,一旦焊接错误,就会给检查硬件带来很大的麻烦,而且调试也相对麻烦。通过比较发现,用单片机来制作的抢答器,硬件电路比较简单,容易明白,且成本相对较低;而用数电芯片来制作的抢答器,电路相对比较复杂,成本相对较高。综合考滤,最终选择方案一。2、显示部份的比较设计方案一:采用LCD

3、1602显示,用单片机可实现数据显示,显示内容较为丰富,较为美观,但显示亮度和字体大小在演示时不尽人意,价格也比较昂贵,且题目要求的显示内容也较少,只是倒计时的时间和相应的队号而以,所以没有采用此方案。方案二:采用LED七段数码管,采用三极管9012做为位码驱动,电路结构简单,并且可以实现单片机I/O口的并用,显示效果直观,明亮,调试容易,成本较低。故采用LED数码管显示。电路如下图1-1所示图1-1三、硬件电路设计本系统采用AT89S52单片机作为控制核心,对按键开关送来的信号进行分析处理,最终控制数码管显示相应的数值。本系统主要的单元电路有单片机主控电路、键盘控制电路、LED显示电路模块等

4、。1系统整体方案的设计通过对整个电路部分的比较设计,得出整体系统如图1-2所示。图1-2 系统框图2单片机主控电路主控电路以单片机最小系统(电路图省略)为的接口电路部分,最小系统图作为单片机主控电路工作的基础包括了时钟电路、复位电路等。主控电路中P0口控制驱动LED段码,P3键盘扫描控制,P2与P0部分接口分别用来作为开始与关断的输入端口。四、软件的设计 系统程序主流程图如图1-3所示。五、调试与分析 本次作品的调试是通过实验板供电和编写程序来调试的。首先,把编好的程序,通过实验板稍入单片机中,在利用单片机放到我们的电路板里进行每项功能的校验与调试,刚开始时我们的电路有些问题,经过修改电路后在

5、重新调试才出功能,需要每实现一个功能就并入另外一个功能,最后使它们完整的结合在一起才算成功。 具体操作:1、接上五伏电源,观察数码管显示及报警状态。 2、此时按下P2.1,即可进行抢答时间的设置,可加、可减。 3、此时先不按下开始键,而是按下任意键,这时就可以获知犯规的功能是否实现了,结果完全正确。 4、然后再按下开始键,此时观察数码管显示倒计时是否正确,还有按下选手键,这时数码管会显示相应的选手号,同时时间停止。这个过程完全正确。 综合各个测试合果,发现完全符合题目的要求,所以所有测试完全成功。六、设计制作总结通过一个多星期的努力,我们顺利的完成了抢答器的制作,成功的完了此次实训,此次实训相

6、对来说程序比较多,也有很多值得我们去学习的地方。从作品的构思、用实验板的测试、对要制作板的构造、制作板、整体调试这是一个比较复杂的过程,这是一次对我们的考验,这是给我们的一个锻炼机会。我们很珍惜此次实训,用心的去完成每个步骤,努力去达到所要得到的理想效果。作品完成了,我感觉到我们的各方面的能力都上了一层,包括设置、编程、画PCB等等。实训能促进我们的进步,能够使我们对学习本专业增加信心,锻炼了我们各方面的能力。七、原理图八 主程序清单定时器T1时间初值设50ms时间初值为Z,Z的计算方法为(216- Z)12=1250103,结果Z=15536D=3CB0HOK EQU 20H ;抢答开始标志

7、位RING EQU 22H ;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30 ;初设抢答时间为30sMOV R2,#60 ;初设答题时间为60sMOV TMOD,#11H ;设置定时器T0/T1模式1MOV TH0,#0F0HMOV TL0,#0FFH ;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H ;50ms为一次溢出中断SETB EASETB ET0SET

8、B ET1SETB EX0SETB EX1 ;允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0 ;一开始就运行定时器,以开始显示FFF=查询程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BHACALL DISPLAY ;未开始抢答时候显示FFFJB P3.0,NEXT;dddddddACALL DELAYJB P3.0,NEXTACALL BARK ;按键发声MOV A,R1MOV R6,A ;送R1-R6,因为R1中保存了抢答时间SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答

9、MOV R3,#0AH ;抢答只显示计时,灭号数AJMP COUNT ;进入倒计时程序,查询有效抢答的程序在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,TZ1 JNB P1.7,TZ2AJMP STARTTZ1: JMP FALSE7TZ2: JMP FALSE8=非法抢答处理程序=FALSE1: ACALL BARK; ; 按键发声MOV R3,#01H AJMP ERRORFALSE2: ACALL

10、BARKMOV R3,#02H AJMP ERRORFALSE3: ACALL BARKMOV R3,#03H AJMP ERRORFALSE4: ACALL BARKMOV R3,#04H AJMP ERRORFALSE5: ACALL BARKMOV R3,#05H AJMP ERRORFALSE6: ACALL BARKMOV R3,#06H AJMP ERRORFALSE7: ACALL BARKMOV R3,#07H AJMP ERRORFALSE8: ACALL BARKMOV R3,#08HAJMP ERROR=INT0(抢答时间R1调整程序)=INT0SUB:MOV A,R1

11、MOV B,#0AH DIV AB MOV R5,A MOV R4,BMOV R3,#0AHACALL DISPLAY ;先在两个时间LED上显示R1JNB P3.4,INC0 ; P3.4为+1s键,如按下跳到INCOJNB P3.5,DEC0 ; P3.5为-1s键,如按下跳到DECOJNB P3.1,BACK0 ; P3.1为确定键,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOV R1,#00HACALL DELAY1AJMP INT0SUBADD0: INC

12、R1ACALL DELAY1AJMP INT0SUBDEC0: MOV A,R1JZ SETR1 ;如果R1为0, R1就置99DEC R1ACALL DELAY1AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI =INT1(回答时间R2调整程序)=INT1SUB:MOV A,R2 MOV B,#0AH DIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAYJNB P3.4,INC1JNB P3.5,DEC1JNB P3.1,BACK1AJMP INT1SUBINC1:

13、MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI =倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=COUNT: MOV R0,#00H ;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H ;重置定时

14、器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的情况,

15、响并显示号数并清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 ;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT:JNB P1.0,TRUE1 J

16、NB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TZ3 JNB P1.7,TZ4 AJMP RECOUNTTZ3: JMP TRUE7TZ4: JMP TRUE8 QUIT: CLR OK ; 如果按下了停止键执行的程序 CLR RING AJMP START=正常抢答处理程序=TRUE1: ACALL BARK ;按键发声 MOV A,R2 MOV R6,A ; 抢答时间R2送R6 MOV R3,#01H CLR OK 因为答题的计时不再查询抢答,所以就锁了抢答 AJMP C

17、OUNTTRUE2: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

18、MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#08H CLR OKAJMP 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

19、R3,#0AH MOV R4,#0AH MOV 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.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OKAJMP START=显示程序=DISPLAY:MOV DPTR,#DAT1 查表显示程序,利用P

20、0口做段选码口输出/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

21、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 RETIEND九、参考资料1 电子整机装配实训-李伟民 . 苏伯贤2 单片机原理与应用. 王效华 张咏梅3 数字电路.刘勇 杜德昌 陈松

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1