您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页多路抢答器课程设计

多路抢答器课程设计

来源:叨叨游戏网
课程设计说明书 NO.1 多路抢答器的设计 1.课程设计的目的 计算机控制系统课程设计是自动化专业的一个重要实践教学环节。在课程设计过程中,学生通过一个较完整的设计过程,可以加深对本门课程所学理论知识的理解与应用,提高学生对所学理论知识的综合运用能力,使学生对计算机控制系统有一个整体认识,掌握计算机控制系统的设计方法。通过课程设计,还可以培养学生工作能力,为将来毕业设计打好基础。 2.课程设计的内容 2.1 方案的选择 方案一:采用数电技术实现。该设计抢答器的电路主要是由抢答器开关电路、触发电路、触发锁存电路、编程器、七段显示译码器几部分构成。抢答电路主要采用优先编码器74LS148和74LS279完成。此外还有定时电路,报警电路,时序控制电路等。 方案二:方案二电路图简单明了,避免重复,控制起来更加方便。抢答器对参赛选手的动作的先后有很强的分辨力,即使先后只相差几毫秒,抢答器也能分辨出来,抢答器直接实现了动作选手的编号,并保持到主持人清零为止,且实现的功能较多,比如增设了开启锦囊,回答和抢答时间均可随意调整,故采用方案二。 2.2 系统原理 该抢答器主要单片机ATC51、复位电路、显示电路、调整时间电路、开始/停止电路、抢答电路六大部分组成,其总体原理方框图如图1所示。 图1总体原理方框图 沈 阳 大 学 课程设计说明书 NO.2

2.2 抢答器的原理 抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。 2.3 单片机控制原理 单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。 3. 概要设计 3.1显示抢答违规流程图 图2显示抢答违规流程图 沈 阳 大 学 课程设计说明书 NO.3

3.2抢答成功流程图 图3抢答成功流程图 4 详细设计 4.1 晶振复位及开始抢答电路 晶振的频率为12MHZ,提供C51的时钟脉冲使C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。 沈 阳 大 学 课程设计说明书 NO.4

图4复位及开始抢答电路 4.2选手抢答键 ATC51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。 图5选手抢答电路 4.3显示与显示驱动电路 此电路包括显示和驱动,显示采用数码管,驱动用P2口, 违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。驱动电 沈 阳 大 学 课程设计说明书 NO.5

路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。在+5V电压下接10k的电阻,保证正常压降。 图6显示与显示驱动电路 4.4蜂鸣器音频及LED灯输出电路 通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和回答时间到得提示声和亮灯提醒。 图7输出电路 沈 阳 大 学 课程设计说明书 NO.6

5总原理图及程序 5.1 原理及电路总框图 图8抢答器总原理图 5.2 抢答器程序 OK EQU 20H;抢答开始标志位 RING EQU 22H;铃声标志位 ORG 0000H AJMP MAIN ORG 00003H AJMP INT0SUB ORG 000BH AJMP TOINT ORG 0013H AJMP INT1SUB 沈 阳 大 学 课程设计说明书 NO.7

ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#3O;初设抢答时间30S MOV R2,#60;初设答题时间60S MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发生频率越高、越尖 MOV TH1,#3CH MOV TL1,#0B0H;5Oms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断TO、T1、INT0、INT1 CLR OK CLR RING SETB TR1 SETB TR0;开始就运行定时器,以开始显示FFF,如果想要重新计数,重置TH1/TL1就可以了; =====查询程序====== START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开始抢答时显示FFF JB P3.0,NEXT; ACALL DELAY 沈 阳 大 学 课程设计说明书 NO.8

JB P3.0,NEXT;去抖动,如果“开始键”按下就向下执行,否则跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送R1到R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT子程序中判断是否查询抢答 MOV R7,#01H;读抢答键数据信号标志,这里表示只读一次有用信号 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,FALSE7 JNB P1.7,FALSE8 AJMP START ;=======非法抢答处理程序======= FALSE1:MOV AJMP FALSE2:MOV AJMP FALSE3:MOV AJMP FALSE4:MOV AJMP FALSE5:MOV AJMP R3,#01H ERROR R3,#02H ERROR R3,#03H ERROR R3,#04H ERROR R3,#05H ERROR 沈 阳 大 学 课程设计说明书 NO.9

