基于51单片机的八路抢答器要点

合集下载

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

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

基于STC89C51单片机八路抢答器设计摘要:本文基于STC89C51单片机,设计了一款八路抢答器。

该抢答器具有操作简便、反应迅速、功能齐全、便于维护等特点。

本文对该抢答器的硬件设计、软件设计以及测试结果进行了详细说明,并对其应用前景进行了展望。

关键词:STC89C51单片机;八路抢答器;硬件设计;软件设计;测试结果。

1. 引言抢答器是一种常见的竞赛设备,广泛应用于学校、培训机构、比赛等场合。

本文基于STC89C51单片机,设计了一款八路抢答器。

该抢答器不仅具有操作简便、反应迅速、功能齐全的特点,还具备便于维护和升级的优点。

本文将详细介绍该抢答器的硬件设计、软件设计和测试结果。

2. 硬件设计本文所设计的八路抢答器主要由单片机、按键、显示器组成。

2.1 单片机本文所选用的单片机为STC89C51,其主要特点是具有高速、低功耗、中断响应快等优点,以及资源丰富、易于扩展等特点,非常适合抢答器这类应用场景。

该单片机的主频为11.0592MHz,采用通过平板线连接下载程序。

2.2 按键抢答器共有8个按键,分别对应八个参赛选手,按下按键后,会立即向单片机发送一个信号,告诉单片机该选手按下按键。

2.3 显示器抢答器显示屏采用1602液晶显示屏,显示选手和得分数。

3. 软件设计本文所设计的八路抢答器的软件主要包括中断服务程序、按键扫描程序、显示程序等。

3.1 中断服务程序当有选手按下按键时,会触发外部中断,中断服务程序首先获取按下的按键编号,然后根据该编号更新相应选手的得分情况,最后根据得分情况更新显示器。

3.2 按键扫描程序按键扫描程序定时扫描每个按键是否按下,如果按下,则触发外部中断,更新对应选手的得分情况。

3.3 显示程序显示程序根据选手得分情况更新显示器上的显示内容。

4. 测试结果为了验证所设计的八路抢答器的效果,进行了多次测试。

测试结果表明,该抢答器具有反应快、稳定可靠、易于操作等特点,达到了预期的设计目标。

基于51单片机的8路抢答器

基于51单片机的8路抢答器

基于51单片机的8路抢答器摘要此次设计提出了用AT89S51单片机为核心控制元件,设计一个简易的抢答器,本方案以AT89S51单片机作为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的八路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用汇编语言编程,使其实现一些基本的功能。

本设计的系统实用性强、判断精确、操作简单、扩展功能强。

它的功能实现是比赛开始,主持人读完题之后按下总开关,即计时开始,此时数码管开始进行30s的倒计时,直到有一个选手抢答时,对应的会在数码管上显示出该选手的编号和抢答所用的时间,同时蜂鸣器也会发出声音,以提示有人抢答本题,如果在规定的60s时间内没有做出抢答,则此题作废,即开始重新一轮的抢答。

在抢答和回答时间的最后5s,蜂鸣器都会给予报警提示。

关键词:单片机、AT89S51、抢答器目录第一章前言 (1)第二章各模块的选择和论证 (3)2.1抢答器显示模块选择 (3)2.2 控制器选择 (4)2.3 键盘选择 (5)2.4 时钟频率电路的设计 (7)2.5 复位电路的设计 (7)2.6 报警电路 (8)2.7 AT89C51单片机简单概述 (8)2.7.1 AT89C51单片机的结构 (8)2.7.2 AT89C51单片机管脚说明 (9)第三章模块最终方案的设计 (12)3.1总体设计思路 (12)3.2 功能介绍 (12)3.3 抢答器的软件设计 (12)3.4 数码显示软件设计 (13)第四章系统调试与仿真 (15)4.1 软件调试问题分析 (15)4.2 Proteus 仿真 (16)第五章电路板的制作与检查 (17)5.1 焊接的问题及解决 (17)第六章总结 (18)6.1 论文总结 (18)6.2 工作展望 (19)参考文献、资料索引 (20)致谢 (21)附录 (22)附录一主程序清单 (22)附录二单片机八路智能抢答器原理图 (32)附录三 Proteus仿真原理图 (33)第一章前言单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

基于51单片机的8路抢答器

基于51单片机的8路抢答器

基于51单片机的8路抢答器摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

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

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

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

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

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

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

关键词:51单片机,抢答器,时间设定目录1 抢答器设计功能分析 (1)1.1 数字抢答器的概述 (1)1.2 设计任务与要求 (1)2 方案设计 (2)3 硬件电路设计 (3)3.1 总体设计 (3)3.2 外部振荡电路 (3)3.3 复位电路的设计 (4)3.4 显示电路的设计 (4)3.5按钮输入电路的设计 (4)3.6 发声 (5)4 系统软件设计 (6)4.1 程序系统结构图 (6)4.2 程序流程图 (6)4.3 程序代码: (9)4.3.1 查询程序: (10)4.3.2 非法抢答处理程序: (10)4.3.3 倒计时程序(包括有效抢答程序): (11)4.3.4 正常抢答处理程序: (13)4.3.5 犯规抢答程序: (14)4.3.6 显示程序: (15)4.3.7 延时(显示和去抖动用到): (16)4.3.8 TO溢出中断(响铃程序): (17)4.3.9 T1溢出中断(计时程序): (17)总结 (18)参考文献 (19)1 抢答器设计功能分析1.1 数字抢答器的概述对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。

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

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

基于c51单⽚机⼋路抢答器设计前⾔单⽚机和其他微型机⼀样,也是由CPU(包括运算器和控制器)、存储器、输⼊设备、输出设备组成,只不过单⽚机是将CPU、RAM、ROM、定时/计数器,以及输⼊/输出(I/O)接⼝电路等计算机的主要部件集成在⼀⼩块硅⽚上的单⽚微型计算机。

