3位竞赛抢答器课程设计报告分解
三人智力抢答器实验报告

三人智力抢答器实验报告数字电路3人抢答器实验报告数字电路与逻辑课程设计》报告(本科)题目三人抢答器设计专业网络工程班级 1305022 学号 11 姓名牟黎明评定成绩指导教师李小平、易兴兵完成时间 2015年 6月1日----2015年6月5日电子工程学院二零一五年五月《一、实习目的:1. 数字电子技术知识的综合应用,包含: (1)门电路的应用 (2)编码器的应用(3)JK触发器的应用 (4)显示译码器的应用 (5)七段数码显示器的应用2. 学习电路安装图的绘制方法。
3. 学习电路的调试方法。
二、实习设备及实验器件清单: 实验器件:1. 双下降沿JK型触发器74LS1122. 三3输入与非门74LS103. 四2输入与非门74LS004. 4线-七段译码器/驱动器74LS485. LED共阴极显示器AR5476. 触发开关7. 10K电阻8. 1K电阻9. 铜导线 10. 锡焊丝2个 2个 2个个 1个 5个 5个 3个若干若干 1实验工具:1. 电烙铁每组一个2. 剪刀每组一把3. 镊子每组一把4. 学生电源每两组一个5. 图纸每组一张三、实习内容1. 原理方框图2. 电路原理图3. 抢答流程图四、阐述电路工作原理。
当主持人按动复位开关SW对前一次的记录进行清除,座位显示器显示“0”,进入抢答准备阶段,但此时选手无法抢答(抢答无效,信号被封锁)。
当主持人按动开关SW1时,进入抢答时段,锁存电路输出高电平作用于触发器1、2、3的JK端。
抢答信号(K1、K2、K3)以负脉冲形式作用于JK触发器时钟端,最早抢入的输入信号使该电路触发器最先翻转,输出的抢答信号一路经门F4、F5以下降沿作用于锁存电路(JK触发器,工作于置“0”状态)时钟端,输出低电平使三路JK触发器的工作状态由“翻转”变为“保持”,后续的抢答信号不能使其他触发器产生翻转。
这样就封锁了后到的信号。
输出的抢答信号同时以低电平驱动座位提示灯。
三人抢答器实验报告

三人抢答器实验报告三人抢答器实验报告引言:在现代教育中,互动性的教学方法被越来越多地应用于课堂教学中。
其中,抢答游戏是一种常见的教学方式,它可以激发学生的积极性和竞争意识,提高他们对知识的掌握和理解能力。
为了探究三人抢答器在教学中的效果,我们进行了一项实验。
实验设计:我们邀请了三个年级相近、知识水平相当的学生参与实验。
实验设备包括一个抢答器和一套题目。
抢答器由三个按钮组成,每个按钮对应一个学生。
题目由教师提问,学生按下按钮进行抢答。
实验过程中,我们记录了每个学生的抢答次数、正确率和反应时间,并与传统的抢答方式进行对比。
实验结果:通过实验数据的统计和分析,我们得出了以下结论:1. 积极性提升:相比于传统的抢答方式,三人抢答器可以更好地激发学生的积极性。
在实验过程中,学生们表现出更强的主动性,更积极地参与抢答,使得课堂氛围更加活跃。
2. 竞争意识增强:三人抢答器的引入增加了学生之间的竞争。
学生们为了争夺抢答机会,努力提高自己的反应速度和准确性。
这种竞争意识的增强促使学生更加认真地学习和复习知识,以便在抢答环节中取得优势。
3. 知识掌握加深:实验结果显示,通过三人抢答器的方式,学生们对知识的掌握和理解能力得到了提高。
他们在抢答环节中能够迅速反应,并给出准确的答案。
这表明他们对所学知识有了更深入的理解。
4. 合作意识培养:三人抢答器不仅仅是一种竞争的方式,它也可以培养学生之间的合作意识。
在实验过程中,我们观察到学生们会互相交流、讨论,并共同努力解决问题。
这种合作意识的培养对于学生的团队合作能力和沟通能力的提升具有积极的影响。
结论:通过实验数据的分析,我们可以得出结论:三人抢答器在教学中具有一定的优势。
它可以激发学生的积极性和竞争意识,提高他们对知识的掌握和理解能力。
同时,它也可以培养学生之间的合作意识,促进他们的团队合作能力和沟通能力的发展。
因此,在适当的教学场景中,三人抢答器是一种值得推广和应用的教学工具。
3位竞赛抢答器课程设计报告分解

