基于单片机的八路抢答器_第1页
基于单片机的八路抢答器_第2页
基于单片机的八路抢答器_第3页
基于单片机的八路抢答器_第4页
基于单片机的八路抢答器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1绪论41.1八路抢答器的概述41.2设计任务与要求42总体方案设计52.1方案设计2.2 方案论证与比较3 2.3 总体框图设计3 硬件电路设计33.1 AT89C51单片机43.2 按键电路53.3 复位电路53.4 报警电路3.5 LED数码显示电路和驱动电路3.6 总设计电路图 4 软件设计64.1 程序流程图65总结7参考文献:9附录10附录一 程序代码121 绪论1.1 八路抢答器的概述随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计的八路抢答器以AT89C51单片机为核心器件,包括时钟电路、复位电路、显示电路、按键电路以及报警电路。基于MC

2、S-51系列单片机AT89C51的一种抢答器.该电路采用AT89C51单片机的四个8位并行I/O接口连接各个控制电路来实现抢答功能.该电路设计简单,进行简单更改便可实现对8组或8组以下的人员抢答.它能根据不同的抢答输入信号,经过单片机的控制处理产生不同的对应输出信号,最后经过LED数码管显示相应的路数,充分利用了单片机的优点。1.2 设计任务及要求 (1)、设计任务基于MCS-51系列单片机AT89C51,设计一个多功能八路抢答器 (2)、设计要求 1)抢答器同时供8名选手或8个代表比赛,分别用8个按钮K1K8。 2)设置一个系统清除和抢答控制开关K9,该开关由主持人控制。 3)抢答器具有锁存

3、功能与显示功能。即选手按动按钮,锁存相应的编号并在优先抢答选手的编号一直保持到主持人将系统清除为止。 4)主持人按下抢答“开始”按钮,抢答开始。 5)当某一路抢答成功时,在数码管上显示成功信息和该路的号数; 6)当某一路抢答违规时,能在数码管上显示违规信息和该路的号数; 7)具有定时抢答发功能,且一次抢答的时间由主持人设定(如5秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。 8)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 9如果定时时间已到,无人抢答,本次

4、抢答无效,系统报警并禁止抢答,定时显示器上显示00。2 总体方案设计2.1 方案设计 方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作工序比较繁琐,使用不太方便。方案二:采用89C51系列单片机作为控制核心。该系统可以完成运算控制、信号识别以及显示功能的实现。利用单片机程序判断选手按键是否有效,若无效,启动扬声器报警。选手若按正常的操作进行抢答,利用数码管显示电路实现倒计时显示时间。整

5、个系统具有极其灵活的可编程性,能方便的对系统进行动能的扩张和更改。2.2 方案设计论证与选择相对于第一个方案:<1>方案二可靠性好:单片机按照工业控制要求设计,抵制工业噪声干扰优于一般的CPU。<2>单片机有一般电脑所必须的器件,如三台双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。<3>控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳转指令。所以我选择方案二。2.3 总体框图设计该系统以89C51单片机为核心,由晶振和复位电路、抢答器电路、时序控制电路、报警电路、LED数码管显示器和驱动电路组成。复位电路、按键电

6、路、数码管显示电路、报警电路这几部分电路组成。系统框图如图2-3所示。工作原理:接通电源后,主持人按下“清除”按钮,对系统进行复位和清零,抢答器处于禁止状态,数码管显示器显示设定时间;主持人按下“开始”按钮,抢答器开始工作,选手可进行抢答,在此过程中,抢答器完成优先判断、编号显示、扬声器提示。当一轮抢答之后,定时器停止,禁止二次抢答,显示器显示剩余时间。如果再次抢答,必须由主持人再次操作“清除”或者“开始”状态按钮。图2-33 硬件设计3.1 AT89C51单片机 AT89C51作为抢答电路系统的核心器件。如图3-1所示,该器件是INTEL公司生产的MCS51系列单片机的基础产品,采用了可靠的

7、CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS51的CMOS产品。不仅结合了HMOS的高速和高密度技术及HMOS的低功耗特征,而且继承和扩展了MCS48单片机的体系结构和指令系统。图3-1AT89C51单片机的主要特征:A、与MCS51兼容,4K字节可编程闪烁存储器;b、灵活的在线系统编程,掉电标识和快速编程特性;c、寿命为1000次写/擦周期,数据保留时间可10年以上;d、全静态工作模式:0HZ33HZ;e、三级程序存储器锁定;f128×8位内部RAM,32位可编I/O线;g、两个16位定时器/计数器,5个中断源,4个8位并行的I/O接口,1个全双工I/O接口。h、

8、有位寻址功能、适于布尔处理的位处理机。单片机与报警电路系统中的报警电路是由发光二极管和限电流电阻组成,并与单片机的P1.2端口连接。P1端口的作用和接线方法与P2端口相同,不同的是Flash编程和程序校验,P1接收低8位地址数据。程序存储器 本系统的所需的没有必要外扩程序存储器,所以不用考虑存储器扩充容量的大小,单片机本身的存储器就已足够。数据存储器 根据系统的功能要求,不需扩展外部RAM,89C51本身的RAM就能满足要求。I/O接口芯片 根据系统的功能要求,I/O接口芯片的也不需进行扩展。总线驱动能力 MCS-51系列单片机的外部扩展功能很强,但4个8位并行的带负载的能力是有限的。P0口能

