单片机四路抢答器
51单片机 4路抢答器

先说下我这个4路抢答器的功能:5个按键,第五个是复位。
第一个按键到第四个按键分别对应4个led 灯,只要1到4的其中任何一个按键按下,其对应的led灯就会亮,再按其他按键,不会有其他led灯亮。
第五个按键进行复位,开始下一轮抢答。
不多说直接上程序和protues仿真图如下:注意:我试了下,程序有点小问题,(编译是完全通过的)我也没改出来,毕竟小弟我也才学,有大神知道的话可以给我说说,,谢谢。
#include<reg51.h>//51头文件sbit key0 = P3^0;//定义key0,为P3^0引脚sbit key1 = P3^1;//定义key1,为P3^1引脚sbit key2 = P3^2;//定义key2,为P3^2引脚sbit key3 = P3^3;//定义key3,为P3^3引脚sbit key4 = P3^4;//定义key4,为P3^4引脚void main()//主函数{while(1)死循环{if(key0==0) {P1 = 0xfe;P3 = 0xf0;}//如果key0等于0,即闭合,led1亮,将其他三个按钮锁定为低电平else if(key1==0) {P1 = 0xfd;P3 = 0xf0;}//如果key0等于1,即闭合,led2亮,将其他三个按钮锁定为低电平else if(key2==0) {P1 = 0xfb;P3 = 0xf0;}//如果key0等于2,即闭合,led3亮,将其他三个按钮锁定为低电平else if(key3==0) {P1 = 0xf7;P3 = 0xf0;}//如果key0等于3,即闭合,led4亮,将其他三个按钮锁定为低电平if(key4==0) //复位按钮按下闭合,则复位{P1 = 0xff;P3 = 0xff;}}}。
基于单片机的四路抢答器

基于单片机的四路抢答器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);}}}。
四路抢答器电路组成及工作原理(含电路图)

电路组成及工作原理四路竞赛抢答器总电路原理图如图1所示。
图1 四路竞赛抢答器原理图1.抢答器电路原理:如图2,IO1,IO2,IO3,IO4分别为抢答器按钮的输入端,开始抢答,假设IO1抢答成功,通过四D触发器输出Q1=1,Q1’=0,而Q 2’=Q3’=Q4’=1,通过四输入与非门后,输出高电平,再经过反相器输出低电平,再经过两输入与非门,输出低电平,此时四D触发器处于保持状态,并且其他按钮的输入不起作用,IO1的抢答信号被锁存。
此时LED1发光并且蜂鸣器发出响声。
其他抢答按钮同理。
图2 抢答器部分电路图2.计时电路原理:计时电路为两片74LS160用置数法构成的31进制计数器,因为可以为了让答题者直观的看到30S这个时间点,所以设置了31进制的计数器。
两片的四个输入端均接低电平,两片的输出端分别接七段译码管直接显示数字,高位的74LS160芯片的Q1Q2接到一个二输入的与非门(U8A)输出到计数器的LD端、三输入与非门端、反相器端。
输出到LD端是为了构成31进制计数器,当高位变为3时,计数器置0。
输出到三输入与非门(U9A)和时钟脉冲、开关的电平信号一起输入到与非门中,这就是为什么能控制计时的开始与暂停了,当开关输入低电平时,无论是否有时钟信号,时钟均不发生改变,此时时钟信号为无效信号;而当开关输入高电平时,U8A输出也为高,因此,时钟信号为有效信号,因此,凭借这样的类似锁存的电路,就可以控制计时的开始与暂停。
而当时间到了30s时,U8A输出为低电平,时钟信号又成为无效信号,时间被停止在30s,此时将U8A信号通过一个反相器输出到蜂鸣器,蜂鸣器发出响声。
图3 计时器电路3.555函数发生器:输出高电平时间:T1=(R1+R2)Cln2 输出低电平时间:T2=R2Cln2 振荡周期:T=(R1+2R2)Cln2图4 555函数发生器。
基于单片机的四路抢答器的设计

实验内容
本选题采用89C51做为核心器件,利用4*4矩阵 键盘作为输入部分,四位数码作为显示部分。 89C51通过扫描矩阵键盘,判断是否有按键按下, 通过中断程序,动态扫描数码管,将处理的结果 显示出来。RS232接口电路的设计采用MAX232, 用以进行电平转换,使单片机的TTL电平与PC的 RS232电平达到匹配。
提高部分
增加抢答队伍至八个队伍 当抢答的队伍使用锦囊或者选择了提高部 分的题目时,通过设置键,重新设置抢答 时限。按下增加键,时间增加1(选择了提 高部分的题目);按下减少按键的时候, 时间减去1(使用了锦囊功能);
实验所用工具 单片机程序编译软件
单)抢答功能:通过按键配合程序来实现抢答功能。当主 持人按下抢答键开始抢答后,此时任一路按下按钮均闭 锁其它各路,由程序对键盘译码并显示最先按下抢答键 的路数及其当前时间。 (2)抢答限时:主持人按下抢答键后,设置5秒为抢答时 间(此时间可在1-99秒之间修改)。若5秒内无人抢答,倒 计时为0时发出报警,说明该抢答题目作废。此时闭锁所 有抢答按键,只有当主持人再次按下抢答键开始下一次 抢答方可抢答。 (3)答题限时:当主持人按下开始答题按钮时,启动倒计 时60秒(此倒计时时间可在1~99秒之间修改),若答题时 间过长,倒计时为0时发出报警,说明答题时间到。 (4)计分功能:当按下计分键后可始计分,可实现加减计 分(10分),分值可在1~999之间设置。如果各题分值 相同,可在第一次设定计数分值后直接按加键或减键来 实现计分。 (5)设定功能:按下设定键后,可按顺序设置抢答限时时 间,答题限时时间和默认计分分值。
软件主程序流程图
中断子程序 流程图
键盘扫描 子程序
实验电路
单片机最小系统 通信模块(用于下载stc单片机) 4*4矩阵键盘电路 数码管显示电路
用51单片机制作4路抢答器