它具有体积⼩、可靠性⾼、性价⽐⾼等优点,主要应⽤于⼯业检测与控制、计算机外设、只能仪器仪表、通讯设备、家⽤电器和机电⼀体化产品等领域。

题⽬15 ⼋路抢答器的设计★★设计任务及要求设计任务基于MCS-51系列单⽚机AT89C51,设计⼀个⼋路抢答器。

设计要求1)抢答器同时供⼋名选⼿或⼋个代表队⽐赛,分别⽤8个按钮K1~K8.2)设置⼀个系统清除和抢答控制开关K0,该开关由主持⼈控制。

3)抢答器具有锁存与显⽰功能。

即选⼿按动按钮,锁存相应的编号,并将优先抢答选⼿的编号⼀直保存到主持⼈将系统清除为⽌。

4)主持⼈按下抢答“开始”按钮,抢答开始。

5)当某⼀路抢答成功时,在数码管上显⽰成功信息和该路的号数。

6)当某⼀路抢答违规时,能在数码管上显⽰违规信息和该路的号数。

7)@具有定时抢答功能,且⼀次抢答的时间由主持⼈设定(如30秒)。

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

8)@参赛选⼿在设定的时间内进⾏抢答,抢答有效,定时器停⽌⼯作显⽰器上显⽰选⼿的编号和抢答的时间,并保持到主持⼈将系统清除为⽌。

9)@如果定时时间已到,⽆⼈抢答,本次抢答⽆效,系统报警并禁⽌抢答,定时显⽰器上显⽰00。

10)☆其他功能。

硬件设计芯⽚的选择VCC(40):+5V;GND(20):接地;P0⼝(39-32):不外接⽚外存储器及不扩展时可作为准双向输⼊/输出接⼝,扩展是分时复⽤为低8位地址总线;P1⼝(1-8):可作为准双向I/O接⼝使⽤;P2⼝(28-21):外接及扩展时⽤作⾼8位地址总线;P3⼝(10-17):有两种功能,优先选⽤第⼆功能;RST(9):复位输⼊。

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

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

基于单片机八路抢答器设计设计基于单片机的八路抢答器,需要考虑以下几个方面:硬件设计、软件设计以及抢答器工作流程。

硬件设计:1.单片机选择:可以选择一款具有较多IO引脚和较强处理能力的单片机,如STC89C51、这款单片机具有40个IO口,并且内部集成了PWM、ADC等模块,适合本次设计。

2.触发器设计:使用8个按钮作为触发器,每个按钮与一个IO口连接。

当有用户按下按钮时,会通过IO口向单片机发送一个高电平信号。

3.显示模块设计:可以使用LED灯作为显示模块,用于显示抢答的结果。

每个参与者对应一个LED灯,抢答成功的参与者对应的LED灯会亮起。

4.电源模块设计:使用适配器将220V交流电转换为5V直流电,供给单片机和LED灯。

5.电路连接:将按钮和LED灯与IO口连接,并接地,保持电路的正确连接。

软件设计:1.IO口初始化:将涉及到的IO口初始化为输入或输出口。

2.中断设置:将按钮连接到中断引脚,当按钮按下时,触发中断。

在中断函数内根据按下的按钮编号,判断抢答的结果。

3.抢答逻辑:设计一个数组来保存参与抢答者的结果。

当用户按下按钮后,根据按下按钮的编号,将结果保存到数组中。

根据题目的要求,可以选择先按下的为正确答案或者最后按下的为正确答案。

4.显示结果:根据抢答结果,控制相应的LED灯点亮或熄灭。

抢答器工作流程:1.开机初始化:开机后,进行硬件初始化,包括IO口的初始化和LCD屏幕的初始化。

2.抢答准备:显示等待抢答,等待用户按下按钮。

3.抢答开始:当用户按下按钮后,系统根据按下按钮的编号判断答案是否正确,并将结果保存到数组中。

4.结果显示:根据抢答结果,控制相应的LED灯点亮或熄灭,显示抢答结果。

5.重置抢答器:在每轮抢答结束后,将抢答器重置为初始状态,清空结果数组,准备下一轮抢答。

通过上述硬件设计、软件设计以及抢答器工作流程的设计,实现了基于单片机的八路抢答器。

抢答器的设计可以根据实际需求进行修改和扩展,例如增加显示屏幕显示更多信息、添加声音提示等,以满足不同的使用场景。

八路抢答器-基于单片机C语言

八路抢答器-基于单片机C语言

