基于某c语言单片机8位竞赛抢答器设计课程设计

合集下载

基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现引言:抢答器是一种用于比赛或考试中进行抢答的设备,它可以实现多个参与者同时抢答,实时显示最先抢答者的编号。

本文将介绍一种基于单片机的8路抢答器的设计与实现。

一、设计方案:1.硬件设计:本设计采用单片机作为主控制器,使用LED显示器显示抢答编号。

按键用于选择参与抢答的编号。

____________________+------------------,P1.0,,P1.1,,P1.2,,P1.3Infrared sensor ----- ------- ----- -----+------------------,P1.4,,P1.5,,P1.6,,P1.7LED display ----- ------- ----- -----+---------------+---------+---------+---------+---------+AVRMicrocontroller+---------------+---------+---------+2.软件设计:本设计的软件部分主要涉及中断、定时器、按键扫描和显示控制几个方面的内容。

(1)中断:使用外部中断响应红外传感器的触发信号,并处理中断程序。

(2)定时器:使用定时器来实现LED显示的时序控制,以达到流畅的显示效果。

(3)按键扫描:定时扫描按键,当一些按键按下时,触发相应的抢答编号。

(4)显示控制:根据抢答编号,通过对LED显示器的控制,实现编号的显示。

二、实现步骤:1.硬件部分的实现:(1)按照上述连接图的方式,将红外传感器和LED显示器与单片机进行连接。

(2)编写硬件程序,对红外传感器和LED显示器进行初始化配置。

2.软件部分的实现:(1)编写中断服务函数,用于响应红外传感器的触发信号,并完成相应的中断处理。

(2)编写定时器中断服务函数,用于控制LED显示的时序。

(3)编写按键扫描函数,用于检测按键是否按下,并触发相应的抢答编号。

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

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

单片机八路抢答器课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解并运用I/O口进行输入输出控制。

2. 使学生了解抢答器的功能和工作原理,掌握其设计与实现方法。

3. 帮助学生掌握定时器/计数器的使用,以及在中断处理中的应用。

技能目标:1. 培养学生运用所学知识设计并实现单片机八路抢答器的实际操作能力。

2. 培养学生分析问题和解决问题的能力,提高编程和调试单片机系统的技能。

3. 培养学生的团队协作能力,提高沟通与表达技巧。

情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发创新意识。

2. 培养学生具有实践操作中的安全意识,养成良好的实验习惯。

3. 培养学生面对挑战,勇于尝试,不断调整和优化设计方案的态度。

课程性质:本课程为实践性较强的课程,结合理论知识,以实际操作为核心。

学生特点:学生已具备一定的单片机基础知识和编程能力,具有较强的求知欲和动手能力。

教学要求:教师需引导学生主动探索,鼓励学生提出问题、解决问题,关注学生在实践中的个性化发展。

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

二、教学内容1. 理论知识:- 单片机基础原理回顾:I/O口控制原理,中断系统原理。

- 定时器/计数器原理及其在抢答器中的应用。

- 抢答器工作原理及设计要求。

2. 实践操作:- 单片机硬件连接及电路设计。

- 编写抢答器程序,实现基本功能。

- 调试与优化:程序调试,硬件测试,故障排查。

3. 教学大纲:- 第一周:回顾单片机基础知识,讲解抢答器工作原理。

- 第二周:学习定时器/计数器应用,设计单片机I/O口控制电路。

- 第三周:分组讨论设计方案,编写程序,搭建硬件电路。

- 第四周:调试与优化,展示成果,总结经验。

4. 教材关联:- 理论知识:教材第3章单片机原理,第4章中断与定时器。

- 实践操作:教材第5章单片机接口技术,第6章单片机应用实例。

教学内容安排和进度根据课程目标和学生的学习情况调整,确保学生能够逐步掌握单片机八路抢答器的设计与实现。

基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现基于单片机的8路抢答器是一种常见的电子竞赛设备,用于测验、培训或竞赛等活动中进行抢答的过程。

它能够为多个参与者提供公平竞争机会,并通过显示屏和声音提示来呈现结果。

下面是一个基于单片机的8路抢答器的设计与实现的参考内容。

一、硬件设计:1. 微控制器选择:可以选择一款适合的单片机作为抢答器的主控芯片,常见的选择有STC89C52、AT89C52、PIC16F877A 等。

2. 输入部分设计:为每个参与者设置一个按钮,用于抢答。

可以使用电子按键、触摸按钮等。

3. 显示部分设计:可以选择LCD液晶显示屏或数码管进行显示,显示参与者的编号或抢答进度等信息。

4. 声音提示设计:可以使用蜂鸣器或扬声器作为声音提示装置,用于鸣笛提示抢答结果。