用51单片机制作4路抢答器此抢答器具有限时抢答,超时无效的特点,并可以对主持人未喊开始而提前抢答的犯规情况作出判断。
由于用了单片机,所以电路很简单。
懒得写译码程序,也不想做驱动电路。
干脆直接用了一片74LS48译码驱动器来驱动数码管。
呵呵,面包板上插一下,由于之前在Proteus中仿真过,所以直接就正常运行了~上一张实物图 左边的是STC89C52的最小系统版,P1口上接了8个LED,当时做流水灯的。
直接拿来用了。
P2口是显示输出,P3口接受按键。
那个小的芯片就是74LS48啦~下方的是编程器+电源,STC的芯片就是编程方便,支持在线烧写,这么小巧的编程器~ 当然最重要的是程序,附上代码清单。
写的比较烂,竟然上了100行,希望不要被大虾们骂得太惨>_#include#defineuintunsignedchar //计时变量uints= 0,ms= 0; //枚举类型:记录抢答器工作状态enumStat{ Idle= 0,//空闲状态,比如正在读题Ready= 1,//就绪状态,可以抢答Respond= 2,//响应状态,有人抢到了}stat; //时钟中断服务程序voidTimer()interrupt1using1{ TH0=0x3C; TL0=0xBD; ms++; s+=ms/20; ms%= 20; s%= 60;} //重置时钟voidResetTimer(){ EA= 1;//允许CPU中断ET0= 1;//定时器中断打开TMOD= 1;//设定时器为方式TR0= 0;//关定时器ms= 0; s= 0;} //优先编码(反向输入)uintEncode(uintc){ uinti,mask= 1; if(c== 0)return0; for(i= 0;ivoidmain(){ uintled= 0xff;//对应P1口,指示灯uintdisp= 15;//对应P2口,数。
单片机课程设计四路抢答器

xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:四路抢答器院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1课程设计的内容和要求 (1)1.2课程设计原理 (1)1.3课程设计思路 (2)1.4实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (4)2.3功能模块的设计与实现独立式按键功能模块 (4)第3章调试及结果分析 (7)3.1调试步骤及方法 (7)3.2实验结果及分析 (7)参考文献 (8)附录一(源程序) (9)附录二(原理图) (13)附录三(元器件清单) (14)第1章总体设计方案1.1课程设计的内容和要求(1)课程设计内容:使用51单片机制作抢答器功能如下:①常规模式主持人按下抢答开始开关,数码管从10S开始倒计时,此时选手可以抢答,若有选手抢答,相应LED亮,单数码管显示其选手号,双数码管从30S开始进行答题倒计时,答题时间到则单数码管闪烁显示选手号5次,再回到初始状态,若时间到但没有人抢答则回到初始状态(所有灯灭,检测主持键是否按下)②违规模式主持人尚在念题还未按下抢答开始开关,某选手违规抢答,则单数码管闪烁显示其选手号5次后回到初始状态。
(2)课程设计要求:①认真完成课程设计任务;②通过老师现场验收;③交出完整的课程设计报告。
1.2 课程设计原理根据题目要求,设计中采用8031芯片、LED灯、数码管和一些独立式按键构成一个简易四路抢答器。
设计中由于数码管扫描延时比较长,采用单片机的内部定时器进行定时,并采用中断方式。
整个抢答器的工作原理是:在正常的供电状态下,开始抢答时利用单片机倒计时,并由单片机将所需要显示的数据送到LED显示器的输入口,当有键按下时则执行相应的键功能程序。
1.3 课程设计思路(1)提出方案根据设计要求,系统采用个独立式开关作为按键,通过单片机不停地扫描P1口来控制LED数码管的显示,当按下启动按键后,经单片机处理,输出控制信号,数码管从10开始进入减计时并在数码管上显示剩余时间,在有选手按下按键时,就会有对应于这个按键的编码在数码管上显示,同时蜂鸣器给出声响来提示主持人和选手;如果在10秒内没有选手抢答,则本次抢答无效,系统封锁输入电路,禁止选手超时抢答。
单片机课程设计四路抢答器文档

1 设计任务和方案1.1设计任务(一)设计题目:抢答器(二)设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
1.2功能要求说明该抢答器上电或按键复位后能自动显示系统提示符“P.”。
设定S2键、S3键、S4键、S5键、S9键分别为一号选手键、二号选手键、三号选手键、四号选手键、开始键。
若在主持人按下开始键之前有人按下抢答键,则抢答违规,数码管显示器显示违规台号,违规指示灯亮(接在P3.0上的灯),其他按键不起作用,只有主持人按复位键后才能重新开始抢答。
主持人按下开始键后,抢答开始并限定时间30S;10S 内无人抢答,蜂鸣器发出音响;若30S后依然无人抢答,蜂鸣器发出音响,违规指示灯亮。
正常抢答下,从抢答键按下开始30S内,答完后键没按下,则数码管显示器显示违规台号,违规指示灯亮,蜂鸣器发出音响。
各台数字显示的消除、蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位键实现。
1.3设计总体方案及工作原理说明设计中采用AT89S52芯片、LED显示器、蜂鸣器、LED灯和一些独立式按键构成一个简易四路抢答器。
设计中是采用单片机的内部定时器进行定时,原理框图如图1.1所示整个抢答器的工作原理是:在正常的供电状态下,开始抢答时利用单片机倒计时,并由单片机将所需要显示的数据送到LED显示器的输入口,当有键按下时则执行相应的键功能程序。
AT89S52单片机晶振电路单片机复位电路键盘输入8段LED显示器LED灯蜂鸣器图1.1 原理框图2抢答器的硬件系统的设计2.1 硬件系统各模块功能简要介绍该抢答器主要由单片机最小系统、独立式键盘模块、LED显示电路模块、蜂鸣电路模块和LED指示灯电路模块组成。
各模块的功能如下:(1)单片机最小系统由AT89S52单片机、时钟电路和复位电路构成。
基于51单片机的四路抢答器设计

