单片机课程设计:八位竞赛抢答器演示教学

合集下载

单片机课程八路抢答器设计[1]

单片机课程八路抢答器设计[1]

单片机课程设计题目名称:八路抢答器指导老师:潘晓明组员名字:农明实韦宁辉黄兰班级:应用电子技术091班单片机八路抢答器设计摘要本设计是以八路抢答为基本理念。

考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间,用开关做键盘输出。

一、设计任务与要求(一)、任务:设计并制作一个抢答器电路。

其原理示意图如下:(二)、要求1、基本要求:制作一套八路抢答器,先抢答者有效。

当主持人按下“开始”按键后抢答有效,当有抢答人按下按键,抢答成功,只显示第一个抢答成功的抢答者。

抢答成功后,主持人按下“清除”按键后可清除上次显示的抢答者。

(1)具有8路抢答输入,输入方式可用开关或按键。

(2)具有清除功能,方式不限。

(3)能显示抢答成功者的状态。

2、发挥部分(1)只能使用按键作为抢答键。

(2)清除功能不得通过关闭电源方式实现。

(3)显示成功抢答者的序号。

二、方案设计与论证方案:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。

由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。

整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。

STC-51单片机特点如下:<1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。

<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。

<3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。

三、硬件电路设计1、抢答器的电路框图如图1所示为电路框图。

课程设计 八路抢答器的设计

课程设计 八路抢答器的设计

电子技术课程设计2007-2008-1系别班级姓名学号一、题目八路抢答器:设置8个抢答按钮,另设置1个主持人按钮来清零。

主持人清零后,首先抢答人的号码显示出来并保持,直到主持人再次清零,可设置定时抢答,超出规定时间为无效抢答,只要有人抢答,就发出声、光指示。

二、主要技术指标该抢答器具有倒计时、抢答、报警的功能。

三、方案论证及选择(一)、设计要求1、智力竞赛抢答器可同时功8名选手或8个代表队参加比赛他们的编号分别是0、1、2、3、4、5、6、7,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S0、S1、S2、S3、S4、S5、S6、S7;2、给节目支持人设置一个控制开关,用来控制系统的清零和抢答的开始;3、抢答器具有数据锁存和显示功能,抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时扬声器给出音响提示,此外,要锁存输入电路,禁止其他选手抢答,优先抢答的选手编号一直保持到主持人将系统清零为止;4、抢答器具有定时抢答的功能,且一次抢答的时间可由主持人设定,当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5s左右;5、参赛选手再设定的时间内抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零;6、如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时抢答,时间显示器上显示00。

(二)、电路设计根据设计要求,可以把电路分为三块:定时电路、抢答电路和报警电路。

1、设计要点定时抢答器的总体框图如图a所示,其工作过程是:接通电源时节目主持人将开关置于“清零”位置,抢答器处于静止工作状态,编号显示器灭灯,定时显示器显示设定的时间,当节目主持人宣布抢答题目后,说一声“抢答开始”,同时将控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,定时器倒计时。

电子技术课程设计8路抢答器设计

电子技术课程设计8路抢答器设计

电子技术课程设计8路抢答器一、设计任务与要求1. 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。

2. 设置一个系统清除和抢答控制开关S,该开关由主持人控制。

3. 抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,并在LED 数码管上显示,同时扬声器发出报警声响提示。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

二、总体框图如图1所示为总体方框图。

其工作原理为:接通电源后,主持人将开关拨到“清零”状态,抢答器处于禁止状态,编号显示器灭灯;主持人将开关置“开始”状态,宣布“开始”,抢答器工作,扬声器给出声响提示(或者提示灯给出显示)。

选手进行抢答时,抢答器将完成:优先判断、编号锁存、编号显示、扬声器(显示灯)提示等操作。

当一轮抢答之后,禁止二次抢答。

如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。

上面的总体框图是我认为的最佳方案。

具体的说明:抢答器按钮就是输入一些高低电平信号,此实验是低电平有效。

优先编码电路用来把输入的高低电平信号编码,74LS148优先编码器及8—3编码器,输出3位2进制数,以代表不同的低电平信号。

锁存器用D触发器,因为D触发器结构和功能都比较简单,方便使用。

D 触发器使用4个,第四个除用来输出2进制数的最高位外,还用于控制信号的锁定,即触发或锁定触发器的工作状态。

数码显示器用DCD—七段数码显示管,即有4个输入信号的管子,能表示0到9十个数,而且输入的二进制数正好和十进制数一一对应。

主持人控制开关就是一个开关,用来清零和开始工作。

控制电路比较复杂,除了第四个触发器和主持人的开关外,还需要8个抢答器按钮组成的8输入与非门和第四个触发器用一个与门共同组成一个控制电路来控制信号的传输和锁定。

报警显示电路,由于没有报警器,所以选择一个LED灯来表示信号的锁定。

为了使更明显一些,给LED灯加了个连续脉冲信号,以使灯能够按我们需要的频率一闪一闪。

8位竞赛抢答器课程设计

8位竞赛抢答器课程设计

目录1. 原理分析(by 张潇) (2)1.1 设计任务 (2)1.2 性能指标 (2)1.3 工作原理 (2)2. 方案选择(by 张潇) (3)2.1 方案设定 (3)2.2 方案比较 (3)2.3 方案选择 (3)3. 电路原理图绘制及仿真(by 王倩) (3)3.1 所需元器件型号及数量 (3)3.2 电路原理图 (4)3.3 电路仿真结果 (5)4. Pcb图绘制(by 朱文广) (5)4.1 pcb绘制步骤 (5)4.2 pcb绘制原则 (5)4.3 8路抢答器pcb图 (7)5. 综合调试(by 朱文广) (7)5.1 软件调试 (7)5.2 硬件调试 (9)6. 总结(by 王倩) (10)附录1:电路仿真图 (11)附录2: 8路抢答器完整程序 (12)1.1 设计任务以单片机为核心,设计一个8位竞赛抢答器,同时供8名选手或8个代表队比赛。

设置一个系统清除和抢答控制开关S,开关由主持人控制。

抢答器具有锁存与显示功能。

即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。

抢答器具有定时抢答功能,且一次抢答的时间可由主持人设定。

参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

1.2 性能指标电源电压:直流5V±10%选手组数:2-8组初始抢答倒计时:20s初始回答倒计时:30s倒计时范围:1-99s可设倒计时提示时间:最后5s1.3 工作原理八路数字抢答器原理框图如图1所示,其工作原理为:接通电源后,主持人未按下开始抢答,抢答器处于禁止状态,数码管显示“----”;主持人宣布“开始”同时按下开始抢答按键,抢答倒计时开始计时,扬声器给出声响提示。

选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。