《单片机控制技术》期末课程设计题目:三位竞赛抢答器设计报告专业:电子科学与技术班级:成员:完成日期:2015年12月25日三位竞赛抢答器设计报告1设计意义及要求1.1设计意义在很多关于智力竞赛的电视节目上,经常会出现抢答环节,参赛选手们在得到主持人发出的特定口令之后,都会争先恐后地按下抢答器,但每次抢答环节只有可能产生一位抢答成功的选手,同时可以断定这位参赛选手肯定是反应最快按下抢答器的。
设计一个功能类似的三位抢答器不仅能够让大家进一步了解这种抢答器的工作原理,而且还能在功能上提出一些好的想法和思想,甚至可以实现部分新的功能,如果人们不断的进行具有创新性的设计实验,也许过不久那些竞赛类的电视的抢答模式就会发生一定的改变和创新,从而增加了节目的观赏性,进一步丰富大家的娱乐生活。
1.2设计要求1.以单片机为核心,设计一个3位竞赛抢答器:同时供3名选手或3个代表队比赛,分别用3个按钮S0~S2表示。
2.设置一个系统清除和抢答器控制开关S,开关有主持人控制。
3.抢答器具有锁存与显示功能,即选手按按钮,锁存相应的编号,并在优先抢答器选手的编号一直保持主持人将系统清楚为止。
4.抢答器具有定时抢答功能且一次抢答的时间由主持人设定(如30秒),当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。
5.参赛选手在设定的时间内进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止,6.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
2成员分工及方案设计2.1成员分工:编写C 语言并使用Protuce 软件仿真; :负责制作本课程设计报告; :负责最后答辩;2.2方案设计2.2.1模块化设计框架图图2-2-1模块化设计框架图2.2.2各个模块的实现 (1)脉冲发生器的实现根据本实验的具体要求,锁存器需要有脉冲信号的输入,及需要有相应的脉冲发生器。
单片机 课程设计三人抢答器

单片机课程设计三人抢答器在现代电子技术的快速发展中,抢答器作为一种常见的电子设备,广泛应用于各种竞赛、游戏和活动中。
本次课程设计的任务是设计一个三人抢答器,通过单片机的控制实现抢答功能,并具备相应的显示和提示功能。
一、设计要求1、有三个抢答按键,分别对应三位选手。
2、当有选手按下抢答键时,系统能锁定该选手,并在显示屏上显示其编号。
3、同时伴有声音提示,表示抢答成功。
4、抢答成功后,其他选手再按下抢答键无效。
二、硬件设计1、单片机选型我们选择了常见的 51 系列单片机,如 STC89C52 单片机。
它具有价格低廉、性能稳定、易于编程等优点。
2、按键输入使用三个独立按键作为抢答按键,分别连接到单片机的三个I/O 口。
通过检测这些 I/O 口的电平变化来判断是否有按键按下。
3、显示模块采用数码管作为显示模块,用于显示抢答成功选手的编号。
可以选择共阴或共阳数码管,通过单片机的 I/O 口控制数码管的段选和位选,实现数字的显示。
4、声音提示模块使用蜂鸣器作为声音提示装置,连接到单片机的一个 I/O 口。
当抢答成功时,单片机输出高电平驱动蜂鸣器发声。
5、电源模块为整个系统提供稳定的电源,可以使用 5V 直流电源适配器或者通过电池供电。
三、软件设计1、主程序流程系统初始化后,进入循环等待状态,不断检测三个抢答按键的状态。
当有按键按下时,进行相应的处理,包括锁定选手、显示编号、发声提示以及禁止其他选手抢答。
2、按键检测程序通过不断读取与按键连接的 I/O 口的电平状态,判断是否有按键按下。
为了消除按键抖动的影响,需要进行软件消抖处理。
3、显示程序根据抢答成功选手的编号,将对应的数字编码发送到数码管的段选和位选端口,实现数字的显示。
4、声音提示程序当抢答成功时,单片机控制与蜂鸣器连接的 I/O 口输出高电平,使蜂鸣器发声。
四、系统调试1、硬件调试首先检查电路连接是否正确,有无短路、断路等情况。
然后测量各个电源点的电压是否正常,确保硬件电路工作正常。
3路抢答器课程设计