摘要 (I)Abstract (II)引言 (1)1系统概述 (2)1.1抢答器需求分析 (2)1.2 抢答器工作过程 (2)2 单片机功能简介 (3)2.1 STC89C51的功能 (3)2.1.1 STC89C51特殊功能寄存器 (3)2.2 STC89c51单片机的内部结构 (5)3 系统硬件电路的设计 (6)3.1 系统总电路如图 (6)3.2 最小系统的设计 (7)3.2.1 电源的设计 (7)3.2.2 时钟频率电路的设计 (7)3.2.3 复位电路的设计 (9)3.3 显示电路的设计 (11)3.3.1 数码管简介 (12)3.3.2 CD4511七段译码器简介 (12)3.4 按键电路的设计 (14)3.5 蜂鸣器设计 (15)3.6元器件焊接及调试 (17)4 系统软件的设计 (17)4.1 延时子程序 (19)4.2 显示子程序 (19)4.3 倒计时加按键扫描子程序 (19)4.4主程序及分析 (20)5 结论 (23)参考文献 (24)致谢 (25)附录 1 (26)附录2 (27)Contents Abstract....................................................... I I Introduction. (1)1 System overview (2)1.1 The analysis of responder needs (2)1.2 Responder work process (2)2 MCU features (3)2.1 STC89C51 (3)2.1.1 Special function register (3)2.2 The internal structure of STC89c51 (5)3 The design of circuit system (6)3.1 The circuit system (6)3.2 The design of minimum system (7)3.2.1 The design of power supply (7)3.2.2 The design of clock circuit (7)3.2.3 The design of reset circuit (9)3.3 The design of display circuit (11)3.3.1 Digital tube profile (12)3.3.2 The introduction of CD4511 (13)3.4 The design of key circuit (15)3.5 The design of buzzer (15)3.6 Components and welding debuggin g (17)4 The design of software (19)4.1 Delay subroutine (19)4.2 Display program (19)4.3 The countdown and keyboard scanning subroutine (19)4.4 Main program and analysis (20)5 Conclusions (23)References (24)Acknowledgement (25)Appendix 1 (26)Appendix 2 (27)基于51单片机的四路抢答器设计作者:吴新春,指导教师:刘平(山东农业大学讲师)【摘要】本文设计以STC89C51单片机为核心的四路抢答器。
51单片机4路抢答器的原理及C语言源程序

51单片机4路抢答器的原理及C语言源程序单片机,当然不只是51,51单片机是一种稍通用型的单片机,通过I/O口的定义,可以实现多种控制功能。
抢答器,原理:如果为四路,当其中任一路控下后,其他几路即失效,结果为第一次按下的,可以用数码管或是LED灯来显示,当然这里只是讲原理与编程,具体可以根据抢答器路数及显示方式更改程序即可。
源程序如下:/*用的是AT89S52开发板,独立按键接口如下,就用这四路。
先按下的用LED灯来显示,对应第一个到第四个LED灯,其他再按无效,如果想再次实现,可手动复位单片机*/#include <reg52.h>sbit key1=P3^0; //定义按键,根据需要连接线路,如独立按键(4路)sbit key2=P3^1;sbit key3=P3^2;sbit key4=P3^3;/*void delay(unsigned int cnt) //如果有抖动或是干扰,可以用个小延时去抖{while(--cnt);}*/void main(){bit Flag;while(!Flag){if(!key1){P1=0xFE;Flag=1;} /*LED灯来显示按下的键,第一个灯,我这里是8位LED灯,即:0111 1111,反过来读数为:1111 1110 即:0xFE *,P1口对应LED灯,给P1赋值/else if(!key2){P1=0xFD;Flag=1;} //第二个灯亮else if(!key3){P1=0xFB;Flag=1;} //第三个灯亮else if(!key4){P1=0xF7;Flag=1;} //第四个灯亮,意味着第四路首先按下}while(Flag); //可以再加个I/O,控制Flag,这样初始化,继续抢答,还可以设计按下时的声音}以上程序测试只能测试一次,如再想测试,只能手动复位单片机。
当然,可以根据此原理,设计出功能强大的抢答器。
单片机的四路电子抢答器设计

单片机的四路电子抢答器设计设计四路电子抢答器可以用单片机来实现。
抢答器通常包括主控板、显示屏、按键模块、信号输入模块和声音模块,下面我将详细介绍设计过程。
一、系统硬件设计部分:1.主控板:使用单片机作为主控处理器,常见的有51系列、AVR系列和STM32系列等。
根据所选单片机的引脚分配情况,设计电路板布线。
2.显示屏:使用液晶显示屏来显示题目和选手答案情况。
选择适合的液晶显示屏,并连接到主控板上。
3.按键模块:设置每个选手的抢答按键,可以使用带有独立按键的矩阵键盘模块,也可以使用独立的按键和扩展IO口。
4.信号输入模块:接收抢答信号,可以使用红外接收器模块,当选手按下抢答键时发射红外信号,由红外接收器模块接收。
也可以选择其他合适的接收方式。
5.声音模块:用于提醒和提示答题情况,可以使用蜂鸣器模块,通过主控板控制发声。
二、系统软件设计部分:1.初始化:在主控板上编写程序,进行硬件初始化,包括液晶屏初始化、按键模块初始化、红外接收模块初始化等操作。
2.题目显示:通过液晶显示屏展示当前抢答题目。
3.抢答检测:主控板通过循环扫描检测按键状态,当检测到一些按键按下时,记录该选手抢答,并停止其他选手的抢答。
4.抢答结果显示:通过液晶显示屏显示抢答结果,标识各个选手的抢答顺序。
5.声音提示:根据抢答结果,通过蜂鸣器模块进行声音提示,例如正确答案和错误答案的不同提示音。
6.重复抢答:在抢答过程中,如果有选手重复抢答,可以通过程序进行判断并作相应的提示。
7.复位操作:可以设置一个复位按钮,用于清除抢答结果和重新开始抢答。
三、系统工作流程:1.开机初始化:主控板上电初始化,配置各个模块,显示“待机”状态。
2.显示题目:主控板从题库中读取题目内容,并通过液晶显示屏展示给选手。
3.抢答:选手按下抢答按钮,主控板检测到按键状态变化并记录抢答情况。
4.显示抢答结果:主控板通过液晶显示屏显示抢答结果,标识各个选手的抢答顺序。
单片机实现四路抢答器调试的方法