5. 电源部分设计:选择合适的电源模块,如直流电源模块或电池供电。

二、软件设计:1. 系统初始化:设置IO口的输入输出状态,初始化LCD显示屏,配置中断等。

2. 抢答逻辑:设置抢答模式,设定抢答者数量,记录抢答时间,并根据抢答顺序进行显示和提示。

3. 显示与提示:根据抢答结果,将结果显示在LCD屏幕上,并通过声音提示器进行声音提示。

4. 延时与计时:设置合适的延时函数和计时器用于计算抢答的时间长度。

5. 节拍控制:设置一个节拍控制函数,用于判断抢答按钮的按下时间是否在某一节拍内,以增加抢答的公平性。

6. 按键检测与处理:使用中断或轮询方式对抢答器上的按键进行检测和处理,并根据按键的触发来执行相应的命令。

三、实现步骤:1. 硬件搭建:按照上述设计,完成抢答器的硬件搭建,包括连接单片机与按钮、显示屏和声音提示器等。

2. 程序编写:根据所选的单片机型号,使用对应的编程软件,编写相应的程序。

3. 调试与测试:将编写好的程序下载到单片机中,通过串口或者编程器与单片机进行连接,进行调试与测试。

4. 优化与改进:根据实际使用情况,进行程序的优化和改进,以提高系统的稳定性和可靠性。

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所示,其工作原理为:接通电源后,主持人未按下开始抢答,抢答器处于禁止状态,数码管显示“----”;主持人宣布“开始”同时按下开始抢答按键,抢答倒计时开始计时,扬声器给出声响提示。

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

基于单片机八路抢答器设计

基于单片机八路抢答器设计

第一章系统方案与论证1.1 根本要求〔1〕系统容量:为满足竞赛抢答的要求,系统容量定位8路。

〔2〕系统能完成:倒计时指令发送与接收;抢答对别信息发送与接收;〔3〕抢答倒计时可在0-99秒内根据需要任意调整。

〔4〕所有信息交换都采用无线通信。

〔5〕抢答指令发出和抢答成功要有提示音。

1.2 系统方案选择1.2.1 系统根本构造框图1-1 根本系统构造框图系统工作流程:主持人电路通电后,2位数码管不断加1,以示电路可以正常工作。

主持人按下控制开关后,电路进入倒计时预设状态,设置好后再按一下控制开关,则完成预设,数码管显示预设数。

当主持人按下开场按钮后,选手可以抢答,同时数码管显示倒计时读秒,如有选手按下抢答键,数码管显示该选手的序号,同时封锁其他的抢答信号,蜂鸣器鸣叫10s,以示有人抢答成功。

如读秒归零时还无人抢答,则蜂鸣器鸣叫10s,数码管显示为不断闪亮的“00〞,以示抢答时间到。

当抢答的选手答复完毕或读秒归零后,主持人按一下开场按钮,电路即可恢复到开场抢答,倒计时读秒状态1.2.2 通信方案论证与选择要实现无线通信,可选用频分复用和时分复用两种形式。

频分复用各信道独立,不考虑信号在时间上的重叠。

但是在整个系统最少也需要8个信道,电路复杂,制作本钱高,故不取。

对实际问题进展分析,发现系统通信中,除抢答信号外,其他信号的传送都具有明显的分时性〔即各信号的传送都不可能同时出现〕。

再对抢答信号进展深入研究,发现:〔1〕人对抢答信号的反响在毫秒级是很不灵敏的,人的反响速度是在0.2s-0.8s 内随即出现。

〔2〕在比赛现场,抢答题目一般在几十秒内。

能做出答复决定的人也只在40%左右,坚决做出答复决定的占20%左右。

根据系统满容量算20*20%=4,只有4个左右的人数进入0.2—0.8s反响比赛中。

〔3〕按键反响速度也是有差异的,大概在20ms左右。

根据以上三点分析,可以定性的得出抢答信号在一定的时间区间内具有随机分时的特性。

单片机实验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秒了(可怜啊)。

基于c语言单片机8位竞赛抢答器设计课程设计

基于c语言单片机8位竞赛抢答器设计课程设计

课程设计报告课程名称:单片机课程设计报告题目:8位竞赛抢答器的设计学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:2013 年12月25日课程设计任务书摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

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

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

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

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

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

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

关键词:89c52;电路;显示;按键目录一、概述 (1)二、方案设计 (1)三、硬件电路设计 (2)1、抢答器的电路框图 (2)2、单元电路 (3)2.1、抢答器电路 (3)2.2、时序控制电路 (3)2.3、复位电路 (3)3、时钟震荡电路 (3)4、报警电路 (3)四、软件设计 (4)1、系统主程序 (4)2、系统程序 (5)五、结论与心得 (10)六、参考文献 (10)一、概述本实验电路由抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路组成。

