毕业设计(论文)-基于AT89C51单片机的六路抢答器设计.doc_第1页
毕业设计(论文)-基于AT89C51单片机的六路抢答器设计.doc_第2页
毕业设计(论文)-基于AT89C51单片机的六路抢答器设计.doc_第3页
毕业设计(论文)-基于AT89C51单片机的六路抢答器设计.doc_第4页
毕业设计(论文)-基于AT89C51单片机的六路抢答器设计.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

浙江工商职业技术学院机电工程学院毕业设计 i 摘 要 随着科学技术的不断发展,促使人们学科学、学技术、学知识的手段多种 多样。抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答 器的使用频率较低,且有的要么制作复杂,要么可靠性低,减少兴致。做为一 个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往 往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响 活动的开展,因此设计了本抢答器。 本设计是以六路抢答为基本理念。考虑到依需设定限时回答的功能,利用 at89c51 单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定 时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时, 同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同 时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答 为无效;抢答限定时间和回答问题的时间可在 1-99s 设定;可以显示是哪位选 手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒 记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态 下,按键无效非法。 关键词:关键词: at89c51; led 数码管; 抢答器; 计时; 报警 浙江工商职业技术学院机电工程学院毕业设计 ii 目录目录 1 1 绪绪 论论.1 1.1 课题研究的相关背景1 1.2 选题的目的和意义1 1.3 抢答器目前存在的主要问题 2 2 2 抢答器的系统概述抢答器的系统概述2 2.1 系统的主要功能2 2.2 系统需求分析4 2.3 抢答器的工作流程4 3 3 系统总体方案的设计系统总体方案的设计6 3.1 硬件电路的设计6 3.2 总体原理图7 4 4 软件设计软件设计9 4.1 主程序系统结构图9 4.2 软件任务分析 9 4.3 程序流程图.10 浙江工商职业技术学院机电工程学院毕业设计 iii 4.4 主要程序分析 .10 5 5 总结总结20 致致 谢谢22 参考文献参考文献23 附附录录 a24 附录附录 b 33 浙江工商职业技术学院机电工程学院毕业设计 1 1 绪 论 1.1 课题研究的相关背景 抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、 客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、 发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使 用单片机(如mcs-51型)和数字集成电路,并增加了许多新功能,如选手号码 显示、抢按前或抢按后的计时、选手得分显示等功能。 本课题利用at89c51单片机及外围接口实现的抢答系统,利用单片机的定 时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够 正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键 盘输出,扬声器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效, 如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可是在1-99s设 定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答 时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效 状态下,按键无效非法。 1.2 选题的目的和意义 通过这次课程设计,掌握 51 单片机的原理,了解简单多功能抢答器组成原 理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能 力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理 论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的 关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握 多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。 浙江工商职业技术学院机电工程学院毕业设计 2 1.3 抢答器目前存在的主要问题 随着改革开放事业的不断深入,促使人们学科学、学技术、学知识的手段 多种多样,抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但 抢答器的使用频率校低,且有的要么制作复杂,要么可靠性低,减少兴致。作 为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少, 往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影 响活动的开展。 但目前多数抢答器存在 3 个不足之处:第一,现场线路连接复杂。因为每 个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连接线。 选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,而且降 低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。第二, 电路复杂。因为单片机只完成号码处理、计时、数据运算等功能,其它功能如 选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。采用单片 机扫描技术识别选手抢按号码时,电路的延迟时间较大。第三,选手抢按成功。 2 抢答器的系统概述 2.1 系统的主要功能 本系统是借用单片机采用模块化设计的智能抢答器,主控与参赛者设为终 端分系统。参赛者分系统设有:抢答按纽、计时显示、提示功能等(根据需要 可另设或多设相关功能) ;主控分系统有:开始与结束控制按钮、时限设定、 浙江工商职业技术学院机电工程学院毕业设计 3 各种相关显示调控功能等(根据需要也可另设或多设相关功能) 。 参赛者系统,除享有抢答按纽的权利功能外1,还有人性化的提示功能和 时间提示功能,也可设定由主控控制在参赛者终端表现的趣味性功能等;主控 系统的控制按钮做开始与结束控制,根据活动参赛者的层次,对提前抡答者的 行为设定为非法或阻隔,若设有非法抢答控制功能时,在主控处带有公示性显 示的非法抡答者的台位号,对抢答限时及回答问题限时设为倒计时式,并有公 示性显示。 图 2-1 系统主要功能模块 本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有 一个抢答按钮。主持人有开始和结束复位键。在后台主持人可以修改,抢答时 间和选手回答问题的时间设置,原始状态下抢答时间为 15s,回答问题时间为 10s。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效, 主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和 选手号,在最后五秒扬声器发生提示。如果主持人没有按下开始键而选手就抢 答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按键 结束,新一轮抢答开始。系统的主要功能模块方框图如 2-1 所示。 抢答主板:抢答主板是整个抢答器的核心,其关键是单片机 at89c51。内 主 控 制 器 led 显示 声生器 键盘显示 时钟频率 复位电路 浙江工商职业技术学院机电工程学院毕业设计 4 部电路设计用汇编语言编写。它完成了时间参数的设定,抢按号码的译码,保 存;显示;输出,抢按及答题倒计时功能等。 显示及指示:本设计中,有一个共阴的数码管组,四个数码管。其中两个 显示时间,一个空位,一个显示抢答号码。主持人依次按下复位键(reset) , 开始键后开始抢答。可以抢按:超时数码管显示“fff”,当抢按超过规定时间 或答题超过规定时间后数码管显“fff” 。若有选手在规定时间内抢按成功,则 可以答题,数码管显示抢答时间的同时也显示选手号码。若在按开始键前抢答 表示违规,数码管显示“ff”并显示选手号码。 2.2 系统需求分析 1、在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。 2、抢答限定时间和回答问题的时间可是在 199s 设定。 3、可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示。 4、抢答时间和回答问题时间倒记时显示,时间完后系统自动复位。 5、按键锁定,在有效状态下,按键无效非法。 2.3 抢答器的工作流程 抢答器的基本工作原理:在抢答竞赛或呼叫时2,有多个信号同时或不同时 送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内 部的定时器开始工作,记录有关时间并产生超时信号。在整个抢答器工作过程 中,显示电路、语音电路等还要根据现场的实际情况向外电路输出相应信号。 抢答器的工作流程分为、系统复位、正常流程、违例流程等几部分,如图2-2 所示,下面分别予以介绍。 浙江工商职业技术学院机电工程学院毕业设计 5 加载程序 运 行 行 开始 开始数码管显 示 fff 开始抢 按时间倒计时 开始前有选手抢按 显示违例选手号 码并伴有语音报 警 倒计时结 束,超时 有选手 抢按 显示 fff显示选手号码,倒计 时时间,语音报警,答 题,答题时间倒计时 正常流程违规流程 若超过答题 时间,则数 码管显示 fff 答题完毕 根据选手表现, 规 则由主持人减分 图2-2 抢答器工作流程 浙江工商职业技术学院机电工程学院毕业设计 6 3 系统总体方案的设计 3.1 硬件电路的设计 本设计分为硬件设计和软件设计5,这两者相互结合,不可分离;从时间 上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。 只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终, 到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能 很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整 个项目中的所占的比重逐渐下降。为使硬件电路设计尽可能合理,应注意以下 几方面: (1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干 普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若 干普通芯片价格的总和高。 (2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。 因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小 的修改或扩展而被迫进行全面返工。 (3) 程序空间,选用片内程序空间足够大的单片机,本设计采用 at89c51 单片机。 (4) ram 空间,at89c51 内部 ram 不多,当要增强软件数据处理功能 时,往往觉得不足。如果系统配置了外部 ram,则建议多留一些空间。如选 用 8155 作 i/o 接口,就可以增强 256 字节 ram.如果有大批数据需要处理,则 应配置足够的 ram,如 6264,62256 等。随着软件设计水平的提高,往往只 要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的 硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一 点,就应该为系统将来升级留足够的 ram 空间,哪怕多设计一个 ram 的插 座,暂不插芯片也好。 (5) i/o 端口:在样机研制出来后进行现场试用时,往往会发现一些被忽 视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要 浙江工商职业技术学院机电工程学院毕业设计 7 采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如 果在硬件电路设计就预留出一些 i/o 端口,虽然当时空着没用,那么用的时候 就派上用场了。 3.2 总体原理图 图 3-1 系统原理图 p1.0 为开始抢答9,p1.7 为停止,p1.1-p1.6 为六路抢答输入,数码管段选 p0 口,位选 p2 口低 3 位,蜂鸣器输出为 p3.6 口。p3.2 为时间加 1 调整,p3.3 为时间减 1 调整。 浙江工商职业技术学院机电工程学院毕业设计 8 系统初始化模块 按键模块 非 法 抢 答 模 块 正 确 抢 答 模 块 调 整 抢 答 时 间 调 整 回 答 时 间 模 块 数码显示模块 4 软件设计 4.1 主程序系统结构图 图 4-1 软件系统结构图 浙江工商职业技术学院机电工程学院毕业设计 9 4.2 软件任务分析 软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务 由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。 软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分 为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显 示,打印8,输出控制和通信等,另一类是监控软件,它是专门用来协调各执 行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件 的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变 万化。 软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功 能定义和接口定义(输入输出定义) 。在各执行模块进行定义时,将要牵扯到 的数据结构和数据类型问题也一并规划好。 各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置 选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容 易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个 厂长就比较难了。 软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统 软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的 子程序,这类程序对实时性要求不是太高,延误几十 ms 甚至几百 ms 也没关 系,故通常将监控程序(键盘解释程序) ,显示程序和打印程序等与操作者打 交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容, 如定时系统和外部中断(如掉电中断) 。也可以将全部程序均安排在前台,后 台程序为“使系统进入睡眠状态” ,以利于系统节电和抗干扰。 浙江工商职业技术学院机电工程学院毕业设计 10 显示 fff 开始键按下? 加一键按下? 减一键按下? 回答 时间 调整抢 答时间 去抖动 非法抢 答处理 显示 犯规 正常 抢答 显示抢答 号并倒计时 y y y 初始化 4.3 程序流程图 在本设计中包括了以下八个主要的程序:主程序;非法抢答序;抢答时间 调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程 序;显示及发声程序9。主流程图如 4-2 所示: 4.4 主要程序分析 主程序:主程序: org 0040h main: mov r1,#0fh mov r2,#0ah 浙江工商职业技术学院机电工程学院毕业设计 11 图 4-2 程序设计流程图 mov tmod,#11h mov th0,#0f0h mov tl0,#0ffh mov th1,#3ch mov tl1,#0b0h;50ms 为一次溢出中断10 setb ea setb et0 setb et1 setb ex0 setb ex1 clr ok clr ring setb tr1 setb tr0 非法抢答处理程序:非法抢答处理程序: false1: acall bark mov r3,#01h ajmp error false2: acall bark mov r3,#02h ajmp error false3: acall bark mov r3,#03h 浙江工商职业技术学院机电工程学院毕业设计 12 ajmp error false4: acall bark mov r3,#04h ajmp error false5: acall bark mov r3,#05h ajmp error false6: acall bark mov r3,#06h ajmp error 抢答时间调整程序:抢答时间调整程序: ;=int0(抢答时间 r1 调整程序)= int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.2,inc0;p3.2 为+1s 键,如按下跳到 inco jnb p3.3,dec0;p3.3 为-1s 键,如按下跳到 deco jnb p1.7,back0;p1.7 为确定键,如按下跳到 backo ajmp int0sub inc0: mov a,r1 cjne a,#63h,add0;如果不是 99,r2 加 1,如果加到 99 了,r1 就置 0,重新加起。 mov r1,#00h acall delay1 浙江工商职业技术学院机电工程学院毕业设计 13 ajmp int0sub add0: inc r1 acall delay1 ajmp int0sub dec0: mov a,r1 jz setr1;如果 r1 为 0, r1 就置 99, 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 p3.2,inc1 jnb p3.3,dec1 jnb p1.7,back1 ajmp int1sub inc1: mov a,r2 cjne a,#63h,add1 浙江工商职业技术学院机电工程学院毕业设计 14 mov r2,#00h acall delay1 ajmp int1sub add1: inc r2 acall delay1 ajmp int1sub dec1: mov a,r2 jz setr2 dec r2 acall delay1 ajmp int1sub setr2: mov r2,#63h acall delay1 ajmp int1sub back1: reti 倒计时程序:倒计时程序: count: mov r0,#0000 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 浙江工商职业技术学院机电工程学院毕业设计 15 subb a,#07h jnc larger;大于 5s 跳到 larger,小于等于 5s 会提醒 mov a,r0 cjne a,#0ah,full;1s 中 0.5s 向下运行 clr ring 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 a,r0 cjne a,#14h,check;如果 1s 向下运行,否者跳到查“停/显示“ dec r6;计时一秒 r6 自动减 1 mov r0,#00h check: jnb p1.7,quit;如按下停止键退出 acall display jb ok,accout;如果是抢答倒计时,如是则查询抢答,否者跳过查 询继续倒数 ajmp recount accout:jnb p1.1,true15 jnb p1.2,true2 jnb p1.3,true3 jnb p1.4,true4 jnb p1.5,true5 浙江工商职业技术学院机电工程学院毕业设计 16 jnb p1.6,true6 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 count true2:acall bark; mov a,r2 mov r6,a mov r3,#02h clr ok ajmp count true3:acall bark; mov a,r2 mov r6,a mov r3,#03h clr ok ajmp count true4:acall bark; mov a,r2 mov r6,a mov r3,#04h 浙江工商职业技术学院机电工程学院毕业设计 17 clr ok ajmp count true5: acall bark; mov a,r2 mov r6,a mov r3,#05h clr ok ajmp count true6: acall bark; mov a,r2 mov r6,a mov r3,#06h 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 check1 flash: cjne a,#14h,check1;下面系 1s 的情况,响并显示号数并 清 r0,重新计 浙江工商职业技术学院机电工程学院毕业设计 18 setb ring mov r0,#00h mov r3,34h;取回号数 mov r5,#0bh mov r4,#0bh;显示 ff 和号数 ajmp check1 check1: jnb p1.7,quit1 acall display ajmp here quit1: clr ring clr ok ajmp start 显示程序: display: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 delay mov a,r3 movc a,a+dptr 浙江工商职业技术学院机电工程学院毕业设计 19 mov p2,#04h mov p0,a acall delay ret dat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h ;“灭“,“1“,“2“,“3“,“4“,“5“,“6“,“7“,“8“,“9“,“灭“,“f“ dat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h ;第一个为零,其他与上相同,因为十位如果为零显示熄灭 发声程序 bark: setb ring acall delay1 acall delay1 clr ring;按键发声 ret 浙江工商职业技术学院机电工程学院毕业设计 20 5 总结 本文研究与设计的六路多功能抢答器采用了通用的电子元器件,利用 at89c51单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时 和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时, 同时使数码管能够正确地显示时间。计分接收的单片机部分利用汇编语言编写。 设计时,首先通过在线编程,然后具体安装,仿真,完全实现了设计功能。 本设计中,利用常规的单片机扫描识别的方法。通过硬件电路的具体应用 和系统的仿真研究得出,本设计不仅安装简单、成本低,更重要的是工作性能 稳定,是一个实用、创新型的工程设计。 由于采用汇编语言设计电路,所以本设计在编程成功后,硬件电路基本上 不需要调试就可正常使用。即使在设计完毕交给用户使用后,对系统的功能改 进或升级也只是通过改写程序来完成,极大地方便了用户或设计者对电路更新。 整个设计通过了软件和硬件上的调试、仿真。我想这对于自己以后的学习 和工作都会有很大的帮助的。在这次设计中遇到了很多实际性的问题,在实际 设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的, 所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。对于单 片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题。而程序 设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。它才 是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。 很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在, 浙江工商职业技术学院机电工程学院毕业设计 21 这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合, 二者是密不可分的。 但是,通过这次设计我也发现自己的很多不足之处。在设计过程中我发现 自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应 用软件还不够多,我希望自己的这些不足之处能在今后的工作和学习中得到改 善。而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将 为以后的学习做出了最好的榜样!同时,该设计也有不足之处,缺少了答题计 分等功能。我将会在以后的学习中继续学习。 致 谢 本课程设计是在我的导师周庆红老师的亲切关怀和细心指导下完成的,在 设计过程中,自始至终凝聚着导师的心血。恩师那治学严谨的态度,渊博的学 识感染着我。她那诲人不倦、宽厚朴实的作风给我们留下了不可磨灭的影响, 是我学习的榜样,使我终生受益无穷。在此论文完成之际,特向恩师表达诚挚 的谢意同时以最崇高的敬意。 除此之外,在课题进行当中,还得到了其他老师的细心指导和诸多帮助。 他们的无私帮助和耐心指导也是我得以完成本课题的关键。再此我向他们表示 由衷的感谢和深切的问候。此间我还得到了同学等诸多指导,再此表示感谢。 我还要感谢我的一些同学,他们在我最需要帮助的时候无私的伸出了援助 浙江工商职业技术学院机电工程学院毕业设计 22 之手,在此,对于他们无私的帮助我表示深深的感谢。可以说如果没有他们的 帮助我就不可能顺利的按时完成毕业设计。 真诚的感谢所有的帮助过我的老师们,同学们、家人和朋友们。 感谢对本设计进行评审的老师们,感谢他们给我提出的宝贵意见和建议。 参考文献 1 朱宇光 单片机应用新技术 电子工业出版社 2 余发山 单片机原理及应用技术 中国矿业大学出版社 2003 3 郑有正 单片机原理及应用 四川大学出版社 4 杨刚、龙海燕等 现代电子技术 电子工业出版社 2004 5 冀振燕 ljml 系统分析设计与应用案例 人民邮电出版社 2003 6 王文峰 数码显示六路抢答器的设计 井冈山师范学院学报 2000 年 05 期 20-21 7 陈越等 isd 全系列单片语音录放电路设计与应用 电子工业 8 杨晓辉、张彤、姜俊海、智能抢答器的设计与制作 长春大学学报 2000 年 06 期 24-25 9 沈庆阳、郭庭吉 8051 单片机实践与应用 清华大学出版社 浙江工商职业技术学院机电工程学院毕业设计 23 10 杨凌霄 微型计算机原理及应用 中国矿业大学出版社 2004 附录 a 源程序代码 ok equ 20h;抢答开始标志位 ring equ 22h;响铃标志位 org 0000h ajmp main org 0003h ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh ajmp t1int org 0040h main: mov r1,#0fh 浙江工商职业技术学院机电工程学院毕业设计 24 mov r2,#0ah mov tmod,#11h mov th0,#0f0h mov tl0,#0ffh mov th1,#3ch mov tl1,#0b0h;50ms 为一次溢出中断 setb ea setb et0 setb et1 setb ex0 setb ex1 clr ok clr ring setb tr1 setb tr0 ;=查询程序= start: mov r5,#0bh mov r4,#0bh mov r3,#0bh acall display 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 浙江工商职业技术学院机电工程学院毕业设计 25 jnb p1.4,false4 jnb p1.5,false5 jnb p1.6,false6 ajmp start ;=非法抢答处理程序= false1: acall bark mov r3,#01h ajmp error false2: acall bark mov r3,#02h ajmp error false3: acall bark mov r3,#03h ajmp error false4: acall bark mov r3,#04h ajmp error false5: acall bark mov r3,#05h ajmp error false6: acall bark mov r3,#06h ajmp error ;=int0(抢答时间 r1 调整程序)= int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.2,inc0;p3.2 为+1s 键,如按下跳到 inco jnb p3.3,dec0;p3.3 为-1s 键,如按下跳到 deco jnb p1.7,back0;p1.7 为确定键,如按下跳到 backo 浙江工商职业技术学院机电工程学院毕业设计 26 ajmp int0sub inc0: mov a,r1 cjne a,#63h,add0;如果不是 99,r2 加 1,如果加到 99 了,r1 就置 0,重新加 起。 mov r1,#00h acall delay1 ajmp int0sub add0: inc r1 acall delay1 ajmp int0sub dec0: mov a,r1 jz setr1;如果 r1 为 0, r1 就置 99, 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 p3.2,inc1 jnb p3.3,dec1 jnb p1.7,back1 ajmp int1sub inc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h 浙江工商职业技术学院机电工程学院毕业设计 27 acall delay1 ajmp int1sub add1: inc r2 acall delay1 ajmp int1sub dec1: mov a,r2 jz setr2 dec r2 acall delay1 ajmp int1sub setr2: mov r2,#63h acall delay1 ajmp int1sub back1: reti ;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)= count: mov r0,#0000 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 check full: cjne a,#14h,check;下面系 1s 的情况,响并显示号数并清 r0,重新计时 setb ring 浙江工商职业技术学院机电工程学院毕业设计 28 mov a,r6 jz quit;计时完毕 mov r0,#00h dec r6;一秒标志减 1 ajmp check larger: mov a,r0 cjne a,#14h,check;如果 1s 向下运行,否者跳到查“停/显示“ dec r6;计时一秒 r6 自动减 1 mov r0,#00h check: jnb p1.7,quit;如按下停止键退出 acall display jb ok,accout;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒 数(这里起到锁抢答作用) ajmp recount accout: 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 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 count true2:acall bark; mov a,r2 mov r6,a 浙江工商职业技术学院机电工程学院毕业设计 29 mov r3,#02h clr ok ajmp count true3:acall bark; mov a,r2 mov r6,a mov r3,#03h clr ok ajmp count true4:ac

温馨提示

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

最新文档

评论

0/150

提交评论