武汉工程大学单片机多路抢答器的课程设计

更新时间:2024-04-08 03:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电气信息学院

单片机技术课程设计报告

课题名称 多路抢答器的设计 专业班级 10电气 4班 学 号 2010500238 学生姓名 杨 彬 指导教师 易先军 评 分

2013年6月17日至6月21日

课程设计量化评分标准

指标 分值 评分要素 得分 方案选择合理,分析、设计正确,原理清楚,方案设计 20 电路、程序流程图清晰,结构合理,程序简洁、正确。 报告结构严谨,逻辑严密,论述层次清晰, 设计报告 20 语言流畅,表达准确,重点突出,报告完全符合规范化要求,用计算机打印成文。 过程清晰,调试方案设计合理,测试点选择 调试与结果 20 适当,程序编写正确,调试步骤清楚。 电路及程序运行结果正确,达到预期效果。 工作态度 20 工作量饱满程度,题目难度;工作态度,按 时完成设计任务,是否独立完成等。 思路清晰;语言表达准确,概念清楚,论点 答辩成绩 20 正确;分析归纳合理,结论严谨;回答问题有理论根据,基本概念清楚。 总 评 成 绩 指导老师评语:

答辩记录

1、例举设计过程中遇到的问题及其解决方法(至少两例)。

答:(1)问题说明:对于采用独立式按键设计还是行列式按键设计有所困扰。

解决方法:行列式键盘是采用X*Y型按键来实现I/O的扩展的,这种按键 的排列方式可以有效的提高I/O的利用率。

(2)问题说明:Proteus软件中,从元器件库中调出的元件有的不能仿真。

解决方法:Proteus里面又不是器件是没有仿真模型的,只是个原理图 符号,故必须选含仿真模型的器件。

2、教师现场提的问题记录在此(不少于2个问题)。 (1)Proteus软件的主要功能是什么?

答:Proteus软件可以仿真、分析各种模拟电路与集成电路,软件提供了大量模拟与数字元器件及外部设备,各种虚拟仪器,特别是它具有对单片机及其外围电路组成的综合系统的交互仿真功能。

(2)如果有多个按键几乎同时按下,你是如何来保证最先按下的按钮抢答成功 的?

答:可以通过锁存器达到目的。当有第一个按键被按下时,锁存器将迅速锁存 优先抢答者的按键状态,并能同时禁止其他选手按键,使其按键操作无效。

摘 要

现如今生活娱乐的多元化已是现代的生活方式之一。知识、娱乐比赛更是流行于各行各业, 而其中又以抢答形式为主。 在抢答过程中,为了知道哪一组或哪一位选手优先获得抢答权,必须要设计一个系统来完成这个任务,避免人的主观意识判断错误。在抢答中,只靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差甚小,也可分辨出哪组优先答题。此次设计使用AT89C51单片机为核心控制元件,设计一个简易的抢答器,与数码管、报警器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断电路等。设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,而复位电路,则使其能再开始新的一轮答题和比赛,与此同时还利用汇编语言编程,使其能够实现一些基本的功能。 关键词:AT89C51单片机; 抢答器; 数码管;报警器

I

目录

1 设计任务 .................................................................................................................................... 1 2 系统硬件设计........................................................................................................................... 1

2.1总体设计 ............................................................................................................................. 1 2.2多路抢答器电路 ................................................................................................................. 2

3 系统软件设计........................................................................................................................... 3

3.1 总体设计 ............................................................................................................................ 3 3.2 关键模块设计 .................................................................................................................... 3 3.3 功能实现 ............................................................................................................................ 6 3.4 程序说明 ............................................................................................................................ 6

4 仿真与性能分析 ...................................................................................................................... 7

4.1 仿真测试 ............................................................................................................................ 7 4.2 初始状态仿真 .................................................................................................................... 7 4.3 抢答开始仿真 .................................................................................................................... 8 4.4 抢答成功仿真 .................................................................................................................... 9 4.5 抢答违规仿真 .................................................................................................................... 9 4.6 抢答过时仿真 .................................................................................................................. 10 4.7 仿真结果分析 .................................................................................................................. 11

5 心得体会 .................................................................................................................................. 11 参考文献 ...................................................................................................................................... 12

II

1 设计任务

1.设计目的