通过复位按键FW,电路进入准备就绪状态。

将抢答时间设定在30S,然后按下开始键开始抢答。

,在电路中“S0-S7”为8路抢答器的8个按键,当有键按下,程序锁定信号,从P2口输出抢答者号码的七段码值,送到数码管显示,并封锁按键,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。

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

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

单片机8路抢答器课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和功能,理解8路抢答器的电路构成及其工作原理;2. 使学生掌握8路抢答器程序设计的基本方法,包括程序流程图绘制、程序代码编写等;3. 帮助学生理解数字电路基础知识,以及与单片机接口的原理。

技能目标:1. 培养学生运用单片机进行电子电路设计和程序开发的能力;2. 培养学生动手实践、团队协作的能力,能独立完成8路抢答器的搭建和调试;3. 提高学生分析问题和解决问题的能力。

情感态度价值观目标:1. 激发学生对电子技术和编程的兴趣,培养其创新精神和实践能力;2. 培养学生严谨的科学态度和良好的学习习惯,使其在课程学习过程中体验团队合作的重要性;3. 引导学生关注科技发展,认识到单片机技术在实际应用中的价值,提高学生的社会责任感和使命感。

课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,旨在培养学生的动手能力和实际应用能力。

学生特点:学生已具备一定的电子技术基础和编程能力,具有较强的学习兴趣和探索精神。

教学要求:教师应注重理论与实践相结合,以学生为主体,引导学生主动参与、积极思考、合作交流,提高学生的实践能力和创新能力。

在教学过程中,关注学生的个体差异,因材施教,确保课程目标的实现。

通过课程学习,使学生达到预定的学习成果,为后续学习打下坚实基础。

二、教学内容1. 理论知识:a. 单片机原理与功能:引导学生复习并巩固单片机的基本原理,介绍51单片机结构、工作原理及特性;b. 8路抢答器电路设计:讲解8路抢答器的电路构成、工作原理及各部分功能;c. 程序设计方法:介绍程序流程图的绘制方法,讲解C语言编程基础及其在单片机编程中的应用。

2. 实践操作:a. 8路抢答器硬件搭建:指导学生按照电路图完成8路抢答器的硬件搭建;b. 程序编写与调试:教授学生编写8路抢答器程序,并进行调试;c. 系统测试与优化:引导学生对搭建好的8路抢答器进行测试,发现问题并进行优化。

基于单片机的8路抢答器课程设计报告

基于单片机的8路抢答器课程设计报告

基于单片机的8路抢答器课程设计报告单片机原理及接口技术课程设计报告设计题目:基于单片机的8路抢答器学号:××××××姓名:××指导教师:×××信息与电气工程学院二零一五年七月基于单片机的8路抢答器单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。

若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。

而随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。

本设计就是基于单片机设计抢答系统,通过串口通信动态传输数据,使抢答系统有了更多更完善的功能。

单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。

对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。

抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。

选手们都站在同一个起跑线上,体现了公平公正的原则。

1. 设计任务结合实际情况,基于AT89C51单片机设计一个8路抢答器。

该系统应满足的功能要求为:(1) 设计一个可供8人进行的抢答器;(2) 系统设置复位按钮,按动后,重新开始抢答;(3) 抢答器开始时数码管显示序号0,选手抢答实行优先显示,优先抢答选手的编号一直保持到主持人将系统清除为止。

抢答后显示优先抢答者序号,同时发出音响。

,并且不出现其他抢答者的序号;(4) 抢答器具有定时抢答功能,且一次抢答的时间有主持人设定,本抢答器的时间可设定在1~99秒(本例中设置为20s),当主持人启动“开始”开关后,定时器开始减计时,数码管显示倒计时的时间,同时蜂鸣器有短暂的声响;(5) 设定的抢答时间内,选手可以抢答,这时定时器停止工作,显示器上显示选手的号码和抢答时间。

基于单片机的八路抢答器的设计(C语言版)

基于单片机的八路抢答器的设计(C语言版)

毕业论文基于单片机的8路抢答器专业院系: 信息工程系班级名称: 计算机硬件与外设****: *******: ***完成时间: 2011年12月28日湖南铁道职业技术学院信息工程系2012届毕业设计任务书专业:硬件与外设班级:硬件091 填表日期:2011年11月20日指导教师王昱煜职称讲师联系电话159****7341学生姓名周俊兵课题名称基于单片机的8路抢答器的设计课题工作内容介绍单片机的选型、引脚功能等,然后分析抢答器的设计原理,从各个硬件的总体设计到局部电路设计,分析并阐述设计思路;再进行软件的设计,从程序总体流程图到关键部分的设计思路以及中断处理,最后附上程序代码。

