




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用课程设计学号 2010单片机中级教程原理与应用课 程 设 计(2010届本科)题 目: 六路抢答器设计 学 院: 物理与机电工程学院专 业: 电气程及其自动化 作者姓名: 指导教师: 职称:副教授 完成日期: 201年12月15 日 摘要本设计是六路智力抢答器。使用51系列单片机,编写应用程序来实现智力抢答功能。硬件设计使用的是51系列单片机中的89C51。硬件设计利用其中断控制程序进行抢答部分的处理,通过非门的控制去申请单片机内部的中断,以达到显示抢答的目的。软件设计利用中断系统的基本构成原理编写中断服务程序,其信号由按键电路提供,由CPU响应中断,并输出响应。用到了查询按键模块、定时器模块、显示时间模块、显示组号模块、报警模块等。关键词:89C51 中断 定时器 报警电路等 目录第1章 绪论21.1 智能抢答器的发展现状21.2 抢答器的背景和特点2第2章 抢答器的系统概述22.1 六路抢答器设计功能要求22.2 抢答器设计方案3第3章 系统硬件电路设计33.1 系统电路图33.2 时钟频率电路的设计43.3 键盘扫描电路的设计43.4 显示电路的设计5第4章 系统软件设计64.1 程序流程图64.2 系统程序6第5章 仿真调试及性能分析75.1 仿真调试7一、上电显示7二、开始抢答倒计时显示7三、正确抢答显示8四、违规抢答显示85.2 性能分析9第6章 设计出现的问题及总结96.1 设计出现的问题96.2 总结9附录12第1章 绪论1.1 智能抢答器的发展现状 随着电子技术的发展,现在的抢答器功能越来越强,可靠性和准确性也越来越高。能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大。对于目前抢答器的功能描述,如涵盖抢答器、抢答限时、选手答题计时及犯规组号抢答器具有抢答自锁,灯光指示、暂停复位、电子音乐报声、自动定时等功能,还有工作模式的切换和时间设定,对于这些,随着科学技术的发展,肯定还要得到进一步的改进。一般都要趋向于智能化。1.2 抢答器的背景和特点在各类竞赛中,特别是做抢答题时,在抢答过程中,为了知道哪一组或哪一名选手先答题,必须要有一个系统来完成这个任务。如果在抢答过程中,只靠人的视觉是很难判断出哪组先答题。利用单片机来设计抢答器,使以上问题得以解决,即使有两组的抢答时间相差几微秒,也可分辨出哪组优先答题。抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢大漆只由几个三极管、可控硅、发光管等组成, 能通过发光管的指示辨认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示功能。像这类抢答器,制作过程简单,准确性与可靠性高,而且安装维护简单。对于抢答器的应用,如早期的数字电路,随着科技的逐步发展,进而到了单片机的控制来实现其功能,而且功能齐全,电路简单,成本低,性能高,真正朝着有利的方向发展。第2章 抢答器的系统概述2.1 六路抢答器设计功能要求1、基本要求(1)抢答器同时供6名选手或6个代表队比赛,分别用6个按钮S0 S5表示。(2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。(3) 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动开始键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。(5)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。(6)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示FF。2.2 抢答器设计方案在设计中采用的单片机是AT89C51,它主要负责控制各个部分协调工作。P1.0和P1.7由裁判控制,分别是抢答开始和停止键。P1.1P1.6是6组抢答的输入口,按下对应按钮即为抢答。P0口为数码管的段选口,位选口用的是P2口的低4位。P3.6为蜂鸣器的控制口。外部还接有蜂鸣器用来发出报警音。采用7SEG-MPX4-CA-BLUE显示,它是共阴极的由高电平点亮。系统仿真用到了Proteus7.10软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。第3章 系统硬件电路设计3.1 系统电路图如图3-1,P1.0为开始抢答,P1.7为停止,P1.1-P1.6为六路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。图3-1 系统电路原理图3.2 时钟频率电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。图3-2晶振电路的设计3.3 键盘扫描电路的设计P1.0和P1.7由裁判控制,分别是抢答开始和停止键。P1.1-P1.6是6组抢答的输入口,按下按钮抢答。图3-3 点键盘扫描电路3.4 显示电路的设计采用7个电阻做为上拉电阻,数码管7SEG-MPX4-CA-BLUE,它是共阴极的数码管。采用74LS04单输入非门。图3-4 显示电路的设计第4章 系统软件设计软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。4.1 程序流程图图4-1 程序流程图4.2 系统程序在本设计中包括了以下六个主要的程序:主程序、非法抢答程序、倒计时程序、正常抢答处理程序、犯规处理程序、显示及发声程序。P1.0为开始抢答,P1.7为停止,p1.1-p1.6为六路抢答输入数码管段选P0口,位选P2口,蜂鸣器输出为P3.6口。注:源程序代码见附页第5章 仿真调试及性能分析5.1 仿真调试一、上电显示图5-1 上电显示图当上电时,数码显示管显示“FFF”,其中,左边两个数码管显示时间,最后一个显示抢答选手的编号。二、开始抢答倒计时显示图5-3 开始抢答倒计时显示当主持人按下“开始”按钮后,定时器开始48s倒计时,各选手要在48s中完成抢答,当倒计时剩余5s时,若还无人抢答,蜂鸣器就会发出声响进行提示。若无人抢答,此轮抢答结束,显示器显示“FFF”。三、正确抢答显示图5-3 正确抢答显示如图,当主持人按下“开始”按钮后,五号选手抢答成功,并开始答题倒计时,要求选手在限定时间内作答。当倒计时剩余5s时,蜂鸣器开始发出声响,当倒计时完成时,显示器显示“FFF”。四、违规抢答显示图5-4 违规抢答显示当主持人还未按下“开始”按钮,选手就按下了抢答键,就会出现如上图所示情况,并且蜂鸣器会一直发出警报,直到按下结束“按钮”。5.2 性能分析(1)具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。(2)具有定时功能,在48秒内无人抢答表示所有参赛选手获参赛队对本题弃权。(3)48秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。 (5)主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设48s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设69s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 (6)如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入准备状态,等待主持人按抢答开始进入下次抢答计时。 (7)如果主持人未按抢答开始键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下停止 键为止。第6章 设计出现的问题及总结6.1 设计出现的问题在本次课程设计过程中,出现了许许多多的问题,主要包括在程序的编写及调试、仿真及调试和设计本身的不足,如查询模块、延时模块的程序编写。此次所设计的抢答器可实现基本的操作功能,可是还存在许多不足之处,如当抢答时,如果前一位选手抢答错误而继续抢答时,前一个选手的号码不能自动被清除;还有就是不能调整抢答计时时间等等。6.2 总结通过此次单片机设计实习,把自己在学校学到的知识转化为实验成果,积累了一定的经验,提高了分析问题和解决问题的实际能力。我体会到课程设计的各个环节,不是孤立的,每个环节都是必不可少的。在该课程设计的过程中,我深刻体会到了计算机研究工作的艰辛。自己觉得理论上可行的方法,在实验的过程中却不一定行得通。经过了一次又一次地修改程序和检查电路,终于完成了自己的课程设计。虽然它有许多的不完善,可我却有一种无法言表的喜悦与成就感。我明白了课程设计的过程,就是不断地改进与完善的过程。 在开发设计过程中,由于知识有限,经验不足,课程设计时间短,难免有很多的不足,敬请老师指教,以待日后加以改进。参考文献1单片机中级教程原理及应用(第2版),张俊谟,北京航空航天大学出版社,20062Proteus在MCS-51系统中的应用百例,周润景、袁伟亭、景晓松,电子工业出版社,2006 3单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,2007附录:源程序代码OK EQU 20H; 抢答开始标志位 RING EQU 22H; 响铃标志位 ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#30H; 初设抢答时间 MOV R2,#45H; 初设答题时间 MOV TMOD,#11H; 设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH; 越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H; 50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 CLR OK CLR RING SETB TR1 SETB TR0; 一开始就运行定时器,以开始显示FFF. START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY; 未开始抢答时候显示FFF JB P1.0,NEXT 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.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP STARTFALSE1: 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 ERRORCOUNT: 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 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 P1.7,QUIT; 如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT; 如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数 AJMP RECOUNTACCOUT: JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNTQUIT: CLR OK; 如果按下了停止键执行的程序 CLR RING AJMP STARTTRUE1: 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 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 COUNTERROR: 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的情况,响并显示号数并清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 STARTDISPLAY:MOV DPTR,#DAT1; 查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出 MOV A,R5 MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论