单片机实现四路抢答器调试的方法一、绪论单片机实现四路抢答器是一种常见的电子应用技术,广泛应用于各种竞赛、考试、培训等场合。
其基本功能是通过按钮或其他触发方式,实现对不同参赛者的答题速度和准确性的记录。
为了确保四路抢答器的正常运行和准确性,需要对其进行充分的调试。
本文将介绍单片机实现四路抢答器调试的方法及步骤,以帮助工程师或爱好者顺利完成调试工作。
二、单片机实现四路抢答器的基本原理单片机实现四路抢答器一般采用微处理器或微控制器作为控制核心,利用其强大的处理能力和丰富的外设接口,通过设置中断、定时器/计数器等功能,实现对四路抢答器的控制和监测。
四路抢答器的基本组成部分包括按钮输入模块、数字显示模块、音频提示模块等。
在调试过程中,需要依次测试和验证这些模块的功能,保证其正常工作。
三、单片机实现四路抢答器调试的方法1. 硬件连接调试首先需要进行硬件连接调试,确保四路抢答器的各模块连接正确、接触良好。
包括检查按钮与单片机的连接、数字显示模块与单片机的连接、音频提示模块与单片机的连接等。
同时检查电源线的接触情况,保证各部件能够正常供电。
2. 功能测试在硬件连接调试完成后,需要对各个功能模块进行测试。
包括测试按钮输入模块的响应速度和稳定性,测试数字显示模块的显示效果和准确性,测试音频提示模块的声音播放效果等。
通过这些功能测试,可以确保各模块的功能正常,能够满足四路抢答器的使用要求。
3. 系统集成测试在单个模块的功能测试完成后,需要进行系统集成测试,测试四路抢答器整体的运行情况。
包括测试四路抢答器对多路信号的处理能力、测试按键的抢答效果、测试多个抢答信号的协调工作等。
通过系统集成测试,可以发现各个模块之间的交互问题,及时进行调整和优化。
4. 软件程序调试需要进行软件程序调试。
针对单片机的程序代码进行单步调试,检查各个功能的实现情况和逻辑正确性,确保程序能够按预期运行。
需要对程序中可能出现的错误和异常情况进行充分测试,保证四路抢答器的稳定性和可靠性。
单片机实现四路抢答器调试的方法

单片机实现四路抢答器调试的方法
单片机实现四路抢答器的调试涉及到硬件和软件两个方面。
首先,硬件方面需要考虑电路连接和元器件的选择,其次是软件方面
的程序编写和调试。
在硬件方面,首先需要设计电路连接,包括单片机、按键、LED
指示灯等元器件的连接。
按键用于参与抢答的人员按下表示抢答,LED指示灯用于显示谁最先抢答成功。
在元器件选择上,需要考虑
到单片机的型号和引脚数,按键和LED的连接方式,以及电源等。
一般来说,可以选择常见的单片机如STC系列、51系列等,按键可
以选择常开按键,LED可以选择常见的发光二极管等。
在进行硬件
连接后,需要进行电路的调试,确保按键和LED的连接正确,电路
没有短路等问题。
在软件方面,需要编写单片机的程序。
首先需要进行单片机的
初始化设置,包括引脚的输入输出设置、定时器的设置等。
然后编
写抢答器的逻辑,包括按键的扫描和判断哪个按键最先按下,然后
点亮对应的LED指示灯等。
在编写程序后,需要进行调试,可以通
过仿真器进行单步调试,观察程序的执行情况,确保逻辑的正确性。
总的来说,单片机实现四路抢答器的调试方法涉及到硬件和软件两个方面,需要注意硬件电路的连接和元器件的选择,以及软件程序的编写和调试。
通过认真调试和测试,最终实现稳定可靠的四路抢答器功能。
基于单片机的四路抢答器设计

简易四路抢答器设计目录摘要 (1)一、设计任务与要求 (2)二、方案设计与论证 (2)三、硬件电路设计 (2)1、抢答器的设计总电路 (2)四、软件设计 (3)1、系统主程序流程图 (3)五、器件选型方案 (4)六、调试 (5)1、上电 (5)2、开始 (5)3、仿真 (5)七、体会与心得 (6)八、参考文献 (7)附录主程序清单 (8)单片机四路抢答器设计摘要:本设计是以四路抢答为基本理念。
考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器中断和外部中断,将软、硬件有机地结合起来,使得系统能够正确地进行工作,同时使数码管能够正确显示组别。
用开关做键盘输入,扬声器发生提示。
同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;可以显示是哪位选手有效抢答,正确按键后有音乐提示;当有一组抢答成功后其他组抢答无效。
关键字:AT89C51单片机;四路抢答器;定时/计数器中断一、设计任务与要求1、抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 ~ S3表示。
2、设置一个复位按钮和抢答控制开关S,该开关由主持人控制。
3、抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统复位为止。
二、方案设计与论证方案:该系统采用单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。
MCS-51单片机特点如下:1、可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
单片机四路抢答器的设计