3路抢答器课程设计一、课程目标知识目标:1. 学生理解3路抢答器的电路原理,掌握基本电子元件的功能和使用方法。
2. 学生掌握数字电路的基本知识,了解抢答器中计数器、锁存器等元器件的工作原理。
3. 学生了解抢答器的应用场景,掌握相关电子产品的设计规范。
技能目标:1. 学生能够独立完成3路抢答器的电路搭建,具备实际操作能力。
2. 学生能够分析并解决抢答器电路中可能出现的问题,具备一定的故障排查能力。
3. 学生能够运用所学知识,设计简单的电子电路,培养创新能力。
情感态度价值观目标:1. 学生通过动手实践,培养对电子技术的兴趣和热情,提高学习积极性。
2. 学生在团队协作中,学会相互尊重、沟通和合作,培养团队精神。
3. 学生了解电子产品在现实生活中的应用,认识到科技对社会发展的作用,增强社会责任感。
课程性质:本课程属于电子技术实践课程,以项目式教学为主,注重培养学生的动手能力和创新能力。
学生特点:本课程面向初中生,学生对电子技术有一定的基础知识,好奇心强,喜欢动手实践。
教学要求:教师需引导学生掌握基本电路原理,关注学生实践操作过程,及时解答学生疑问,鼓励学生创新思维,提高学生的综合素养。
通过课程目标的分解,使学生在实践中达成具体学习成果,为后续教学设计和评估提供依据。
二、教学内容本节教学内容依据课程目标,结合教材第十五章“数字电路及其应用”展开,主要包括以下三个方面:1. 数字电路基础知识:回顾并巩固与非门、或非门、非门等基本逻辑门电路原理,使学生掌握数字电路的基本概念。
2. 3路抢答器电路原理及搭建:- 讲解3路抢答器的电路原理,包括按键输入、锁存器、计数器等部分的功能和作用。
- 分析教材中提供的3路抢答器电路图,使学生了解电路的连接方法。
- 引导学生动手搭建3路抢答器电路,熟悉各元器件的安装和使用。
3. 故障排查与产品优化:- 指导学生进行电路测试,分析可能出现的故障原因,培养学生解决问题的能力。
- 讨论如何优化抢答器设计,提高产品性能,激发学生的创新思维。
plc三人抢答器实验报告