FALSE6:MOV AJMP FALSE7:MOV AJMP FALSE8:MOV AJMP R3,#06H ERROR R3,#07H ERROR R3,#08H ERROR ;======INTO(抢答时间R1调整程序)====== INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在两个时间LED上显示R1 JNB JNB JNB P3.4,INC0 ;P3.4为加1s键,如果按下跳到INC0 P3.5,DEC0 ;P3.5为减1s键,如果按下跳到DEC0 P3.1,BACK0 ;P3.1为确定键,如果按下跳到BACK0 AJMP INT0SUB INC0:MOV A,R1 CJNE MOV A,#63H,ADD0;如果不是99,R2加到99,R1就置0 重新加起 R1,#00H ACALL DELAY1 AJMP ADD0:INC INT0SUB R1 DELAY1 ACALL AJMP INT0SUB DEC0:MOV A,R1 JZ SETR;如果R1为0,R1就置99 沈 阳 大 学 课程设计说明书 NO.10

DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1:MOV R1,#63H ACALL DELAY1 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 JNB JNB P3.4,INC1 P3.5,DEC1 P3.1,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 沈 阳 大 学 课程设计说明书 NO.11

JZ SETR2 R2 DEC ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1:RETI ;======倒计时程序(抢答倒计时和回答倒计时都跳到该程序)===== REPEAT:MOV MOV A,R2;使用锦囊是重新计时 R6,A CLR RING COUNT:MOV R0,#00H;重新定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器 RECONT:MOV MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 B,#0AH DIV AB;除十分出个位/十位 MOV MOV MOV MOV MOV SUBB 30H,A;十位存于(30H) 31H,B;个位存于(31H) R5,30H;取十位 R4,31H;取个位 A,R6 A,#07H 大于5s跳到LARGER,小于等于5s会提醒 JNC LARGER; MOV CJNE A,R0 A,#0AH,FULL;1s中0.5s向下运行 CLR RING 沈 阳 大 学 课程设计说明书 NO.12

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 CJNE DEC MOV A,R0 A,#14H,CHECK;如果1s向下运行,否则跳到查询“停/显示” R6;计时一秒R6自动减1 R0,#00H CHECK:JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK;只在回答倒计时才有效 AJMP CHECKK:JNB NEXTT P3.0,REPEAT;判断是否使用锦囊 NEXTT:ACALL DISPLAY JB OK,ACCOUNT;如果是抢答倒计时,如果是查询抢答,否则跳过查询继续倒计数(这里起到锁抢答作用) AJMP RECONT ACCOUNT:MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 沈 阳 大 学 课程设计说明书 NO.13

JNB ACC.7,TZ2 AJMP TZ1:JMP TRUE7 TZ2:JMP TRUE8 QUIT:CLR CLR OK;如果按下了“停止键”执行的程序 RING RECOUNT AJMP START ;========正常抢答处理程序======== TRUE1:ACALL BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP TRUE2:ACALL COUNT BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#02H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE3:ACALL BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#03H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP TRUE4:ACALL COUNT BARK MOV A,R2 沈 阳 大 学 课程设计说明书 NO.14

MOV R6,A;抢答时间R2送R6 MOV R3,#04H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE5:ACALL BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#05H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP TRUE6:ACALL COUNT BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#06H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE7:ACALL BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#07H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP COUNT BARK TRUE8:ACALL MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#08H CLR OK;因为答题计时不再查询抢答,所以就锁了抢答 AJMP COUNT 沈 阳 大 学 课程设计说明书 NO.15

;=======犯规抢答程序======= 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 CHECK1 FLASH:CJNE A,#0CH,CHECK1;下面是0.8s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示FF和号数 AJMP CHECK1 CHECK1:JNB P3.1,QUIT1 LCALL DISPLAY AJMP HERE QUIT1:CLR RING CLR OK ALJMP START ;=======显示程序======== DISPLAY:MOV 出 沈 阳 大 学 DPTR,#DAT1;查询显示程序利用P0口做段选码口输出P2低3位做位选码输课程设计说明书 NO.16

