单片机控制的智力竞赛抢答器设计 毕业设计.doc_第1页
单片机控制的智力竞赛抢答器设计 毕业设计.doc_第2页
单片机控制的智力竞赛抢答器设计 毕业设计.doc_第3页
单片机控制的智力竞赛抢答器设计 毕业设计.doc_第4页
单片机控制的智力竞赛抢答器设计 毕业设计.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

东华理工大学长江学院毕业设计 论文 摘 要 I 摘 要 随着科学技术的不断发展 促使人们学科学 学技术 学知识的手段多种多样 抢答器作为一种工具 已广泛应用于各种智力和知识竞赛场合 但抢答器的使用频 率较低 且有的要么制作复杂 要么可靠性低 减少兴致 做为一个单位若专购一 台抢答器虽然在经济上可以承受 但每年使用的次数极少 往往因长期存放使 电 子器件的 抢答器损坏 再购置的麻烦和及时性就会影响活动的开展 因此设计了本 抢答器 本设计是以八路抢答为基本理念 考虑到依需设定限时回答的功能 利用 8051 单片机及外围接口实现的抢答系统 利用单片机的定时器 计数器定时和记数的原理 将软 硬件有机地结合起来 使得系统能够正确地进行计时 同时使数码管能够正 确地显示时间 扬声器发生提示 同时系统能够实现 在抢答中 只有开始后抢答 才有效 如果在开始抢答前抢答为无效 抢答时间 5 秒 答题时间为 60 秒 可以显 示是哪位选手有效抢答和无效抢答 抢答时间和回答问题时间倒记时显示 满时后 系统计时自动复位及主控强制复位 按键锁定 在有效状态下 按键无效非法 关键词 数码管 抢答器 报警 东华理工大学长江学院毕业设计 论文 ABSTRACT II ABSTRACT With the continuous development of science and technology promote learning science science and technology knowledge of the variety of means With a tool for Rush answer which has been widely used in all kinds of intelligence and knowledge contests occasions But Rush answer is used for lower frequency and some production complex or low reliability and reduced interest As a unit if the purchase is a Rush answer Although the economy can bear each year the number is extremely small because of the long term storage electronic devices Rush answer for damage to the purchase of the trouble and timeliness of activities The development will be affected so this Rush answer is designed This design s basic concept is eight road Rush answer machine By taking into account the need for seting time and limiting to answer the function which uses AT89C51 microcontroller and external interface of Rush answer system and uses SCM timer counter timing and the number of mind Principle the software and hardware organically combined which could allow the right to conduct time while the digital display to the correct time Switching with the keyboard output speakers in tips At the same time system can be realized In Rush answer and which only begins after the Rush answer only effective if at the beginning of Rush answer before Rush answer invalid the time for rush answer is 60s and strive for answer is 5s players who can show that it is effective and Rush answer invalid Rush answer time to time and answer questions count down over time the system automatically reset control and mandatory reduction keys locked in an active state the key is invalid illegal Key words alphanumeric display Rush answer machine time alarm 东华理工大学长江学院毕业设计 论文 目 录 III 目目 录录 0 绪 论 1 0 1 课题研究的相关背景 1 0 2 选题的目的和意义 1 0 3 课题研究的内容 1 0 4 国内外研究现状 2 0 5 抢答器目前存在的主要问题 2 1 抢答器的系统概述 4 1 1 系统的主要功能 4 1 2 工作原理 4 1 3 抢答器的电路框图 5 2 系统的软件设计 6 2 1 主程序 6 2 1 1 实现功能 6 2 1 2 主程序流程图 6 2 1 3 主程序的关键技术 7 2 1 4 主程序关键代码 11 2 2 抢答中断子程序 11 2 2 1 实现功能 11 2 2 2 中断流程图 11 2 2 3 中断关键技术 11 2 2 4 中断关键代码 13 2 3 键盘扫描子程序 13 2 3 1 实现功能 13 2 3 2 键盘扫描流程图 14 2 3 3 键盘扫描关键技术 14 2 3 4 键盘扫描关键代码 15 2 4 键值处理子程序 17 2 4 1 键值处理所实现功能 17 2 4 2 键值处理流程图 17 2 4 3 键值处理关键技术 18 2 4 4 键值处理关键代码 19 2 5 显示子程序 20 2 5 1 显示程序所实现的功能 20 东华理工大学长江学院毕业设计 论文 目 录 IV 2 5 2 显示程序流程图 21 2 5 3 显示程序关键技术 21 2 5 4 显示程序关键代码 22 2 6 定时中断服务子程序 23 2 6 1 定时中断实现的功能 23 2 6 2 定时中断流程图 23 2 6 3 定时中断关键技术 24 2 6 4 定时中断关键代码 27 结论 28 致 谢 29 参考文献 30 附录 1 31 附录 2 40 东华理工大学长江学院毕业设计 论文 绪 论 1 0 绪 论 0 1 课题研究的相关背景 抢答器是一种应用非常广泛的设备 在各种竞赛 抢答场合中 它能迅速 客 观地分辨出最先获得发言权的选手 早期的抢答器只由几个三极管 可控硅 发光 管等组成 能通过发光管的指示辩认出选手号码 现在大多数抢答器均使用单片机 如MCS 51型 和数字集成电路 并增加了许多新功能 如选手号码显示 抢按前或 抢按后的计时 选手得分显示等功能 本课题利用AT89C51单片机及外围接口实现的抢答系统 利用单片机的定时器 计数器定时和记数的原理 将软 硬件有机地结合起来 使得系统能够正确地进行 计时 同时使数码管能够正确地显示时间和选手号码 用开关做键盘输出 扬声器 发生提示 系统达到要求 在抢答中 只有开始后抢答才有效 如果在开始抢答前抢 答为无效 可以显示是哪位选手有效抢答和无效抢答 正确按键后有报警提示 抢 答时间和回答问题时间倒记时显示 时间完后系统自动复位 按键锁定 在有效状 态下 按键无效非法 0 2 选题的目的和意义 通过这次课程设计 掌握51单片机的原理 了解简单多功能抢答器组成原理 初 步掌握多功能抢答器的调整及测试方法 提高动手能力和排除故障的能力 同时通 过本课题设计与装配 调试 提高自己的动手能力 巩固已学的理论知识 建立单 片机理论和实践的结合 了解多功能抢答器各单元电路之间的关系及相互影响 从 而能正确设计 计算定时计数的各个单元电路 初步掌握多功能抢答器的调整及测 试方法 提高动手能力和排除故障的能力 0 3 课题研究的内容 本系统采用模块化设计智能抢答器 在抢答比赛中广泛应用 各组分别有一个 抢答按钮 主持人有开始和结束 复位键 在后台主持人可以修改 抢答时间和选 手回答问题的时间设置 原始状态下抢答时间为5s 回答问题时间为60s 主持人按 键开始后 选手开始抢答为有效 数码显示屏显示抢答时间倒计时和选手号 在最 后五秒扬声器发生提示 如果主持人没有按下开始键而选手就抢答视为犯规 数码 东华理工大学长江学院毕业设计 论文 绪 论 2 显示屏显示犯规者的代号 扬声器持续发生 主持人可按键结束 新一轮抢答开始 通过研究并在设计验证后发现 采用单片机技术设计的抢答器与目前常用的抢 答器相比 首先 电路连接简单 因为大多数功能单元都通过程序设计在单片机内 部 第二 工作性能可靠 抗千扰能力优于目前抢答器 所以本研究是一个实用的 工程设计 具有创新性 本论文章节的结构和内容如下 第一章 绪论 简要介绍了抢答器的发展现状 说明了本课题研究的内容 第二章 抢答器系统概述 说明了抢答器的工作过程和主要功能 简要说明硬 件部分 第三章 抢答器的软件设计 并编程序 结论 总结课题设计 指出设计中的一些问题 提出改善的意见 并展望抢答 器的未来设计 0 4 国内外研究现状 抢答器作为一种电子产品 早已广泛应用于各种智力和知识竞赛场合 但目前 所使用的抢答器有的电路较复杂不便于制作 可靠性低 实现起来很困难 有的则用 一些专用的集成块 而专用集成块的购买又很困难 为适应高校等多代表队单位活 动的需要而设计一个多功能抢答器 这种抢答器具有电路简单 元件普通 易于购 买等优点 很好地解决了制作者制作困难和难于购买的问题 在国内外已经开始了普 遍的应用 0 5 抢答器目前存在的主要问题 随着改革开放事业的不断深入 促使人们学科学 学技术 学知识的手段多种 多样 抢答器作为一种工具 已广泛应用于各种智力和知识竞赛场合 但抢答器的 使用频率校低 且有的要么制作复杂 要么可靠性低 减少兴致 作为一个单位若 专购一台抢答器虽然在经济上可以承受 但每年使用的次数极少 往往因长期存放 使 电子器件的 抢答器损坏 再购置的麻烦和及时性就会影响活动的开展 但目前多数抢答器存在 3 个不足之处 第一 现场线路连接复杂 因为每个选手 位于抢答现场的不同位置 每个选手与控制台之间要有长长的连接线 选手越多 连接线就越多 越乱 这些连接线不仅影响了现场的美观 而且降低了抢答器的可 靠性 增加了安装的难度 甚至影响了现场人员的走动 第二 电路复杂 因为单 东华理工大学长江学院毕业设计 论文 绪 论 3 片机只完成号码处理 计时 数据运算等功能 其它功能如选手号码的识别 译码 计分显示等仍只能通过数字集成电路完成 采用单片机扫描技术识别选手抢按号码 时 电路的延迟时间较大 第三 选手抢按成功 系统处理缓慢 有的甚至无法确 定选手组号 重复性的扫描 东华理工大学长江学院毕业设计 论文 抢答器得系统概 述 4 1 抢答器的系统概述 1 1 系统的主要功能 1 抢答功能 通过八路按键配合程序来实现抢答功能 当主持人按下抢答键开 始抢答后 此时任一路按下按钮均闭锁其他各路 由程序对键盘译码并显示最先按 下抢答器的路数及其当前时间 如果有抢答提前抢答 那么此后任何人按抢答键都 是无效的 显示的数字也不会有任何的变化 2 抢答限时 主持人按下抢答键后 设置 5 秒为抢答时间 若是在 5 秒的时间 里没有抢答 倒计时为 0 时就会自动发出报警信号 说明该次抢答题目作废 此时 闭锁所有抢答按键 只有主持人再次按下抢答按钮开始下一次抢答方可再次进行抢 答 3 答题限时 当主持人按下抢答按钮 此题被抢答后 主持人则会按下开始答 题按钮时 启动倒计时 若抢答人答题时间过长 倒计时为 0 时就会发出报警信号 说明答题时间到 显示返回当前台数及其分数为下一步计分作出准备 4 计分功能 当按下计分键后开始计分 可以实现加减计分 每次加或减 100 分 5 查询功能 当答题结束后 主持人可以按下查询键及组号 查询各个组的分 数 6 当主持人没有按下抢答键 便有组员按下键 说明违规 显示违规组号 1 2 工作原理 根据功能要求 通过主程序实现对各个寄存单元的初始化对 8155 的初始化 以 便实现键盘扫描和 LED 的显示 主持人可加减抢答组分数 可查询抢答组成绩 实 现抢答功能主靠中断程序 当主程序设置完成 开始抢答 1 8 任意抢答组按下键 后 通过键盘扫描程序判断出抢答组 开始答题后 定时中断程序运行 从而可以 判断在规定时间内抢答组员是否回答正确于否 在回答过程中 如时间到 抢答器 会发出蜂鸣 表示答题时间已到 通过显示子程序可以轻松的查看各组分数 设置 答题的时间 显示组号 抢答结束后 可查询各组的分数 0 9900 之间 键盘部 分从左向右 从上到下分别为 0 9 键 键 开始答题键 计分键 查 询键 enter 键共 16 个键 轻松的处理抢答前 抢答过程中 答题后各种相应操作 东华理工大学长江学院毕业设计 论文 抢答器得系统概 述 5 1 3 抢答器的电路框图 如图 1 1 所示为电路框图 其工作原理为 抢答时 只有数字键有效 封锁其 它键 一旦抢答成功 只有开始答题键有效 封锁其它键 抢答成功显示抢答组号 及剩余时间 开始答题显示开始答题 开始 60S 定时 此时封锁所有键 答题结束 后 按下数字键 违规 答题结束后 按下计分键 开始对抢答组计分 按 键加 100 分 按 键扣 100 分 按 enter 键退出计分 封锁其它键 答题结束后 按下查 询键对各组成绩进行查询 查询键按下后 输入相应的分组号即可显示该组的分数 按 enter 键退出查询 封锁其它键 图 1 1 抢答器电路框图 单片机 控制电 路 显示 电路 键 盘 电路 主持人 开始抢 答按钮 声光 报警 东华理工大学长江学院毕业设计 论文 系统得软件设 计 6 2 系统的软件设计 2 1 主程序 2 1 1 实现功能 程序初始化 完成内部各寄存单元的初始化 对 8155 初始化以便实现键盘扫描 和 LED 数码管的显示 调用键盘扫描程序和调用键值处理程序 以便实现读键和相 应的键操作 调用显示程序 以便实现相应内容的显示 内部定时器初始化 中断 的初始化 等待抢答中断信号 以便实现抢答功能的实现 也是就完成前期准备工 作等待随时对外部信号进行响应 2 1 2 主程序流程图 图 2 1 主程序流程图 主程序开始 各控制单元赋初值 初始化 调用显示程序 调用键盘扫描程序 调用键值处理 东华理工大学长江学院毕业设计 论文 系统得软件设 计 7 2 1 3 主程序的关键技术 主程序的功能主要是完成内部各寄存单元的初始化 对 8155 接口电路的初始化 内部定时器的初始化 中断的初始化及调用显示程序对初始状态的显示以及对外部信 号的等待处理 也就是说完成前期的准备工作等待随时对外部信号进行响应 2 1 3 1 8155 引脚图 PC3 1 PC4 2 TIMER IN 3 RESET 4 PC5 5 TIMER OUT 6 I OM 7 CE OR CE 8 RD 9 WR 10 ALE 11 AD0 12 AD1 13 AD2 14 AD3 15 AD4 16 AD5 17 AD6 18 AD7 19 VSS 20 PA0 21 PA1 22 PA2 23 PA3 24 PA4 25 PA5 26 PA6 27 PA7 28 PB0 29 PB1 30 PB2 31 PB3 32 PB4 33 PB5 34 PB6 35 PB7 36 PC0 37 PC1 38 PC2 39 VDD 40 U1 8155 图 2 2 8155 引脚图 2 1 3 2 8155 引脚说明 RST 复位信号输入端 高电平有效 复位后 3 个 I O 口均为输入方式 AD0 AD7 三态的地址 数据总线 与单片机的低 8 位地址 数据总线 P0 口 相连 单片机与 8155 之间的地址 数据 命令与状态信息都是通过这个总线口传送 的 读选通信号 控制对 8155 的读操作 低电平有效 RD 写选通信号 控制对 8155 的写操作 低电平有效 WR 东华理工大学长江学院毕业设计 论文 系统得软件设 计 8 片选信号线 低电平有效 CE IO 8155 的 RAM 存储器或 I O 口选择线 当 IO 0 时 则选择 8155 的 MM 片内 RAM AD0 AD7 上地址为 8155 中 RAM 单元的地址 00H FFH 当 IO 1 M 时 选择 8155 的 I O 口 AD0 AD7 上的地址为 8155 I O 口的地址 ALE 地址锁存信号 8155 内部设有地址锁存器 在 ALE 的下降沿将单片机 P0 口输出的低 8 位地址信息及 IO 的状态都锁存到 8155 内部锁存器 因此 CEM P0 口输出的低 8 位地址信号不需外接锁存器 PA0 PA7 8 位通用 I O 口 其输入 输出的流向可由程序控制 PB0 PB7 8 位通用 I O 口 功能同 A 口 PC0 PC5 有两个作用 既可作为通用的 I O 口 也可作为 PA 口和 PB 口的控 制信号线 这些可通过程序控制 TIMER IN 定时 计数器脉冲输入端 TIMER OUT 定时 计数器输出端 VCC 5V 电源 2 1 3 3 8155 的地址编码及工作方式 在单片机应用系统中 8155 是按外部数据存储器统一编址的 为 16 位地址 其高 8 位由片选线提供 0 CECE 当 0 IO 0 时 选中 8155 片内 RAM 这时 8155 只能作片外 RAM 使用 CEM 其 RAM 的低 8 位编址为 00H FFH 当 0 IO 1 时 选中 8155 的 I O 口 CEM 其端口地址的低 8 位由 AD7 AD0 确定 如表 1 所示 这时 A B C 口的口地址低 8 位分别为 01H 02H 03H 设地址无关位为 0 表 1 8155 芯片的 I O 口地址 东华理工大学长江学院毕业设计 论文 系统得软件设 计 9 AD7 AD0 A7A6A5A4 A3 A2A1A0 选择 I O 口 命令 状态寄存器 A 口 B 口 C 口 定时器低 8 位 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 定时器高 6 位及方式 8155 的 A 口 B 口可工作于基本 I O 方式或选通 I O 方式 C 口可工作于基本 I O 方式 也可作为 A 口 B 口在选通工作方式时的状态控制信号线 当 C 口作为状 态控制信号时 其每位线的作用如下 PC0 AINTR A 口中断请求线 PC1 ABF A 口缓冲器满信号 PC2 A 口选通信号 ASTB PC3 BINTR B 口中断请求线 PC4 BBF B 口缓冲器满信号 PC5 B 口选通信号 BSTB 2 1 3 4 8155 的寄存器 8155 的 I O 工作方式选择是通过对 8155 内部命令寄存器设定控制字实现的 命令寄存器只 能写入 不能读出 命令寄存器的格式如图 2 3 所示 在 ALT1 ALT4 的不同方式下 A 口 B 口及 C 口的各位工作方式如下 ALT1 A 口 B 口为基本输入 输出 C 口为输入方式 ALT2 A 口 B 口为基本输入 输出 C 口为输出方式 ALT3 A 口为选通输入 输出 B 口为基本输入 输出 PC0 为 AINTR PC1 为 ABF PC2 为 PC3 PC5 为输出 ASTB ALT4 A 口 B 口为选通输入 输出 PC0 为 AINTR PC1 为 ABF PC2 为 PC3 为ASTB BINTR PC4 为 BBF PC5 为 BSTB 东华理工大学长江学院毕业设计 论文 系统得软件设 计 10 00 空操作 01 停止计数 10 时间到则停止计数 11 置入工作方式和计数 长度后立即启动计数 若 正在计数 溢出后按新的 方式和长度计数 0 禁止B口中断 1 允许B口中断 0 禁止A口中断 1 允许A口中断 定义端口A 0 输入 1 输出 定义端口B 0 输入 1 输出 定义端口C 00 ALT1 A口 B口基本输入输出 C口输入 01 ALT1 A口 B口基本输入输出 C口输出 10 ALT3 A口选通输入输出 B口基本输入输出 PC0 AINTR PC1 ABF PC2 ASTB PC3 PC5 输入输出 PC0 AINTR PC1 ABF PC2 ASTB PC3 BINTR PC4 BBF PC5 BSTB 图 2 3 命令寄存器格式 8155 内还有一个状态寄存器 用于锁存输入 输出口和定时 计数器的当前状态 供 CPU 查 询用 状态寄存器的端口地址与命令寄存器相同 低 8 位也是 00H 状态寄存器的内容只能读出 不能写入 所以可以认为 8155 的 I O 口地址 00H 是命令 状态寄存器 对其写入时作为命令寄 存器 而对其读出时 则作为状态寄存器 状态寄存器的格式如图 2 4 所示 此程序对 8155 命 令寄存器值为 0FH PC2PC1 11B 选择工作方式 2 PC 为输出口 PBPA 11B PA 口输出 A 口中断标志请求 A 口缓冲器满空标志 A 口中断允许标志 B 口中断标志请求 B 口缓冲器满空标志 B 口中断允许标志 定时器中断标志 定时器计数到 指定长度置 1 读状态后清 0 图 2 4 状态寄存器格式 东华理工大学长江学院毕业设计 论文 系统得软件设 计 11 2 1 4 主程序关键代码 CLR P2 7 8155 初始化 SETB P2 6 MOV R0 00H MOV A 0FH MOVX R0 A 2 2 抢答中断子程序 2 2 1 实现功能 抢答开始 等待中断源发出的中断信号 当抢答键按下 调用该中断 5s 定时 抢答开始 并对抢答信号进行处理 2 2 2 中断流程图 图 2 5 中断流程图 2 2 3 中断关键技术 在程序的执行过程中 由于某种外界的原因 必须终止当前执行的程序 而去 执行相应的处理程序 待处理结束后 再回来继续执行被终止的程序 这个过程叫 中断 8051 为例 有三类共五个中断源 分别是外部中断两个 定时中断两个和串行 中断一个 外中断是由外部原因引起的 共有两个中断源 即外部中断 0 和外部中断 1 设置中断标志 中断开始 启动 5S 定时 中断返回 东华理工大学长江学院毕业设计 论文 系统得软件设 计 12 它们的中断请求信号分别由引脚 INT0 P3 2 和 INT1 P3 3 引入 外部中断有两 种触发方式 即低电平方式和负边沿方式 五个中断源 每个中断产生后都到一个固定的地方去找处理这个中断的程序 当然在去之前首先要保存下面将执行的指令的地址 以便处理完中断后回到原来的 地方继续往下执行程序 中断响应可以分为以下几个步骤 1 保护断点 即保存下一步将要执行的指令 的地址 就是把这个地址送入堆栈 2 寻找中断入口 根据 5 个不同的中断源所产 生的中断 查找 5 个不同的入口地址 以上工作是由计算机自动完成的 与编程者 无关 在这 5 个入口地址处存放有中断处理程序 3 执行中断处理程序 4 中断 返回 执行完中断指令后 就从中断处返回到主程序 继续执行 单片机的中断为向量中断 即一响应中断就转入固定入口地址执行中断服务程 序 具体如下 中断源 入口地址 INT0 0003 T0 000BH INT1 0013H T1 001BH RI TI 0023H 在这些单元中往往放一条跳转指令 跳到真正的中断服务程序 这是因为给每 个中断源安排的空间只有 8 个单元 与中断有关的特殊功能寄存器有四个 分别是 TCON 定时控制寄存器 IE 中断允许控制寄存器 IP 中断优先级控制寄存 器 SCON 及串行口控制寄存器 表 2 定时控制寄存器 TCON D7D6D5D4D3D2D1D0 TF1 TF0 IE1IT1IE0IT0 中断请求标志为 TF1 TF0 IE1 IE0 触发方式选择 IT1 IT0 0 为低电平 1 为下降沿 同时电平触发时 在中断返回前应撤除中断源 表 3 中断允许控制寄存器 IE D7D6D5D4D3D2D1D0 EA ESET1EX1ET0EX0 复位时 禁止所有中断 0 为禁止 1 为允许 东华理工大学长江学院毕业设计 论文 系统得软件设 计 13 中断相应的条件 CPU 要响应中断需满足下列条件 1 无同级或高级中断正在服务 2 当前指令周期结束 如果查询中断请求的机器 周期不是当前指令的最后一个周期 则不行 3 若现行指令是 RETI RET 或访问 IE IP 指令 则需要执行到当前指令及下一条 指令方可响应 响应过程 单片机响应中断后 自动执行下列操作 1 置位中断优先级有效触发器 即关闭同级和低级中断 2 调用入口地址 断点入栈 相当于 LCALL 指令 3 进入中断服务程序 2 2 4 中断关键代码 INT0 MOV 38H 5 外部中断 启动 5S 定时 38H 存放倒计时数 SETB ET0 SETB TR0 SETB INTB RETI 2 3 键盘扫描子程序 2 3 1 实现功能 对键盘进行扫描 当有键按下 获取键盘扫描值 程序判断按键类型 从而做 出相应的反应 屏蔽其他抢答按键 抢答人按键并回答正确问题后 由主持人作出 相应的操作 加分或者减分 若抢答人答题时间过长 待倒计时变为 0 时就会发出 报警信号 说明答题时间到 显示返回当前台数及其分数为下一步抢答计分作出准 备 键盘从左到右 从上到下分别是 0 9 键 键 开始抢答键 开始 答题键 计分键 查询键 enter 键共 17 个键 东华理工大学长江学院毕业设计 论文 系统得软件设 计 14 2 3 2 键盘扫描流程图 图 2 6 键盘扫描流程图 2 3 3 键盘扫描关键技术 键码识别是指矩阵结构的键盘识别被按键的方法 一般有行扫描法 行列反转 法和行列扫描法 行反转法也是识别按键的常用方法 它的基本原理是 将行线接一个数据端口 先让它工作在输出方式 将列线也接到一个数据端口 先让它工作在输入方式 程 序使 CPU 通过输出端口往各行线上全部送低电平 然后读入列线值 假如此时有某 键被按下 则必定会使某列线值为 0 接着 程序再对两个端口进行方式设置 使 接行线的端口改为输入方式 接列线的端口改为输出方 式 并且 将刚才读得的列 值从列线所接端口输出 再读取行线的输入值 那么 闭合键所在的行线值必定为 0 这样 当一个键 被按下时 必定可以读得一对唯一的行值和列值 与之配合 行 列线所接的数据端口应能够改变输入 输出方式 东华理工大学长江学院毕业设计 论文 系统得软件设 计 15 行扫描法 行扫描法又称为逐行 或列 扫描查询法 是一种最常用的按键识别 方法 判断键盘中有无键按下 将全部行线置低电平 然后检测列线的状态 只要有 一列的电平为低 则表示键盘中有键被按下 而且闭合的键位于低电平线与 4 根行 线相交叉的 4 个按键之中 若所有列线均为高电平 则键盘中无键按下 判断 闭合键所在的位置 在确认有键按下后 即可进入确定具体闭合键的过程 其方法 是 依次将行线置为低电平 即在置某根行线为低电平时 其它线为高电平 在确 定某根行线位置为低电平后 再逐行检测各列线的电平状态 若某列为低 则该列 线与置为低电平的行线交叉处的按键就是闭合的按键 根据系统需求采用行扫描法 2 3 4 键盘扫描关键代码 KEYPR MOV DPTR 4000H 键扫描子程序 MOV A 0CH MOVX DPTR A MOV R3 00H MOV R4 00H ALCALL KEXAM JZ KEND ACALL D10MS ACALL KEXAM JZ KEND MOV R2 0EH KEY1 MOV DPTR 4003H MOV A R2 MOVX DPTR A MOV DPTR 4003H MOVX A DPTR CPL A ANL A 0F0H JNZ KEY2 MOV A R4 ADD A 04H MOV R4 A 东华理工大学长江学院毕业设计 论文 系统得软件设 计 16 MOV A R2 RL A MOV R2 A JB ACC 4 KEY1 AJMP KEND KEY2 CPL A KEY3 INC R3 RRC A JC KEY3 KEY4 ACALL D10MS ACALL KEXAM JNZ KEY4 MOV A R4 ADD R3 MOV BUFF A KEND RET BUFF EQU 36H 键值缓冲 D10MS MOV R5 14H 10MS 定时 DL MOV R6 0FFH DL0 DJNZ R6 DL0 DJNZ R5 DL RET KEXAM MOV DPTR 4003H 查是否有键按下 MOV A 00H MOVX DPTR A MOV DPTR 4003H MOVX A DPTR CPL A ANL A F0H RET 东华理工大学长江学院毕业设计 论文 系统得软件设 计 17 2 4 键值处理子程序 2 4 1 键值处理所实现功能 1 抢答时 只有数字键有效 封锁其它键 一旦抢答成功 只有开始答题键 有效 封锁其它键 抢答成功显示抢答组号及剩余时间 开始答题显示 2 开始答题 开始 60S 定时 此时封锁所有键 3 答题结束后 按下数字键 违规 4 答题结束后 按下计分键 开始对抢答组计分 按 键加 100 分 按 键扣 100 分 按 enter 键退出计分 封锁其它键 5 答题结束后 按下查询键对各组成绩进行查询 查询键按下后 输入相应 的分组号即可显示该组的分数 按 enter 键退出查询 封锁其它键 2 4 22 4 2 键值处理流程图键值处理流程图 东华理工大学长江学院毕业设计 论文 系统得软件设 计 18 图 2 7 键值处理流程图 2 4 3 键值处理关键技术 键值处理部分必须对系统所处的当前状态进行判断 从而进行相应的程序处理 当前系统状态的判断采用标志位的状态进行判断 对抢答器系统的标志位主要有以 下几种 1 外部中断标志位 当抢答键按下 该标志位置 1 说明可以抢答 当已抢答 或抢答时间超过 5S 该位置 0 说明抢答结束 2 抢答标志位 当获取抢答信号 该位置 1 说明可以进行答题了 当开始答 题键按下 该位置 0 3 答题结束标志位 当开始答题键按下 该位置 0 说明正在答题 当 60S 定 键值处理 程序开始 显示缓冲区送 抢答组号和剩 余时间 键值处理 程序结束 抢答 开始 数字 键 0 8 有组 抢答 开始答 题键 显示缓冲区送组 数答题组号和剩 余时间 答题 结束 计分 键 显示缓冲区送 抢答组号加减 分 并修改答题 组成绩 查询 键 显示缓冲区送 查询分数 数字 键 0 8 显示缓冲区送 违规组号 Y N Y N Y Y N NN Y YYY N NN 东华理工大学长江学院毕业设计 论文 系统得软件设 计 19 时到 该位置 1 说明答题结束 4 计分标志位 当计分键按下 该位置 1 说明可以计分 当 enter 键按下 该位置 0 计分结束 5 查询标志位 当查询键按下 该位置 1 说明可以查分 当 enter 键按下 该位置 0 查询结束 2 4 4 键值处理关键代码 KEYCL JNB INTB N1 键处理子程序 ACALL PSZ 判 0 8 JNZ KEYEND MOV 40H BUFF 40H 答题组号缓冲区 MOV 30H 0AH 显示抢答组号及 5s 倒计时 MOV 31H 10H 30H 35H 显示缓冲区 MOV 32H BUFF MOV 33H 10H MOV A 38H MOV B 0AH DIV AB MOV 34H A MOV 35H B CLR INTB SETB QDB AJMP KEYEND N1 JNB QDB N2 MOV A BUFF CJNE A 0CH KEYEND MOV 38H 60 启动 60S 倒计时 SETB ET0 SETB TR0 MOV 30H 0BH 显示正在答题及倒计时 MOV 31H 10H MOV 32H BUFF MOV 33H 10H MOV A 38H MOV B 0AH 东华理工大学长江学院毕业设计 论文 系统得软件设 计 20 DIV AB MOV 34H A MOV 35H B CLR QDB CLR DTJSB AJMP KEYEND N2 JNB DTJSB KEYEND MOV A BUFF CJNE A 0D N3 SETB JFB AJMP KEYEND 2 5 显示子程序 2 5 1 显示程序所实现的功能 显示子程序 此程序仅完成 6 位数据的动态显示 可显示数字和代码 显示抢答器显示缓冲区的相应内容 1 在抢答时 显示为 AX3X02 其中 A 代表正在抢答 X 代表熄灭 3 表示分组数 是 1 8 中的任一个数 0 和 2 分别为 0 9 中的任 一个数 是抢答限时倒计时的时间 2 开始答题后 显示为 BX3X02 其中 B 表示正在答题 X 代表熄灭 3 代表分组数 是 1 8 中的任一个数 0 和 2 分别为 0 9 中的任 一个数 是答题限时倒计时的时间 3 在计分时 显示为 C3 100 其中 C 表示当前为计分状态 3 代表分组数 是 1 8 中的任一个数 为 或 号 表示当前 为加分状态或减分状态 号可不显示 减号显示 1 0 和 0 3 位本系统每次只能加减 100 分 4 在查询时 显示为 D30500 其中 D 表示当前为查询状态 3 代表 分组数 是 1 8 中的任一个数 0 5 0 和 0 四位代表所 查分组的当前总分 是 0 9 中的任一个数 5 初始状态显示 6 位全熄灭 6 违规显示 EXXXX3 其中 E 表示违规 X 代表熄灭 3 表示分组 数 东华理工大学长江学院毕业设计 论文 系统得软件设 计 21 2 5 2 显示程序流程图 图 2 8 显示程序流程图 2 5 3 显示程序关键技术 常见的数码管由七个条状和一个点状发光二极管管芯制成 根据其结构的不同 可分为共阳极数码管和共阴极数码管两种 这里我们采用共阴七段数码管 LED 数码 管中各段发光二极管的伏安特性和普通二极管类似 只是正向压降较大 正向电阻 也较大 在一定范围内 其正向电流与发光亮度成正比 由于常规的数码管起辉电 流只有 1 2 mA 最大极限电流也只有 10 30 mA 所以它的输入端在 5 V 电源或高 于 TTL 高电平 3 5 V 的电路信号相接时 一定要串加限流电阻 以免损坏器件 七段 LED 显示系统有静态显示和动态显示之分 静态系统中 每位显示器都应 动态显示子 程序开始 R0 显缓首址 R2 最左位选码 查表取段码 段码送 A 口 位码送 C 口 延时 3 5ms 6 位显示 完 动态显示子 程序结束 Y R0 1 R2 右移 N 东华理工大学长江学院毕业设计 论文 系统得软件设 计 22 有各自的锁存器 译码器 若采用软件译码 译码器可省去 与驱动器 用以锁存 各自待显数字的 BCD 码或反码 因此 静态显示系统在每一次显示输出后能够保持 显示不变 仅在待显数字需要改变时 才更新其数字显示器中锁存的内容 在动态 显示系统中 微处理器或控制器应定时的对各个显示器进行扫描 显示器件分时轮 流工作 每次只能使一个器件显示 但由于人的视觉暂留现象 仍感觉所有的器件 都在显示 此种显示的优点是使用硬件少 占用 I O 口少 缺点是占用机时长 只 要不执行显示程序 就立刻停止显示 此处我们运用动态显示系统 在动态显示系 统中 一位数字的显示持久时间不允许超过其额定值 更不允许系统长久地停止扫 描刷新 否则 某一个数字显示器和位驱动电路将因长时间流过较大的恒定电流而 被损坏 同时 动态显示方式所能容许的显示数字的个数是有限的 一般 N 16 这是由于显示系统所能容许最大脉动工作电流是有限的 而静态显示方式没有限制 数码管采用共阴极 LED 8155 的 PA 口线经过 8 路驱动电路后接至数码管的各段 当 PA 口线输出 1 时 驱动数码管发光 8155 的 PC 口线经过 6 路驱动电路后接 至数码管的公共端 当 PC 口线输出 0 时 选通相应位的数码管发光 如图 图 2 9 七段 LED 显示 2 5 4 显示程序关键代码 DIS MOV R0 30H 显示子程序 MOV R2 20H DIS1 MOV A R0 MOV DPTR SEG MOVC A A DPTR MOV DPTR 0FD01H MOVX DPTR A MOV A R2 INC DPTR 东华理工大学长江学院毕业设计 论文 系统得软件设 计 23 MOVX DPTR A ACALL DIMS MOV A R2 JB ACC 0 DIS2 INC R0 MOV A R2 RR A MOV R2 A AJMP DIS1 DIS2 RET 2 6 定时中断服务子程序 2 6 1 定时中断实现的功能 实现 5S 的抢答定时和 60S 的答题定时 并到时间报警 2 6 2 定时中断流程图定时中断开始 关中断 恢复定时初值 开中断 修改计数单元 到 5s 否 置计数初值 报警设置 修改倒计时单元 倒计时结束否 恢复计时初值并报警 中断返回 东华理工大学长江学院毕业设计 论文 系统得软件设 计 24 图 2 10 定时中断流程图 2 6 3 定时中断关键技术定时中断关键技术 定时器的定时最大时间 65 536S 一般在定时设置时 定时器中断采用短时间 定时 如 20mS 定时 然后再利用程序中设置计数次数实现大时间的定时 8051 单片机有 2 个 16 位的定时 计数器 定时器 0 T0 和定时器 1 T1 它们都有定时器或事件计数的功能 可用于定时控制 延时 对外部事件计数和检 测等场合 T0 由 2 个特殊功能寄存器 TH0 和 TL0 构成 T1 则由 TH1 和 TL1 构成 作计数器 时 通过引脚 T0 P3 4 和 T1 P3 5 对外部脉冲信号计数 当输入脉冲信号从 1 到 0 的负跳变时 计数器就自动加 1 计数的最高频率一般为振荡频率的 1 24 设计数器的最大计数值为 M 根据不同工作方式 M 可以是 213 216 或 28 则 计算初值 X 的公式如下 X M 要求的计数值 定时的核心部件是二进制加 1 计数器 TH0 TL0 或 TH1 TL1 定时器的工作方式 1 工作方式 0 M1M0 00 13 位计数器 1 结构 由 TH0 的全部 8 位和 TL0 的低 5 位构成 如下页图 当 TL0 低 5 位计数满时直 接向 TH0 进位 并当全部 13 位计数满溢出时 TF0 置 1 2 TMOD 值 作定时器 TMOD 0000 0 0 00 00H 作计数器 TMOD 0000 0 1 00 04H 图 2 11 定时器工作方式 0 3 计数初值 最大计数值为 213 8192 T 213 计数初值 机器周期 12 fosc 计数初值 213 欲计数脉 冲数 213 T 机器周期 东华理工大学长江学院毕业设计 论文 系统得软件设 计 25 2 工作方式 1 M1M0 01 16 位计数器 方式 1 时的电路逻辑结构如图所示作定时器 TMOD 01H 作计数器 TMOD 05H T 216 计数初值 机器周期 12 fosc 计数初值 216 欲计数脉 冲数 216 T 机器周期 图 2 12 定时器工作方式 1 例如 定时 500us fosc 6MHz 时 初值 216 500 2 65536 250 65286 FF 06H 那么 TH0 FFH TL0 06H 3 工作方式 2 M1M0 10 自动复位的 8 位计数器 以 TL0 作计数器 而 TH0 作为预置寄存器 当计数满溢出时 TF0 置 1 同 时 TH0 将计数初值以硬件方法自动装入 TL0 逻辑结构 如图所示 图 2 13 定时器工作方式 2 4 工作方式 3 M1M0 11 2 个 8 位计数器 仅限于 T0 在 T0 方式 3 下 T0 T1 的设置和使用是不同的 东华理工大学长江学院毕业设计 论文 系统得软件设 计 26 1 T0 方式 3 TL0 使用 T0 原有控制资源 功能与方式 0 1 相同 TH0 借用 T1 的 TR1 TF1 只能对片内机器周期脉冲计数 作 8 位定时器 T0 方式 3 时的 T0 T1 电路逻辑结构 如图所示 图 2 14 定时器工作方式 3 T0 方式 3 时的 T0 初值计算完全同方式 2 2 T0 方式 3 下的 T1 T0 方式 3 时 T1 仍然可工作于方式 0 方式 2 如上页图所示 C 控制位仍 T 可使 T1 工作在定时器或计数器方式 只是由于其 TR1 TF1 被 T0 的 TH0 占用 因而没有计数溢出标志可供使用 计数溢出时只能将输出结果送至串行口 即 用作串行口波特率发生器 T0 方式 3 下的 T1 方式 2 因定时初值能自动恢复 用作波特率发生器更为合适 有定时器有关的特殊功能寄存器有工作方式控制寄存器 TMOD 和定时器控制寄存 器 TCON 表 4 定时控制器 TCON D7D6D5D4D3D2D1D0 TF1TR1TF0TR0IE1IT1IE0IT0 中断请求标志为 TF1 TF0 IE1 IE0 启动定时器 TR1 TR0 触发方式选择 IT1 IT0 0 为低电平 1 为下降沿 东华理工大学长江学院毕业设计 论文 系统得软件设 计 27 本设计采用 T0 50ms 定时 其初工作方式选方式 1 其定时初值为 3C0BH 2 6 4 定时中断关键代码 IT0 CLR ET0 MOV TMOD 01H 设置 50ms 定时 MOV TH0 3CH MOV TL0 0BH SETB ET0 MOV R0 37H DEC R0 JNZ IT0END MOV 37H 14H MOV R0 38H DEC R0 JNZ IT0END MOV P1 0FFH MOV A 0B4H D3S ACALL D10MS DEC A JNZ D3S MOV P1 00H IT0END RETI 东华理工大学长江学院毕业设计 论文 结 论 28 结论 通过各个程序 实现了本设计的要求 设计的特点对各种抢答信号进行识别

温馨提示

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

评论

0/150

提交评论