#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;sbit k6=P1^5;sbit k7=P1^6;sbit k8=P1^7; //选手按键sbit beep=P3^6; //蜂鸣器uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77}; //0-9代码(共阴极)uchar shiwei,gewei,xuanshou,count,i,second;uchar score1,score2,score3,score4,score5,score6,score7,score8;//选手1~8的分数uint t,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8;void Timer(){TMOD|=0x01;TH0=0xd8; //初值55536,计数10000次,每次1US,总计10msTL0=0xf0;IE=0x82; //这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时TR0=1;}void tim(void) interrupt 1 using 1 //为定时中断TR0{TH0=0xd8; //重新赋值TL0=0xf0;count++;if(count==100) //100*10ms=1秒{count=0;second--; //秒减1}}void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);//延时1ms}void display (uchar shiwei,gewei,xuanshou) //显示函数{P2=0xfe; //打开显示时间十位的位选低电平有效1111 1110 P0=shiwei;//显示十位delay(5);P2=0xfd; //个位位选1111 1101P0=gewei;delay(5);P2=0xf7; //选手位选1111 0111P0=xuanshou;delay(5);}void dis(void)//调用显示函数{shiwei=tab[second/10];gewei=tab[second%10];xuanshou=tab[i];display (shiwei,gewei,xuanshou);}void init() //初始化函数{P2=0x04;//0000 0100P0=0x3f;//数码管共阴0011 1111显示0t=0;beep=0;//蜂鸣器i=0;second=29;score1=60;score2=60;score3=60;score4=60;score5=60;score6=60;score7=60;score8=60;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;}void main()//主函数{init();//调用初始化函数if(k==1){ m=0; if(k1==0) {delay(5);if(k1==0);while(!k1);beep=1;delay(500);beep=0;} // 违规抢答显示号码报警while(t){if(m==0) //开关,保证程序只执行一次{switch(t){case 1:{TR0=0;i=1;second=score1;beep=1;delay(500);beep=0;a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; //有选手抢答时显示选手号码蜂鸣器响,时间为0,t和i对应}}} }if(k2==0) {delay(5);if(k1==0);while(!k1);t=2;beep=1;delay(500);beep=0;}if(k3==0) {delay(5);if(k1==0);while(!k1);t=3;beep=1;delay(500);beep=0;}if(k4==0) {delay(5);if(k1==0);while(!k1);t=4;beep=1;delay(500);beep=0;}if(k5==0) {delay(5);if(k1==0);while(!k1);t=5;beep=1;delay(500);beep=0;}if(k6==0) {delay(5);if(k1==0);while(!k1);t=6;beep=1;delay(500);beep=0;}if(k7==0) {delay(5);if(k1==0);while(!k1);t=7;beep=1;delay(500);beep=0;}if(k8==0) {delay(5);if(k1==0);while(!k1);t=8;beep=1;delay(500);beep=0;}}if(k==0){Timer();//中断定时器打开delay(10);while(!k);while(1){dis();m=0;n=0;if (second==29){beep=1;delay(500);beep=0;}if(second==0){TR0=0;n=1;if(k1==0){delay(5);if(k1==0);while(!k1);t=1;beep=1;delay(500);beep=0;} // 违规抢答显示号码报警if(k2==0){delay(5);if(k1==0);while(!k1);t=2;beep=1;delay(500);beep=0;}if(k3==0){delay(5);if(k1==0);while(!k1);t=3;beep=1;delay(500);beep=0;}if(k4==0){delay(5);if(k1==0);while(!k1);t=4;beep=1;delay(500);beep=0;}if(k5==0){delay(5);if(k1==0);while(!k1);t=5;beep=1;delay(500);beep=0;}if(k6==0){delay(5);if(k1==0);while(!k1);t=6;beep=1;delay(500);beep=0;}if(k7==0){delay(5);if(k1==0);while(!k1);t=7;beep=1;delay(500);beep=0;}if(k8==0){delay(5);if(k1==0);while(!k1);t=8;beep=1;delay(500);beep=0;}if(k==0){beep=1;delay(500);beep=0;second=29;TR0=1;m=1;}}//如果再次按下开始按钮,蜂鸣器响0。

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

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

基于80C51单片机的八路抢答器设计题目:基于80c51单片机的八路抢答器设摘要:八路智力抢答器是一个可供八个参赛组进行智力竞赛的电路装置,该装置主要就是由单片机最轻系统、控制电路(八个球手答对按钮;三个主持人控制按钮;四个修改按钮)、数码显示电路与蜂鸣器电路组成的。

单片机(mcu)就是目前在电气控制技术中广泛应用的关键元件。

它具备体积小,稳中求进定性高,应用范围广,控制能力强,升级改造容易等诸多优点。

本论文介绍使用atmel公司at89s52单片机设计八路智能抢答器。

软件使用汇编语言编程,汇编语言属于计算机领域的低级语言,具有简明易懂,执行效率高等的优点。

智能八路抢答器具备答对时间与答题时间调整,答对错误报警提示信息等功能,可以广泛应用于各类知识竞赛。

关键词:抢答器;单片机;硬件系统;软件编程一、系统概述与原理方框图在文中,我对八路抢答器的总体设计及其主要的功能特点展开直观的分析,并给出它的特点,实现的功能以及系统的简单操作,以对单片机及其控制系统的介绍。

(一)单片机技术发展的概述与系统问题的提出目前,单片机正朝着高性能和多品种方向发展,单片机的发展正朝着cmos化,低功耗,小体积,大容量,高性能,低价格和外围电路的内装化等发展。

近几年,由于其他原因chmos技术的进步,大大地推动了单片机的cmos化,此种芯片除了低功耗外,还具有功耗的可控性,使单片机可以工作在功乏细致管理状态,特别就是iic,api等串行总线的导入,可以并使单片机的插槽设计得更少,单片机系统结构更加简化及规范化。

我们设计出来的8路抢答器就是一种基于mcs-51单片机的硬件和软件设计及实现方法,这种电路设计具有按键有效提示,输入错误提示,控制报警电路,在线修正功能等多种功能,保密性弱,灵活性低,特别适用于于家庭!办公室!学生宿舍及宾馆等场所。

它具有全集成化,智能化,高精度,高性能,高可靠性和高价格等优点,就是一个应该推展的一种方法。

(完整版)基于51单片机的八路抢答器要点

(完整版)基于51单片机的八路抢答器要点

题目鉴于单片机的八路抢答器学院名称信息工程学院指导老师X X X班级11级电信 2班学号学生姓名时间摘要在平常生活中,我们能够在电视,或许现实生活活动现场能够看到在答题或许游戏中,他总能第一时间测到谁是第一个,让我们的世界少了那些不用要的争议,那是什么,那就是抢答器。

经过一次又一次科学的进步,单片机在发展,各样功能运用到现实生活的各样领域让我们生活更为的靠近理想话以及经过简单的操作达成手工没法达成或许很难做到的事情,比如家电,通信,商业,工业,航空,航天,军事以及汽车方面。

自然此次我们做的是此中的一种那就是抢答器,它拥有很高的安全性、靠谱性,正确性,应用日趋宽泛。

本次设计使用 AT89C51 实现一鉴于单片机的抢答器设计,其主要拥有以下功能:(1)抢答时间调试,限不时间调试这两个功能都是要在最开始时调试。

能够改变调试抢答时间和限不时间。

(2)声光报警系统。