在信息化高速发展的时代,各种娱乐丰富着人们的多姿生活。 智力竞赛是一种生动活泼的教学方式,而抢答就是智力竞赛中非常常见的一种答题方式。抢答能引起参赛者和观众的极大兴趣,并且能在极短的时间内,使人们迅速增加一些科学知识和生活常识。但是,在这类比赛中,对于谁先谁后抢答,在何时抢答,如何计算答题时间等等问题,若是仅凭主持人的主观判断,就很容易出现误判。所以,我们就需要一种具备自动锁存,置位,清零等功能智能抢答器来解决这些问题。本设计为八路抢答器,它能准确、公正、直观地判断出第1位抢答者。通过抢答器的指示灯显示、数码显示和警示蜂鸣等手段指示出第1位抢答者。其制作成本低,线路简单,选材及制作容易等特点,并且能够实现优先抢答,具有数字集成电路的锁存性。

2.设计要求

1.设计一款6路或以上的抢答器;

2.设计一个抢答控制开关(开始抢答后才允许答题者抢答),供主持人用; 3.设定抢答时间限制,超过时间后,该题作废; 4.*设定抢答时间;

5.*数字LED显示当前答题者号数;

6.#其他功能(创新部分)如:有犯规(未按开始键就抢答的)时显示其号码。

2 系统硬件设计

2.1总体设计

本设计是采用单片机设计的比赛用抢答器系统。它具有电路简单、功能齐全、制作成本低、性价比高等特点,是一种经济、实用的比赛用抢答器。硬件部分主要由单片机、CD4511 译码器、LED 显示器、发光二极管、声音报警器、主持人操作键盘和其它基本外围电子电路组成。采用Proteus模拟硬件电路、KEIL软件进行编程相结合以达到理论模拟的效果。根据课程设计项目要求该系统所需要的器件在Proteus中基本都可以找出来。KEIL编出的程序也能与Proteus结合。因此该系统可以实现。以AT89C51为核心,连接LED数码管,晶振电路,开关电路组成。其工作原理图如下所示:

1

抢答器 显示器 AT89C51 单片机 开关按钮 晶振和复位 报警器

图1 工作原理图

元件功能:RX8 驱动译码单片机,输入接单片机的P口,输出接数码管的七段;三极管驱动发光二极管和蜂鸣器。 2.2多路抢答器电路

图2 多路抢答器电路图

2

(1)本次设计为了方便论述选以8路抢答器来设计。分别用8个按钮 1~8表示; (2)给节目主持人设置一个控制开关,用来控制系统的清零和抢答的开始;

(3)抢答器具有优先抢答功能,先按按钮的选手编号能被锁存和显示,并有喇叭提示。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止;

(4)抢答器具有定时抢答的功能,且一次抢答的时间为n秒钟,从有人抢答开始,用数码管倒计时间n、n-1、n-2?1、0;倒计时到0的时候,喇叭发出声响。当节目主持人启动“开始”键后,要求定时器立即进行减计时,并用显示器进行显示,同时喇叭发出响声; (5)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间;

(6)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。

3 系统软件设计

3.1 总体设计

工作原理为:接通电源后,主持人将开关拨到\清除\状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布“开始”抢答,抢答器工作。定时器倒计时,扬声器给出声响提示,选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作\清除\和\开始\状态开关。

3.2 关键模块设计 原理图:

主持人按下按键 等待 定时器开始定时 有人按下键 无人按下键 外部中断并查询按钮

定时器到时 蜂鸣器响 3

显示发光 答题

图3

开始

初始化 是否有开始抢 N 答按钮按下 调用犯规程序

Y 外部中断服务程序

图4 主程序流程图

记录犯规抢答号并响声提示

在LED数码管上显示犯规抢答号

返回

图5 犯规抢答程序流程图

4

允许抢答并响声提示 初始化定时器 倒计时并显示 Y 是否有抢答 N 显示抢答者号和剩余时间 N 时间到 Y 停止抢答 图6 外部中断服务程序 定时器赋初值 中断允许

启动定时器

返回 图7 初始化定时器流程图 5

3.3 功能实现

整个原理图由最小系统,滤波电路,抢答电路,抢答显示电路,主持人控制电路,以及蜂鸣器控制电路。

下面主要介绍功能实现:

1. 主持人控制电路,当主持人按下“开始”按键时,通过软件启动定时器。 2. 抢答电路,“开始”后,选手可以答题,当有人按下抢答按键时,对应的 P 口将变为低电平,通过程序控制使得对应的发光二极管发光,并在数码管上显示对应的按键号码。 3. 如果单片机内部的定时器定时完毕无人抢答,则通过定时器中断来启动蜂鸣器响。 4. 抢答显示电路,单片机通过P口输出对应的低电平控制发光二极管发光,以及将按键号码输到RX8,通过RX8译码给数码管,显示按键号码。