单片机四路抢答器的设计一、设计需求分析在设计四路抢答器之前,我们首先需要明确其功能需求。
1、能够同时支持四路选手进行抢答。
2、当有选手按下抢答按钮时,能够迅速锁定并显示抢答者的编号。
3、具备倒计时功能,在规定时间内无人抢答则显示超时。
4、要有声音提示,如抢答成功、违规抢答、倒计时结束等。
二、硬件设计1、单片机选择我们选用常见的 51 系列单片机,如 STC89C52 单片机。
它具有性能稳定、价格低廉、编程方便等优点。
2、输入模块使用四个独立按键作为四路选手的抢答按钮,分别连接到单片机的四个 I/O 口。
3、显示模块采用数码管显示抢答者的编号和倒计时时间。
可以选择共阴极或共阳极数码管,通过单片机的 I/O 口进行驱动。
4、声音模块使用蜂鸣器来实现声音提示功能。
通过单片机控制蜂鸣器的通断,产生不同频率的声音。
5、电源模块为整个系统提供稳定的电源,可以使用 5V 直流电源适配器。
三、软件设计1、编程语言选择 C 语言进行编程,C 语言具有语法简洁、可读性强、可移植性好等优点。
2、主程序流程系统初始化后,进入等待抢答状态。
当有选手按下抢答按钮时,判断是否违规抢答(即在倒计时未结束前抢答)。
如果是合法抢答,锁定抢答者编号并显示,同时发出抢答成功的声音提示;如果是违规抢答,则发出违规提示音并显示违规者编号。
在抢答成功后,开始倒计时,倒计时结束时发出超时提示音。
3、中断处理利用单片机的外部中断功能,实现对抢答按钮按下事件的快速响应。
4、计时与显示程序通过定时器实现倒计时功能,并将剩余时间实时显示在数码管上。
四、系统调试1、硬件调试首先检查电路连接是否正确,有无短路、断路等情况。
然后测量各个电源点的电压是否正常,确保硬件工作在稳定的状态。
2、软件调试将编写好的程序下载到单片机中,通过单步调试、断点调试等方式,检查程序的执行流程和逻辑是否正确。
同时观察数码管显示和蜂鸣器发声是否符合预期。
五、设计优化与拓展1、增加更多的抢答通道,以满足更多选手参与的需求。
基于51单片机的4路抢答器

电路图:/************************************************************** 4路抢答器,由主持人按下复位键开启抢答,对应选手最先按下按键后由数码管显示选手号码,点亮对应LED,蜂鸣器响,其他选手按键无效**************************************************************/ #include<reg52.h>#define uchar unsigned char#define uint unsigned intunsigned char code LED_DATE [] = //定义数码管段数组{0XC0, // 00XF9, // 10XA4, // 20XB0, // 30X99, // 40X92, // 50X82, // 60XF8, // 70X80, // 80X90, // 9unsigned char code LED_W [] = //定义数码管位数组{0X80, //第一个数码管位0X40, //第二个数码管位0X20, //第三个数码管位0X10, //第四个数码管位0X08, //第五个数码管位0X04, //第六个数码管位0X02, //第七个数码管位0X01 //第八个数码管位};sbit DS_HC595 =P1^5; //定义74HC595 I/O口sbit SHCP_HC595 =P1^6;sbit STCP_HC595 =P1^7;sbit K1=P3^2; //定义按键I/O口sbit K2=P3^3;sbit K3=P3^4;sbit K4=P1^2;sbit LED1=P2^4; //定义LED I/O口sbit LED2=P2^5;sbit LED3=P2^6;sbit LED4=P2^7;sbit BUZZ=P1^1; //定义蜂鸣器I/O 口void KEY();void Display();void Delay(uchar xms);void HC595(uchar V alue);uchar num=0;void main(){while(1){KEY();Display(); //数码管显示0}void KEY(){if(K1==0){Delay(10); //延时消抖if(K1==0) //再次判断{while(!K1); //按键松开检测while(1) //使用死循环,使其他选手按下按键后无效(下同){LED1=0; //使1号灯亮(下同)BUZZ=~BUZZ; //蜂鸣器响num=1; //显示1号Display();Delay(10);}}}if(K2==0){Delay(10);if(K2==0){while(!K2); //按键松开检测while(1){LED2=0;BUZZ=~BUZZ;num=2;Display();Delay(10);}}}if(K3==0){Delay(10);if(K3==0){while(!K3); //按键松开检测while(1){LED3=0;BUZZ=~BUZZ;num=3;Display();Delay(10);}}}if(K4==0){Delay(10);if(K4==0){while(!K4); //按键松开检测while(1){LED4=0;BUZZ=~BUZZ;num=4;Display();Delay(10);}}}}void Display() //显示函数,静态扫描{P0=LED_DATE[num]; //送段码HC595(LED_W[7]); //送位码}void HC595(uchar V alue) //74HC595驱动函数{uchar i=0;for(i=0;i<8;i++){DS_HC595=Value&0X01;SHCP_HC595=0;SHCP_HC595=1;Value>>=1;}STCP_HC595=0;STCP_HC595=1;}void Delay(uchar xms) //延时函数{uchar i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}。
C51单片机四路抢答器综述

目录一、摘要 (3)二、方案设计 (4)2.1、设计要求 (4)2.2、总体法案设计 (4)三、硬件电路设计 (5)3.1、元器件简介 (5)3.2、独立式按键电路 (7)3.3、时钟电路设计 (6)3.4、指示灯电路设计 (7)四、制作以调试 (8)4.1系统程序设计 (8)4.2主程序流程图主程序流程图 (8)4.3程序清单 (9)五、心得与体会 (11)六、参考文献 (12)一、摘要单片机作为一种工具,现在已经广泛的应用于智力和只是竞赛场合。
本次设计是基于单片机51系列的理论知识综合运用AT89C52单片机设计的简易四路抢答器。
利用AT89C52单片机的外围接口来实现抢答系统,利用单片机的定时器/计数器计数和定时的原理,将软、硬件有机的结合起来,使得系统能正确的记时,发光二极管能正常的闪烁。
同时系统能够实现:在抢答过程中只有在主持人按下开始抢答键开始之后抢答才有效,如果在开始抢答之前抢答视为无效。
在抢答成功之后发光二极管会变成闪烁状态与提示选手开始回答问题。
同时还有主持人控制的系统复位键,以实现系统的复位。
还有按键锁定,在一个选手抢答成功或者法规状态下其他按键无效。
通过这次的设计,对51系列的单片机的运用有了更深一层次的了解,也提高了我们的动手能力,加深我们对单片机的映像,为我们以后的学习打下一定的基础。
二、方案设计2.1、设计要求(1)、总共4个按键,四个供四个选手用作“抢答”操作。
(2)、用1个发光二极管用作开始抢答的指示灯,用4个发光二极管分别显示4个选手的抢答状态。
(3)、开始抢答后,哪个选手抢答键最先按下,该选手的抢答指示灯点亮,表示抢答成功,此时其他选手再按键为无效,抢答成功后开始3秒计时,到时指示灯变为闪烁,以提示选手选手抢答后必须3秒内回答问题。
2.2、总体法案设计方案:依据课题要求,基于AT89C52单片机制作的抢答器,其最大的好处就是处理快,准确性高、可靠性好、控制功能强。
基于MCS51单片机的四路抢答器