MOV A,R3 MOVC A,@A+DPTR MOV MOV P2,#0FEH P0,A ACALL DELAY2 MOV MOV DPTR,#DAT2 A,R5 MOVC A,@A+DPTR MOV MOV P2,#0fdH P0,A ACALL DELAY2 MOV A,R4 MOVC A,@A+DPTR MOV MOV P2,#0FDH P0,A ACALL DELAY2 RET DAT1: DB 00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H ;灭、0、1、2、3、4、5、6、7、8、9、灭、F DAT2: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;第一个为0,其他与上相同,因为十位如果为0,显示灭 ;?=====加减时间延时(起到不会按下就加N个数)======== DELAY1:MOV LOOP0:ACALL 35H,#08H DISPLAY DJNZ 35H,LOOP0 RET 沈 阳 大 学 课程设计说明书 NO.17

;======延时4236个机器周期(去抖动用到)====== DELAY:MOV 32H,#12H LOOP:MOV 33H,#0AFH LOOP1:DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET ;=======延时4236个机器周期(显示用到)======== DELAY2:MOV 32H,#43H LOOP3:MOV 33H,#1EH MOV A,R7;每隔60到70个机器周期读一次P1口全为1时为无效数据,继续读一个不为1时转到正常抢答处理 JNZ AAAA1;没读到有效数据时继续转到AAAA1 LOOP2:DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET ;===========读抢答按键数据口程序========= AAAA1:MOV A,P1 CJNE A,#0FFH,AA1;当不全为1时的数据为有效数据 AA0:MOV AJMP AA1:DEC AJMP 36H,A;将有效数据送到36H暂存 LOOP2 R7 AA0 ;===========发声程序========== BARK:SETB RING ACALL ACALL DELAY1 DELAY1 CLR RING;按键发声 RET 沈 阳 大 学 课程设计说明书 NO.18

;============T0溢出中断====== TOINT: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 RETI END R0 6课程设计的总结与体会 自接触单片机以来,一直觉得单片机非常难,这次的课程设计我开始是以老师布置题目为主要选择对象的,但是后面发现,像多路数字抢答器在我脑海中根本没得一点意象,上网搜了很多资料,也感觉不怎么很懂,于是便问了解这方面的同学怎么弄,后面发现同学的意见和我的原本的程序和图只有几个地方不同,于是便将两者综合了一下,经调试和运行后,发现还行的通,于是便开始了忐忑的正文模版之路,以为快搞完了,后面发现其实程序和图还是要细细的弄懂才能写好报告,于是我又将程序和图细细的剖析了一遍,然后慢慢将流程图和Proteus图画好和截取下来,经过最近这段时间的在电脑前面的驻守,觉得只要自己肯付出和努力,发现其实很多的东西不是那么难懂的,以后还是要好好提升自己的动手能力和思考的能力。在这段课程设计的时间里,同学们互相帮助,共同去讨论,这使得我们的有一更深一步。在开始的构思中会有些迷茫,但经过不断的思考和设想,终于想出了一个完美的设计。通过调试、分析,然后写结论,修改结论并最终得出正确的程序。这门课程设计使学生初步掌握了单片机设计的一般方法步骤,挺高了我们自我的创新能力。感谢学校细心安排这门课程设计,感谢老师的细心指导。 沈 阳 大 学 课程设计说明书 NO.19

7参考文献 [1] 何立民.单片机应用技术选编(1)[M].北京:北京航空航天大学出版社,1995,6:85-93 [2] 刘国荣,梁景凯.计算机控制技术与应用[M].北京:机械工业出版社,1999,5:-57 [3] 李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993,8:47-55 [4] 范立南, 谢子殿. 单片机原理及应用教程[M]. 北京: 北京大学出版社, 2006.1:123-130 [5] 朱定华,戴汝平等,单片微机原理与应用[M].北京交通大学出版社,清华大学出版社. [6] 彭介华.电子技术课程设计指导[J].北京:高等教育出版社,1997. [7]张毅刚,彭喜源,谭晓昀,曲春波.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1997.53-61. 沈 阳 大 学

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务