基于单片机的竞赛抢答器系统设计毕业设计(编辑修改稿)内容摘要:

对应的数码管点亮,不想点亮就加上低电平。 图 29 数码管 Q1T I S 9 3L S 1S P E A K E RR11 0 kP 3 . 6盐城工学院本科生毕业设计说明书 ( 20xx) 9 表 21 共阴极数码管真值表 输入 数字 a b c d e f g h 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 2 1 1 1 1 0 0 1 0 3 0 1 1 0 0 1 1 0 4 1 0 1 1 0 1 1 0 5 1 0 1 1 1 1 1 0 6 1 1 1 0 0 0 0 0 7 1 1 1 1 1 1 1 0 8 1 1 1 1 0 1 1 0 9 方案一:采用数码管显示。 数码管精确度能达到本设计的要求,对使用环境没有特别的要求,性价比也比较高。 在程序设计上数码管的编译容易。 方案二:采用液晶屏显示。 画面效果比数码管好,主要体现在可以显示多种符号,分辨率高可以看得面积比较大。 但是资源占用比数码管多,同时成本比数码管高。 因为,只需显示选手号码和时间,所以选用方案一。 显示电路如图 210。 此电路包括显示和 驱动,显示采用数码管,通过 P0 口控制数字的显示,驱动用 P2 口,数码管采用动态显示。 数码管动态显示,驱动数码管的电平不断的发生改变 ,使数码管亮与灭轮流变化。 一般芯片的引脚不一定能够驱动数码管亮灭,所以需要一个能驱动数码管的电源驱动数码管。 为了简化电路,一般直接使用芯片的电源驱动数码管,但是数码管需要的电压较低直接使用会烧坏数码管。 这时需要一个 220V 的电阻来降低电压使得数码管在正常使用的时候不会被烧毁。 图 210 数码管显示电路 基于单片机竞赛抢答器系统设计 10 3 系统程序设计 主程序 任何控制系统开始正常工作前都必须要进行初 始化, 本设计抢答器正常工作时,对系统初始化,扫描 口,判断是否有低电平,即开始按键是否按下。 如果“开始”键没有被按下,那么在扫描选手键是否被按下。 如果有选手按下,就是非法抢答需要使用非法抢答子程序。 如果“开始”键按下后,选手键才被按下,那么就是正常抢答,此时就是执行正常抢答程序。 本部分的程序主要就是初始设置,包括中断和相关的系统参数。 中断在设计中需要考虑某个中断源是否允许,中断优先级和对于一些特殊的中断需要特定的设置。 本设计的特殊的中断主要是定时 /计数器和外部中断;首先需要确定定时 /计数器的功能,在 使用前确定是定时模式。 在设计中在确定了定时功能模式后,定时 /计数器将有多种工作方式可供选择,本设计采用方式一。 该工作方式下,定时初值没有重新装填的功能。 定时的初始值存放在 TH0、 TH TL0 和 TL1 中。 定时 /计数器还需要设定其启动方式,本文中采用软件启动方式。 具体实现为: MOV TMOD, 11H ,定时 /计数器的启动由定时 /计数器控制寄存器 TCON 中的 TR0 和 TR1 的置位实现。 外部中断不仅需要设置中断优先和中断允许还需要设置中断的触发方式。 本文程序设计中采用边沿触发方式。 通过定时 /计数器控制寄存器 TCON 中的 IT0和 IT1 确定。 置位表示边沿触发方式。 反之为电平触发方式。 指令的实现方法为: SETB IT0。 只要有中断程序响应,系统就会自动的将程序指针的 PC 值调到对应的中断服务的入口地址之上。 在 51 系列单片机中,中断服务程序会大于 8 个字节,而中断服务程序入口地址后只分配 8 字节的程序空间,故需使用跳转指令跳转至存储器空间中的适当位置。 有中断被响应,现在正在执行的程序会被暂停,同时进行保护,然后去执行刚刚的中断程序。 这时将涉及到断点保护和现场保护的问题。 断点保护由单片机内部自动完成,不需要外界干预。 但是,现 场保护是通过 PUSH 和 POP指令完成的,也就是说通过软件设置现场保护的。 堆栈的深度也可以根据设计的实际情况重新设定。 如果不进行设定, SP 的值将为 07H,堆栈深度为 24B。 大量的程序初始参数都需要在初始化的时候被设定,这样的话在程序运行的时候就可以方便的调用这些数据进行运算,这些数据的设定能直接影响程序的运行,需要小心设置。 盐城工学院本科生毕业设计说明书 ( 20xx) 11 主程序流程图如下: 图 31 主程序流程图 开 始初 始 化 显 示 F F FP 3 . 2 和 P 3 . 3 是 否 按下。 时 间 调 整 子 程序P 3 . 0 是 否 按 下。 倒 计 时 子 程 序显 示 子 程 序正 常 抢 答 处 理 程 序结 束返 回是 否 有 抢 答 键 按 下。 非 法 抢 答 子 程 序报 警 子 程 序返 回否是是是否否基于单片机竞赛抢答器系统设计 12 正常抢答 正常抢答是在“开始”按钮,被按下后进行的抢答。 程序实现了第一抢答选手的编号的锁存功能。 正常抢答流程图如下: 图 32 正 常抢答程序流程图 开 始响 声 提 示设 置 定 时 器 初值 , 启 动3 0 秒 倒 计 时3 0 秒 内 显 示抢 答 的 抢 答 者编 号回 答 问 题 的 60 秒 倒 计 时R E T盐城工学院本科生毕业设计说明书 ( 20xx) 13 犯规抢答 在主持人未按下“开始”键时,为了保证比赛的公平,专门设计里对于非法抢答选手进行警告的程序。 当非法抢答事件发生的时候,数码管显示多少号选手发生非法抢答,同时会跳到非法抢答子程序上。 犯规抢答流程图如下: 图 33 犯规抢答程序流程图 开 始 P 1 . 0 按 下。 P 1 . 1 按 下。 P 1 . 2 按 下。 P 1 . 3 按 下。 P 1 . 4 按 下。 P 1 . 5 按 下。 P 1 . 6 按 下。 P 1 . 7 按 下。 将 犯 规 号 送 到R 3犯 规 抢 答 程 序返 回是是是是是是是是否否否否否否否基于单片机竞赛抢答器系统设计 14 显示程序 数码管是采用共阴极的数码管,将数码管的公共端接到低电平上,在给数码管A 到 H 脚接上一个高电平就可以是对应的二极管发亮。 程序设置 P0 和 P2 口,完成数码管的数字显示和数码管位的选择。 报警程序 蜂鸣器通过 发出控制 信号来控制三极管导通和关断,从而使蜂鸣器发声。 当 RING 标志位为 1 时候 口不断取反使喇叭发出一定频率的声音。 抢答时间调整子程序 改抢答器的时间是可以通过按键在量程内自由修改的,再按下“抢答时间调整按钮”或者“回答时间调整按钮”后,数码管上会显示已经设定好的时间,如果不满意可以按下“加一”按钮进行时间上的加一。 如果想减 1S,按下“减一”键。 LED 显示装置会自动显示修改后的抢答时间。 时间只能在 0 到 99 之内调节,如果超过 99,就会变成 0。 如果低于 0 就会变为 99。 回答时间的调整与此类似。 抢答时间调 整子程序流程图如下: 盐城工学院本科生毕业设计说明书 ( 20xx) 15 图 34 抢答时间调整程序流程图 开 始设 置 抢 答 和 答题 时 间将 R 1 的 十 位 和 个位 分 别 送 到 R 4 、R 5调 显 示 子 程 序P 3 . 4 按 下。 R 1 = 9 9。 P 3 . 5 按 下。 R 1 = 0。 P 3 . 1 按 下。 结 束R 1 1 送 到 R 1调 延 时 子 程 序R 1 = 9 9R 1 = 1 送 到 R 1R 1 = 0是是否是否是否否否是基于单片机竞赛抢答器系统设计 16 4 系统仿真调试 Keil uVision2 软件调试 本设计由于是采用 51 系列单片机,因此使用使用 Keil uVision2。 C51 在 Keil uVision2 中被充分使用。 在 Keil uVision2 开发环境中,我们可以实现 C51 的编译、调试,生成单片机所需的文件。 在 Keil uVision2 新建工程,选择 Atmel中的 89C51。 新建文件以 .asm 结尾,并保存,将 .asm文件添加入工程。 首先对于用户的程序需要进行检查,将所有的错误改正后 才可以顺利的进行编程。 在程序完全无错之后通过 Keil uVision2 中的工具将单片机执行文件生成出来。 最后再点击编译就能生成 .hex 文件了。 生成的 HEX 文件就是可用于单片机使用的文件。 Proteus 仿真 Proteus软件是一款 EDA工具软件,它由英国的一家公司出版。 它与其他的 EDA软件相比,不仅有软件仿真,还可以将单片机外围部件一起仿真。 从目前情况看,它是最好的仿真软件。 Proteus 可以进行原理图绘制,代码的调试,整个电路图的仿真,还可以进行 PCB 的绘制工作。 从概念性上的设想到实际的实物的设 计都可以使用它。 目前世界上唯一的将电路仿真、虚拟模型仿真和 PCB 的设计结合在一起的软件。 在 Proteus 中将原理图画好,然后将已经编译好的程序代码导入到原理图的芯片里面,从而使芯片可以运行,运行模拟仿真的功能就可以看到和实物差不多的功能演示。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。 它可以替代相当一部分的传统上的单片机的教学任务,使人们不需要实物就可以得到直观的结果。 本设计用到 Proteus 仿真软件。 首先进行 ISIS 原理图设计将电路图根据设计要求在软件中准确地画出,我们的仿真也是完全基于 ISIS 原理图模块下进行的。 再进行电气检查,确认电气接线无误。 原理图如图 41。 单击源代码,单击添加 /删除源文件,得到对话框,添加 .HEX 文件。 选择全部编译。 然后将 Keil uVision2 生成的 HEX 文件导入到到该中原理图的芯片中。 盐城工学院本科生毕业设计说明书 ( 20xx) 17 图 41 电气检查无误程序导入后的原理图 文档建立好之后,按开始运行,执行仿真。 下面是几组仿真图。 图 42 开始时显示 FFF 开始时,仿真显示的是 ”F”,这说明抢答器已经准备好可以进行下一步的工作在复位后、开始时、结束时都是这个状态。 基于单片机竞赛抢答器系统设计 18 图 43 启动开始键,倒计 时 图 44 5 号选手抢答 图 45 7 号选手非法抢答 主持人按下开始键后,开始显示倒计时,最初的倒计时设定为 30S。 在这之后有选手抢答,假设为 5 号,就会在数码管上显示抢答选手编号以及回答时间的倒计时,初始设定为 60S。 如果主持人没有按下开始键就有人抢答,就会显示非法抢答选手编号,同时后 2 为数码管显示“ F”。 盐城工学院本科生毕业设计说明书 ( 20xx) 19 5 实物电路制作以及调试 在焊接实物前需要检查下所购买的的元器件是否有损坏的情况,以防止在焊好之后发现损坏增加了额外的工作量。 因为所买的按钮时 4 引脚的,需要用万用表检测出常开和常闭的引脚,防 止接错后按钮无反应,一直处于导通状态。 再用万用表检测数码管是否都能点亮。 也可以在万用板上焊上 USB 接口,串联上 220 欧姆电阻,再引出一根导线,和接地端的导线和在一起就形成一个简易的测试数码管的设备。 检测蜂鸣器能否发声。 在检测完元件后,对照着原理图就可以焊接设备了。 焊接时首先进行的是单片机最小系统的焊接,为了防止干扰将晶振贴近单片机。 为了使电路看上去简单特地将瓷片电容放在单片机的托架里面。 同时复位部分的电阻电容也放在里面,复位按钮则放置在单片机外面。 再将 EA 脚接到电源脚上。 在焊接数码管,在焊接前需要将所有的 脚代表的意义画出来。 单片机连接到数码管上时需要考虑下连线的问题,因为连线会交叉在一起,所以需要好好考虑一下连线的先后顺序问题。 第一次焊接的时候由于按钮的摆放位置没有考虑好,造成按钮连接地线时焊接比较麻烦。 由于链接的导线比较复杂,同时导线为完全拉直造成一定的干扰,使得第一块板子没有达到预期效果。 焊接第二块板子时,吸收以上教训将按钮位置调整了下,在连接底线时直接使用拨完皮的导线,围绕按钮直接。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。