抢答时间倒计不时会报警闪耀,以及蜂鸣器报警还有时间提示。

(3)锁定功能。

为了很好的在第一时间锁定第一位,抢答器做了很好的反应功能,为此能够更为精准的锁定反应第一位抢答器是由一个 AT89C51、输出八段显示电路。

此外系统还有 LED 提示灯,报警蜂鸣器等。

抢答器的功能在于反应以及最快的时间做出选择:(1)限不时间调试·抢答时间调试功能:这是一个十分人性化的设计,他能够在不一样的场适用不一样的时间来限制抢答以及限不时间的调试。

(2)抢答锁定功能:当按下抢答键时,抢答器会判断第一个抢答的以及显示抢答人的编号。

(3)报警系统:当抢答倒计时到 5 秒时开始二极管开始闪耀报警蜂鸣器开始鸣叫。

主要的设计实行过程:第一,采纳 ATMEL 企业的单片机 AT89C51,以及选购其余电子元器件。

第二步,使用 Protel 设计硬件电路原理图,并设计 PCB图达成人工布线。

第三步,使用 Medwin 软件编写单片机的 C 语言程序、仿真、软件调试。

第四部,使用 PROTEUS软件进行模拟软、硬件调试。

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

基于单片机的八路抢答器设计
[5]李仁发、肖玲、吴强.数字逻辑设计(第四版).人民邮电出版社,2006.05
[6]51单片机学习网/
[7]单片机学习网/
[8]《单片机C语言应用程序设计》第四版,马忠梅主编,北京航空航天大学
出版社
[9]《单片机开发与典型工程项目实例详解》,边海龙、孙永奎编著,电子工业
出版社
[10]《51单片机C语言教程----入门、提高、开发、拓展全攻略》,郭天祥编著,
电子工业出版社
[11]华光,陈大钦.电子技术基础.第四版.北京:高等教育出版社,1999. 1~15
[12]张延庆,张开华,朱兆宗.半导体集成电路.上海:上海科学技术出版社,1986.
[13][匈]M·赫彼.模拟集成电路.北京:高等教育出版社,1984.
G.B. Stringfellow and M.G. Craford,“High Brightness Light Emitting Diodes”, Semiconductors and Semi-metals Vol. 48,Academic Press, 1997
指导
教师
签章
年 月 日
专业毕业设计小组审查意见
年 月 日
备注
说明:毕业设计任务书由指导教师根据课题的具体情况填写,经专业毕业设计小组审查后生效。任务书必须在毕业设计开始前一个月内填写并发给学生。
5.第10~12周:软硬件综合调试。
6.第13周:整理设计论文,准备答辩。
主要
参考
文献
[1]张毅坤.单片微型计算机原理及应用,西安电子科技大学出版社1998
[2]余锡存曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社
[3]苏家健.单片机原理及应用技术.高等教育出版社,2004.11

51单片机八路数码管抢答器控制原理

51单片机八路数码管抢答器控制原理

51单片机八路数码管抢答器控制原理
该抢答器通过使用51单片机作为控制器,实现了对8个数码管的控制,以及对抢答器的各种状态进行监测,并通过7个按键进行操作。

同时,该抢答器采用中断方式实现按键操作,提高了实时性和精确性。

具体实现原理如下:
1. 程序启动后,先对8个数码管和7个按键进行初始化,设置对应的端口和通道。

2. 在主循环中,通过调用显示函数,实现对8个数码管的控制,实时更新抢答器的状态和抢答者的得分情况。

3. 通过中断方式实现按键的操作,对应的中断服务函数会检测按键是否按下,如果是则根据按键的编号执行对应的操作,如启动抢答、重置得分、结束游戏等。

4. 在启动抢答后,每隔一段时间会通过随机数生成器选择一个抢答者,并通过数码管显示其编号,此时其他抢答者需要尽快按下对应的按键,首先按下的抢答者将获得得分,并且进行下一轮抢答。

总之,该抢答器通过51单片机的控制和多种功能的实现,可以有效地提高游戏的趣味性和竞争性,适用于各种场合的抢答游戏。

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

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

基于51单片机八路抢答器的设计八路抢答器是一种常见的电子设备,利用该设备可以实现多人同时抢答的功能。

本设计基于51单片机,通过电路和程序的设计,实现了一个八路抢答器。

一、硬件设计1.单片机选择本设计选择51单片机作为控制核心,采用STC89C52微控制器,该单片机具有丰富的外设接口和较大的存储空间,能够满足实现八路抢答器的要求。

2.抢答按键设备中需要设置八个抢答按键,用于参与者抢答。

按键采用常闭型按键,接通时为低电平,用于触发中断。

3.电源设计为了提供稳定的电源给抢答器,设计中采用了5V稳压电源电路,供电采用AC220V转DC5V电源适配器。

4.显示设计为了方便显示抢答结果,本设计采用了一个共阴数码管,用于显示抢答结果。

具体显示方式根据需求进行编程显示。

5.连接器设计为方便接线和扩展,设计中使用了排针排插连接器,将各个按键、数码管等连接到主控板上。

二、软件设计1.引脚设置首先需要对单片机的I/O引脚进行设置,将各个按键连接到相应的引脚上。

同时,还需要设置数码管的引脚,用于控制显示。

2.中断设置为了实现按键的检测和抢答功能,需要设置外部中断。

具体的中断设置根据引脚的连线情况进行配置。

3.抢答逻辑抢答的逻辑可以根据需求进行设计,本设计采用最先按下的键位为答题者,其他键位将被屏蔽。

按下按键后,相应的数码管会显示该答题者的编号或名称,并输出一个信号用于记录答题者的顺序。

4.结果显示抢答结束后,根据答题者的顺序,将结果显示在数码管上。

可以根据需求进行设计,如按照答题者的编号显示。

5.功能扩展除了基本的抢答功能外,还可以对设备进行功能扩展。

如设置答题时间限制,设置显示答题者的得分,设置答题者的排名等。