八路抢答器介绍课件

八路抢答器介绍课件

3
抢答器的工作原理是检测参与 者按下抢答按钮的时间,并根
据预设规则判断抢答结果。
4
八路抢答器通常具有倒计时、抢 答锁定、抢答违规提示等功能, 以提高比赛的公平性和趣味性。
八路抢答器的工作原理
八路抢答器由八个抢 答按钮和一个控制电 路组成。
01
当抢答者按下按钮时, 控制电路会记录抢答者 的身份,并停止其他抢 答者的按钮功能。
家庭娱乐: 增加家庭 聚会的趣 味性和互 动性
2
八路抢答器 的设计
硬件设计
微控制器:作为系统的 核心,负责控制整个抢
答器的工作
蜂鸣器:用于在抢答开 始时发出声音提示
按键:用于选手抢答, 通常为八个按键
显示器:用于显示抢答 结果和倒计时等信息
电源:为整个系统提供 稳定的电源供应
电路设计:包括硬件电路 的设计和布局,以及元器
谢谢
号:检查抢答信号接收
器是否正常,如有问题
及时修复或更换。
4
八路抢答器 的拓展
抢答器的升级与改进
增加抢答倒计 时功能,提高 比赛的紧张感 和公平性
增加抢答结 果统计功能, 方便统计比 赛结果
增加抢答设备 联网功能,实 现远程控制和 实时数据同步
01
03
05
02
04
06
增加抢答违规 提示功能,避 免抢答过程中 的违规行为
度、稳定性等
软件调试:检查程 序逻辑,确保无误
兼容性测试:测试抢 答器在不同设备上的 兼容性,如不同操作 系统、不同浏览器等
功能测试:测试抢答 器的基本功能,如抢
答、计分等
用户体验测试:邀请 用户进行实际使用, 收集反馈意见,优化
设计
3

八位抢答器课程设计

八位抢答器课程设计

八位抢答器课程设计一、课程目标知识目标:1. 学生理解抢答器的基本工作原理,掌握其电路组成及功能。

2. 学生了解数字电路基础知识,并能运用到抢答器的设计中。

3. 学生掌握抢答器程序设计的基本方法,能运用所学知识分析并解决实际问题。

技能目标:1. 学生能独立完成抢答器的电路搭建,提高动手实践能力。

2. 学生能通过编程实现抢答器的功能,培养编程思维和解决问题的能力。

3. 学生具备团队协作能力,能在小组合作中发挥个人优势,共同完成抢答器的设计与制作。

情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发创新意识。

2. 学生在学习过程中,养成积极思考、勇于探索的良好习惯。

3. 学生通过小组合作,培养沟通协调能力和团队精神,树立集体荣誉感。

课程性质:本课程为信息技术与电子技术的结合课程,注重实践操作和团队合作。

学生特点:八年级学生对电子技术有一定的基础,好奇心强,具备一定的动手能力和合作意识。

教学要求:结合学生特点,以实践为主,引导学生主动探究,注重培养学生的创新精神和实践能力。

将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 数字电路基础知识:介绍抢答器中涉及的逻辑门电路、触发器等基本元件,对应教材第3章相关内容。

- 逻辑门电路原理与功能- 触发器种类及其应用2. 抢答器电路设计与搭建:讲解抢答器电路原理,引导学生进行电路搭建,对应教材第4章相关内容。

- 抢答器工作原理- 电路元件选择与连接- 抢答器电路搭建与调试3. 抢答器程序设计:教授编程基础知识,指导学生进行抢答器程序设计,对应教材第5章相关内容。

- 编程语言基础- 程序流程图设计- 抢答器程序编写与调试4. 抢答器功能实现与优化:培养学生解决问题和团队协作能力,对应教材第6章相关内容。

- 抢答器功能测试与优化- 团队合作与分工- 项目总结与展示教学大纲安排:第一周:数字电路基础知识学习,了解逻辑门电路和触发器原理。

第二周:抢答器电路设计与搭建,动手实践电路连接与调试。

单片机八路抢答器课程设计

单片机八路抢答器课程设计

单片机八路抢答器课程设计一、引言随着科技的发展和应用越来越广泛,单片机在各个领域的应用日益普遍。

其中,抢答器是一种常见且有趣的单片机应用。

本课程设计将介绍如何使用单片机设计一个八路抢答器,帮助学生更好地理解和掌握单片机的原理和应用。

二、系统框图八路抢答器系统主要由以下几个部分组成: 1. 单片机主控模块:负责系统的整体控制和数据处理。

2. 八个抢答器按键模块:提供用户按键输入功能。

3. 抢答器显示模块:展示抢答器的按键状态和抢答结果。

4. 蜂鸣器模块:用于发出抢答成功或失败的音频提示。

三、系统功能设计八路抢答器的主要功能如下: 1. 抢答器按键功能:每个抢答器都具有独立的按键,当按下按键时,抢答器将发送信号给主控模块。

2. 抢答器显示功能:通过显示模块,实时显示每个抢答器的抢答状态,如按下、未按下等。

3. 抢答器抢答功能:在系统开始抢答后,只有首先按下按键的抢答器才能获得抢答资格。

4. 抢答结果显示功能:在抢答结束后,显示抢答结果,并通过蜂鸣器模块发出音频提示。

四、硬件设计4.1 单片机主控模块主控模块是整个系统的核心,它接收抢答器按键模块发送的信号,并对抢答结果进行处理。

可以选择常用的单片机,如STC89C51等。

### 4.2 抢答器按键模块抢答器按键模块包括八个独立的按键,用于用户进行抢答操作。

按下按键时,将通过IO口发送信号给主控模块。

### 4.3 抢答器显示模块抢答器显示模块采用LED或LCD等显示器件,用于显示八个抢答器的状态,如按下、未按下等。

### 4.4蜂鸣器模块蜂鸣器模块用于发出抢答成功或失败的音频提示。

可以选择适合的蜂鸣器模块并通过IO口控制。

五、软件设计5.1 系统初始化在系统初始化过程中,需要对硬件进行初始化,包括IO口设置、定时器设置等。

### 5.2 抢答逻辑处理通过编程实现抢答逻辑处理,包括按键检测、抢答结果判断等。

当检测到抢答按键按下时,判断该抢答器是否首次按下,并显示相应的抢答结果。

8路抢答器设计(含完整图)

8路抢答器设计(含完整图)

数字电路课程设计报告8路数字抢答器1.概述抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。

另外设置系统清除开关一个,该开关由主持人控制。

抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在七段数码管上显示选手号码。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清零为止。

当主持人按下清除键后,参赛选手可以进行抢答,同时倒计时电路开始倒计时,抢答有效时,红灯亮,倒计时停止,显示器上显示选手的编号,并保持到主持人将系统清零为止。