9、驱动8个TTL电路,P1P3口只能驱动3个TTL电路。在实际运用中,这些端口的负载不应超过总负载能力的70%,以保证留有一定的余量,以增强系统的抗干扰能力,在外接负载较多的情况下,应采用总线驱动电路,以提高端口的驱动能力和抗干扰能力3.2 按键电路键盘是人与微机系统打交道的主要设备。按键电路如图3-2所示。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用

10、中键盘用得最多的形式是独立键盘及矩阵键盘。该电路完成两个功能:一是分辨出选手按键的先后,并锁存抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键,即使其他选手操作无效。抢答器具有锁存、定时、显示和报警功能。时序控制电路是抢答器设计的关键,它要完成的功能是:一、主持人按动“开始”按键K8时,抢答电路和定时电路进入正常抢答状态。二、当主持人未按动“开始”按键,但有参赛选手按动抢答键时,蜂鸣器声响,抢答电路和定时电路停止工作。图3-23.3 复位电路复位是计算机的一个重要工作状态。如图3-3所示,在单片机工作时,接电之前要复位,断电后也要复位,在抢答器中复位则为定时做铺垫的,在抢答之前要复

11、位,抢答完毕后也要复位,按了复位键之后,LED的显示全为00,当引脚RST端保持两个机器周期以上的高电平,AT89C51可以进入复位状态。图3-3 3.4 报警电路报警电路具有报警功能,如图3-4所示,如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示为00,并发出一段时间的报警声图3-4 3.5 LED数码显示器和驱动电路本设计所用的显示器为7段共阴极接法LED显示器,如图3-5所示,当某一发光二极管的阳极输入高电平时,则该段发光。利用P0口做段选码口输出,P2口的134三位做位选码输出.图3-53.6 总设计电路图图3-64、软件设计4.1程序流程图在本设计中包

12、括了以下八个主要的程序:主程序;非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。主流程图如图所示:图4-1图4-2图4-35 调试5.1准备开始:图5-15.2 二号选手抢答成功:图5-25.3四号选手抢答成功:图5-35.4抢答时间到,无人抢答:图5-45.5抢答犯规:图5-56总结开始选择课程设计题目是,看见这个题目觉得挺好弄得,但是想的总是美好的。这次课程设计的仿真工具是从来没有使用过,是在老师和同学的指导下学会的,结合单片机设计电路更是从来没有接触过,但是没有办法,所以通过上网或去图书馆查阅资料了解了一些,经过两个星期的设计,

13、从开始的什么都不会,慢慢的自己会更改电路,会仿真,导入程序后会自己进行一些修改。虽然不是很系统的学习这些,但是基本的操作已经了解了。通过这次课程设计,我们意识到,要想设计出好的电路,必须清楚明白的知道题目所要表达的意思,并且要了解各种元器件的用途,这次设计综合了我们所学习过的知识,也对这些知道进行了一定的扩展了解,这些对我们是很有帮助的。参考文献:1 张迎新单片微型计算机原理、应用及接口技术(第2版)M北京:国防工业出版社,20042伟福LAB6000系列单片机仿真实验系统使用说明书3 阎石数字电路技术基础(第五版)北京:高等教育出版社,20064夏路易,石宗义。电路原理图与电路板设计教程Pr

14、otel 99se.北京:北京希望电子出版社,20025康华光。模拟电路技术基础(第五版)。北京:高等教育出版社,2附录附录一程序代码:OK EQU 25H ;抢答开始标志位 RING EQU 27H ;响铃标志位 DATA0 EQU 40H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 001BH AJMP T1INTMAIN: MOV R1,#5 ;初设抢答时间为5s MOV R2,#5 ;初设答题时间为5s MOV TMOD,#10H ;设置未定时器方式2 MOV TH0,#0ECH MOV TL0,#0FFH ;越高

15、发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 ;允二个中断,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;=查询程序=START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示P00 JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ;抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询

16、ACALL BARK MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答 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,TZ2 AJMP STAR

17、TTZ1: JMP FALSE7TZ2: JMP FALSE8;=非法抢答处理程序=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 ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERRORFALSE7

18、: ACALL BARK MOV R3,#07H AJMP ERRORFALSE8: ACALL BARK MOV R3,#08H AJMP ERROR;=倒计时程序(抢答倒计时和回答倒计时都跳到该程序)=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 ;取十位

19、 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向下运行,否者跳到

20、查"停/显示" DEC R6 ;计时一秒R6自动减1 MOV R0,#00HCHECK: JNB P3.1,QUIT ;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT: MOV A,DATA0 JNB P1.0,TRUE1 JNB 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 R

21、ECOUNT TZ3: JMP TRUE7 TZ4: 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 COUNTTRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK MOV

22、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 MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COU

23、NTTRUE8: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H 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: CJNE A,#14H,CHECK1 ;下面是1s的情况,响并显示

24、号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H ;取回号数 MOV R5,#0BH MOV R4,#0BH ;显示00和号数 AJMP CHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OKAJMP START;=显示程序=DISPLAY: MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出/P2口的134三位做位选码输出. MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论