基于MCS-51单片机的四路抢答器13.3 基于MCS-51单片机的四路抢答器抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。
能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。
本节介绍一种利用8051单片机作为核心部件进行逻辑控制及信号产生的四路抢答器。
硬件电路应能完成以下功能:参加竞赛者对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。
当第一个人按下按键后,则在显示器上显示此竞赛者的号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。
若有人在可以抢答之前按键,应该有违规提示。
电路应该具有倒计时功能,倒计时时间可以设置并显示,在规定时间内没有人抢答则本题作废。
回答完或超时后,由主持人将所有按键恢复,重新开始下一轮。
完成上述功能的电路包括时间设定开关、声光显示、按键控制以及按键锁存等部分,如图13.6所示。
各电路模块的功能如下。
·单片机部分:通过读取P3.7~P3.3的状态决定倒计时时间;通过读取P1.3~P1.0的状态读取按键情况;通过P2.4~P2.2控制显示模块以显示按键者的号码和倒计时所剩时间;通过P0.1控制蜂鸣器。
·时间设定模块:以拨码开关U3作为倒计时时间的选择信号。
若P3.7通过U3接地,倒计时时间为10s;若P3.6通过U3接地,倒计时时间为8s,若P3.5通过U3接地,倒计时时间为6s,若P3.4通过U3接地,倒计时时间为4s。
判断时P3.7优先级最高,P3.4优先级最低。
·按键模块:KEY1~KEY4的信息可以直接传输到P1.3~P1.0。
单片机一旦检测到有按键按下,立即将P1.4置为低电平,将按键信息锁存,以免后来的按键对其产生影响。
KEY1~KEY4为抢答按键,KEY5为主持人控制按键。
单片机四路抢答器

第一章绪论单片机介绍单片机是一种集成在芯片,是采纳技术把具有数据处置能力的中央处置器CPURAM、、多种I/O口和中断系统、按时器/等功能(可能还包括显示驱动电路、电路、模拟多路转换器、等电路)集成到一块硅片上组成的一个小而完善的。
单片微型运算机简称单片机,是典型的嵌入式(Microcontroller Unit),经常使用英文字母的缩写MCU表示单片机,它最先是被用在工业操纵领域。
单片机由内仅有CPU的专用进展而来。
最先的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使更小,更易集成进复杂的而对体积要求严格的操纵设备当中。
INTEL的Z80是最先依照这种思想设计出的处置器,从此以后,单片机和专用途理器的进展便分道扬镳。
单片机比专用途理器更适合应用于,因此它取得了最多的应用。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
电话、、、家用电器、电子玩具、和鼠标等电脑配件中都配有1-2部单片机。
而中也会有为数很多的单片机在工作。
上一样配备40多部单片机,复杂的工业操纵系统上乃至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,乃至比人类的数量还要多。
单片机又称,它不是完成某一个逻辑功能的芯片,而是把一个到一个芯片上。
相当于一个微型的运算机,和运算机相较,单片机只缺少了I/O设备。
归纳的讲:一块芯片就成了一台运算机。
它的体积小、质量轻、价钱廉价、为学习、应用和开发提供了便利条件。
同时,学习利用单片机是了解运算机原理与结构的最正确选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的件,不同的是它的这些部件性能都相对咱们的家用电脑弱很多,只是价钱也是低的,一样不超过10元即可......用它来做一些操纵电器一类不是很复杂的工作足矣了。
咱们此刻用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都能够看到它的身影。
它主若是作为操纵部份的核心部件。
基于单片机的四路抢答器的设计2