2、8路数字抢答器各主要芯片介绍2.1、74LS14874LS148是一个8线—3线优先编码器。

74LS148外部管脚图、真值表如图所示:图一 74ls148 真值表由表不难看出,在0=S 电路正常工作状态下,允许70~I I 当中同时有几个输入端同时为低电平,即有编码输入信号。

7I 的优先权最高,0I 的优先权最低。

当07=I 时,无论其它输入端有无输入信号(表中以x 表示),输出端只给出7I 的编码,即000012=Y Y Y ,当74LS148的功能表输 入输 出S0I 1I 2I 3I 4I 5I 6I 7I2Y 1Y 0Y S Y EX Y1 0 0 0 0 0 0 0 0 0 x x x x x x x x 1 1 1 1 1 1 1 1 x x x x x x x 0 x x x x x x 0 1 x x x x x 0 1 1 x x x x 0 1 1 1 x x x 0 1 1 1 1 x x 0 1 1 1 1 1 x 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0U CC Y EX Y S I 3 I 2 I 1 I 0 Y 0I 4I 5I 6I7S Y 2Y 1GND 图2 74LS148管脚图16 9 74LS148 1 80167==I I 、时,无论其它输入端有无输入信号,只对6I 编码,即输出为001012=Y Y Y 。

单片机课程设计《八路抢答器》

单片机课程设计《八路抢答器》

1 任务要求(1)实现多路抢答器功能。

(2)用LED 显示屏显示抢答提示、哪组抢答、哪组犯规、加减分情况以及每组的得分。

(3)数码显示抢答和答题时间,时间到调用LED 模块显示“时间到!”。

(4)主持人通过按钮控制抢答功能:抢答、复位、加分和减分。

2硬件设计2.1硬件分析(1)LED 显示屏模块设计LED 显示屏是用了16块8×8点阵模块,把每一行的行线连起来,每一列的列线连起来级联成64×16点阵显示屏。

通过8个74HC273锁存器把每一行的64列数据锁存起来,通过4线-16线译码器74159控制每一行打开。

4块8×8点阵模块级联成16×16点阵模块示意图如图3.1所示:图3.1 4块8×8点阵级联示意图64×16点阵模块由16块8×8点阵模块以及8块74HC273锁存器组成,锁存器负责把每一行的数据锁存起来,电路图如图3.2所示:8条行线连在一起组成16行8条列线连在一起组成16列图3.2 64×16点阵电路图(2)按键模块设计八路抢答器顾名思义有8个抢答按钮,故八路抢答器应由8个抢答键及4个功能键组成。

每一组的按键判断有相应的LED指示灯,用来指示抢答与犯规操作。

按键模块电路如图3.3及图3.4所示:图3.3 抢答按钮图3.4 主持人控制按钮(3)数码显示模块设计数码显示模块由两位数码管组成,可以显示00~99,通过位扫描显示两位数字。

数码管用来显示抢答时间以及答题时间。

数码显示模块电路如图3.5所示:图3.5 数码显示模块2.2硬件电路原理图八路抢答器由LED显示模块、数码显示模块、按键模块以及译码电路,锁存电路组成。

电路原理图如图3.6所示:图3.6 硬件电路原理图3 软件设计3.1主要模块流程图(1)开始程序流程图如图4.1所示图4.1 开始程序流程图(2)开始抢答程序流程图如图4.2所示图4.2 开始抢答程序流程图(3)判断犯规程序流程图如图4.3所示图4.3 判断犯规程序流程图(4)答题程序流程图如图4.4所示图4.4 答题程序流程图(5)加减分流程图如图4.5所示图4.5 加减分流程图3.2主要模块的程序分析本程序主要分为四部分:(1)主程序模块、(2)显示模块、(3)计时模块、(4)按键中断模块。

单片机课程设计 八路抢答器(C语言)

单片机课程设计 八路抢答器(C语言)

单片机课程设计8路抢答器指导老师:宋*******学号:************ 班级:12电子卓越班目录一绪论 (3)二基本设计方案 (4)三具体设计 (5)四电路板的制作 (7)五电路功能测试与调试 (7)六心得体会 (8)附录 (9)一绪论1.1单片机抢答器的背景二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。

究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。

若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。

利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。

本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。

1.2设计要求:一、基本功能:1、六路抢答,抢答有效时相应的灯亮,并有音乐提示;2、每轮抢答需主持人按“开始”后,抢答才有效;3、抢答无效时,有相应的灯及音乐提示;二、扩展功能:1、扩展到8路或以上;2、抢答倒计时提示;3、各路的参赛者有得分显示;4、其他自行增加的功能;二基本设计方案2.1 单片机的选择我选择STC89C52单片机芯片的理由如下:1、在设计过程中可能会出现很多问题,89C52可重复烧程序;2、是80C51的增强型,功能与我们所学的51单片机基本相同;3、学校配套发的单片机开发板用的就是89C52,有很多相关教程,程序的测试与烧写都十分方便;4、器材室很方便就能领到。

《单片机应用技术(C语言)》实训课件—4.1 8路抢答器设计