三、PCB设计完成硬件电路和软件设计后,需要进行PCB设计,将各个元件进行布局,进行连线和焊接。

PCB设计需要保证连接的正确性和布线的合理性。

四、测试与调试完成PCB的焊接后,需要进行设备的测试与调试。

通过逐个按下按键,观察数码管的显示结果是否正确。

基于单片机的八路智能抢答器的设计_毕业设计

基于单片机的八路智能抢答器的设计_毕业设计

基于单片机的八路智能抢答器的设计_毕业设计华北科技学院毕业设计(论文)根据抢答器的功能,智能抢答器的设计要求如下:抢答器可以同时供8名选手或8个代表队比赛使用;主持人可以通过智能抢答器的按键设定每道题的抢答时间和回答时间;具有清零和非法抢答控制功能,设置一个系统清除和抢答控制开关,并由主持人操控;当主持人启动“开始抢答按键”后,定时器进行减计时,抢答时间耗尽后禁止抢答;倒计时5秒时,如果仍无人抢答,则系统每1s报警一次,用以提示参赛选手;抢答器具有锁存与显示功能。

即选手按下按键,锁存相应选手的参赛编号,并在LED数码管上显示,选手抢答实行优先锁存,其他按键者将不能响应,以便公平地选择第一个抢答者;参赛选手在设定的时间内进行抢答,抢答有效,显示器上显示选手的编号,同时进入回答问题的时间倒计时;倒计时期间,主持人想终止倒计时,可以按下“停止”键,系统会自动进入准备状态。

本系统采用软硬件结合的方法而设计,其中硬件设计是借用单片机AT89C51为中心控制模块,采用模块化设计思想,根据系统功能划分成六个模块,分别为:核心控制模块、电源模块、时钟与复位模块、按键输入模块、显示模块、报警模块。

软件设计是采用汇编语言编程。

按键输入模块共有14个按键,分为抢答按键和控制按键。

抢答按键共有八个,分别为S1―S8,供抢答选手进行抢答使用;控制按键有六个,分别为S9―S14,其中S9和S10分别为“抢答时间调整键”和“回答时间调整键”;S11和S12分别为时间“加1”和“减1”按键;S13和S14分别为“抢答开始按键”和“停止按键”。

显示模块本系统采用四个共阳极LED数码管显示,一个数码管用来显示抢答到问题的选手的号码,两个用来显示倒计时时间,一个未使用的数码管作为以后的扩展使用。

时钟与复位模块包括时钟电路和复位电路,单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。

基于51单片机的八路抢答器要点

基于51单片机的八路抢答器要点

题目基于单片机的八路抢答器学院名称信息工程学院指导老师 X X X 班级11级电信2班学号学生姓名时间在日常生活中,我们可以在电视,或者现实生活活动现场可以看到在答题或者游戏中,他总能第一时间测到谁是第一个,让我们的世界少了那些不必要的争议,那是什么,那就是抢答器。

通过一次又一次科学的进步,单片机在发展,各种功能运用到现实生活的各种领域让我们生活更加的接近理想话以及通过简单的操作完成手工无法完成或者很难做到的事情,例如家电,通信,商业,工业,航空,航天,军事以及汽车方面。

当然这次我们做的是其中的一种那就是抢答器,它具有很高的安全性、可靠性,准确性,应用日益广泛。

本次设计使用 AT89C51 实现一基于单片机的抢答器设计,其主要具有如下功能:(1)抢答时间调试,限时时间调试这两个功能都是要在最开始时调试。

可以改变调试抢答时间和限时时间。

(2)声光报警系统。

抢答时间倒计时时会报警闪烁,以及蜂鸣器报警还有时间提示。

(3)锁定功能。

为了很好的在第一时间锁定第一位,抢答器做了很好的反馈功能,为此能够更加精确的锁定反馈第一位抢答器是由一个AT89C51、输出八段显示电路。

另外系统还有 LED 提示灯,报警蜂鸣器等。

抢答器的功能在于反馈以及最快的时间做出选择:(1)限时时间调试·抢答时间调试功能:这是一个十分人性化的设计,他可以在不同的场合用不同的时间来限定抢答以及限时时间的调试。

(2)抢答锁定功能:当按下抢答键时,抢答器会判断第一个抢答的以及显示抢答人的编号。

(3)报警系统:当抢答倒计时到5秒时开始二极管开始闪烁报警蜂鸣器开始鸣叫。

主要的设计实施过程:首先,选用 ATMEL公司的单片机 AT89C51,以及选购其他电子元器件。

第二步,使用Protel设计硬件电路原理图,并设计 PCB图完成人工布线。

第三步,使用Medwin 软件编写单片机的 C语言程序、仿真、软件调试。

第四部,使用 PROTEUS 软件进行模拟软、硬件调试。

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

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

基于51单片机八路抢答器课程设计一、引言在现代教育中,抢答器作为一种教学辅助工具经常被用于进行课堂互动和知识点检测。

本课程设计旨在基于51单片机设计一个八路抢答器,通过硬件电路和软件程序的配合,实现对答题速度的测量和抢答器的控制。

二、实验目的1.熟悉并掌握51单片机的基本原理和编程方法;2.学会使用按键、LED等外设控制电路进行实验设计;3.理解抢答器的工作原理,掌握测量答题速度的方法;4.实际动手设计并制作一个八路抢答器。

三、实验原理3.1 51单片机基本原理51单片机是一种常见的单片机,具有低功耗、低成本和强大的功能特点。

它通过内部的CPU、存储器、I/O口等组成,可以实现各种控制任务。

在本次实验中,我们将使用51单片机来控制八路抢答器的功能。

3.2 抢答器的原理八路抢答器的原理是基于51单片机和按键、LED等外设的配合实现的。

抢答器中的每个按键对应一个LED灯,当某个按键被按下时,对应的LED灯会亮起。

同时,51单片机会记录下按键按下的时间,用于测量答题速度。