plc三人抢答器实验报告PLC三人抢答器实验报告一、引言近年来,自动化技术的迅猛发展使得PLC(可编程逻辑控制器)在工业控制领域中得到了广泛的应用。
本实验旨在通过设计和实现一个PLC三人抢答器,探索PLC在实际应用中的灵活性和可靠性。
二、实验目的1. 熟悉PLC的基本原理和工作方式;2. 学习PLC的编程方法;3. 设计和实现一个PLC三人抢答器;4. 分析实验结果,评估系统的性能。
三、实验原理PLC是一种数字计算机,具有高度可靠性和稳定性,用于控制各种工业设备和过程。
它由中央处理器、输入/输出模块和编程设备组成。
PLC的工作原理是通过输入模块读取外部信号,经过中央处理器的逻辑运算后,再通过输出模块控制外部设备。
四、实验设计与实现1. 硬件设计本实验使用了三个按钮作为三个参与者的抢答器,一个LED指示灯用于显示抢答结果。
PLC通过输入模块读取按钮状态,经过逻辑判断后,通过输出模块控制LED指示灯。
2. 软件设计使用PLC编程软件进行逻辑编程。
首先,设置输入模块的输入点和输出模块的输出点。
然后,编写逻辑程序,根据输入信号的状态进行判断,并控制输出信号的状态。
最后,将程序下载到PLC中进行运行。
五、实验步骤1. 搭建硬件系统,连接按钮和LED指示灯到PLC的输入和输出模块。
2. 打开PLC编程软件,进行逻辑编程。
根据设计要求,编写程序逻辑,包括读取按钮状态、判断抢答顺序、控制LED指示灯等。
3. 将程序下载到PLC中,确保PLC和编程设备的连接正常。
4. 进行实验测试。
三个参与者按下按钮进行抢答,PLC根据按钮按下的顺序判断抢答结果,并通过LED指示灯显示结果。
六、实验结果与分析经过多次实验测试,PLC三人抢答器系统运行稳定,能够准确判断参与者的抢答顺序。
LED指示灯能够及时显示抢答结果,使得比赛更加公平公正。
七、实验总结通过本次实验,我们深入了解了PLC的基本原理和工作方式。
通过设计和实现一个PLC三人抢答器,我们不仅巩固了PLC的编程方法,还体验到了PLC在实际应用中的灵活性和可靠性。
数电三人抢答器实验报告

数电三人抢答器实验报告数电三人抢答器实验报告一、实验目的二、实验原理1. 抢答器的工作原理2. 时序控制电路的设计原理三、实验器材和仪器四、实验步骤1. 抢答器电路的搭建2. 时序控制电路的设计与搭建五、实验结果与分析1. 抢答器功能测试结果分析2. 时序控制电路测试结果分析六、实验总结及心得体会一、实验目的本次实验旨在通过设计和搭建一个三人抢答器电路,加深对数字电路基本原理和时序控制电路的理解,并通过实际操作提高动手能力和问题解决能力。
二、实验原理1. 抢答器的工作原理抢答器是一个多输入多输出的数字逻辑电路。
它由多个按钮输入和多个LED输出组成。
当有一个或多个按钮被按下时,对应的LED会亮起,表示该选手按下了按钮。
2. 时序控制电路的设计原理为了保证每个选手只有一次机会进行抢答,需要设计一个合适的时序控制电路。
该电路可以通过时钟信号控制每个选手的抢答时间,保证公平性。
三、实验器材和仪器本次实验所需的器材和仪器包括:- 数字电路实验箱- 逻辑门集成电路(例如与门、或门等)- 按钮开关- LED灯- 连接线- 示波器(可选)四、实验步骤1. 抢答器电路的搭建根据设计要求,将所需的逻辑门集成电路和按钮开关连接在数字电路实验箱上。
确保每个按钮开关与对应的逻辑门正确连接。
2. 时序控制电路的设计与搭建根据设计要求,设计一个合适的时序控制电路。
该电路应包括一个时钟信号发生器和多个触发器等组件。
将这些组件依次连接起来,并与抢答器电路相连。
五、实验结果与分析1. 抢答器功能测试结果分析进行抢答器功能测试时,按下不同的按钮开关,观察对应的LED是否亮起。
如果亮起,则表示该选手按下了按钮,并且抢答成功。
2. 时序控制电路测试结果分析进行时序控制电路测试时,调整时钟信号的频率,观察每个选手的抢答时间是否正确。
如果每个选手都能在规定时间内进行抢答,则说明时序控制电路设计成功。
六、实验总结及心得体会通过本次实验,我深入了解了数字电路的基本原理和时序控制电路的设计方法。
3路抢答器课程设计