3.4 程序说明

倒计时程序(抢答倒计时和回答倒计时都跳到改程序): 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 ; 取十位 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 MOV A,R6

JZ QUIT ; 计时完毕 MOV R0,#00H

DEC R6 ; 一秒标志减1 AJMP CHECK LARGER: MOV A,R0

CJNE A,#14H,CHECK ; 如果1s向下运行,否者跳到查\停/显示\

6

DEC R6 ; 计时一秒R6自动减1 MOV R0,#00H

CHECK: JNB P3.1,QUIT ; 如按下停止键退出 ACALL DISPLAY

JB OK,ACCOUT ; 如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数 (这里起到锁抢答作用) AJMP RECOUNT ACCOUT: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 RECOUNT TZ3: JMP TRUE7 TZ4: JMP TRUE8

QUIT: CLR OK ; 如果按下了\停止键\执行的程序 CLR RING AJMP START

4 仿真与性能分析

4.1 仿真测试

由keil软件编译生成hex文件,将此文件导入单片机中,进行硬件仿真。

4.2 初始状态仿真

主持人未按开始按钮且选手都处于准备状态时。仿真结果如图8。

7

图8初始状态仿真图 4.3 抢答开始仿真

主持人按下开始按钮后,选手们进入抢答30秒倒计时。仿真结果如图9。

图9 抢答开始仿真图

8

4.4 抢答成功仿真

主持人按下开始按钮后,30秒内抢答则为成功抢答。仿真图为6号选手成功抢答,抢答后进入60秒倒计时答题时间。仿真结果如图10。

图10 抢答成功仿真图

4.5 抢答违规仿真

若在主持人还未按下开始按钮时,选手就抢答则为抢答犯规。图为2号选手在主持人未宣布开始时就抢答,从而造成犯规。仿真结果如图11。

9

图11 抢答违规仿真图 4.6 抢答过时仿真

主持人按下开始按钮后,开始30秒抢答倒计时,如果在这30秒中无人抢答,此次抢答算作失败,系统又将恢复为初始状态。仿真结果如图12。

图12 抢答过时仿真图

10

4.7 仿真结果分析

通过对电路的仿真,可以看出基于AT89C51单片机控制的抢答器在PROTEUS软件上可以很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。

当仿真开始运行时,各个模块处于初始状态。此时显示器并无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下抢答键,则蜂鸣器会发出报警声,并且在数码管上显示犯规的选手的编号。主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示30秒倒计时,同时蜂鸣器发出声音提醒选手抢答开始了。选手抢答成功,同时也进入到倒计时60秒答题时间。从仿真的测试结果来看,此设计还是能比较好的实现预期的目标。

5 心得体会

通过本次课程设计使我对Proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。在最初编写过程中,我也曾经因为实践经验的缺乏失落过,也曾经因仿真成功而心情愉悦。特别是Proteus仿真软件的使用,一开始因为对软件不熟悉,要慢慢摸索,后来差不多会了以后,画仿真图又浪费了我大量的时间,最后在不断努力中终于把仿真图画出来了,最后要把写好的程序导入芯片。其实这也是一大难事,由于对于书本上的很多知识还不能灵活运用,尤其是对程序语言的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂。后来经过不懈努力,认真分析了原来已有的代码和应有的硬件后,经过多次调试和测试终于成功了。

虽说这次课程设计有点辛苦,但是苦中还是有乐的,而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。同时在查找资料的过程中我也学到了许多新的知识。这次课程设计的经历,让我学到了很多,也为以后进入社会奠定了一定基础。

11

参考文献

1. 潘新民 王燕芳 《微型计算机控制技术》(第2版) 电子工业出版社 2011

2. 赵全利 肖兴达 《单片机原理及应用教程》(第2版) 机械工业出版社 2007 3. 冯博琴 吴宁 《微机计算机原理与借口技术》(第2版)清华大学出版社 2007 4. 张海藩 《软件工程导论》(第5版) 清华大学出版社 2008 5.陈大钦 6.彭介华 高等教育出版社 2008

高等教育出版社 2008

12

《电子技术基础实验》《电子技术课程设计指导》

本文来源:https://www.bwwdw.com/article/jtrr.html

Top