基于单片机的多路抢答器设计说明
文理学院机械与材料工程学院课程设计报告专业班级测控1502课程单片机课程设计题目抢答器的设计教研室测控技术与仪器学号 2807150205学生高宇璠指导教师森林2017年9月摘要本次的课程设计基于单片机技术原理,以美国ATMEL公司开发的AT89S52芯片作为核心控制器。
通过硬件电路的制作及软件程序的编制,设计制作了一种具有复位、校时功能的数字时钟系统。
利用七段数码管实现星期、上下午和时间信息并且可以通过蜂鸣器和二极管实现整点提醒功能,用户可通过系统上的按键对时间进行调整,实现实时的时钟显示。
本次设计的硬件由主控模块、提示模块以及显示模块构成。
复位模块主要由电阻、电容、按键组成;提示模块主要由蜂鸣器、三极管、二极管、排阻组成;显示模块则由七段数码管构成,用于显示提示信息和实时时钟。
关键词: AT89S51;七段数码管; 蜂鸣器目录摘要 (1)1.任务与要求 (3)2.电路设计 (4)2.2基本电路 (7)2.2.1整体电路 (7)2.2.2片机的最小系统 (8)2.2.3晶振模块 (8)2.2.4复位模块 (9)2.2.5数码管显示模块 (9)2.2.7发声模块 (10)4. 总结与感悟 (11)附录 0运行程序 01.任务与要求设计任务:以51单片机为核心,设计一个供4组选手比赛的抢答器。
每组设置一个抢答按钮,按钮的编号与选手的编号对应。
主持人控制开始、复位和分数按键。
初始状态,每组成绩均为0分,倒计时和组号显示全零。
抢答开始,主持人按下开始键,系统显示15秒倒计时,绿灯亮。
如果15秒有选手抢答,则所有抢答开关被锁定,系统显示相应的组号,蜂鸣器响1声。
此时,主持人按下答题键,选手开始答题,系统开始30秒倒计时显示。
时间到,红灯亮1秒,蜂鸣器响1秒。
答题结束,主持人将选手回答情况进行加分或减分,每按一次“+”或“—”对应1分;每题分值改变围为-3~3分。
如果15秒没有选手抢答,则所有抢答开关都将无效,此时红灯闪烁3秒,蜂鸣器间断响3秒。
比赛结束,主持人按下复位键,系统将回到初始状态。
设计要求:1.完成系统的硬件电路设计与软件设计;2.采用C51语言编程;3.采用Proteus、Keil C等软件实现系统的仿真调试;4.设计报告要求思路清晰,结构合理,语言流畅,书写格式符合要求。
5.能条理清晰地讲述每个设计环节,完成设计答辩。
2.单片机的设计方案2.电路设计2.1 电路元件清单及部分元件简介2.1.1电路基本元件2.1.2部分主要元器件简介AT89S51芯片AT89s51管脚图图1..AT89S51引脚A T89S51是一个低功耗,高性能CMOS 8位单片机,片含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
管脚说明VCC:电源电压输入端。
GND:电源地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写"1"时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址"1"时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入"1"后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(T0定时器的外部计数输入)P3.5 T1(T1定时器的外部计数输入)P3.6 /WR(外部数据存储器的写选通)P3.7 /RD(外部数据存储器的读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的容读入到部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
RST:复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:地址锁存允许/编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE 禁止,置位无效。
PSEN:外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:外部程序存储器访问允许。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V 编程电源(VPP)。
XTAL1:片振荡器反相放大器和时钟发生器的输入端。
XTAL2:片振荡器反相放大器的输出端。
7SEG-MPX8-CA-BULL7seg-mpx8-ca是共阳极数码管显示器,它左下侧的abcdefg dp是LED数码管显示器的I/O 口,是段选信号,右下侧的12345678是它的位选信号,就是从左到右分别是第一位到第八位,段选信号与位选信号分别接到单片机的不同输出口,例如段选信号可以接到P0口,位选信号可以接到P2口,共阳极的字形显示代码为:uchar codshuzi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }.位选信号代码为:uchar wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};当选中第一位时,段选信号就执行从0到9的显示。
如果想显示数字的话,就要通过程序来执行:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigne int#define uint unsigned intuchar code shuzi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};void main(){ uchar i;while(1){ for(i=0;i<8;i++){ P0=shuzi[i];P2=位[i];}}}这样它就能显示数字了,这是在AT89s51单片机下的程序,P0口还要加一个上拉电阻。
2.2基本电路2.2.1整体电路图2.抢答器基本电路图2.2.2片机的最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。
AT89S51单片机的最小系统电路图:图3.AT89S51最小系统2.2.3晶振模块单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
单片机晶振两端有2 个电容,这2 个电容叫晶振的负载电容,分别接在晶振的2 个脚上和对地的电容,一般在几十皮法。
它会影响到晶振的振谐频率和输出幅度。
晶振的负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+C。
图4.晶振模块示意图2.2.4复位模块电路由电容、电阻、复位按键组成,如图3.2 所示。
AT89C51的复位引脚(RESET) 是第9 脚,当此引脚连接高电平超过2 个。
机器周期,即可产生复位的动作。
以12MHZ 的时钟脉冲为例,每个时钟脉冲为1uS,两个机器周期为2us,因此,在第9脚上连接一个2US的高电平脉冲,即可产生复位动作。
最简单的就是只有一个电阻跟一个电容就可组成一个可靠复位的电路,复杂一点的就加个按键,可以进行手动复位。
如图所示图5.晶振模块示意图2.2.5数码管显示模块根据设计,系统包含4个LED数码管,都为八段(a、b、c、d、e、f、g、d p ),数码管分别显示四位参赛选手的分数。
该系统采用共阳极数码管,对于阳阴极数码管,其公共端必须接高电平。
数码管中选手初始分都为0分,每当主持人控制对应选手加减分时,数码管显示的数字对应发生改变。
图6.数码管显示模块2.2.6键盘模块尝试采用最简单的复位开关完成输入功能。
通过按压按键K1,控制抢答开始以及答题开始,数码管显示倒计时。
基于单片机的四路抢答器
基于单片机的四路抢答器1.由于剩余4个引脚,所以可以扩展到8路2.矩阵键盘输入任意两位数倒计时初值一、功能要求以8051系列单片机为核心,设计一个4路竞赛抢答器。
具体功能要求如下:1、该抢答器最多可供4名选手参赛,用4个按钮S0~S3表示,设置一个系统复位和抢答控制开关S,由主持人控制。
2、当主持人启动“抢答开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,LED显示器上显示选手的编号和抢答的时间并保持到主持人将系统清除为止;如规定的时间内无人抢答则蜂鸣器发声,计时器复位,为下一次计时做好准备。
3、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
4、只有主持人的操作将电路复位后,方可结束上一次的抢答,为下一次抢答做好准备。
二.设计方案(1)倒计时用矩阵键盘输入,程序中用keycount来记录按下按键的次数,我只设置两次,只能输入两位数,多按下几次是没有效果的,相当于键盘自锁,之后单片机读取键值,缓存入一个两位的数组table【2】。
(2)采用的是3位led动态扫描的方式显示(3)中断扫描选手按键,选手按键用的用独立键盘,用与门接选手按键,当有人按下时,与门由高到低,产生下降沿而引起中断,单片机扫描独立键盘。
(4)蜂鸣器电路(5)开始按键和复位按键1-1主流程图1-2 外部中断扫描选手按键1-3 定时器中断电路图如下图由于仿真软件proteus不能用PnP仿真,所以去掉了PnP,直接用IO口驱动;真实是不行的。
#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit FUW=P3^5; //抢答键sbit CLR=P3^4; //清零,复位键sbit xuan1=P2^4;//选手1,2,3,4sbit xuan2=P2^5;sbit xuan3=P2^6;sbit xuan4=P2^7;sbit wei1=P2^0;//位选1,2,3,4sbit wei2=P2^1;sbit wei3=P2^2;sbit wei4=P2^3;sbit buz=P3^0;uchar code numtab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极uint table[3]={0,0,0};//倒计时缓存uchar keycount=0;uint time=0;uchar num=0;uint ge,shi;/***********延时函数*****************/void delayms(uint xms){uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}/************蜂鸣器****************/void buzzer(){buz=0;delayms(50);buz=1;}/************报警部分独立按键扫描********************/ void kscan(){uchar sk;if(xuan1==0){delayms(10);if(xuan1==0){buzzer();sk=1;table[2]=sk;}}else if(xuan2==0){delayms(10);if(xuan2==0){buzzer();sk=2;table[2]=sk;}}else if(xuan3==0){delayms(10);if(xuan3==0){buzzer();sk=3;table[2]=sk;}}else if(xuan4==0){delayms(10);if(xuan4==0){buzzer();sk=4;table[2]=sk;}}}/**********矩阵键盘扫描***************/ void keyscan(){uint temp,key;P1=0xfe;//第一行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2))delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xde:key=0;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfd;//第二行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2))delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xed:key=1;table[keycount]=key;keycount++;break;case 0xdd:key=2;table[keycount]=key;keycount++;break;case 0xbd:key=3;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfb;//第三行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2)){delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xeb:key=4;table[keycount]=key;keycount++;break;case 0xdb:key=5;table[keycount]=key;keycount++;break;case 0xbb:key=6;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xf7;//第四行为0temp=P1;temp=temp&0xf0;//与上11110000if((temp!=0xf0)&&(keycount<2)){delayms(10);//去抖temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xe7:key=7;table[keycount]=key;keycount++;break;case 0xd7:key=8;table[keycount]=key;keycount++;break;case 0xb7:key=9;table[keycount]=key;keycount++;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}}/********显示函数*********/ void display(){ge=time%10;shi=time/10;wei1=1;wei2=0;wei3=0;P0=numtab[shi];delayms(5);P0=0xff;wei1=0;wei2=1;wei3=0;P0=numtab[ge];delayms(5);P0=0xff;wei2=0;wei1=0;wei3=1;P0=numtab[table[2]];delayms(5);P0=0xff;wei3=0;}/****************主函数**********************/ main(){EA=1;TMOD=0x01;TH0=(65536-50000)/256;//定时50msTL0=(65536-50000)%256;ET0=1;EX0=1;IT0=1; //下降沿触发PX0=1;PT0=0;while(1){if(keycount<2){ keyscan();if(keycount==2){time=10*table[0]+table[1];}}if(keycount==2){display(); }/******按下开始抢答键********/if(FUW==0){delayms(10);if(FUW==0){TR0=1;while(!FUW);}}/********按下清零键*********/if(CLR==0){delayms(10);if(CLR==0){TR0=0;EX0=1;time=0;ge=0;shi=0;table[0]=0;table[1]=0;table[2]=0;keycount=0;while(!CLR);}}}}/**************定时器0中断******************/ void t0() interrupt 1{TH0=(65536-50000)/256;//定时50msTL0=(65536-50000)%256;num++;if(num==20){num=0;time--;if(time==0){TR0=0;}}}/*********外部中断0***********/void estern0() interrupt 0{uchar ks;EX0=0;//关掉中断,防止键盘抖动,多次中断,还有就是//只扫描第一次按键的选手,之后按键不扫描if(TR0==0||time==0){kscan();}else if(xuan1==0&&TR0==1 ){delayms(10);if(xuan1==0){ks=1;table[2]=ks;TR0=0;while(!xuan1);}}else if(xuan2==0&&TR0==1 ) {delayms(10);if(xuan2==0){ks=2;table[2]=ks;TR0=0;while(!xuan2);}}else if(xuan3==0&&TR0==1 ){delayms(10);if(xuan3==0){ks=3;table[2]=ks;TR0=0;while(!xuan3);}}else if(xuan4==0&&TR0==1 ){delayms(10);if(xuan4==0){ks=4;table[2]=ks;TR0=0;while(!xuan4);}}}。
基于stc89c52单片机的多路抢答器设计
实现功能
1、启动电源后系统自动倒计时3秒。
2、抢答器同时供八名选手比赛,分别用八个 按钮SW1~SW8表示。
3、抢答器具有锁存与显示功能。即选手按动 按钮时会锁存相应的编号,并且优先抢答 选手的编号一直保持到主持人将系统清除 为止。
4、违规抢答,蜂鸣器会报警,而且锁存抢答 队员的号码,并闪烁显示。
5、主持人关电仿真 程序编写 元件购买 焊接
题目确定
开始本想做数控直流电源的,后来一直仿 真不出来,就改做八路抢答器了
从网上搜了各种抢答器,归类比较了一下, 两类:纯数字逻辑电路和基于单片机的电路。 我们就选择了基于单片机的。
仿真及编程
Protues仿真,运用不太熟练,但最后也仿 真出来了,对软件的应用更熟练了些
谢谢
Keil软件编写程序,对于程序特头疼,也不 全是自己的,从网上搜集了一些类似的程序, 并做了改写,使其适合我们的要求,编程这一 块很费时劳神的
元件购买及焊接
我们从网上买了相关元件及烙铁,进行了 焊接。中间也出现了好多小问题,反复焊了几 遍之后,最终结果还算不错。
通过此次的设计过程,让我们意识到实践 的重要性,光是理论和理所当然的想象是不行 的,要靠实践。实践是检验真理的唯一标准
实物图
倒计时
违规抢答闪烁
7号抢答,其他禁止
电路元件
数码管
STC89C52
掌握抢答器的基础知识及原理;
掌握STC89C52单片机的管脚分配;
设计出合理的电路图及相应的汇编 程序,同时仿真调试成功;
购买元器件完成焊接组装工作,解 决调试问题,最后完成多路抢答器 的实物制作。
设计 的主 要任 务
基于单片机的多路抢答器设计
长沙学院《单片机原理及应用》课程设计说明书题目基于单片机的多路抢答器设计系(部)专业(班级)学号指导教师起止日期2013.12.23-2014.1.5目录1.摘要 (1)2.设计任务 (1)3.功能介绍 (1)4.系统整体方案设计 (2)5.各部分硬件电路设计 (2)6.软件设计 (6)7.心得体会 (7)参考文献 (8)·1.摘要八路抢答器由主体电路和扩展电路组成。
主体电路由抢答电路,优先编码电路和锁存电路以及控制电路组成:扩展电路主要由报警电路和显示电路组成。
电路经过布线、焊接、调试等工作后抢答器成形。
单片机体积小,价格低,应用方便,稳定可靠。
单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。
单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。
随着科学技术的发展和普及, 各种各样的竞赛越来越多, 其中抢答器的作用也就显而易见。
目前很多抢答器基本上采用小规模数字集成电路设计, 使用起来不够理想。
因此设计一更易于使用和区分度高的抢答器成了非常迫切的任务。
现在单片机已进入各个领域, 以其功耗小、智能化而著称。
所以若利用单片机来设计抢答器, 便使以上问题得以解决。
针对以上情况, 本课程设计出以AT89C51单片机为核心的八路抢答器。
它能根据不同的抢答输入信号, 经过单片机的控制处理并产生不同的与输入信号相对应的输出信号, 最后通过4位 LED 数码管显示相应的路数和答题时间等。
·2.设计任务2.1课题容设计一个基于单片机的多路抢答器2.2功能要求(1)利用51 系列单片机作为主控制器的单片机8 路抢答器的制作。
当系统工作后,8路抢答者中只要有一人按下抢答键,系统的数码管便显示按键者的编号,同时喇叭中响起动听的音乐声,表示抢答成功。
(2)当有几个人同时按键时,由于在时间上必定存在先后,系统将对第一个按下者进行锁存,显示的编号也是第一个按下者,其他按键者将不能响应,以便公平地选择第一个抢答者。
基于某AT89C51单片机六路抢答器的设计
基于某AT89C51单片机六路抢答器的设计AT89C51单片机六路抢答器设计一、引言抢答器是一种常见的电子设备,特别是在教育领域中,常用于学生课堂上积极参与课堂互动和答题的工具。
本设计以AT89C51单片机为核心,设计了一款六路抢答器,能够实现多个人同时抢答的功能,提高学生参与课堂互动的积极性。
二、系统设计该抢答器设计包括六个按键、六个LED指示灯和一个液晶显示屏。
具体设计如下:1.硬件设计(1)按键设计:设计六个按键,分别对应六个抢答按钮。
当按下一些按键时,相应的LED指示灯亮起,并通过串口数据传送给单片机,单片机根据接收到的数据来判断相应的学生抢答情况。
(2)LED指示灯设计:设计六个LED指示灯,用于显示学生抢答情况。
当一些学生按下相应的按键抢答时,其对应的LED指示灯亮起。
(3)液晶显示屏设计:设计一个液晶显示屏,用于显示当前的抢答情况。
通过串口将单片机接收到的学生抢答情况传送给液晶显示屏,实时显示当前的抢答情况。
2.软件设计(1)按键扫描程序:通过循环扫描六个按键的状态,当一些按键被按下时,将按键对应的值通过串口传送给单片机。
(2)按键控制程序:单片机接收到按键传来的值后,根据不同的值对相应的LED指示灯进行控制,实现抢答状态的显示。
(3)串口通信程序:设计单片机与液晶显示屏之间的串口通信程序,实现单片机将学生抢答情况传送给液晶显示屏的功能。
(4)液晶显示程序:通过串口接收到的数据,将学生抢答情况显示在液晶显示屏上,实时显示当前的抢答情况。
三、系统实现1.硬件实现:按照设计要求,搭建相应的电路,包括按键、LED指示灯和液晶显示屏等模块的连接。
2.软件实现:根据设计要求,进行相应的程序编写。
四、系统测试五、结论本设计基于AT89C51单片机,设计了一款六路抢答器,能够实现多个人同时抢答的功能。
经过测试,系统能够准确地显示学生的抢答情况,并且操作简便。
通过该抢答器,能够有效提高学生的参与度,促进课堂互动,加深学生对知识的理解和记忆。
基于单片机实现智能4路抢答器的设计
智能四路抢答器目录一、前言 (3)二、方案设计 (3)1、方案比较 (3)2、系统总体设计方案与实现框图 (3)三、理论分析 (3)四、电路设计 (4)1、按键部分 (4)2、显示部分 (4)五、软件模块 (5)六、测试方法与数据 (6)七、结论 (6)八、参考文献 (6)一、前言本设计要求能够在主持人按下开始键后,四个参赛者开始抢按自己的按键,谁的按键先按下,谁面前的灯就会亮并且有相应的提示,当参赛者耗时太多时又会有相应的提示。
根据设计的要求,本系统采用独立式按键,通过单片机不停的扫描按键来控制LED灯和蜂鸣器,并用定时器T0来定超时的时间,当超时的时候让蜂鸣器响。
二、方案设计1、方案比较(1)、总体设计方案一:采用可编程I/O口扩展芯片81558155作为单片机的扩展接口能实现很多功能,但是这个系统并不复杂,用8155会浪费很多的资源,而且8155要用P0和P2端口作为地址线对它进行读写,这样不仅浪费端口还使得编程变的复杂。
从节省资源和简化编程的角度考虑,放弃了此方案。
方案二:直接采用AT89C51单片机直接用单片机不仅编程被简化,还有效的利用了各个端口。
8051单片机的资源完全够这个系统的要求。
所以最终选择了此方案。
(2)、模块方案一:采用4*4矩阵键盘此种键盘是常用的按键扫描方法,但是本系统只需要六个按键,这样就会浪费十个,而且矩阵按键扫描要送数读数,对于编程很复杂,最终放弃了此方案。
方案二:采用独立式键盘本系统只要六个按键就可以,用独立式键盘不仅节省端口还使编程变得简单。
程序只要不停的读数检查就行。
所以,最终选择此方案。
2、系统总体设计方案与实现框图采用六个独立式的键盘作为按键输入,当在开始后有按键按下时,就会有对应于这个按键的灯亮并且蜂鸣器响一声,其它按键再按也无效。
十秒之后如不清除,蜂鸣器就会一直响,提示已经到时间。
框图如图1。
- 1 -6图1三、理论分析51单片机的端口上电是高电平,而且当外部没有输入时能自动的弹跳到高电平,所以通过按键所接端口的高低电平变化可以判断出哪个按键按下了。
基于单片机的多功能抢答器设计
图1 抢答器的工作流图图2 硬件设计原理图2014.163作原理,设计抢答器的工作流程图如图1所示。
硬件设计在硬件设计方面利用单片机AT89C51控制抢答模块、显示模块、计时及调整模块、蜂鸣提示模块和复位模块,从而实现单片机的抢答。
系统硬件设计原理图如图2所示。
图2中U1为单片机AT89C51,K1~K4分别为4路抢答按钮,分别接到p1.0到p1.3中;开始键和结束键分别接到单片机的10、11脚,由于单片机的10、11脚既有串行接口RXD、TXD功能又有P3.0、P3.1的IO端口功能,此处按键用到单片机10、11脚的IO端口功能。
抢答时间调整按键和回答时间调整按键分别接到单片机的13,14管脚,“加一”按键和“减一”按键分别接到单片机的15、16管脚。
4位七段数码管段选接P0口,位抢答器的输入信号采用控制,计时调整按键束按键和一根信号线与单片机电路相连按键有一公共端不影响图3 软件设计流程图图4 4号选手抢答图图5 1号选手非法抢答图图6 倒计时时间调整图图7 复位模块显示图305864832014.1跳转到程序执行的起始地址。
软件设计抢答器要求有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定,选手通过键盘按键进行抢答,再通过单片机将其转换成能在七段数码管上显示的字型码。
抢答完毕,数码管上显示抢答选手号码表示抢答成功并开始倒计时。
根据此设计思路,系统软件设计流程图如图3所示。
系统采用Keil软件DAT2:DB 3fH,06H,5bH,4fH,66H,6 dH,7dH,07H,7fH,6fH,00H,71H 71H;基于Proteus的系统仿真Proteus工作情况或没有单片机参与的其他电路的工作情况。
本设计经仿真后的抢答器的功能抢答成功模块图4答题时间还剩余图8 抢答器实物图。
基于单片机的多路抢答器设计
基于单片机的多路抢答器设计在教育场景中,为了增加学生的参与度和互动性,常常会设置抢答环节。
为了简化抢答的流程,提高效率,很多学校会选择使用基于单片机的多路抢答器。
本文将详细介绍基于单片机的多路抢答器的设计过程。
一、设计目标设计一个基于单片机的多路抢答器,满足以下要求:1.支持多路抢答,最少支持4个人同时抢答;2.抢答按照先后顺序进行,每个人只有一次机会;3.可以显示抢答的状态,并且能够记录抢答的时间;4.方便操作,使用简单。
二、硬件设计1.单片机选择在本设计中,我们选择常用的STM32单片机作为主控芯片。
其具有强大的计算能力和丰富的外设接口,能够满足本设计的需求。
2.LCD显示屏为了显示抢答的状态和时间,我们需要选择一个合适的显示屏。
在本设计中,我们选择4行16列的液晶显示屏,能够满足显示需求。
3.按键为了实现学生的抢答操作,我们需要设计抢答按钮。
在本设计中,我们选择使用一个矩阵按键,可以支持多路抢答。
4.时钟模块为了记录抢答的时间,我们需要使用一个时钟模块。
在本设计中,我们选择使用DS1302时钟模块。
5.电源模块为了供给系统电源,我们需要设计一个电源模块。
在本设计中,我们选择使用一个DC稳压电源模块。
三、软件设计1.系统初始化在系统启动时,进行各个模块的初始化,包括单片机、LCD显示屏、按键、时钟模块等。
2.抢答操作当学生按下抢答按钮时,检测到按键信号,单片机会记录下当前的时间,并根据抢答顺序显示学生的抢答状态。
每次抢答完毕后,禁用对应的按键。
3.时间记录单片机通过时钟模块获取当前时间,并将抢答的时间记录下来。
4.状态显示利用LCD显示屏,实时显示当前抢答的状态,包括谁在抢答、抢答时间等信息。
5.结果统计当所有学生抢答完毕后,统计每个学生的抢答时间,并按照顺序显示出来。
四、系统测试完成软硬件的设计后,需要对系统进行测试,确保系统功能正常运行。
测试的主要内容包括:1.是否能够正确识别学生的抢答操作;2.是否能够正确记录抢答的时间;3.是否能够正确显示抢答的状态;4.是否能够正确统计抢答结果。
基于80C52单片机的多路数字定时抢答器设计
课程设计任务书学生姓名: XXX 专业班级:电子科学与技术1302班指导教师: XX 工作单位:信息工程学院题目: 多路数字定时抢答器设计初始条件:本课程设计既可以选用集成电路:74LSl48,74LS279,74LS48,74LSl92,NE555,74LS00,74LSl21和其它器件等,实现八路定时抢答功能。
又可以使用单片机系统构建多路数字定时抢答器。
要求用蜂鸣器和光电二极管作声光报警器件,工作电源Vcc为+5V。
要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。
2、技术要求:①可同时供8名选手(或代表队)参赛,其编号分别是0到7,各用一个抢答按钮,按钮的编号与选手的编号相对应。
②给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
③抢答器具有数据锁存和显示的功能。
抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时扬声器给出音响提示。
此外,要封锁输入电路,禁止其它选手抢答。
优先抢答选手的编号一直保持到主持人将系统清零为止。
④抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。
当节目主持人启动“开始”键后,要求定时器立即进行减计时,并用显示器进行显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。
⑤参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。
⑥如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统进行短暂的报警,并封锁输入电路,禁止选手超时后抢答,定时显示器上显示00。
⑦画出总体电路原理图。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:1、2015 年6 月29 日集中,作课设具体实施计划与课程设计报告格式的要求说明。
《单片机原理及应用》基于单片机的抢答器设计
《单片机原理及应用》基于单片机的抢答器设计1 系统设计1.1 设计要求1.1.1 设计任务设计一个基于单片机的抢答器,实现抢答器的基本功能。
1.1.2 性能指标要求1、设计好电路并焊接电路板。
2、设计一个主持人控制开关和6路抢答按扭,当主持人允许抢答时才能进行抢答操作,并用一个数码管显示抢答选手的号码,同时其他选手不能再抢答。
3、当主持人允许抢答后倒计时5秒时间,在这5秒内抢答有效,过后就不能进行抢答了。
4、电路上设置一个蜂鸣器的电路,当有选手抢答时蜂鸣器响一下。
5、当有选手抢答后,进行倒计时20秒作为选手回答问题时间,用两个数码管显示,倒计时时间到时有声光提示。
6、画电路板时要增加下载接口,方便调试程序。
7、扩展功能(选做),用按键可设置倒计时的时间,范围在5秒到30秒之间。
1.2 设计思路及设计框图1.2.1设计思路我首先制作主持人控制开关和6路抢答电路,在单片机I/O 口的P3.2口作为选主持人开关接入口,P1.0-P1.5作为6路选手抢答按钮接入口。
将P2.0-P2.3作为4位数码管的位选控制端口,接入数码管。
P3.3作为蜂鸣器控制端口,蜂鸣器连接上拉电阻和三极管。
P2.5作为LED 控制端口。
设置S9作为复位键,复位电路接入单片机上的RST 口。
主持人按钮按下后,4位数码管上有2位数码管分别显示’0’和’5’,表示5秒倒计时,然后P1.0和P1.5其中一个接通,也就是选手抢答,按钮按下,1位数码管显示选手序号,蜂鸣器响,然后2位数码管显示20秒倒计时,倒计时结束时,LED 亮,蜂鸣器响。
1.2.2总体设计框图2 各个模块程序的设计1)时钟频率振荡电路电路中的振荡源(晶振)能产生时钟信号送到单片机中,使其工作,晶振的频率为12MHZ。
电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
C1,C2的值为22pF。
2)复位电路复位电路是单片机初始化,当按下按键S9时,RST由低电平变为高电平,数码管显示清零,程序从头开始运行。
单片机多路抢答器
基于单片机的多路抢答器1引言此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的抢答器,本方案以AT89C51单片机作为主控核心,与晶振、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的八路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用C语言编程,使其实现一些基本的功能, 本设计的系统实用性强、判断精确、操作简单、扩展功能强。
本文介绍一种以51系列单片机为控制核心的智能型抢答器的电路组成、设计思路和功能。
该抢答器除具有基本的强大功能外,还具有计时和报警功能。
它对采样的各路抢答信号进行分析,识别超前违规信号、有效抢答信号,并对它们进行处理,从而使每一次抢答过程都有效,保证了抢答过程的快速性、有效性、准确性、公平性。
2设计方案及原理2.1抢答器设计方案(1)抢答器同时供8名选手或8个代表队比赛,分别用8个按钮“1”~“8”表示。
(2)设置一个系统清除和抢答控制的“开始”开关,该开关由主持人控制。
2.2抢答器设计原理(对原理图进行说明)图1 抢答器原理图3硬件设计3.1系统原理电路图基于各个模块的设计,可以设计出系统原理电路图,P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口,RST复位,XTAL1和XTAL2接晶振电路。
系统原理电路图如图1.2所示。
图2 系统原理电路图3.2 音频报警模块设计蜂鸣器的正极接到VCC (+5V )电源上面,蜂鸣器的正极接到三极管的发射极E ,三极管的基极B 经过限流电阻R1后由单片机的P1.7引脚控制,当P1.7输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,可以通过程序控制P1.7脚的电平来使蜂鸣器发出声音或关闭。
音频模块连接如图4所示。
3.3 音频报警模块设计图3 音频模块连接图4软件设计4.1程序流程图程序流程图如图4所示。