该论文的主要内容应包括:1、单片机芯片选择(1)单片机选择(2)模块性能分析2、硬件设计(1)总体设计(2)外部振荡电路设计(3)复位电路设计(4)显示电路设计(5)按键电路设计(6)报警电路设计3、系统软件设计(1)程序总体结构图(2)程序流程图(3)主程序(4)中断处理4、总结本论文的撰写需要先设计出产品的电路图及软件系统,然后再自己焊接组装成产品,然后根据自己的设计思路及产品焊接组装流程用文字加图片的形式在文章中展示出来。

要求指标(目标)通过毕业设计,应达到以下要求:(1)熟悉单片机的型号及各引脚功能。

(2)熟悉单片机硬件电路设计。

(3)熟练单片机C语言程序设计。

(4)用C语言实现软件系统,并在仿真环境下调试运行。

(5)熟练电子元器件的焊接。

(6)根据硬件电路图和程序代码将产品制作出来并调试。

(7)撰写符合规范的毕业设计论文,对毕业设计所做的工作表达出来。

(8)掌握团队合作开发的方法。

(9)进一步积累实际的单片机产品的开发和研究经验。

进程安排(1)第1周:落实毕业设计任务,明确工作内容,部署毕业设计各项工作。

(2)第2周:查阅与课题相关或针对性强的文献5~10篇,阅读并进行归纳、总结。

(3)第3周:根据课题要求进行资料收集、整理,并写出分析报告。