目录0. 前言 (2)1. 四路抢答器的基本理论 (2)2.方案设计 (3)3. 硬件电路的工作原理 (3)3.1抢答器的电路图 (3)3.1.1 液晶屏显示电路 (4)3.2按键控制电路 (4)4. 软件编程 (4)5. 系统调试和结果分析 (5)6. 结论及进一步设想 (5)参考文献 (6)附录1 元件清单 (6)附录2 源程序 (6)课设体会 (12)基于单片机的四路抢答器的设计2摘要:抢答器可以在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答成功者。
通过抢答者的指示灯、液晶屏显示和声音显示等手段指示出第一抢答者。
一般抢答器由单片机以及外围电路组成,分为四路、八路等不同,四路和八路的差别是,抢答器背面的接口有几组,和外形没有关系。
通过自主的设计、编程和调试出一个简单的四路抢答并在液晶屏显示抢答成功者号码;熟悉C语言编程;了解单片机仿真系统的使用方法,达到提高综合运用相关知识的能力;进一步熟悉和掌握Proteus7的使用方法;掌握单片机系统设计全部过程的目的。
关键字: 抢答单片机液晶屏显示0.前言电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。
单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。
因此一块芯片就构成了一台计算机。
它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(论文)题目名称简易四路抢答器设计课程名称学生姓名学号系、专业指导教师2010年7 月1 日学生姓名学号系别专业班级题目名称简易四路抢答器课程名称一、学生自我总结目录摘要 (4)一,设计任务与要求 (4)二,方案设计与论证 (4)三,硬件电路设计 (5)四,软件设计 (8)五,器件选型方案 (21)六,调试: (22)七,结论与心得 (22)八,参考文献 (23)单片机四路抢答器设计摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。
但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。
作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以四路抢答为基本理念。
考虑到依需设定限时回答的功能,利用AT49C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。
同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。
一,设计任务与要求1、抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 ~ S3表示。
2、设置一个系统清除和抢答控制开关S,该开关由主持人控制。
3、抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号并保持到主持人将系统清除为止。
二,方案设计与论证方案:该系统采用51系列单片机AT49C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。
MCS-51单片机特点如下:<1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
<3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
其原理框图如下:三,硬件电路设计1、抢答器的电路框图如图11、1所示为电路框图。
其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作"开始、停止"状态开关。
抢答器框图图11.2抢答电路的接口电路如图11、1所示为电路框图。
其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。
扬声器给出声响提示。
抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答。
如果再次抢答必须由主持人再次操作“开始、停止”状态开关。
2、单元电路设计(1)抢答器电路参考电路如图11.2所示。
该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。
如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。
(2)时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路进人正常抢答工作状态。
b.当参赛选手按动抢答键时,扬声器发声,抢答电路停止工作。
(3)复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。
复位电路如下图示:2.3.3外部震荡电路外部震荡电路单片机必须在AT49C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图。
2.3.4报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。
一般喇叭是一种电感性图11.4报警电路图。
4951驱动喇叭的信号为各种频率的脉冲。
因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。
在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。
不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。
选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答。
如果再次抢答必须由主持人再次*作"清除"和"开始"状态开关。
图面是数字抢答器的报警电路图。
其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。
PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
四,软件设计1、系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。
当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。
(1)主程序流程图?2、主程序清单ORG 0000HLJMP STARTUP1 ORG 000BHLJMP dingshiORG 001BHLJMP fengmingqiORG 0400Hmain:LCALL initSETB TR0MOV TH0,#0x3C MOV TL0,#P3MOV 0x0E,#0x00 MOV 0x0F,#0x01 MOV 0x10,#0x00 MOV 0x11,#0x01 MOV R3,#0x01 MOV R2,#0x00a12:JB P0.0,a1MOV 0x0E,#0x00 MOV 0x0F,#0x01 MOV 0x10,#0x00 MOV 0x11,#0x01 MOV R2,#0x00 MOV R3,#0x01CLR 0x20.0CLR AMOV 0x09,ASETB TR0MOV TH0,#0x3C MOV TL0,#P3CLR TR1MOV 0x0A,AMOV 0x0C,AMOV 0x0D,AMOV DPTR,#0x0B4C MOVC A,@A+DPTR MOV P3,AMOV DPTR,#shuma CLR AMOVC A,@A+DPTR MOV 0xA0,Aa1:MOV A,0x0FORL A,0x0EJNZ a2LJMP a3a2:MOV A,R3ORL A,R2JNZ a4LJMP a3a4:MOV A,0x11ORL A,0x10JNZ a5LJMP a3a5:MOV A,0x09MOV B,#0x0A LCALL a6MOV R7,BMOV A,R7RLC ASUBB A,ACCMOV R6,AMOV A,#0x45 ADD A,R7MOV DPL,AMOV A,#0x0B ADDC A,R6MOV DPH,ACLR AMOVC A,@A+DPTR MOV 0xA0,A;a4:MOV A,0x09MOV B,#0x0A LCALL a6MOV R7,BCLR CMOV A,R7XRL A,#P0SUBB A,#SPJC a7MOV A,0x09MOV B,#0x0ALCALL a6MOV R7,ARLC ASUBB A,ACCMOV R6,AMOV A,R7ADD A,#0x04 MOV R7,ACLR AADDC A,R6MOV R6,AMOV A,R7XRL A,#0x0AORL A,R6JZ a4MOV A,0x09MOV B,#0x0A LCALL a6MOV R7,ARLC ASUBB A,ACCMOV R6,AMOV A,#0x4D ADD A,R7MOV DPL,AMOV A,#0x0B ADDC A,R6MOV DPH,ACLR AMOVC A,@A+DPTR MOV P3,Aa4:MOV A,0x09MOV B,#0x0A LCALL a6MOV R7,ARLC ASUBB A,ACCMOV R6,AMOV A,R7ADD A,#0x04 MOV R7,ACLR AADDC A,R6MOV R6,AMOV A,R7XRL A,#0x0AORL A,R6JNZ a9MOV DPTR,#shuma SJMP a10a7:MOV A,0x09MOV B,#0x0A LCALL a6MOV R7,ARLC ASUBB A,ACCMOV R6,AMOV A,#0x4CADD A,R7MOV DPL,AMOV A,#0x0B ADDC A,R6MOV DPH,ACLR Aa10:MOVC A,@A+DPTR MOV P3,Aa9:JNB 0x20.0,a3CLR AMOV R2,AMOV R3,ACLR 0x20.0MOV DPTR,#0x0B4C MOVC A,@A+DPTR MOV P3,AMOV DPTR,#shuma CLR AMOVC A,@A+DPTR MOV 0xA0,ACLR TR0a3:MOV A,0x11ORL A,0x10JNZ a11LJMP a12a11:MOV A,0x0FORL A,0x0EJNZ a13LJMP a12a13:MOV A,P1ANL A,#0x0F MOV R1,ACLR AMOV R4,AMOV R5,Aa17:CLR CMOV A,R5SUBB A,#0x04 MOV A,R4XRL A,#P0SUBB A,#P0JC a14LJMP a12a14:MOV A,#0x4F ADD A,R5MOV DPL,AMOV A,#0x0B ADDC A,R4MOV DPH,ACLR AMOVC A,@A+DPTR XRL A,R1JNZ a15LCALL delayMOV A,#0x4F ADD A,R5MOV DPL,AMOV A,#0x0B ADDC A,R4MOV DPH,ACLR AMOVC A,@A+DPTR XRL A,R1JNZ a15MOV A,R3JNZ a16CLR CMOV A,#0x09 SUBB A,R5MOV R7,ACLR ASUBB A,R4MOV R6,AMOV A,#0x45 ADD A,R7MOV DPL,AMOV A,#0x0B ADDC A,R6MOV DPH,ACLR AMOVC A,@A+DPTR MOV 0xA0,A MOV P3,#0xFF CLR AMOV 0x10,AMOV 0x11,AORL P1,#BSJMP a15a16:SETB TR1MOV TH1,#0xFF MOV TL1,#0xFF CLR TR0CLR AMOV 0x0E,A MOV 0x0F,ACLR CMOV A,#0x09 SUBB A,R5MOV R7,ACLR ASUBB A,R4MOV R6,AMOV A,#0x45 ADD A,R7MOV DPL,AMOV A,#0x0B ADDC A,R6CLR AMOVC A,@A+DPTR MOV 0xA0,ACLR CMOV A,#0x09 SUBB A,R5MOV 0x0A,A MOV P3,#0xFF LJMP a12a15:INC R5CJNE R5,#0x00,a14 INC R4a14:LJMP a17a6:CLR F0JNB 0xF0.7,a19 CPL F0XRL B,#0xFFINC Ba19:JNB 0xE0.7,a20 CPL F0CPL AINC ADIV ABXRL B,#0xFFINC BSJMP a21a20:DIV ABa21:JNB F0,a22CPL AINC Aa22:RETa40:CLR F0MOV A,R4JNB 0xE0.7,a23 CPL F0CLR ACLR CSUBB A,R5MOV R5,ACLR ASUBB A,R4MOV R4,Aa23:MOV A,R6JNB 0xE0.7,a24 CPL F0CLR ACLR CSUBB A,R7MOV R7,ACLR ASUBB A,R6MOV R6,A LCALL a25CLR CCLR ASUBB A,R5MOV R5,ACLR ASUBB A,R4MOV R4,A SJMP a26a24:LCALL a25a26:JNB F0,a27CLR CCLR ASUBB A,R7MOV R7,ACLR ASUBB A,R6MOV R6,Aa27:RETa25:CJNE R4,#0x00,a24 CJNE R6,#0x00,a29 MOV A,R7DIV AB MOV R7,A MOV R5,B RETa24:CLR AXCH A,R4 MOV R0,A MOV B,#0x04 a31:MOV A,R7 ADD A,R7 MOV R7,A MOV A,R6 RLC AMOV R6,A MOV A,R4 RLC AMOV R4,A MOV A,R6 SUBB A,R5 MOV A,R4 SUBB A,R0 JC a30 MOV R4,A MOV A,R6 SUBB A,R5 MOV R6,A INC R7a30:DJNZ B,a31 CLR AXCH A,R6 MOV R5,A RETa29:MOV A,R5 MOV R0,A MOV B,A MOV A,R6 DIV ABJB OV,a32 MOV R6,AMOV B,#0x04a35:MOV A,R7ADD A,R7MOV R7,AMOV A,R5RLC AMOV R5,AJC a33SUBB A,R0JNC a34DJNZ B,a35RETa33:CLR CSUBB A,R0a34:MOV R5,AINC R7DJNZ B,a35a32:RETfengmingqi: PUSH ACCPUSH BPUSH DPHPUSH DPLPUSH PSWMOV PSW,#0x00 PUSH 0x00PUSH 0x04PUSH 0x05PUSH 0x06PUSH 0x07MOV TH1,#0x3CMOV TL1,#P3INC 0x0DMOV A,0x0DJNZ a36INC 0x0Ca36:CPL AJNZ a37MOV 0x0C,A MOV 0x0D,#0x0B a37:SETB CMOV A,0x0D SUBB A,#0x0A MOV A,0x0C XRL A,#P0 SUBB A,#P0JNC a34CPL 0xB0.7 SJMP a39a34:SETB 0xB0.7a39:MOV R6,0x0C MOV R7,0x0D MOV R4,#0x00 MOV R5,#0x0A LCALL a40MOV A,R5ORL A,R4JNZ a41MOV A,0x04 JNZ a42MOV 0x04,#0x01 MOV 0xA0,#0xFF SJMP a41a42:MOV 0x04,#0x00 MOV R7,0x0A MOV A,R7RLC ASUBB A,ACC MOV R6,AMOV A,#0x45 ADD A,R7MOV DPL,A MOV A,#0x0B ADDC A,R6MOV DPH,A CLR AMOVC A,@A+DPTR MOV 0xA0,Aa41:POP 0x07POP 0x06POP 0x05POP 0x04POP 0x00POP PSWPOP DPLPOP DPHPOP BPOP ACCRETIdingshi: PUSH ACCPUSH PSWMOV TH0,#0x3C MOV TL0,#P3INC 0x0BMOV A,0x0BCJNE A,#0x14,a43 INC 0x09MOV 0x0B,#0x00a43:MOV A,0x09CJNE A,#0x1E,a44 MOV 0x09,#0x00 SETB 0x20.0CLR TR0a44:POP PSWPOP ACCRETIinit: MOV TMOD,#0x11 SETB ET0SETB ET1CLR TR0CLR TR1SETB EAANL P1,#0x0FRETdelay:CLR AMOV R7,AMOV R6,Aa46:INC R7CJNE R7,#0x00,a45INC R6a45:MOV A,R7XRL A,#0x0Ca47:ORL A,R6JNZ a46RETshuma:PUSH P1SJMP a47ANL C,0x90.2SUBB A,R1ANL C,/0xA0.4MOV R1,AKeyBoard:INC R6INC R5INC R3INC @R1STARTUP1:MOV R0,#0x7FCLR AIDA TALOOP:MOV @R0,ADJNZ R0,IDATALOOPMOV SP,#0x20LJMP mainEND五,器件选型方案表1 器件选型方案的详细清单极性电容10uF 1电阻3WTT10K 9电容20PF 3晶振12MHZ 1按钮15共阴4位7段数码管SMG SM410561K 1扬声器 1六,调试:(1) 开机按电源开关,显示屏左边的"抢答"指示灯亮,数码管显示。