抢答器的控制逻辑可以通过编程实现。

四、实验步骤4.1 硬件电路设计1.连接51单片机与按键、LED等外设,确保电路连接正确;2.按照抢答器的八路设计,为每个按键连接一个LED灯;3.确保电路的供电正常,能够正常控制LED灯的亮灭。

4.2 软件程序设计1.编写51单片机的控制程序,实现按键与LED灯的互动;2.程序中需要包括按键检测、LED亮灭控制和答题速度记录等功能;3.调试程序,确保各个功能正常运行;4.将程序下载到51单片机中,进行全面测试。

五、实验结果5.1 硬件电路测试1.针对每个按键依次按下,观察对应的LED灯是否亮起;2.测试按键按下时的按键反馈是否正常;3.检查电路连接是否稳定,无松动情况。

5.2 软件程序测试1.模拟按键按下,观察对应的LED灯是否亮起;2.检查答题速度记录功能是否正常;3.检查程序逻辑是否正确,没有出现死循环等异常情况。

(完整版)基于51单片机的八路抢答器要点

(完整版)基于51单片机的八路抢答器要点

题目基于单片机的八路抢答器学院名称信息工程学院指导老师 X X X 班级11级电信2班学号学生姓名时间在日常生活中,我们可以在电视,或者现实生活活动现场可以看到在答题或者游戏中,他总能第一时间测到谁是第一个,让我们的世界少了那些不必要的争议,那是什么,那就是抢答器。

通过一次又一次科学的进步,单片机在发展,各种功能运用到现实生活的各种领域让我们生活更加的接近理想话以及通过简单的操作完成手工无法完成或者很难做到的事情,例如家电,通信,商业,工业,航空,航天,军事以及汽车方面。

当然这次我们做的是其中的一种那就是抢答器,它具有很高的安全性、可靠性,准确性,应用日益广泛。

本次设计使用 AT89C51 实现一基于单片机的抢答器设计,其主要具有如下功能:(1)抢答时间调试,限时时间调试这两个功能都是要在最开始时调试。

可以改变调试抢答时间和限时时间。

(2)声光报警系统。

抢答时间倒计时时会报警闪烁,以及蜂鸣器报警还有时间提示。

(3)锁定功能。

为了很好的在第一时间锁定第一位,抢答器做了很好的反馈功能,为此能够更加精确的锁定反馈第一位抢答器是由一个AT89C51、输出八段显示电路。

另外系统还有 LED 提示灯,报警蜂鸣器等。

抢答器的功能在于反馈以及最快的时间做出选择:(1)限时时间调试·抢答时间调试功能:这是一个十分人性化的设计,他可以在不同的场合用不同的时间来限定抢答以及限时时间的调试。

(2)抢答锁定功能:当按下抢答键时,抢答器会判断第一个抢答的以及显示抢答人的编号。

(3)报警系统:当抢答倒计时到5秒时开始二极管开始闪烁报警蜂鸣器开始鸣叫。

主要的设计实施过程:首先,选用 ATMEL公司的单片机 AT89C51,以及选购其他电子元器件。

第二步,使用Protel设计硬件电路原理图,并设计 PCB图完成人工布线。

第三步,使用Medwin 软件编写单片机的 C语言程序、仿真、软件调试。

第四部,使用 PROTEUS 软件进行模拟软、硬件调试。

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

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

摘要随着电子技术的飞速发展,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。

基于单片机的控制系统已广泛应用于各行业。

此次设计提出了以AT89C51单片机为核心控制元件,设计一个简易的八路抢答器,AT89C51单片机为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。

本次设计的系统实用性强、判断精确、操作简单、扩展功能强。

关键词:八路报警AT89C51 抢答器定时AbstractWith the rapid development of electronic technology, intelligent control in the electronics field especially automation, traditional discrete components or control system of digital logic circuits, are at an unprecedented rate sheets replaced by chip computer intelligent control. MCU has small size, functions and advantages of low cost, wide application, it can be said of intelligent control and automation of core is a single chip. Based on single chip microcomputer control system has been widely used in various industries.This design made has to AT89C51 single tablets machine for core control components , design a simple of eight - way preemptive answer device , AT89C51 single tablets machine mainly controlled core , and Crystal vibration , and digital tube , and bee Ming device , constitute eight - way preemptive answer device , using has single tablets machine of delay circuit , and press reset circuit , and clock circuit , and timer counter , design of eight - way preemptive answer device not only has real-time display preemptive answer players of number and preemptive answer time of function , while also using assembly language programming , makes its implementation reset , and scheduled and alarm of function . The design system of practical, accurate, simple operation and extended functions of judgment.Key words : eight –way alarm AT89C51 preemptive answertime目录第1章绪论 (5)1.1 选题背景、意义 (5)1.2 八路抢答器的功能简介 (6)第2章系统硬件设计 (8)2.1 芯片的选择 (8)2.1.1 控制器的选择 (8)2.1.2 显示模块的选择 (9)2.1.3 键盘的选择 (10)2.2.4 芯片最终选择方案 (11)2.2 AT89C51单片机简单概述 (11)2.2.1 51系列单片机的功能特性 (12)2.2.2 AT89C51单片机结构说明 (14)2.3 硬件的构成及功能 (16)2.3.1 抢答器的硬件图 (16)2.3.2 时钟频率控制电路 (17)2.3.3 复位电路的设计 (19)2.3.4 报警电路的设计 (20)2.3.5 显示电路的设计 (20)2.3.6 键盘扫描电路的设计 (22)第3章系统软件设计 (25)3.1 系统主程序设计 (25)3.2 键盘扫描程序设计 (27)3.3 显示程序设计 (28)第4章系统调试与软件仿真 (30)4.1 硬件调试 (30)4.2 Keil uVision2软件调试 (31)4.3 Proteus仿真 (31)第5章总结 (35)参考文献 (36)附录 (37)附录一主程序清单 (37)附录二单片机八路智能抢答器原理图 (53)附录三英文资料 (54)译文 (58)致谢 (61)第1章绪论1.1 选题背景、意义当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。