《单片机应用技术(C语言)》实训课件—4.1 8路抢答器设计
否则显示“E”约3 s,继续保持锁定状态。
硬件电路
51单片机
4个按键由P0.0~P0.3控制; 共阳数码管由P1口静态控制; 由P3.0引脚控制的发光二极管 的亮灭模拟开锁电路的打开和 锁定。
程序设计思路
密码设定为“2”
if……else if …… else switch语句
#include <reg51.h> 器
P0=0xff;
//读引脚状态,需先置1
P1=disp[8];
//显示“”
while(1)
{
button=P0;
//第一次读按键状态
delay(1200);
//延时消抖
button=P0;
//第二次读按键状态
switch(button) //根据按键的值进行多分支跳转
{
case 0xfe: P1=disp[0];delay(10000);while(1);break; //0按下,显示0,待机
9 1 0 0 1 0 0 0 0 0x90 0 1 1 0 1 1 1 1 0x6F
三、程序设计
软件设计思路
使用数组存储显示数据
//定义数组led,依次存储包括0~7和“”的共阳极数码管显示码表 unsigned char code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xbf};
//从数组中取出数码管的显示字符“” P1=disp[8];
数组定义语句中,关键字“code”是为了把disp[] 数组存储在片内程序存储器ROM中。
程序设计:
系统上电时,数码管显示“”,表示开始抢答, 当记录到最先按下的按键序号后,数码管将显示该参赛 者的序号,同时无法再接受其它按键的输入;当系统按 下复位按钮S时,系统显示“”,表示可以接受新一轮 的抢答。

8路抢答器设计八路智力竞赛抢答器

8路抢答器设计八路智力竞赛抢答器

1 前言1.1主要功能介绍(1)抢答器最多可供8名选手参赛,编号为1~8号,各队分别用一个按钮(分别为S1~S8)控制,并设置一个系统清零和抢答控制开关S,该开关由主持人控制。

(2)抢答器具有数据锁存功能,并将锁存数据用LED数码管显示出来,同时蜂鸣器发出间歇式声响(持续时间为0.5秒),主持人清零后,声音提示停止。

(3)开关S作为清零及抢答控制开关(由主持人控制),当开关S被按下时抢答电路清零,松开后则允许抢答。

输入抢答信号由抢答按钮开关S1~S8实现。

(4)有抢答信号输入(开关S1~S8中的任意一个开关被按下)时,并显示出相对应的组别号码。

此时再按其他任何一个抢答器开关均无效,指示灯依旧“保持” 第一个开关按下时所对应的状态不变。

1.2扩展功能介绍(1)抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。

当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。

(2)参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。

(3)如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。

(4)当选手抢答完后,主持人可根据相关题的加减分对选手进行加分或减分。

2总体方案设计此次课程设计我们有两套方案一是硬件部分主要由单片机、74LS373锁存器、LED显示器、声音报警器和其它基本外围电子电路组成软件部分则采用51系列单片机通用C语言精心设计编写。

它所具有的功能包括:抢答器同时供8名选手或8个代表队比赛,当开关S按下,抢答器发出0.5秒的报警声系统开始进行计时,选手可进行抢答,当计时30秒之后若没人抢答,则系统发出警报并禁止抢答,定时显示数码管上显示00字样,之后等待开关S按下,系统复位;若在30秒内有选手进行抢答,此时扬声器会发出3秒时间的警报,同时在定时显示数码管上显示选手抢答时间(以秒为最小单位),编号显示数码管上显示抢答选手编号,显示器上的状态直到开关S按下将系统复位为止;系统复位时所有的数码管不显示任何的数据。

单片机课程设计:八路抢答器设计 精品

单片机课程设计:八路抢答器设计 精品

摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。

作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。

本设计是以八路抢答为基本理念。

考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

用开关做键盘输出,扬声器发生提示。

同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

关键词:AT89C51 LED数码管抢答器计时目录1绪论 (1)1.1课题研究的相关背景 (1)1.2国内外研究现状 (1)1.3抢答器目前存在的主要问题 (1)2抢答器的系统概述 (3)2.1系统的主要功能 (3)2.2系统需求分析 (4)2.3抢答器的工作流程 (4)2.4抢答器的工作过程 (5)2.5AT89C51特殊功能寄存器 (6)2.6AT89C51的功能及简介 (7)2.7抢答器的优点及组成 (8)3系统总体方案的设计 (10)3.1硬件电路的设计 (10)3.2总体原理图 (11)3.3时钟频率电路的设计 (13)3.4复位电路的设计 (14)3.5显示电路的设计 (14)3.6键盘扫描电路的设计 (16)3.7发声电路 (18)3.8系统复位 (19)4软件设计 (21)4.1软件任务分析 (21)4.2程序流程图 (22)4.3主程序系统结构图 (23)5 总结 (24)附录A: 器件选型方案及详细清单 (25)附录B: 主要程序分析 (25)附录C: 实物图 (37)参考文献 (39)1绪论1.1 课题研究的相关背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。

8位竞赛抢答器程序与仿真图

8位竞赛抢答器程序与仿真图

8位竞赛抢答器程序与仿真图设计要求以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。

设置一个系统清除和抢答控制开关S,开关由主持人控制。

抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。

当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5左右。

如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

程序:ORG0000HLJMPMAINORG0003HLJMPSHESHORG000BHLJMPIT0PORG0100HMAIN:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0跳沿触发。

SETBE某0SETBIT0MOVR4,#30MOVR3,#0AH//定时器T0工作于方式1//1秒的初值//开总中断,T0中断,外部中断0开启,外部中断//R4存放30,用于存放倒计时初值//=========复位部分程序======FW:JNBP3.1,FW1JMPFWFW1:LCALLDELAYJNBP3.1,FW2JMPFWFW2:MOVR3,#0BH的代码MOVA,R4MOVR0,ALCALL某IANSH1//=========开始部分程序======SAM:JNBP3.0,PKJMPSAMPK:JNBP3.0,PK1JMPSAMPK1:MOVR3,#0BHSETB TR0MOVR2,#0AHHERE:CJNER1,#01H,YY入STARJMPSTARYY:JMPHERE//=======中断程序=======IT0P:CLRTR0DECR2CJNER2,#05H,J某0clrP3.6 J某0:CJNER2,#00H,J某1etbP3.6DECR0LCALL某IANSH1MOVR2,#0AHJ 某1:LCALLSAMOJNBP3.1,QFWJMPCZQFW:MOVR1,#01HJMPRETURN//按下则返回CZ:CJNER0,#00H,CZ1//倒计时是否计时完毕clrP3.6//及时完毕无人抢答则扬声器开启LCALLDELAY5MOVR1,#01HJMPRETURNCZ1:MOVTH0,#3CHMOVTL0,#0B0HSETBTR0 RETURN:RETI//========选手键盘扫描程序========SAMO:JNBP1.0,某S1JNBP1.1,某S2JNBP1.2,某S3JNBP1.3,某S4JNBP1.4,某S5JNBP1.5,某S6JNBP1.6,某S7JNBP1.7,某S80RETURN2:RET某S80:LJMP某S8某S1:LCALLDELAYJNBP1.0,某S11JMPRETURN2某S11:MOVR1,#01HetbP3.6MOVR3,#01HLCALL某IANSH1JMPRETURN2某S2:LCALLDELAYJNBP1.1,某S22JMPRETURN2某S22:MOVR1,#01HetbP3.6MOVR3,#02HLCALL某IANSH1JMPRETURN2某S3:LCALLDELAYJNBP1.2,某S33JMPRETURN2某S33:MOVR1,#01HetbP3.6MOVR3,#03HLCALL某IANSH1JMPRETURN2某S4:LCALLDELAY//延时1秒//R1设1//中断返回//计时器初值重装//预扫描选手按键是否按下//未按下则返回//去抖动再判是否按下//按下则显示1号扬声器关闭//按下则显示2号扬声器关闭//按下则显示3号扬声器关闭JNBP1.3,某S44JMPRETURN2某S44:MOVR1,#01HetbP3.6MOVR3,#04HLCALL某IANSH1JMPRETURN2某S5:LCALLDELAYJNBP1.4,某S55JMPRETURN2某S55:MOVR1,#01HetbP3.6MOVR3,#05HLCALL某IANSH1JMPRETURN2某S6:LCALLDELAYJNBP1.5,某S66JMPRETURN2某S66:MOVR1,#01HetbP3.6MOVR3,#06HLCALL某IANSH1JMPRETURN2某S7:LCALLDELAYJNBP1.6,某S77JMPRETURN2某S77:MOVR1,#01HetbP3.6MOVR3,#07HLCALL某IANSH1JMPRETURN2某S8:LCALLDELAYJNBP1.7,某S88JMPRETURN2某S88:MOVR1,#01HetbP3.6MOVR3,#08HLCALL某IANSH1JMPRETURN2//=========显示程序======某IANSH1:MOVA,R0MOVB,#0AH位DIVABMOVR7,AMOVR6,B某IANSH2:SETBP0.4CLRP0.5CLRP0.6//按下则显示4号扬声器关闭//按下则显示5号扬声器关闭//按下则显示6号扬声器关闭//按下则显示7号扬声器关闭//按下则显示8号扬声器关闭//R0中存放的倒计时显示值除10分出十位和个//十位存入R7中//个位存入R6中//=======抢答时间设置程序======SHESH:INCR0//倒计时初值加1CJNER0,#31,BQL//倒计时初值设置超过30自动清零MOVR0,#00HBQL:MOVR3,#0BHMOVA,R0//倒计时初值存入其专用寄存器R4中,这样可以全局不变,R0会倒计时中递减而改变MOVR4,ALCALL某IANSH1RETI//====10m延时程序(去抖动)====DELAY:MOVR7,#20D1:MOVR6,#248D2:DJNZR6,D2DJNZR7,D1RET //1延时程序(无人抢答报警)====DELAY5:MOVR7,#40DL1:MOVR6,#50DL2:MOVR5,#248DL3:DJNZR5,DL3DJN ZR6,DL2DJNZR7,DL1RET//======数码管显示调用代码======SEGTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0F FH//0,1,2,3,4,5,6,7,8,9,F,灭END说明:仿真开始显示FFF;按下复位键显示倒计时初值,起初设的是30秒;再按下设时键,按一下计数初值加1,到30自动清零;按下开始键开始倒计时,每减一,有0.5秒的声响;说明:仿真开始显示FFF;按下复位键显示倒计时初值,起初设的是30秒;再按下设时键,按一下计数初值加1,到30自动清零;按下开始键开始倒计时,每减一,有0.5秒的声响;。

单片机课程设计 八位竞赛抢答器的设计

单片机课程设计 八位竞赛抢答器的设计

《单片机》课程设计报告题目:八位竞赛抢答器的设计目录第1章目的 (3)1.1八位竞赛抢答器的概述 (3)1.2系统主要功能 (3)第2章系统硬件设计 (3)2.1芯片的选择及工作原理 (3)2.3系统的硬件构成及功能 (4)2.3.1 抢答器的电路框图 (4)2.3.2 抢答器的电路图 (5)2.3.3 总体流程图 (6)第3章系统软件设计 (6)3.1系统主程序设计 (6)3.2抢答器的源程序 (7)第4章调式 (7)4.1主要技术参数 (7)4.2抢答器使用说明 (7)4.3常见故障 (8)附件: (8)小结 ............................................................................................................ 错误!未定义书签。

参考文献. (18)第1章目的1.1八位竞赛抢答器的概述本试验涉及的是八路数显抢答器,它具有电路简单、成本较低、操作方便、灵敏可靠等优点。

该电路由直流稳压电源、抢答器、超时报警与电子计分四部分组成。

抢答器由8个发射器和1个接收器组成,可用于8组或8组以下的竞赛中:将参赛组按顺序排号1~8,每组发给对应的一个发射器。

将接收器放于各组中央或前方。

当启动键按下后,抢答开始。

当其中一个发射器被按下后,接收器就立即显示该组的组号锁定。

之后按下任何一路抢答键均不起反映。

当再次按动启动键后,进行下一轮抢答。

1.2系统主要功能抢答器具有第一个抢答信号的鉴别和数据锁存、显示的功能。

每名选手有一个抢答按钮,按钮的编号与选手的编号相对应,抢答开始后,某抢答按钮被按下,电路具备自锁功能将信号锁定,禁止其他选手再抢答,优先抢答选手信息一直保持到启动键再次被按下,将系统清0 为止。

同时,对应该选手的指示灯亮,并在数码管上显示该选手编号,且扬声器发出音响提示。

第2章系统硬件设计2.1芯片的选择及工作原理本设计使用到的元器件包括:8051芯片(功能强大,操作简单,所用到的外围器件较少)、数码LED显示器、七段LED数码管的译码。

八路抢答器课程设计

八路抢答器课程设计

八路抢答器课程设计一、背景在当今时代,信息技术的发展及应用越来越深入人们的生活,在教育领域也有着广泛应用。

在教育课程设计中,教师用八路抢答器来进行互动式教学,为学生学习增添了不少乐趣,同时,学生也学会了如何协作解决问题,增强思维能力。

二、任务以PIC18F4520的抢答器程序设计为基础,完成一套八路抢答器课程设计,包括程序设计、实物结构设计及相应的教学实施方案。

三、程序设计(1)课程开发环境该课程使用MPLAB X IDE(v3.35)软件进行开发,为C语言编程,主控微处理器为PIC18F4520,用到的硬件元件有蜂鸣器、按钮和数码管等。

本课程基于MCHP(Microchip)官方库(XC8),采用C 语言编程,并参考Microchip开发的示例程序(Clicker)。

(2)程序设计(1)系统结构框架系统架构分为按钮控制模块、数字管显示模块和延时控制模块。

(2)按钮控制模块按钮控制模块的功能是接收按钮按下信号,根据信号的变化来控制系统的运行状态,共包括节拍按钮、开始按钮和结束按钮三个部分。

(3)数字管显示模块数字管显示模块的功能是显示抢答者应答的结果,具体包括:显示延时计时器的值,显示抢答者得分情况,显示获胜者的序号。

(4)延时控制模块延时控制模块的功能是计算延时时间,系统会根据节拍按钮的按动情况计算抢答者的延时时间,最后根据延时时间最短的判断获胜者。

四、实物结构设计(1)实物结构根据程序设计,系统的结构主要包括PIC18F4520微处理器,按钮,蜂鸣器,数码管,LED指示灯,电源等元件组成。

(2)硬件连接PIC18F4520与蜂鸣器连接在RA0上,按钮和LED灯连接在RA3、RA4和RA5上,数码管连接在RA1和RA2上,电源接口和其他元件连接如下图所示。

五、教学实施(1)课程分析本课程是基于PIC18F4520的抢答器程序设计,主要涉及编程、硬件连接和系统运行实施三个内容,重点讲解如何通过编程实现系统的运行。

最新八路智力竞赛抢答器的分析与制作主题讲座课件

最新八路智力竞赛抢答器的分析与制作主题讲座课件
(2)分组,分工,获取相关知识。 6
八路智力竞赛抢答器--原理框图
抢答编码电路
译码,驱动电路
数显电路
门控电路
优先锁存电路
报警电路
4
相关知识
6 组合逻辑电路的基础知识 4 7 逻辑门电路的综合应用 8 编码器与译码器 9 555定时器的原理与应用
VCC 5V J1 Key = A
D1 1N4148
4511BP_5V
8
U1
VCC
4 RST
OUT 3
7 DIS
6 THR
2 TRI
5 CON
C3 100µF
GND
C2 1 100nF
LM555CM
U4
BUZZER 100 Hz
R9 300Ω R10 300Ω R11 300Ω R12 300Ω R13 300Ω R14 300Ω
CK
U3
AB CDEFG
D15
D16
D17
D18
R16
1N4148 1N4148 1N4148 1N4148 10kΩ
R17 68kΩ
R1 10Rk2Ω 10kΩ
R3 10kΩ
C4 47µF
C1 10nF
R4 10kΩ
U2
7 DA 1 DB 2 DC 6 DD 5 ~EL 4 ~BI 3 ~LT
OA 13 OB 12 OC 11 OD 10 OE 9 OF 15 OG 14
C
1
5
0 .0 1μ F C1
1.1RC
vI
O
vC
2 3
V
C
C
O
vO
t VC C
t
tW
O

单片机实验8路抢答器C语言版

单片机实验8路抢答器C语言版

单片机综合实验报告题目: 8路抢答器实验班级:姓名:学号:指导老师:时间:一、实验内容:以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。

本实验有Protues软件仿真。

分别设置一个抢答控制开关S1和复位开关S2,由主持人控制。

抢答器具有锁存与显示功能。

即选手按按钮抢答时,锁存相应的编号,并且优先抢答选手的编号一直保持显示在显示器上,直到主持人将系统复位为止。

抢答器具有定时抢答功能,且一次抢答的时间由主持人设定为30秒。

当主持人启动“开始”键后,定时器进行减计时,同时绿色LED灯亮。

二、实验电路及功能说明分别设置一个抢答控制开关S1和复位开关S2,由主持人控制。

抢答器具有锁存与显示功能。

即选手按按钮抢答时,锁存相应的编号,并且优先抢答选手的编号一直保持显示在显示器上,直到主持人将系统复位为止。

参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统复位为止。

复位后参赛队员可继续抢答。

如果定时时间已到,无人抢答,本次抢答无效,系统报警红色LED灯亮,并禁止抢答,定时显示器上显示00。

三、实验程序流程图:主程序;非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。

主流程图如下图所示子程序.四、实验结果分析五、心得体会.六、程序清单#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit wela_a=P3^0;sbit wela1=P3^1;sbit wela2=P3^7;sbit rest=P3^5;sbit host=P3^6;sbit led1=P3^4;//绿灯sbit led2=P3^3;//红灯sbit led3=P3^2;//黄灯sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;sbit key5=P1^4;sbit key6=P1^5;sbit key7=P1^6;sbit key8=P1^7;uchar x,q,d,s,ge,t0,t1,start,flag; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void init();/*初始函数申明*/void display(uchar s,uchar ge,uchar a); void delay(uint z);void keyscan();void main(){init();display(s,ge,a);while(1){if(host==0) //主持人控制开关{delay(5);if(host==0){flag=1;start=1;delay(5); 延时while(!host); 检测开关}}if(rest==0) //复位{delay(5);if(rest==0){q=30;led2=1;led3=1;x=0;delay(5);.start=1;delay(5);while(!rest);}}if(flag==1){if(start==0)//选手按下,倒计10秒开始{led3=0;wela1=0;wela2=0;delay(1);TR0=0;TR1=1;display(s,ge,a);delay(1);}if(start==1)//主持人按下,倒计时30秒{led1=0;wela1=0;wela2=0;delay(1);TR0=1;TR1=0;display(s,ge,a);delay(1);keyscan();}}}}void init()/*初始化*/{t0=0;t1=0;flag=0;q=30;d=10;wela_a=0;a=0;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=0;TR1=0;}void display(uchar s,uchar ge,uchar a)/*数码管动态扫描*/{wela1=1;P0=table[ge];.delay(5);wela2=1;P0=table[s];delay(5);wela_a=0;P2=table[a];delay(5);}void keyscan()/*按键扫描函数*/ {if(key1==0){delay(5);if(key1==0){a=1;P2=table[a];start=0;TR1=1;TR0=0;delay(5);while(!key1);}}if(key2==0){delay(5);if(key2==0){a=2;P2=table[a];start=0;delay(5);while(!key2);}}if(key3==0){delay(5);if(key3==0){a=3;P2=table[a];start=0;delay(5);while(!key3);}}if(key4==0){delay(5);if(key4==0){a=4;P2=table[a];start=0;delay(5);while(!key4);.}}if(key5==0){delay(5);if(key5==0){a=5;P2=table[a];start=0;delay(5);while(!key5);}}if(key6==0){delay(5);if(key6==0){a=6;P2=table[a];start=0;delay(5);while(!key6);}}if(key7==0){delay(5);if(key7==0){a=7;P2=table[a];start=0;delay(5);while(!key7);}}if(key8==0){delay(5);if(key8==0){a=8;P2=table[a];start=0;delay(5);while(!key8);}}}void delay(uint z)/*延时函数*/{uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void time0() interrupt 1/*定时器0*/.{TH0=(65536-50000)/256;TL0=(65536-50000)%256;s=q/10;ge=q%10;t0++;if(t0==20){t0=0;q--;s=q/10;ge=q%10;if(q==0){while(1){q=0;a=0;led1=1;led2=0;wela1=0;wela2=0;delay(1);display(s,ge,a);}}}}void time1() interrupt 3/*定时器1*/{TH1=(65536-50000)/256;TL1=(65536-50000)%256;s=d/10;ge=d%10;t1++;if(t1==20){t1=0;d--;s=d/10;ge=d%10;if(d==0){while(1){d=0;a=0;led1=1;led3=1;led2=0;wela1=0;wela2=0;delay(1);display(s,ge,a);}}}}.//最后,给朋友们一点点提示,本程序有一点点小问题,有个中断没关,当主持人复位之后,后面的选手回答问题的时间就没有10秒了(可怜啊)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计:八位竞赛抢答器学号: 2013 - 2014学年第2学期《单片机应用技术》课程设计报告题目:八位竞赛抢答器专业:班级:姓名:指导教师:成绩:电气工程学院2014年月日课程设计任务书学生班级:学生姓名:学号:设计名称:八位竞赛抢答器起止日期:指导教师:八位竞赛抢答器摘要本设计是以八路抢答为基本理念。

考虑到需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

用开关做键盘输出,扬声器发生提示。

先进行系统硬件设计,该电路由显示电路,抢答电路,晶振电路等部分组成,然后进行系统软件设计,进行软件的仿真,这次课程设计不仅能锻炼我们的动手能力,而且能够培养我们对问题的思考能力以及对知识的进一步了解。

关键词:AT89C51;抢答器;计时;报警目录八位竞赛抢答器 (3)摘要 (4)目录 (4)第1章系统总体设计 (7)第2章系统硬件设计 (8)第3章系统软件设计 (11)第4章系统软件仿真 (15)参考文献 (18)附录 (19)(1)总电路图 (19)20图10 总电路图 (20)(2)程序代码 (21)第1章系统总体设计1.1八位竞赛抢答器的工作原理抢答器的工作原理是采用单片机最小系统,用程序查询方式使动态显示倒计时时间并且同时使LED灯亮。

主持人按下开始抢答键才可以抢答。

主持人没有按下开始抢答按(P3.0),有人抢答则抢答违规,报警并该组LED灯亮,主持人按下开始抢答开关重新抢答。

主持人按下开始抢答按纽(P3.0),扬声器响声提示,数码管30秒倒计时抢答,扬声器响声提示并该组LED灯亮,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。

从而完成一次抢答或者一次知识竞赛的任务。

1.2 竞赛抢答器总体框图图1 总体设计框图第2章系统硬件设计2.1 工作原理通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。

同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

2.2 晶振电路该晶振电路使用的是内部时钟电路,晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作。

复位电路使用的是按键与上电复位,复位电路是单片机初始化,使单片机重新开始执行程序。

当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。

晶振电路电路图如下页图2所示:图2 晶振电路电路图2.3 抢答电路AT89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由LED灯显示出来此组。

抢答电路电路图如图3:图3 抢答电路电路图2.4 显示电路此电路包括显示和驱动,显示采用数码管和LED灯,驱动用P2和P0口,违规者编号和正常抢答者编号将通过与P0口相连的LED灯显示出来,抢答30秒倒计时和回答问题时间60秒倒计时由P3口上的数码管采用动态显示。

为了保证LED灯和数码管有合适的压降在连接电路为它们相应地串连上了电阻。

显示电路电路图如图4:图4 显示电路电路图2.5控制电路的设计当赛事进行时,提示开始作答和复位时还需要主持人对抢答器进行控制,其提示是通过扬声器发出声音来实现的。

这就需要我们进行控制电路的设计。

其电路图如图5:图5 控制电路第3章系统软件设计智力竞赛抢答器要求有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定,通过键盘扫描输出按键信息,当在扫描到有人按下了答题键,马上关调用显示程序、封锁键盘。

再通过单片机将它转换成能在七段数码管上显示字型码。

图6 软件设计当抢答完毕时,会在数码管上显示抢答者数字号码提示以表示抢答成功.在显示时使用的是七段数码管显示,在本设计中根据实际情况采用的是动态显示方法.并通过查表法将其在数码管上显示出来,其中P1口为字型码输入端,P2口低6位为字选段输入端.通过查表将字型码送给7段数码管显示的数字。

软件去抖动,如果"开始键"按下就向下执行,否者跳到开始。

采用倒计时程序,使其具有倒计时功能。

回答倒计时30秒。

抢答时间5秒。

采用发声警报(由于没有驱动器,因此就用绿灯换了),起到报警作用。

其程序的流程图如下页图7图7 程序流程1、如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s 会跳到99,99s时再加1s会变到0s。

2、主持人按抢答“开始"键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。

倒数时间到小于5s会每秒响一下提示音。

3、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。

4、如果主持人未按抢答“开始”键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FFF和犯规号数并响个不停,直到按下"停止"键为止。

第4章系统软件仿真4.1 KeiluVision2软件本课题用到了伟福软件,集成调试环境,集成了编辑器、编译器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。

树状结构显示,一目了然,支持ASM(汇编)、C语言,多语言多模块源程序混合调试,在线直接修改、编译、调试源程序,错误指令定位。

功能很强大。

用于对程序的调试、编译和生成HEX文件。

其界面如图4.1:图8 KeiluVision2软件界面4.2 Proteus软件仿真系统仿真还用到了Proteus软件,可通过仿真可以完全显示出所设计系统的功能,对于程序的调试等有很大的帮助。

系统仿真时首先要在使用伟福编译器,把所写的程序进行编译,同时在仿真器里设置生成hex文件,编译无错误时进行Proteus仿真,加载目标代码文件打开元器件单片机属性窗口,在“ProgramFile”栏中添加上面编译好的目标代码文件“hh.hex”;在“ClockFrequency”栏中输入晶振频率为12MHz。

仿真:单击按钮,启动仿真,结果如下页图所示:图9 仿真结果图4.3 仿真结果分析通过电路的仿真,可以看出基于AT89C51单片机控制的抢答器在PROTEUS软件上很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。

当仿真运行开始时,各个模块处于初始阶段。

此时无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下抢答键,则蜂鸣器会发出报警声音,并且在数码管上显示规范的选手编号。

主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示倒计时,同时蜂鸣器发出声音提醒选手抢答正式开始了。

选手抢答成功,同时也进入倒计时答题时间。

从仿真的测试结果来看,此设计还是能比较好的实现预期目标。

总结通过这一周的课程设计,我学到了不少的知识。

把以前没有学好的模拟电路的知识进行了补充和加强。

这使我受益很大。

加深了我对于单片机和数字电路的认识,相信在以后的学习和工作中碰到这些基础的元器件我会更加得心应手。

通过查阅大量的资料,我获得了以前在课堂上学不到的东西,我想这对于以后的毕业设计,或者工作也好,都是很有帮助的。

我很认真地对待这个过程中的每一个细节,希望自己能做得更好。

希望今后还有这样的机会,能够让我学到更多的知识。

在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。

在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,因此在实际的电路连接中往往容易遗漏。

在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的,在以后的设计过程中进行了修改、改正。

参考文献[1]张伟,《单片机原理及应用》,机械工业出版社,2005[2]张鑫,《单片机原理及应用》,电子工业出版社,2005[3]曹国清,《数学电路与逻辑设计》中国矿业大学出版社,2004[4]任致程,《经典集成电路400例》机械工业出版社,2002[5]薛栋梁,《单片机原理及应用》,中国水利水电出版社,2001[6]吴金戎,沈庆阳等,《8051单片机实践与应用》,清华大学出版社,2001附录(1)总电路图图10 总电路图(2)程序代码1主程序OKEQU20H RINGEQU22H ORG0000H AJMPMAINORG0003H AJMPINT0SUB ORG000BH AJMPT0INTORG0013H AJMPINT1SUB ORG001BH AJMPT1INTORG0040H MAIN:MOVR1,#30 MOVR2,#60 MOVTMOD,#11H MOVTH0,#0F0H MOVTL0,#0FFH MOVTH1,#3CH MOVTL1,#0B0H SETBEA SETBET0 SETBET1 SETBEX0 SETBEX1 CLROK CLRRING SETBTR1 SETBTR02查询程序START:MOVR5,#0BH MOVR4,#0BHMOVR3,#0BH ACALLDISPLAYJBP3.0,NEXT ACALLDELAYJBP3.0,NEXT ACALLBARK MOVA,R1MOVR6,ASETBOKMOVR7,#01HMOVR3,#0AH AJMPCOUNT NEXT:JNBP1.0,FALSE1 JNBP1.1,FALSE2 JNBP1.2,FALSE3 JNBP1.3,FALSE4 JNBP1.4,FALSE5 JNBP1.5,FALSE6 JNBP1.6,FALSE7 JNBP1.7,FALSE8 AJMPSTART3非法抢答处理程序FALSE1:MOVR3,#01H AJMPERRORFALSE2:MOVR3,#02H AJMPERRORFALSE3:MOVR3,#03HAJMPERRORFALSE4:MOVR3,#04HAJMPERRORFALSE5:MOVR3,#05HAJMPERRORFALSE6:MOVR3,#06HAJMPERRORFALSE7:MOVR3,#07HAJMPERRORFALSE8:MOVR3,#08H4抢答、回答时间调整程序=====INT0(抢答时间R1调整程序)===== INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC0JNBP3.5,DEC0JNBP3.1,BACK0AJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0MOVR1,#00HACALLDELAY1AJMPINT0SUBADD0:INCR1 ACALLDELAY1AJMPINT0SUBDEC0:MOVA,R1JZSETR1DECR1ACALLDELAY1AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1AJMPINT0SUBBACK0:RETI;=====INT1(回答时间R2调整程序)===== INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1JNBP3.5,DEC1JNBP3.1,BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINT1SUBDEC1:MOVA,R2 JZSETR2DECR2 ACALLDELAY1 AJMPINT1SUB SETR2:MOVR2,#63H ACALLDELAY1 AJMPINT1SUB BACK1:RETI5倒计时程序REPEAT:MOVA,R2 MOVR6,A CLRRING COUNT:MOVR0,#00H MOVTH1,#3CH MOVTL1,#0B0H RECOUNT:MOVA,R6 MOVB,#0AHDIVABMOV30H,AMOV31H,BMOVR5,30HMOVR4,31H MOVA,R6 SUBBA,#07H JNCLARGER MOVA,R0CJNEA,#0AH,FULL CLRRING AJMPCHECKFULL:CJNEA,#14H,CHECK SETBRINGMOVA,R6JZQUITMOVR0,#00HDECR6AJMPCHECK LARGER:MOVA,R0 CJNEA,#14H,CHECK DECR6MOVR0,#00HCHECK:JNBP3.1,QUIT JNBOK,CHECKK AJMPNEXTT CHECKK:JNBP3.0,REPEAT NEXTT:ACALLDISPLAY JBOK,ACCOUT AJMPRECOUNT ACCOUT:MOVA,36HJNBACC.0,TRUE1 JNBACC.1,TRUE2 JNBACC.2,TRUE3 JNBACC.3,TRUE4 JNBACC.4,TRUE5 JNBACC.5,TRUE6 JNBACC.6,TZ1 JNBACC.7,TZ2 AJMPRECOUNTTZ1:JMPTRUE7TZ2:JMPTRUE8 QUIT:CLROK CLRRING AJMPSTART6正常抢答处理程序TRUE1:ACALLBARK MOVA,R2MOVR6,AMOVR3,#01H CLROK AJMPCOUNTTRUE2:ACALLBARK MOVA,R2MOVR6,AMOVR3,#02H CLROK AJMPCOUNTTRUE3:ACALLBARK MOVA,R2MOVR6,AMOVR3,#03H CLROK AJMPCOUNTTRUE4:ACALLBARK MOVA,R2MOVR6,AMOVR3,#04H CLROK AJMPCOUNT TRUE5:ACALLBARK MOVA,R2MOVR6,AMOVR3,#05H CLROK AJMPCOUNTTRUE6:ACALLBARK MOVA,R2MOVR6,AMOVR3,#06H CLROK AJMPCOUNTTRUE7:ACALLBARK MOVA,R2MOVR6,AMOVR3,#07H CLROK AJMPCOUNTTRUE8:ACALLBARK MOVA,R2MOVR6,AMOVR3,#08H CLROK AJMPCOUNT7犯规抢答程序ERROR:MOVR0,#00H MOVTH1,#3CH MOVTL1,#0B0H MOV34H,R3 HERE:MOVA,R0CJNEA,#06H,FLASH;0.3s CLRRINGMOVR3,#0AHMOVR4,#0AHMOVR5,#0AH AJMPCHECK1FLASH:CJNEA,#0CH,CHECK1 SETBRINGMOVR0,#00HMOVR3,34HMOVR5,#0BHMOVR4,#0BH AJMPCHECK1CHECK1:JNBP3.1,QUIT1 ACALLDISPLAY AJMPHEREQUIT1:CLRRINGCLROKAJMPSTART8其他功能程序=====显示程序===== DISPLAY:MOVDPTR,#DAT1 MOVA,R3MOVCA,@A+DPTRMOVP2,#0feHMOVP0,AACALLDELAY2 MOVDPTR,#DAT2MOVA,R5MOVCA,@A+DPTR MOVP2,#0fdHMOVP0,AACALLDELAY2MOVA,R4MOVCA,@A+DPTRMOVP2,#0fbHMOVP0,AACALLDELAY2RETDAT1:DB00h,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6 Fh,00H,71HDAT2:DB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6 Fh,00H,71H=====发声程序=====BARK:SETBRINGACALLDELAY1ACALLDELAY1CLRRINGRET=====TO溢出中断(响铃程序)=====T0INT:MOVTH0,#0ECHMOVTL0,#0FFHJNBRING,OUT;CPLP3.6OUT:RETI;=====T1溢出中断(计时程序)=====T1INT:MOVTH1,#3CHMOVTL1,#0B0HEND(3)评语表。

相关文档
最新文档