单片机课程设计 八路抢答器(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、器材室很方便就能领到。

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

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

单片机八路抢答器课程设计课程设计概述:本课程设计是针对单片机的八路抢答器的设计。

抢答器是一种常见的竞赛工具,可以用于比赛、竞赛等活动中实现精准的答题和排名。

本设计旨在实现一个基于单片机的八路抢答器系统,通过使用单片机和相应的电路设计实现对八路玩家的快速、准确的答题判断和排名结果的显示。

设计思路:本设计采用基于单片机的设计,将每个玩家的回答结果作为输入信号,通过对输入信号进行处理后,实现对八个回答结果的判断和排名。

其中,每个玩家的输入信号通过一个按键输入到单片机的IO口中,然后将IO口信号处理后,向显示屏发送相应的排名信息。

电路设计:1、按键输入电路按键输入电路是将每个玩家的回答结果输入到单片机中的重要电路。

每个按键连接到一个IO口,并通过一个上拉电阻连接到VCC。

当玩家按下按键时,IO口信号被拉低,单片机检测到信号后,将其处理为按键按下事件。

2、显示屏输出电路显示屏输出电路是将排名结果以数字方式输出的电路。

选用数码管进行数字显示,驱动数码管的芯片采用共阳极显示方式。

将多个数码管的ANODE和COM端分别与单片机的IO口连接,通过发送不同的电平信号,实现各位玩家排名结果的显示。

程序设计:首先,需要对IO口进行初始化,使其适应按键输入电路和显示屏输出电路。

接着,需要编写轮流扫描每个IO口并检测是否有按键被按下的程序,检测到按键按下后,将其加入到一个答题人员回答顺序队列中,并更新相应的显示屏。

当八个玩家答题完毕后,根据答题顺序队列进行排名,并更新显示屏显示排名结果。

总结:本设计实现了一个基于单片机的八路抢答器系统,通过使用按键输入电路、显示屏输出电路和相应的程序设计,实现了快速、准确的答题判断和排名结果的显示。

基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现

基于单片机8路抢答器的设计与实现主题:基于单片机8路抢答器的设计与实现在现代教育和娱乐活动中,抢答游戏是一种常见的互动方式。

随着科技的发展,利用单片机技术设计和实现抢答系统已成为一种创新且富有趣味的方法。

本文将介绍基于单片机的8路抢答器的设计和实现,并深入探讨其功能、原理和应用。

1. 介绍抢答游戏在学校、培训机构、家庭聚会等场合中被广泛应用,它能够激发参与者的积极性和竞争欲望,同时也为活动增添了趣味和互动性。

基于单片机的抢答器设计可以实现多路同时抢答,提高游戏的难度和趣味性,同时也能够实现答题速度的准确计时和成绩的实时显示,极大地方便了游戏的举行和管理。

2. 设计原理基于单片机的8路抢答器的设计原理主要包括信号输入、数据处理、显示输出等部分。

通过传感器或按钮等设备实现抢答信号的输入,单片机接收到信号后进行数据处理和分析,判断谁是最先抢答成功的参与者,并将结果通过显示屏等方式进行输出展示。

在此基础上,还可以加入声音提示、成绩记录等功能,提升游戏的体验和趣味性。

3. 实现步骤基于单片机的8路抢答器的实现步骤主要包括硬件设计、软件编程和系统调试等环节。

在硬件设计方面,需要选择合适的单片机芯片和外围电路,并进行连线焊接和电路调试。

在软件编程方面,需要根据抢答器的需求编写程序,实现信号的输入、数据的处理和结果的输出。

在系统调试方面,需要对硬件和软件进行综合测试,保证抢答器的稳定运行和准确判断。

4. 应用与展望基于单片机的8路抢答器不仅可以应用于教育和娱乐活动中,还可以拓展到各种比赛、智力竞赛等场合。

随着科技的不断进步,抢答器的功能和性能还可以进一步优化和升级,例如增加网络联动、手机App控制等功能,以适应不同场合和需求的应用。

总结基于单片机的8路抢答器的设计与实现是一项富有挑战性和创新性的工程项目,它能够充分发挥单片机技术在教育和娱乐领域的应用潜力,为人们提供了一种全新的互动方式。

未来,随着人工智能、物联网等新技术的不断发展,抢答器系统还将迎来更广阔的发展空间,为人们的生活带来更多乐趣和活力。

基于c语言单片机8位竞赛抢答器设计课程设计

基于c语言单片机8位竞赛抢答器设计课程设计

课程设计报告课程名称:单片机课程设计报告题目:8位竞赛抢答器的设计学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:2013 年12月25日课程设计任务书摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

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

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

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

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

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

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

关键词:89c52;电路;显示;按键目录一、概述 (1)二、方案设计 (1)三、硬件电路设计 (2)1、抢答器的电路框图 (2)2、单元电路 (3)2.1、抢答器电路 (3)2.2、时序控制电路 (3)2.3、复位电路 (3)3、时钟震荡电路 (3)4、报警电路 (3)四、软件设计 (4)1、系统主程序 (4)2、系统程序 (5)五、结论与心得 (10)六、参考文献 (10)一、概述本实验电路由抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路组成。

通过复位按键FW,电路进入准备就绪状态。

将抢答时间设定在30S,然后按下开始键开始抢答。

,在电路中“S0-S7”为8路抢答器的8个按键,当有键按下,程序锁定信号,从P2口输出抢答者号码的七段码值,送到数码管显示,并封锁按键,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。

基于单片机的八路抢答器设计

基于单片机的八路抢答器设计

基于单片机的八路抢答器设计一、介绍抢答器是一种常见的电子设备,用于组织学生进行抢答活动。

传统的抢答器设备通常采用机械按钮或者红外线传感器,但是这些设备具有限制,例如按钮设备需要人工操作,而红外线传感器则需要维护激光束的稳定性。

基于单片机的抢答器能够解决这些问题,并给予更多的功能扩展。

二、系统设计本设计的基本需求是能够同时支持八个参与者进行抢答,并实时显示第一个抢答者的编号。

设计采用单片机进行控制,为了满足多个参与者的需求,需要使用多个按键进行输入,并通过数码管显示抢答结果。

具体系统设计如下。

1.硬件设计硬件设计基于单片机STM32F103C8T6,具有30个可编程输入/输出引脚。

为了支持八个参与者的抢答,我们使用了八个按钮进行输入,并使用七段数码管显示抢答结果。

引脚的分配如下表:引脚功能PA0 参与者1按钮输入PA1 参与者2按钮输入...PA7 参与者8按钮输入PB0-6 七段数码管段选择PC0-3 七段数码管位选择2.软件设计软件设计基于Keil uVision软件进行编写。

主要功能包括按键输入检测、抢答者编号判断以及数码管显示。

具体的设计流程如下。

(1)按键输入检测使用GPIO口作为输入模式,每个参与者的按键连接到相应的引脚。

通过读取GPIO口的电平来检测按钮是否被按下。

当检测到按键按下时,会触发中断并执行相应的处理函数。

(2)抢答者编号判断通过记录按键按下的时间顺序来判断抢答者的编号。

每次有按钮按下时,会先检测当前是否已经有抢答者,并且记录下第一个抢答者的编号。

在抢答者确认后,会将其他按钮的输入禁用,以防止其他参与者的干扰。

(3)数码管显示使用GPIO口作为输出模式,将七段数码管的段选择信号连接到PB0-6引脚,位选择信号连接到PC0-3引脚。

通过依次设置段和位选择信号的电平,来控制数码管的显示内容。

三、系统实现四、总结本文介绍了基于单片机的八路抢答器设计。

通过使用多个按钮进行输入,以及数码管进行显示,实现了同时支持八个参与者进行抢答的功能。

基于单片机的8路抢答器的设计

基于单片机的8路抢答器的设计

基于单片机的八路抢答器设计方案第一章抢答器设计功能分析1.1 数字抢答器的概述对于抢答器我们大家来说都不陌生, 它是用于很多竞赛场合, 真正实现先抢先答, 让最先抢到题的选手来回答问题。

抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。

选手们都站在同一个起跑线上, 体现了公平公正的原则。

1.2 设计任务与要求1.基本要求:给主持人设置一个开关, 用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。

抢答器具有数据锁存和显示的功能。

抢答开始后, 若有选手按动抢答器按钮, 编号立即锁存, 并在LED数码上显示选手的编号, 同时扬声器给出音响提示。

此外, 要封锁输入电路, 禁止其他选手抢答。

1.发挥部分:2.抢答器具有定时抢答的功能, 且一次抢答的时间可以由主持人设定(如30秒)。

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

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

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

选手如果在主持人按开始键之前违规抢答, 系统报警, LED显示违规选手号码和FF, 直到主持人按下停止键。

第二章抢答器方案论证抢答器的实现方式有种多样, 通过纯电子器件搭建电路实现, 如优先编码器, 锁存器, 555定时器译码器等, 纯电子器件实现没有软件参与, 调试简单, 但是它不易于扩展和修改, 而且电路结构复杂, 调试困难电子, 电子器件管脚很多, 实际搭建起来费时费力, 焊接很容易出错。

于是, 我想到了用单片机实现。

单片机体积小价格低, 应用方便, 稳定可靠。

单片机将很多任务交给了软件编程去实现, 大大简化了外围硬件电路, 使外围电路的实现简单方便。

基于单片机的8路抢答器简单设计

基于单片机的8路抢答器简单设计

基于单片机的8路抢答器简单设计
要设计一个基于单片机的8路抢答器,需要使用以下材料和工具:
1.单片机:使用AT89C52或AT89S52单片机。

2.显示屏:使用8位共阴极数码管进行显示。

3.按钮开关:使用8个按键来进行答题。

4.蜂鸣器:用于提示抢答成功或失败。

5.电源:使用12V直流电源供电。

6.电路板、电线、焊接工具等。

设计步骤:
1.通过AT89C52单片机的端口P1.0~P1.7来控制各个数码管的显示,并通过P
2.0~P2.7控制对应的按钮。

2.在程序中设定一个计数器,每当有一个用户答题成功后,计数器加一。

3.如果出现两个或以上的用户同时答对,由单片机判断并发出蜂鸣声提示。

4.根据计数器的值来确定当前的排名,并在数码管上进行显示。

5.当抢答结束后,将计数器清零,等待下一轮抢答。

6.设计完整的电路图,进行焊接和调试。

7.将电路板安装在合适的外壳内,添加电源等其他必要设备,完成8路抢答器的制作。

以上就是基于单片机的8路抢答器的简单设计步骤。

基于单片机的八路抢答器程序设计

基于单片机的八路抢答器程序设计

基于单片机的八路抢答器程序设计(C语言)#include <reg51.h>#define uchar unsigned char#define GPIO_KEY P1sbit key1_zhuchi=P3^1; //主持人按键sbit key2_addt=P3^0; //加时按键sbit key3_mint=P3^2; //减时按键sbit beep=P1^5; //蜂鸣器报警sbit LED=P2^0; //LED指示灯sbit LSA=P2^2; //数码管位选sbit LSB=P2^3;sbit LSC=P2^4;//8段共阴数码管0~9段选uchar time,KeyValue,flag,count,m,a,tsbz;//倒计时时间,检测到的选手号,允许抢答标志,主持人按键检测次数,溢出标志,加时判断,时间调整标志uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void keyscan(); //键盘扫描函数void display(); //数码管显示函数void delay(uchar i); //延时函数void Key_down(); //选手按键按键扫描函数void main() //主函数{time=10; //初设抢答时间为10sKeyValue=0; //设置抢答没开始时选手号为0tsbz=1; //调时间标志flag=0; //答题允许标志m=0; //产生1S的溢出标志TMOD=0x01; //定时器0工作与方式1EA=1;ET0=1;while(1){keyscan();display();}}void keyscan() //键盘扫描{if(key2_addt==0&&tsbz==1) //为抢答或答题加时间{delay(8); //消抖if(key2_addt==0&&tsbz==1){while(!key2_addt);a++;if(a==1){TR0=0;time++;flag=0;}if(a==2){TR0=0;a=0;time++;flag=0;}}}if(key3_mint==0&&tsbz==1)//为抢答或答题减时间{delay(8);if(key3_mint==0&&tsbz==1){while(!key3_mint);a++;if(a==1){TR0=0;time--;flag=0;}if(a==2){TR0=0;a=0;time--;flag=0;}}}if(key1_zhuchi==0)//主持人按键按下{delay(8); //延时消抖if(key1_zhuchi==0){while(!key1_zhuchi); //按下count++;if(count==1) //主持人按键按下一次,开始抢答倒计时{tsbz=0; //不允许调时flag=1; //允许抢答TH0=0x3c;TL0=0xb0;TR0=1; //开启计时器}if(count==2) //主持人按键按下两次,切换到30s答题倒计时界面,可进行答题时间调整{LED=1;tsbz=1; //允许调整时间time=30;TR0=0; //停止计时flag=0; //不允许抢答}if(count==3) //主持人按键按下三次,答题时间开始倒计时{tsbz=0; //不允许调时TH0=0x3c;TL0=0xb0;TR0=1; //开启计时器flag=0; //不允许抢答}if(count==4) //主持人按键按下四次,全部清零{tsbz=1;TR0=0;time=10;flag=0;count=0;KeyValue=0;LED=1;}}}if(flag==1) //允许抢答后进行选手按键扫描{Key_down();}}void display() //显示函数{LSA = 1;LSB = 1;LSC = 1;P0=table[KeyValue]; //选手号码显示delay(100);P0=0x00; //消隐LSA = 0;LSB = 1;LSC =1;P0=0x40; //用来隔开时间显示和号码显示delay(100);P0=0x00; //消隐LSA = 1;LSB = 0;LSC =1;P0=table[time/10]; //计时十位显示delay(100);P0=0x00; //消隐LSA = 0;LSB = 0;LSC =1;P0=table[time%10]; //计时个位显示delay(100);P0=0x00; //消隐}void INT_0() interrupt 1 //中断函数{TH0=0x3c; //50ms定时初值TL0=0xb0;m++;if(m==20) //产生1S的时间{m=0;time--; //倒计时if(time<=5&&time>=0){uchar b=100;while(b--) //蜂鸣器报警{beep=~beep;delay(100);LED=~LED; //LED闪烁报警delay(50000);}}}if(time==0) //没选手抢答或答题时间结束{LED=0;TR0=0; //关闭定时器flag=0;//不允许抢答}}void delay(uchar i) //延时{while(i--);}void Key_down() //扫描选手按键{uchar c=100;uchar n=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)//读取按键是否按下delay(8);//延时10ms进行消抖if(GPIO_KEY!=0x0f)//再次检测键盘是否按下{GPIO_KEY=0X0F;//测试列switch(GPIO_KEY){case(0X07): KeyValue=1;break;case(0X0b): KeyValue=2;break;case(0X0d): KeyValue=3;break;case(0X0e): KeyValue=4;break;}GPIO_KEY=0XF0;//测试行switch(GPIO_KEY){case(0X70): KeyValue=KeyValue;break;case(0Xb0): KeyValue=KeyValue+4;break;case(0Xd0): KeyValue=KeyValue+9;break;case(0Xe0): KeyValue=KeyValue+9;break;}}}while((n<50)&&(GPIO_KEY!=0xf0)) //检测按键松手检测{delay(8);n++;}switch(KeyValue) //读取选手按键{case 1: //一号选手抢答成功delay(8);if(KeyValue==1){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 2: //二号选手抢答成功delay(8);if(KeyValue==2){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 3: //三号选手抢答成功delay(8);if(KeyValue==3){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 4: //四号选手抢答成功delay(8);if(KeyValue==4){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 5: //五号选手抢答成功delay(8);if(KeyValue==5){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 6: //六号选手抢答成功delay(8);if(KeyValue==6){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 7: //七号选手抢答成功delay(8);if(KeyValue==7){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;case 8: //八号选手抢答成功delay(8);if(KeyValue==8){flag=0;TR0=0;while(c--) //蜂鸣器提示抢答成功{beep=~beep;delay(100);}LED=0;}break;}}。

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

课程设计报告课程名称:单片机课程设计报告题目:8位竞赛抢答器的设计学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:2013 年12月25日课程设计任务书摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

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

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

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

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

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

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

关键词:89c52;电路;显示;按键目录一、概述 (1)二、方案设计 (1)三、硬件电路设计 (2)1、抢答器的电路框图 (2)2、单元电路 (3)2.1、抢答器电路 (3)2.2、时序控制电路 (3)2.3、复位电路 (3)3、时钟震荡电路 (3)4、报警电路 (3)四、软件设计 (4)1、系统主程序 (4)2、系统程序 (5)五、结论与心得 (10)六、参考文献 (10)一、概述本实验电路由抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路组成。

通过复位按键FW,电路进入准备就绪状态。

将抢答时间设定在30S,然后按下开始键开始抢答。

,在电路中“S0-S7”为8路抢答器的8个按键,当有键按下,程序锁定信号,从P2口输出抢答者号码的七段码值,送到数码管显示,并封锁按键,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。

当设定的抢答时间结束,仍然没有抢答键被按下,则产生已经超时的报警信号,结束抢答。

当要进行下一次的抢答时,首先按一下复位按键,电路复位。

该设计是以MCS51为基础,结合单片机汇编语言知识,设计而成的8位竞赛抢答器。

在伟福试验箱上实现仿真。

主持人按下“开始抢答键”既单脉冲键后,喇叭响0.5秒给出提示信号,并立刻进入抢答倒计时(预设30秒抢答时间)此时,数码显示管上显示倒计时时间:有选手抢答,停止计时,八段数码显示抢答时间和选手号;无选手抢答,倒计时30秒后,显示00。

然后选手等待主持人按下按钮开始新一轮抢答。

注意:(1)由于设计的局限性,如果在无人抢答期间,30秒还未到,主持人不能按下重新下一轮抢答按钮。

(2)由于试验箱上按钮数量有限,故选用开关代替按钮,供8位选手抢答使用。

鉴于开关与按钮动作过程的差异,所以每次当选手抢答,拨下开关时必须将开关复位。

(3)当系统出现错误的时候,停止操作,重新编译开始。

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

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

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

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

<2>单片机有一般电脑所必须的器件。

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

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

其工作原理为:接通电源后,主持人按下开关即为“开始”状态,宣布“开始”抢答器工作。

编号显示器灭灯,定时器显示设定时间。

定时器倒计时,扬声器给出5s声响提示。

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

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次操作"开始、停止"状态按键。

图3.1.1电路框图2、单元电路3.2.1、抢答器电路该电路完成两个功能:一是判断出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。

如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。

3.2.2、时序控制电路时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。

b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。

3.2.3、复位电路设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。

3、时钟震荡电路时钟震荡电路单片机必须在89C52驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元。

4、报警电路报警电路用于报警,当遇到报警信号时,发出警报。

8952动喇叭的信号为各种频率的脉冲。

因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。

在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。

不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。

图3硬件电路图四、软件设计1、系统主程序为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下s1按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。

当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。

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

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

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

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

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

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

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

图4.1主程序方框图2、系统程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit s1=P3^0;sbit we=P3^6;uchar h[]={0xe0,0xd0,0xb0,0x70};uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar num,count;uchar a=0,c=0,t,bb=0,t1;void delay(uint z){uint x,y;for(x=110;x>0;x--)for(y=z;y>0;y--);}void write_sx(){P2=0xdf;P0=0x08;P2=0x00;P0=0xff;P2=0xff;P0=table[t1];P2=0x00;P0=0x00;delay(5);P2=0xdf;P0=0x40;P2=0x00;P0=0xff;P2=0xff;P0=table[(t/10)%10];P2=0x00;P0=0x00;delay(5);P2=0xdf;P0=0x80;P2=0x00;P0=0xff;P2=0xff;P0=table[t%10];P2=0x00;P0=0x00;delay(5);}void init(){P2=0xbf;P0=0xbf;TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=0;ET0=1;TR0=1;}void keyscan(){ we=0;if(s1==0){delay(5);if(s1==0){while(!s1);EA=1;P2=0xbf;P0=0xff;t=30;a=1;t1=10;c=0;}}if(c==0){P3=0xfd;num=P3;num=num&0xf0;if(num!=0xf0){delay(5);if(num!=0xf0){while(P3!=0xfd);c=1;EA=0;if(num==h[3])t1=1;if(num==h[2])t1=2;if(num==h[1])t1=3;if(num==h[0])t1=4;}}P3=0xfb;num=P3;num=num&0xf0;if(num!=0xf0){delay(5);if(num!=0xf0){while(P3!=0xfb);c=1;EA=0;if(num==h[3])t1=5;if(num==h[2])t1=6;if(num==h[1])t1=7;if(num==h[0])t1=8;}}}}void main(){init();while(1){keyscan();if((a==1)&&((t>0)&&(t<=30))){write_sx();}if(t==0){EA=0;t=0;t1=10;}}}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==10){P2=0xbf;P0=0xbf;}if(count==20){count=0;t--;}}五、结论与心得通过这次课程设计,我深刻的认识到自己在许多方面的不足。

相关文档
最新文档