最新毕业设计(论文-基于at89c51单片机的八路多功能抢答器设计

最新毕业设计(论文-基于at89c51单片机的八路多功能抢答器设计

目录摘要 (2)绪论 (4)1 抢答器系概述 (6)1.1抢答器的功能模块 (6)1.2抢答器的工作原理 (8)1.3抢答器的特点及组成 (11)2硬件设计 (11)2.1硬件详细清单 (11)2.2 抢答器总电路图 (13)2.3 AT89C51的内部结构和功能 (14)2.4 晶体振荡器和电容的设计 (16)2.5 七段数码管显示电路的设计 (17)2.6 扬声器的设计 (17)2.7 按钮的设计 (18)2.8 芯片74HC30、74LS04的设计 (19)3软件设计 (19)3.1 软件系统结构图和程序流程图 (19)3.2 程序分析 (21)结束语 (41)致谢 (43)参考文献 (46)附录 (48)摘要在以往企业或学校举行知识竞赛中,都是主持人读题,观众选手得安静仔细听题目,有条件的花上万元买个电子抢答器,算是给知识竞赛赛场添彩了。

现实中大多数是依靠主持人发挥水平,但选手和观众要渴望类似跟电视台搞的知识竞赛中的效果一样是难以实现的。

而我们设计的抢答器节省的不小的开支,还能直观公正的看清哪位选手先抢答到题并有主持人来往下读题目。

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

本次设计是用AT89C51单片机为核心控制元件,设计一个八路多功能抢答器。

以AT89C51单片机作为主控核心,与芯片74LS04、74HC30;扬声器等等构成硬件操作,再利用汇编语言来编程,来控制抢答器的功能实现。

这次设计的系统实用性强、判断精确、操作简单、扩展功能强。

关键词:抢答器 AT89C51 汇编语言计时绪论在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。

基于MCS-51单片机控制的八路答器设计

基于MCS-51单片机控制的八路答器设计

摘要抢答器是一种常见的电子产品,尤其是在各类智力竞猜中,为了实现选手的公平性,性能优良的抢答器往往更能得到各单位的青睐。

这里通过两种设计方案的对比,最终选定了用单片机实现抢答器电路。

由于单片机具有可编程定时器和中断设备,便于实现编程和时间的精确控制。

所用方案电路结构简单,易于实现,它用4个七段数码管来显示,且具有简单精准的报警电路。

所选方案的一个很重要的特点在于具有灵活性,主持人可以根据题目难易进行时间设定,这样进一步保证了公平性。

由于它具有成本低廉,结构简单,且性能优良的诸多优点,必定会得到广泛的应用。

关键词:抢答器,单片机,七段数码管,时间设定目录一绪论 (2)1.1 课程设计任务 (1)1.2 原理示意图 (1)1.3抢答器的程序流程 (2)二抢答器单元设计及其说明 (8)2.1主要芯片的介绍 (8)2.2程序流程图 (11)2.3 MAX7219 (12)2.3.1 MAX7219引脚说明 (12)2.3.2 基本的工作方法 (13)2.3.3 MAX7219初始化 (15)2.3.4 部分程序功能介绍 (15)2.4LCD简介 (17)2.4.1LCD和LED的区别 (17)2.4.3显示电路设计和LCD的引脚功能说明 (18)2.4.4液晶显示模块 (19)三设计总结 (19)四参考文献 (20)五元件清单 (20)一绪论1.1 课程设计要求(1)抢答器同时为8组选手分别提供抢答按钮,按钮分别为PB1、PB2、PB3、PB4、PB5、PB6、PB7、PB8;(2)设置一个复位按钮PB9,实现系统电路的复位,由主持人控制;(3)设置一个启动按钮PB10,由主持人控制;(4)设置一个限时开关PB11,由主持人控制;(5)当主持人打开启动开关PB10后,在设定时间T0 内,如果某一组抢先按下抢答按钮,则驱动音效电路发出声响,指示灯L1 亮,并且在七段LED显示出抢答成功的组号,此时电路实现互锁,其它组再按下抢答按钮为无效;(6)如果在时间T0 内,无人应答,则驱动音效电路发出声响,指示灯L2 亮,表示抢答者均放弃该题;(7)在抢答成功后,主持人打开限时开关PB11,启动定时器,显示倒计时时间,在设定的时间T1内回答有效,当到达设定时间T1 时,驱动音效电路,指示灯L3 亮,表示答题时间到。

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

摘要在日常生活中,我们可以在电视,或者现实生活活动现场可以看到在答题或者游戏中,他总能第一时间测到谁是第一个,让我们的世界少了那些不必要的争议,那是什么,那就是抢答器。

通过一次又一次科学的进步,单片机在发展,各种功能运用到现实生活的各种领域让我们生活更加的接近理想话以及通过简单的操作完成手工无法完成或者很难做到的事情,例如家电,通信,商业,工业,航空,航天,军事以及汽车方面。

当然这次我们做的是其中的一种那就是抢答器,它具有很高的安全性、可靠性,准确性,应用日益广泛。

本次设计使用 AT89C51 实现一基于单片机的抢答器设计,其主要具有如下功能:(1)抢答时间调试,限时时间调试这两个功能都是要在最开始时调试。

可以改变调试抢答时间和限时时间。

(2)声光报警系统。

抢答时间倒计时时会报警闪烁,以及蜂鸣器报警还有时间提示。

(3)锁定功能。

为了很好的在第一时间锁定第一位,抢答器做了很好的反馈功能,为此能够更加精确的锁定反馈第一位抢答器是由一个AT89C51、输出八段显示电路。

另外系统还有 LED 提示灯,报警蜂鸣器等。

抢答器的功能在于反馈以及最快的时间做出选择:(1)限时时间调试·抢答时间调试功能:这是一个十分人性化的设计,他可以在不同的场合用不同的时间来限定抢答以及限时时间的调试。

(2)抢答锁定功能:当按下抢答键时,抢答器会判断第一个抢答的以及显示抢答人的编号。

(3)报警系统:当抢答倒计时到5秒时开始二极管开始闪烁报警蜂鸣器开始鸣叫。

主要的设计实施过程:首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。

第二步,使用Protel设计硬件电路原理图,并设计PCB图完成人工布线。

第三步,使用Medwin 软件编写单片机的C语言程序、仿真、软件调试。

第四部,使用 PROTEUS 软件进行模拟软、硬件调试。

最后,联合软、硬件调试电路板,完成本次设计。

概述 (4)1总体设计方案 (4)1.1系统设计方案 (5)1.2系统总体结构框图 (5)1.3功能显示区 (6)2 软件设计 (6)2.1主程序流程图 (7)3仿真和调试 (7)4 附录 (9)随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

本设计是基于单片机的抢答器设计方案,根据要求,给出了该单片机抢答器的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容1总体设计方案方案一:采用数字电路控制。

采用数字显示电路的好处就是设计简单。

用以在P0口外接电阻做输出口并接数码管来显示时间,共设了8个用户输入键,当抢答的时候,其中只有1个是有效按键,其它的都是干扰按键,若按下干扰键,将无反应只显示第一位抢答编号,如果用户抢答的时间剩下5秒(一般情况下,用户不会超过5秒,若用户觉得不便,还可以修改)电路将报警。

电路由两大部分组成:显示器电路和主电源电源(UPS),其中设置时间调整是为了可以合理的调节时间更加的人性化和用于不同的场合。

方案二:采用一种是用以AT89C51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的抢答器功能,还能添加调节功能等等。

通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,故本次设计采用方案二。

1.1系统设计方案本方案采用一种是用以AT89C51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的抢答显示功能。

初步设计思路如下:抢答器用按钮为了更加方便直观的使用。

LED数码管显示第一位抢答号以及抢答时间以及限时时间。

用发光二极管代替报警的电路,发光表示倒计时已经进入5秒计时。

到计时间到,系统报警。

打开电源后,显示器显示“F FF”,只要第一个按下抢答器的就会显示抢答号。

这样可预防抢答的时候出现不必要的麻烦。

按“复位”键,清除显示器为“F FF”。

按开始键开始抢答倒计时,当有人抢到第一个诞生那么主持人开始问问题,并且按下限时按钮开始倒计时,一共为二十秒,抢答人必须要在20秒内讲出答案如果进入最后5秒那么开始报警闪光提示,当闪光介绍那么就说明答题介绍并且蜂鸣器鸣叫以提示。

然后进入第二轮的抢答要按下复位按钮,来更好的完成接下来的任务。

1.2系统总体结构框图llAdnae本次设计主控制器为AT89C51单片。

e an dAl l t h i ng si nt he i rb ei n ga re go 1.3功能实现显示区在本次设计中,基于节省材料的原则,暂时用发光二极管代替提示系统,发光管亮,表示5秒倒计时;灭,表示倒计时介绍。

当P 口输出低电平时,二极管发光,提示答题即将结束。

硬件设计2.软件设计主要过程是LED 数码管提示开始倒计时和限时抢答号,通过按键抢答,同时LED 显示倒计时情况,按下抢答键后判断第一位抢答号,作出倒计时和抢答号已经报警提示处理。

由于采用多个按键来完成抢答,那么其中一个第一个完成按键的会在数码管上显示抢答号。

在抢答过程中,首先要进入开始抢答的步骤,接着根据抢答号由显示的抢答人来答题,直到回答出或者倒计时结束,才能完成抢答过程。

进入抢答号的判断比较处理状态并给出相应的处理过程。

e an dAl l t h i n g s i n t h e i r b e i n g a re go od fo r2.1程序流程图3 仿真和调试采用Keil 和Protues 软件相结合进行仿真。

数码管初始化显示“F FF”:e an dAl l t h i n g s i n t h e i r b e i n g a re go od fo rs o 按下开始按钮后,进入抢答倒计时:选手在20秒内抢答,如8号选手:进入倒计时(5s ):e an dAl l t h i ng si nt he i rb ei n ga re go od fo rs o 非正规抢答,如6号选手:4 附录(源代码:)#include<at89x51.h>#define uchar unsigned char #define uint unsigned int char 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;sbit K2=P1^1;sbit K3=P1^2;sbit K4=P1^3;sbit K5=P1^4;sbit K6=P1^5;sbit K7=P1^6;sbit K8=P1^7;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;TH0=(65536-2000)/256;TL0=(65536-2000)%256;TH1=(65536-2000)/256;TL1=(65536-2000)%256;ET0=1;ET1=1;EA=1;P0=0;}void Key_Scan(void)//开始键扫描{if(K0==0){delay(10);if(K0==0){while(!K0);TR0=1;s=time;tt=0;flag=1;s_flag=1;b_flag=1;num=0;beep=1;rled=1;fall_flag=0;//清除违规标志位K_startcountflag=0;K_timecountflag=0;}}}void Scan(void)//八路热键扫描(哪个键先按下,哪个优先级最高) {if(K1==0){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;}}if(K4==0){delay(10);if(K4==0){while(!K4);num=4;TR0=0;TR1=1;s_flag=0;}}if(K5==0){delay(10);if(K5==0){while(!K5);num=5;TR0=0;TR1=1;s_flag=0;}}if(K6==0){delay(10);if(K6==0){while(!K6);num=6;TR0=0;TR1=1;s_flag=0;}}if(K7==0){delay(10);if(K7==0){while(!K7);num=7;TR0=0;TR1=1;s_flag=0;}}if(K8==0){delay(10);if(K8==0){while(!K8);num=8;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=0X6D;//第一位数码管显示"5(S)"(表示抢答时间调整)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){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){datitime=30;}K_timecountflag=1;K_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;}}。

相关文档
最新文档