3路抢答器 课程设计一、课程目标知识目标:1. 让学生理解并掌握3路抢答器的基本原理与设计思路。
2. 使学生掌握数字电路基础知识,包括逻辑门、触发器等,并能将这些知识应用于3路抢答器的电路设计中。
3. 让学生了解抢答器在实际应用中的优点和局限性。
技能目标:1. 培养学生运用所学知识分析和解决实际问题的能力。
2. 提高学生的动手实践能力,使其能够独立完成3路抢答器的搭建和调试。
3. 培养学生团队合作精神,提高沟通与协作能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣和爱好,激发其探索精神和创新意识。
2. 培养学生严谨、踏实的科学态度,使其在学习过程中养成良好的学习习惯。
3. 引导学生关注科技发展,认识电子技术在现实生活中的应用,提高其社会责任感。
课程性质分析:本课程为电子技术基础课程,以实践性、应用性为主,旨在让学生通过动手实践,掌握数字电路基础知识,并能够将其应用于实际项目中。
学生特点分析:学生为初中生,具备一定的物理知识和动手能力,对新鲜事物充满好奇,但可能缺乏系统的电子技术知识和实践经验。
教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力。
2. 创设情境,激发学生兴趣,引导学生主动参与学习过程。
3. 分组合作,培养学生的团队协作能力和沟通能力。
4. 关注个体差异,因材施教,使每个学生都能在课程中收获成长。
二、教学内容1. 数字电路基础知识回顾:逻辑门、触发器、时钟信号等基本概念和原理。
- 教材章节:第三章《数字电路基础》2. 3路抢答器工作原理:介绍抢答器的功能、电路构成、工作流程。
- 教材章节:第四章《触发器及其应用》3. 3路抢答器电路设计:- 教材章节:第五章《数字电路设计》- 抢答器电路图绘制- 元器件选择与参数计算- 电路搭建与调试4. 抢答器编程设计:- 教材章节:第六章《数字电路编程》- 基本逻辑编程- 抢答器程序设计- 程序下载与调试5. 实践操作与团队协作:- 教材章节:实验教程- 学生分组进行3路抢答器搭建- 团队合作,沟通交流- 撰写实验报告,总结经验教学内容安排与进度:第一课时:回顾数字电路基础知识,介绍3路抢答器工作原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机控制技术》期末课程设计题目:三位竞赛抢答器设计报告专业:电子科学与技术班级:成员:完成日期:2015年12月25日三位竞赛抢答器设计报告1设计意义及要求1.1设计意义在很多关于智力竞赛的电视节目上,经常会出现抢答环节,参赛选手们在得到主持人发出的特定口令之后,都会争先恐后地按下抢答器,但每次抢答环节只有可能产生一位抢答成功的选手,同时可以断定这位参赛选手肯定是反应最快按下抢答器的。
设计一个功能类似的三位抢答器不仅能够让大家进一步了解这种抢答器的工作原理,而且还能在功能上提出一些好的想法和思想,甚至可以实现部分新的功能,如果人们不断的进行具有创新性的设计实验,也许过不久那些竞赛类的电视的抢答模式就会发生一定的改变和创新,从而增加了节目的观赏性,进一步丰富大家的娱乐生活。
1.2设计要求1.以单片机为核心,设计一个3位竞赛抢答器:同时供3名选手或3个代表队比赛,分别用3个按钮S0~S2表示。
2.设置一个系统清除和抢答器控制开关S,开关有主持人控制。
3.抢答器具有锁存与显示功能,即选手按按钮,锁存相应的编号,并在优先抢答器选手的编号一直保持主持人将系统清楚为止。
4.抢答器具有定时抢答功能且一次抢答的时间由主持人设定(如30秒),当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。
5.参赛选手在设定的时间内进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止,6.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
2成员分工及方案设计2.1成员分工:编写C 语言并使用Protuce 软件仿真; :负责制作本课程设计报告; :负责最后答辩;2.2方案设计2.2.1模块化设计框架图图2-2-1模块化设计框架图2.2.2各个模块的实现 (1)脉冲发生器的实现根据本实验的具体要求,锁存器需要有脉冲信号的输入,及需要有相应的脉冲发生器。
(2)数据锁存部分的实现实验设计要求是制作一个三位竞赛抢答器,需要对代表三位参赛选手的状态( “0”或“1” )进行相应的锁存,为了电路的简化,应该采用D 触发器来实现锁存功能,则对于要实现对三位数据的锁存这一功能,可以使用两块集成了四个D 触发器的74LS175芯片。
(3)数据编码部分的实现编码部分是对锁存的数据进行编码,由于只有三个参赛选手,故只需要用三个不同的数字便可以代表所有的参赛选手,只要采用能对三位数据进行编码并能有三种或三种以上的输出的编码器即可达到要求。
(4)数据显示部分的实现对于这样的一个仅需要显示数字的设计,很容易联想到使用七段数码管来实现的数字的显示,而且七段数码管可以显示16种不同的输出,对于这种只需要有不少于三种的输出的设计来说,七段数码管完全可以达到要求。
一般的七段数码管有10个数据输入端,所以需要有相应的译码器对输送过来的编码后的数据进行译码操作,并且这种译码器的选择必须结合数码管是共阴还是共阳的情况而定。
2.2.3关于实现功能拓展的设计思路(1)实验设计的基本要求中没有提到主持人实现清零后,数码管该显示什么,这样在设计过程中我们就可以有多重选择了,本设计中设计的是让主持人清零之后,数码管显示F FF。
这一功能可以通过基本的门电路来实现,把主持人和参赛选手接入的信号作为输入信号,通过门电路整合,使得到的输出信号来控制数据显示部分。
(2)设计要求中没有提到参赛选手提前抢答会造成犯规的这一功能,理论上会存在有参赛选手犯规的情况的发生,这样实际中增加一个抢答犯规的功能是有一定的必要性的,同样要实现这一功能,可以通过门电路的组合,收集主持人和参赛选手接入的信号,把输出信号接到一个报警装置上,实现当主持人还未发出开始抢答指令的时候,若有参赛选手抢答了,报警装置会报警的功能。
2.3总体功能框图下图所示为总体方框图。
其工作原理为:接通电源后,主持人将开关断开,抢答器处于禁止状态,定时器显示设定时间;主持人将开关接通,宣布开始抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作状态开关。
2.3总体功能框图2.4元器件清单仿真图中所需要的各种元器件如表2.4表2.4 元器件清单3 硬件设计3.1 元器件及其作用在三位抢答器的设计中,我们主要用到了AT89C51型号单片机、晶振、电容、排阻、电阻、电源、拨码开关、7SEG-MPX4-CC-BLUE数码管等元器件。
芯片是由ISIS 7 PROFESSIONAL仿真软件系统提供(AT89C51)。
它主要由CPU,存储器和管脚组成。
所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。
其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。
它在排阻上一般用一个色点标出来。
排阻一般应用在数字电路上,比如:作为某个并行口的上拉或者下拉电阻用。
使用排阻比用若干只固定电阻更方便。
排阻有a型和b型的区别。
a型排阻的引脚总是奇数的。
它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。
B型排阻的引脚总是偶数的。
它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。
图3.1 AT89C51单片机图示及引脚排列3.2 原理图设计根据设计要求及用protues仿真软件做出三位竞赛抢答器电路图如下:4 软件设计4.1 软件设计思路当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,持续时间0.5S左右。
参赛选手在设定的时间内进行抢答,抢答有效,定时器工作停止,显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止。
如果定时时间已到,无人抢答,系统报警并禁止抢答。
4.2 C语言源程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=20; //抢答时间char datitime=30; //答题限时时间uint tt,t1; //T0,T1定时器定一秒时bit flag,s_flag=1,b_flag,fall_flag; //标志位bit K_startcountflag,K_timecountflag; //时间调整标志位sbit K0=P3^0;sbit beep=P3^7; //蜂鸣器sbit rled=P3^1; //指示灯sbit K1=P1^0; //1号参赛选手sbit K2=P1^1; //2号参赛选手sbit K3=P1^2; //3号参赛选手sbit K_Time=P3^2; //答题计时键sbit K_startcount=P3^3; //开始抢答时间调整键sbit K_timecount=P3^4; //答题计时时间调整键void delay(uchar ms){uchar y;for(;ms>0;ms--)for(y=120;y>0;y--);}uchar code tabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴极字型码uchar code tablewe[]={0XFE,0XFD,0XFB,0XF7};void T0_Init(void){TMOD=0X01; //设T0(T1)为定时模式,由TR0(TR1)控制启动和停止,且T1工作于方式0,T0工作于方式1TH0=(65536-2000)/256; //初始化T0的高8位TL0=(65536-2000)%256; //初始化T0的低8位TH1=(65536-2000)/256; //初始化T1的高8位TL1=(65536-2000)%256; //初始化T1的低8位ET0=1; //允许T0中断ET1=1; //允许T1中断EA=1; //中断允许P0=0;}void Key_Scan(void) //开始键扫描{if(K0==0){delay(10);if(K0==0){while(!K0);TR0=1; //启动定时器T0s=time;tt=0;flag=1; //定义开始键按下s_flag=1; //定义抢答键按下b_flag=1; //定义嘟声响应标志位num=0; //数码显示管显示0beep=1; //定义扬声器不发声rled=1; //定义红灯不亮fall_flag=0; //清除违规标志位K_startcountflag=0; //调整开始位为0K_timecountflag=0; //调整开始时间为0}}}void Scan(void) //三路热键扫描(哪个键先按下,哪个优先级最高) {if(K1==0) //判断1号键是否按下{delay(10); //延迟一段时间,判断是否为抖动if(K1==0) //还有按键,说明不是抖动{while(!K1); //等待按键松开num=1; //数码管显示1号"1"TR0=0; //关闭定时器0,时间停止TR1=1; //打开定时器1,使扬声器响一声s_flag=0; //关闭开始键标志位,使再按其他俩个键不会响应}}if(K2==0) //下面俩个键的处理同上{delay(10);if(K2==0){while(!K2);num=2;TR0=0;TR1=1;s_flag=0;}}if(K3==0){delay(10);if(K3==0){while(!K3);num=3;TR0=0;TR1=1;s_flag=0;}}}void display(void){if(flag==1) //开始键按下,开始计时抢答{if(num!=0) //如果有人抢答,则显示相应的几号{P0=tabledu[num]; //显示几号抢到了P2=tablewe[0];delay(2);P0=0;P2=0XFF;}else //否则没人抢答,则前面不显示几号{P0=0;P2=0XFF;}P0=tabledu[s/10]; //下面为显示抢答倒计时P2=tablewe[2];delay(2);P0=0;P2=0XFF;P0=tabledu[s%10];P2=tablewe[3];delay(2);P2=0XFF;P0=0;}else //如果开始键没有按下,则显示F FF(若有违规者,则显示违规号码及 FF)或时间调整{if(fall_flag==1) //违规显示{if(num!=0){P0=tabledu[num]; //显示几号违规了P2=tablewe[0];delay(2);P0=0;P2=0XFF;P0=tabledu[15]; //下面显示 FF,表示违规了P2=tablewe[2];delay(2);P0=0; //消隐P2=0XFF;P0=tabledu[15];P2=tablewe[3];delay(2);P0=0;P2=0XFF;}else{P0=0;P2=0XFF;}}else //没有人违规才显示调整时间{if(K_startcountflag==1){P0=0X77; //第一位数码管显示"A"(表示抢答时间调整)P2=tablewe[0];delay(2);P0=0;P2=0XFF;P0=tabledu[time/10]; //下面显示调整的抢答时间P2=tablewe[2];delay(2);P0=0;P2=0XFF;P0=tabledu[time%10];P2=tablewe[3];delay(2);P0=0;P2=0XFF;}else if(K_timecountflag==1){P0=0X07; //第一位与第二位数码管合起来显示"T",表示答题时间调整P2=tablewe[0];delay(2);P0=0;P2=0XFF;P0=0X31;P2=tablewe[1];delay(2);P0=0;P2=0XFF;P0=tabledu[datitime/10];P2=tablewe[2];delay(2);P0=0;P2=0XFF;P0=tabledu[datitime%10];P2=tablewe[3];delay(2);P0=0;P2=0XFF;}else //否则显示F FF{P0=tabledu[15];P2=tablewe[0];delay(2);P0=0;P0=tabledu[15];P2=tablewe[2];delay(2);P0=0; //消隐P2=0XFF;P0=tabledu[15];P2=tablewe[3];delay(2);P0=0;P2=0XFF;}}}}void Time_Scan(void) //调整时间键扫描{if(K_startcount==0) //抢答时间调整{delay(10);if(K_startcount==0){while(!K_startcount);time++;if(time==50) //抢答时间上限50s{time=20;}K_startcountflag=1; //将抢答时间标志位置1K_timecountflag=0; //同时关闭答题时间标志位}}if(K_timecount==0) //答题时间调整{delay(10);if(K_timecount==0){while(!K_timecount);datitime++;if(datitime==60) //答题上限60s{datitime=30;}K_timecountflag=1; //将答题时间标志位置1K_startcountflag=0; //同时关闭抢答时间标志位}}}void main(void){T0_Init();while(1){Key_Scan(); //开始键扫描if((flag==0)&(s_flag==1)) //当开始键没按下及没有人违规时才可进行时间调整{Time_Scan();}if((flag==1)&(s_flag==0)) //当开始键按下及有人抢答才进行开始回答计时倒计时{if(K_Time==0){delay(10);if(K_Time==0){while(!K_Time);s=datitime;TR0=1;tt=0;TR1=1;}}}if((flag==0)&(s_flag==1)) //违规{Scan();if(num!=0) //开始键没有按下时,有人按下了抢答器,则置违规标志位{fall_flag=1; //置违规标志位rled=0; //红灯亮}}if((flag==1)&(s_flag==1)) //如果开始键按下且抢答键没有人按下,则进行三路抢答键扫描{Scan();}display(); //显示到数码管上}}void timer0(void) interrupt 1{TH0=(65536-2000)/256; //2msTL0=(65536-2000)%256;if(b_flag) //开始(START)键按下,嘟一声(长1秒),表示开始抢答{beep=~beep;}elsebeep=1;if(s<5) //抢答时间快到报警,隔1秒响一声且红灯闪烁,响三声{if(s%2==0){b_flag=1;rled=0;}else{b_flag=0;rled=1;}}tt++;if(tt==500) //1秒{tt=0;s--;b_flag=0; //关闭开始键按下响一秒的嘟声if(s==-1){s=20;TR0=0;flag=0; //显示F FFs_flag=1;num=0;rled=1;}}}void timer1(void) interrupt 3 //定时器1处理有人按下抢答器嘟一声(长1秒) {TH1=(65536-2000)/256;TL1=(65536-2000)%256;beep=~beep;t1++;if(t1==500){t1=0;TR1=0;}5软件仿真调试在软件硬件都已连接设计好以后,我们需要用Keil、preoteus软件对其进行仿真调试。