单片机简易四路抢答器

合集下载

51单片机 4路抢答器

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;}}}。

4路抢答器设计单片机课程设计报告

4路抢答器设计单片机课程设计报告

目录1、课程设计目的 (3)2、课程设计正文 (3)1、软件方面设计 (3)①总程序流程图 (3)②显示子程序流程图 (4)2、硬件方面设计 (5)①方案设计 (5)②单元电路设计 (5)③系统调试 (8)3、课程设计总结或结论 (8)4、参考文献 (8)附录一:总的原理图附录二:PCB图附录三:总程序1、课程设计目的①可以自主设计简单地电路;②掌握响应外部中断的原理;③利用Protel硬件设计电路原理图和PCB图;④初步掌握使用Proteus进行单片机的软硬件联机调试。

技术要求:①设置4个抢答台和4个抢答成功指示灯,1个比赛主持人“开始”键和1个抢答指示灯以及1个LED显示器。

②采用中断和查询结合的方法确定按键的动作。

③主持人按下“开始”键后,若有人抢答,则抢答指示灯确认有人抢答,并用7段LED显示抢答者的号码(1--4),并同时点亮对应抢答台上的抢答成功指示灯;若10秒内无人抢答,则发出超时报警,此题作废,主持人可按下“开始”键开始下一题的抢答。

2、课程设计正文1、软件设计方面①总程序流程图②显示子程序2、硬件方面设计①方案设计采用以52为内核的STC系列的芯片,组成一个单片机的最小应用系统,运用C语言编程来实现四路抢答器的设计,采用独立式键盘来作为输入,LED数码管显示,蜂鸣器来报警。

用此方案的优点是:编程简单、操作方便、成本低和错误率低。

②单元电路设计各引脚接线:通过单片机各引脚功能的介绍,本硬件设计中,P0口接数码管显示器;P1口接独立式键盘;P2.0通过PNP驱动接数码管;/ALE脚和/PSEN脚悬空,/EA脚接高电平;复位电路包含了上电复位和按键复位;晶振选择为6MHz,GND接地,VCC接+5V电源;蜂鸣电路接在P2.1上面。

针对抢答器的设计,输入电路键盘按下开始键后,开始抢答,按下相应的键,输出电路相应的LED二极管发光、数码管显示相应的序号⑴复位电路复位电路有两种复位方式:上电复位和按键复位。

单片机四路抢答器的设计

单片机四路抢答器的设计

第一章绪论1.1单片机介绍单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

单片机由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。

现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。

而个人电脑中也会有为数不少的单片机在工作。

汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。

基于单片机的四路抢答器

基于单片机的四路抢答器

基于单片机的四路抢答器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);}}}。

单片机控制四路抢答器设计

单片机控制四路抢答器设计

课题名称:单片机控制四路抢答器设计专业:电机与电器班级:电测092班学号:200901370225姓名:戴兴国指导教师:陈新喜目录摘要 (3)关键词 (3)作品说明 (3)设计思路 (4)(一)设计任务 (4)(二)设计要求 (4)第一章器件功能介绍 (5)1.1元器件清单 (5)1.2 主要元器件介绍 (5)2.74F245驱动器: (6)第二章单片机控制LED显示四路抢答电路设计 (7)2.1 硬件电路设计 (7)2.2 软件设计 (7)2.3 程序设计 (7)参考文献 (9)摘要现在开展的竞赛抢答活动越来越多,而在大多数比赛当中都是采用抢答器进行抢答的。

本设计的核心是使用A T89S52单片机控制,抢答器可同时满足4名选手或4个代表队参加竞赛抢答比赛。

且本文设计的抢答器具有功能强大,造价低廉,维修方便等特点。

该抢答器同时具有锁存,数码LED显示功能,彩灯指示,抢答报警,违规抢答报警等功能。

即选手按动按钮,会锁存相应的编号,并且在LED数码管上同步显示,彩灯指示,同时蜂鸣器会发出报警声响提示。

关键词A T89S52单片机控制LED数码显示抢答器作品说明该作品电路面板上有一个电源开关,一个复位开关,一个开始按钮,四个抢答按钮,一个电源指示灯和六个指示彩灯。

打开电源开关,面板电源指示灯(红色)亮代表抢答器已通电可以正常工作了。

复位按钮和开始按钮由主持人操控。

四个抢答按钮分别有4名选手或4个代表队操控。

当主持人问完问题按下“开始”按钮后会有三个绿色彩灯亮,这时4个代表选手可以进行抢答了,其中一路选手在抢答完毕后LED 显示屏会显示相应选手的编号,蜂鸣器会发出报警提示,同时绿色彩灯熄灭而三个红色彩灯亮。

抢答器这时不会再接受其他任一路的指令抢答。

抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统复位为止。

这时主持人可以按下“复位”键进行下一轮比赛抢答了。

而在主持人没有按下“开始”键之前如有选手违规抢答,这时LED显示屏会显示选手的编号并不断闪烁,同时扬声器发出报警声绿色彩灯也会不断闪烁,直到主持人按下复位键。

用51单片机制作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秒内没有选手抢答,则本次抢答无效,系统封锁输入电路,禁止选手超时抢答。

51单片机的四路电子抢答器设计

51单片机的四路电子抢答器设计

目录1设计要求与功能 (4)1.1设计基本要求 (4)2 硬件设计 (4)2.1控制系统及所需元件 (4)2.2抢答器显示模块 (5)2.3 电源方案的选择 (6)2.4 抢答器键盘的选择 (6)2.5蜂鸣器模块 (7)2.6外部振荡电路 (7)3 程序设计 (7)3.1程序流程图 (7)3.2系统的调试............................................... (9)3.3 焊接的问题及解决 (10)4总结 (10)附录C程序 (11)Word 资料一设计要求与功能1.1设计基本要求(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。

(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。

当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。

(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。

(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。

等待下一轮抢答。

二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。

其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。

所需元件:该系统的核心器件是STC89C52。

各口功能:P0.0-P0.3 是数码管的位选口;P2.0-P2.7是数码管的段选口,为其传送段选信号;P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。

C51单片机四路抢答器综述

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单片机制作的抢答器,其最大的好处就是处理快,准确性高、可靠性好、控制功能强。

《简易四路抢答器》

《简易四路抢答器》

;实战四《简易四路抢答器》;该抢答器供不多于4个参赛队或者个人的抢答比赛场合使用。

每个参赛队的座位前;安装1只抢答按钮开关(用板上的S9、S10、S11、S12)和一个信号灯(D4、D5、D6、D7)。

;主持人座位前装一只复原开关(板上S3)、1只蜂鸣器(板上BUZ1)和一个抢答器工作状态;指示灯(D10),每当主持人口头发出号令之后.哪个队先按下座位上的按钮开关,该座位的信;号灯就先被点亮,同时封锁其他按钮开关的活动.并且熄灭主持人座位上的状态指示灯和发出;三声类似于电话振铃的提示声,以声明此次抢答动作已经完成.在主持人确认后,按下复原按钮;,状态指示灯重新点亮,并且同时发出"笛-笛-"声,为下一次抢答作好准备.;PIC单片机学习网陈学乾 ;程序文件名:"MCD-INTBUZ.ASM";******************************************************************** *;程序清单;******************************************************************** *tmr0 equ 1h ;定义定时器/计数器0寄存器地址status equ 3h ;定义状态寄存器地址option_reg equ 81h ;定义选项寄存器地址option_temp equ 0a6h ;(在BACK1)定义选项寄存器的备份寄存器的地址intcon equ 0bh ;定义中断控制寄存器地址portc equ 7h ;定义端口RC的数据寄存器地址trisc equ 87h ;定义端口RC的方向控制寄存器地址portb equ 06h ;定义端口RB的数据寄存器地址trisb equ 86h ;定义端口RB的方向控制寄存器地址c equ 0 ;定义进位标志位的位地址z equ 2 ;定义0标志位的位地址w equ 0 ;定义传送目标寄存器为W的指示位f equ 1 ;定义传送目标寄存器为RAM的指示位t0if equ 2 ;定义TMR0中断标志位的位地址t0ie equ 5 ;定义TMR0中断使能位的位地址inte equ 4 ;定义外部中断使能位的位地址intf equ 1 ;定义外部中断标志位的位地址count equ 20h ;定义一个计数器变量count1 equ 24h ;定义一个计数器变量count2 equ 25h ;定义一个计数器变量count3 equ 27h ;定义一个计数器变量count4 equ 28h ;定义一个计数器变量portb_b equ 21h ;为PORTC定义一个备份寄存器w_temp equ 7fh ;为W在体0和体1定义2个备份寄存器;w_temp equ 0ffh ;(若是16F873/4,则需保留FFH单元)status_temp equ 23h ;为STATUS定义一个备份寄存器rp0 equ 5h ;定义状态寄存器中的页选位RP0;******************复位向量和中断向量***********************org 000h ;nop ;设置一条ICD必须的空操作指令goto main ;org 0004h ;goto serv ;跳转到中断服务子程序;*******************主程序************************************mainbsf status,rp0 ;movlw 0 ;movwf trisc ;设置RC口全部为输出movlw 0ffh ;movwf trisb ;设置RB口全部为输入movlw 02h ;设置选项寄存器:上拉电阻启用;INT下降沿触发movwf option_reg ;分频器给TMR0;分频比1:8bcf status,rp0 ;movlw 90h ;movwf intcon ;开发INT中断clrf portc ;RC口灯全灭loopmovf portb,w ;读取RB口数据iorlw b'11100001' ;送RB口的数到备份寄存器并将除S9、S10、S11、S12以外的位全部送1movwf portb_b ;xorlw 0ffh ;没有键按下转LOOP继续检测btfsc status,z ;goto loop ;call delay10ms ;防抖动廷时movf portb,w ;iorlw b'11100001' ;xorwf portb_b,0 ;再次读取RB口的数据,与前一次读的数相同则键值有效btfsc status,z ;goto loop ;comf portb_b,w ;取反以便使被按下按键的位为1,其它位为0movwf portc ;送RC口显示call tone3t ;调用发声三次子程序loop1comf portb,w ;检测按键是否有松开andlw b'00011110' ;btfsc status,z ;goto loop ;松开了返回goto loop1 ;没松开继续检测;*********************中断服务子程序***************************** serv;********************保存护现场部分*******************************movwf w_temp ;保护Wswapf status,w ;保护STATUSclrf status ;选择体0movwf status_temp ;将STATUS存入体0的备份寄存器;********************* 调查中断源********************************** btfsc intcon,intf ;检查不是INT中断,返回goto intserv ;是!转到INT中断处理部分goto retfie0 ;;*********************INT中断处理部分****************************** intservclrf portc ;令全部灯熄灭bsf portc,7 ;点亮D10,表示就绪call tone630 ;调用高音子程序call delay ;调用1S廷时子程序call tone630 ;调用低音子程序bcf intcon,intf ;清除INT中断标志位;*************************恢复现场部分***************************** retfie0swapf status_temp,w ;恢复STATUSmovwf status ;swapf w_temp,f ;恢复Wswapf w_temp,w ;retfie ;中断返加;*************************低音调发生子程序(500HZ/50MS)************* tone500movlw .50 ;循环次数寄存器赋初值movwf count ;50=500HZx0.05Sx2t5lopbcf intcon,t0if ;清除TRM0溢出中断标志位movlw .131 ;给TMR0装入初值256-125=131movwf tmr0 ;启动定时器t5herebtfss intcon,t0if ;定时器溢出否goto t5here ;否!循环栓测movlw b'01000000' ;只将BIT6置位xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变decfsz count,f ;循环次数递减,为0,跳一步goto t5lop ;不为0,跳回return ;返回;**************************高音调发生子程序(630HZ/50MS)*****************tone630movlw .63 ;循环次数寄存器赋初值movwf count1 ;63=630HZx0.05Sx2t6lopbcf intcon,t0if ;清除TRM0溢出中断标志位movlw .157 ;给TMR0装入初值157=256-99movwf tmr0 ;启动定时器t6herebtfss intcon,t0if ;定时器溢出否goto t6here ;否!循环栓测movlw b'01000000' ;只将BIT6置位xorwf portc,f ;只将RC6(BUZ)脚电平反转,其余不变decfsz count1,f ;循环次数递减,为0,跳一步goto t6lop ;不为0,跳回return ;返回;*********************发声1S子程序(1S=10x(50ms+50ms)*********** tonelsmovlw .10 ;循环次数寄存器赋初值movwf count2 ;t1lopcall tone500 ;调用低音子程序call tone630 ;调用高音子程序decfsz count2,f ;循环次数递减,为0,跳一步goto t1lop ;不为0,跳回return ;返回;*********************TMR0廷时子程序1S(1S=16x256x(256-12)US)******** delaybsf status,rp0 ;设置文件寄存器体1movf option_reg,w ;保护选项寄存器内容movwf option_temp ;movlw 07h ;重设选项寄存器;上拉电阻启用,INT 下降沿触发movwf option_reg ;分频器给TRM0;分频比值设为1:256 bcf status,rp0 ;恢复到文件寄存器体0movlw .16 ;循环利用TMROP定时16次movwf count3 ;溢出次数寄存器d1lopbcf intcon,t0if ;清除TMR0溢出中断标志位bcf intcon,t0ie ;清除TMR0溢出中断使能位movlw .12 ;给TMR0装入初值12=256-244movwf tmr0 ;启动定时器herebtfss intcon,t0if ;用查询法检测TMR0溢出否goto here ;否!返回decfsz count3,f ;是!溢出次数减1,为0,跳一步goto d1lop ;否!循环利用TMR0bsf status,rp0 ;设置文件寄存器体1movf option_temp,w ;恢复选项寄存器内容movwf option_reg ;bcf status,rp0 ;恢复到文件寄存器体0return ;返回;*************************断续发声3次报警子程序***********************tone3tmovlw .3 ;循环次数寄存器赋初值movwf count4 ;t3lopcall tonels ;调用发声1S子程序call delay ;调用廷时1S子程序decfsz count4,f ;循环次数递减,为0,跳一步goto t3lop ;不为0,跳回return ;返回;**************************软件廷时10MS子程序****************************delay10msmovlw .13 ;将外层循环参数值送到30Hmovwf 30h ;lp0movlw 0ffh ;将内层循环参数值送到31Hmovwf 31h ;lp1decfsz 31h,1 ;变量31H内容递减,若为0则跳跃 goto lp1 ;跳转到LP1decfsz 30h,1 ;变量30H内容递减,若为0则跳跃 goto lp0 ;跳转到LP0return ;返回主程序end ;源程序结束;***************************************************; 进入该实战演练的工序流程如下:; 1.创建源文件和编辑源文件;在此介绍一种不同于前面讲的创建源文件的方法,用Windows附件中的”记事本”; 这个为大家所熟知和好用的文件编辑器,并且可以方便的加入中文注释.不过有两点需要注意,一是注释前面的; 分号”;”必须用西文半角输入;二是必须用”.asm”扩展名存储到事先建立的一个专用子目录下.; 2.打开MPLAB集成开发环境:首先在WINDOWS环境下,选用开始>程序>Microchip MPLAB>MPLAB命令,启动MPLAB; 并进入MPLAB的桌面.; 3.创建项目:选用菜单File>New或Project>New Project,在事先建立的一个专用子目录下创建一个新项目,将; 用记事本创建的源文件加入到该项目中.; 4.建立项目中的目标文件:选择菜单Project >Build All(项目>建立所有文件),MPLAB将自动调用MPASM将项目; 文件管理下的源文件(.asm)汇编成十六进制的目标文件(.hex).; 5.ICD参数设置:通过菜单命令Project>Edit Project或者Option>Development Mode,将开发模式设置为; ”MPLAB ICD Debugger”,点击OK按钮,打开ICD的工作窗口,在调试阶段,可以按照说明书图2-10设置各项,但需注意; OSCILLATOR应设置为XT方式,尤其需要说明的是,选中“Enable Debug Mode”(使能调试模式)选项,在向目; 标单片机烧写机器码程序时,会将调试临控程序同时写入单片机的指定程序存储器区域,然后才允许用ICD方式调试。

基于51单片机实现四路抢答器

基于51单片机实现四路抢答器

/*功能:通过按键实现四路抢答器,并且通过数码管显示部分显示在主持人按下复位按钮后,开始下一轮的抢答。

*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar k;uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};sbit kongzhi=P2^1;sbit key5=P3^4;//复位按钮sbit key1=P3^0;//抢答器1sbit key2=P3^1;//抢答器2sbit key3=P3^2;//抢答器3sbit key4=P3^3;//抢答器4void delayms(uint max)//延时函数{ uint i,j;for(i=max;i>0;i--)for(j=110;j>0;j--);}void main()//主函数{bit fak;//通过控制fak,使数码管保持最开始按下的数字P0=0x3f;//最开始,数码管显示0kongzhi=0;//数码管的公共端是低电平有效,由于使用的是PNP,故输入高电平。

while(!fak)//关键在此{if(!key1)//如果第一个按键按下,数码管显示1{P0=0x06;fak=1;}else if(!key2) //如果第二个按键按下,数码管显示2{P0=0x5b;fak=1;}else if(!key3) //如果第三个按键按下,数码管显示3{P0=0x4f;fak=1;}else if(!key4) //如果第四个按键按下,数码管显示4{P0=0x66;fak=1;}}while(fak){if(key5==0)//复位按钮的设定{P0=0x3f;fak=0;}}}。

单片机的四路电子抢答器设计

单片机的四路电子抢答器设计

单片机的四路电子抢答器设计设计四路电子抢答器可以用单片机来实现。

抢答器通常包括主控板、显示屏、按键模块、信号输入模块和声音模块,下面我将详细介绍设计过程。

一、系统硬件设计部分:1.主控板:使用单片机作为主控处理器,常见的有51系列、AVR系列和STM32系列等。

根据所选单片机的引脚分配情况,设计电路板布线。

2.显示屏:使用液晶显示屏来显示题目和选手答案情况。

选择适合的液晶显示屏,并连接到主控板上。

3.按键模块:设置每个选手的抢答按键,可以使用带有独立按键的矩阵键盘模块,也可以使用独立的按键和扩展IO口。

4.信号输入模块:接收抢答信号,可以使用红外接收器模块,当选手按下抢答键时发射红外信号,由红外接收器模块接收。

也可以选择其他合适的接收方式。

5.声音模块:用于提醒和提示答题情况,可以使用蜂鸣器模块,通过主控板控制发声。

二、系统软件设计部分:1.初始化:在主控板上编写程序,进行硬件初始化,包括液晶屏初始化、按键模块初始化、红外接收模块初始化等操作。

2.题目显示:通过液晶显示屏展示当前抢答题目。

3.抢答检测:主控板通过循环扫描检测按键状态,当检测到一些按键按下时,记录该选手抢答,并停止其他选手的抢答。

4.抢答结果显示:通过液晶显示屏显示抢答结果,标识各个选手的抢答顺序。

5.声音提示:根据抢答结果,通过蜂鸣器模块进行声音提示,例如正确答案和错误答案的不同提示音。

6.重复抢答:在抢答过程中,如果有选手重复抢答,可以通过程序进行判断并作相应的提示。

7.复位操作:可以设置一个复位按钮,用于清除抢答结果和重新开始抢答。

三、系统工作流程:1.开机初始化:主控板上电初始化,配置各个模块,显示“待机”状态。

2.显示题目:主控板从题库中读取题目内容,并通过液晶显示屏展示给选手。

3.抢答:选手按下抢答按钮,主控板检测到按键状态变化并记录抢答情况。

4.显示抢答结果:主控板通过液晶显示屏显示抢答结果,标识各个选手的抢答顺序。

单片机实现四路抢答器调试的方法

单片机实现四路抢答器调试的方法

单片机实现四路抢答器调试的方法一、绪论单片机实现四路抢答器是一种常见的电子应用技术,广泛应用于各种竞赛、考试、培训等场合。

其基本功能是通过按钮或其他触发方式,实现对不同参赛者的答题速度和准确性的记录。

为了确保四路抢答器的正常运行和准确性,需要对其进行充分的调试。

本文将介绍单片机实现四路抢答器调试的方法及步骤,以帮助工程师或爱好者顺利完成调试工作。

二、单片机实现四路抢答器的基本原理单片机实现四路抢答器一般采用微处理器或微控制器作为控制核心,利用其强大的处理能力和丰富的外设接口,通过设置中断、定时器/计数器等功能,实现对四路抢答器的控制和监测。

四路抢答器的基本组成部分包括按钮输入模块、数字显示模块、音频提示模块等。

在调试过程中,需要依次测试和验证这些模块的功能,保证其正常工作。

三、单片机实现四路抢答器调试的方法1. 硬件连接调试首先需要进行硬件连接调试,确保四路抢答器的各模块连接正确、接触良好。

包括检查按钮与单片机的连接、数字显示模块与单片机的连接、音频提示模块与单片机的连接等。

同时检查电源线的接触情况,保证各部件能够正常供电。

2. 功能测试在硬件连接调试完成后,需要对各个功能模块进行测试。

包括测试按钮输入模块的响应速度和稳定性,测试数字显示模块的显示效果和准确性,测试音频提示模块的声音播放效果等。

通过这些功能测试,可以确保各模块的功能正常,能够满足四路抢答器的使用要求。

3. 系统集成测试在单个模块的功能测试完成后,需要进行系统集成测试,测试四路抢答器整体的运行情况。

包括测试四路抢答器对多路信号的处理能力、测试按键的抢答效果、测试多个抢答信号的协调工作等。

通过系统集成测试,可以发现各个模块之间的交互问题,及时进行调整和优化。

4. 软件程序调试需要进行软件程序调试。

针对单片机的程序代码进行单步调试,检查各个功能的实现情况和逻辑正确性,确保程序能够按预期运行。

需要对程序中可能出现的错误和异常情况进行充分测试,保证四路抢答器的稳定性和可靠性。

4路at89c51抢答器的设计c语言

4路at89c51抢答器的设计c语言

4路AT89C51抢答器的设计(C语言)概述在各种答题活动中,抢答器是作为重要装备之一,用于检测谁首先按下按钮进行答题。

本文将介绍如何使用AT89C51单片机设计一款4路抢答器,并使用C语言进行编程。

设计原理抢答器的设计原理主要基于按键输入和信号处理。

当有参与者按下按钮进行抢答时,单片机将检测到该按钮按下的信号,并进行相应的处理,包括显示抢答者编号和记录答题结果等。

硬件连接以下是4路抢答器的硬件连接示意图:+-----------------+| || AT89C51 || |+-----+-----+-----+| |+----+--+ || Button1 +--++----+--+|+----+--+| Button2 |+----+--+|+----+--+| Button3 |+----+--+|+----+--+| Button4 |+----+--+程序设计初始化引脚和变量首先,需要初始化所使用的引脚和变量。

AT89C51的IO口用于连接按钮,需要将其配置为输入模式。

同时,定义一个变量用于记录当前的抢答者编号。

主循环主循环会不断扫描每个按钮的状态,当检测到有按钮按下时,记录抢答者编号并进行相应的处理。

按钮扫描函数按钮扫描函数用于检测按钮的状态。

当检测到按钮按下时,返回对应的编号。

在编写按钮扫描函数时,可以使用延时函数来确保稳定的检测结果。

显示抢答者编号函数显示抢答者编号函数用于将抢答者编号显示在LED灯或LCD屏幕上。

抢答者编号可以根据具体需求进行显示方式的设计,比如使用不同颜色的LED灯表示不同编号的抢答者。

记录答题结果函数记录答题结果函数用于记录每个抢答者的答题结果。

可以使用数组来存储每个抢答者的成绩或者答题情况。

中断处理在抢答器设计中,中断处理函数起着重要作用。

当检测到有按钮按下时,通过中断处理函数及时响应,并进行相应的处理。

总结本文介绍了使用AT89C51单片机设计4路抢答器的方法,并使用C语言进行编程。

简易四路抢答器设计

简易四路抢答器设计

目录摘要 (2)一,设计任务与要求 (2)二,方案设计与论证 (2)三,硬件电路设计 (3)四,软件设计 (6)五,器件选型方案 (19)六,调试: (20)七,结论与心得 (20)八,参考文献 (21)单片机四路抢答器设计摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

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

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

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

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

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

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

一,设计任务与要求1、抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 ~ S3表示。

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

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

即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

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

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

单片机实现四路抢答器调试的方法

单片机实现四路抢答器调试的方法

单片机实现四路抢答器调试的方法
单片机实现四路抢答器的调试涉及到硬件和软件两个方面。

首先,硬件方面需要考虑电路连接和元器件的选择,其次是软件方面
的程序编写和调试。

在硬件方面,首先需要设计电路连接,包括单片机、按键、LED
指示灯等元器件的连接。

按键用于参与抢答的人员按下表示抢答,LED指示灯用于显示谁最先抢答成功。

在元器件选择上,需要考虑
到单片机的型号和引脚数,按键和LED的连接方式,以及电源等。

一般来说,可以选择常见的单片机如STC系列、51系列等,按键可
以选择常开按键,LED可以选择常见的发光二极管等。

在进行硬件
连接后,需要进行电路的调试,确保按键和LED的连接正确,电路
没有短路等问题。

在软件方面,需要编写单片机的程序。

首先需要进行单片机的
初始化设置,包括引脚的输入输出设置、定时器的设置等。

然后编
写抢答器的逻辑,包括按键的扫描和判断哪个按键最先按下,然后
点亮对应的LED指示灯等。

在编写程序后,需要进行调试,可以通
过仿真器进行单步调试,观察程序的执行情况,确保逻辑的正确性。

总的来说,单片机实现四路抢答器的调试方法涉及到硬件和软件两个方面,需要注意硬件电路的连接和元器件的选择,以及软件程序的编写和调试。

通过认真调试和测试,最终实现稳定可靠的四路抢答器功能。

四路优先简易抢答器设计

四路优先简易抢答器设计

四路优先简易抢答器设计1.设计目的(1)掌握用门电路和计数显示芯片完成四路抢答器的设计方法。

(2)对设计的数字电路进行仿真和调试。

2.设计任务四路优先简易抢答器,是通过逻辑电路判断哪一个预定状态优先发生的一个装置,具体要求如下:(1)4个S1、S2、S3、S4为抢答输入开关,一个控制开关S5,LED数码管为抢答成功显示。

(2)在按下控制开关S5时,再按下S1、S2、S3、S4是处于无效的状态;以及在无人按下抢答开关时的状态,这两种情况下LED数码管显示均为字符“5”。

(3)开关S1、S2、S3、S4中有一个按下时,对应LED数码管显示出相应的数字“1”、“2”、“3”、“4”,并且被锁存起来,而其他的开关再按则无效。

(4)按下控制开关S5时,电路恢复为等待抢答状态,S5开关复位时准备下一次抢答。

(5)信号发生器产生的时基信号CP周期,应大于一次手动触键开关后的抖动时间,否则抢答器就不能锁定。

3.设计要求(1)合理的设计硬件电路,说明工作原理及设计过程,画出相关的电路原理图(运用Multisim电路仿真软件);(2)选择常用的电器元件(说明电器元件选择的过程和依据);(3) 对电路进行局部或整体仿真分析;(4)按照规范要求,按时提交课程设计报告(打印或手写),并完成相应答辩。

4.参考资料(l)李立主编. 电工学实验指导. 北京:高等教育出版社,2005(2)高吉祥主编.电子技术基础实验与课程设计. 北京:电子工业出版社,2004 (3)谢云,等编著.现代电子技术实践课程指导.北京:机械工业出版社,2003四路优先抢答器设计报告目录一、任务设计与要求 (4)二、设计方案与论证 (5)二、电路设计计算与分析 (6)3.1555定时器 (6)3.1.1 555定时器构成的多谐振荡器 (9)3.2 8线—3线优先编码器74LS148集成电路芯片 (11)3.3 四D触发器74LS175 (15)3.4 关于竞争现象 (17)3.5整体仿真 (21)四、总结与心得 (22)五、附录 (24)六、参考文献 (25)一、任务设计与要求四路优先简易抢答器,是通过逻辑电路判断哪一个预定状态优先发生的一个装置,具体要求如下:(1)4个S1、S2、S3、S4为抢答输入开关,一个控制开关S5,LED数码管为抢答成功显示。

单片机四路抢答器的设计

单片机四路抢答器的设计

单片机四路抢答器的设计一、设计需求分析在设计四路抢答器之前,我们首先需要明确其功能需求。

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、增加更多的抢答通道,以满足更多选手参与的需求。

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

目录
1 设计任务和方案 (3)
1.1 设计任务 (3)
1.2功能要求说明 (3)
1.3 设计总体方案及工作原理说明 (3)
2 抢答器的硬件系统的设计 (5)
2.1 硬件系统各模块功能简要介绍 (5)
2.2 电路原理图、PCB图和元器件布局图 (5)
2.3 元器件清单 (6)
3 抢答器软件系统的设计 (7)
3.1使用的单片机资源的情况 (8)
3.2 各模块功能简要介绍 (8)
3.3 程序的流程框图 (8)
3.4 程序清单 (12)
4 抢答器的设计结论、仿真结果和教学建议 (13)
4.1 设计结论和使用说明 (13)
4.2 仿真结果 (13)
4.3 设计体会 (14)
4.4 教学建议 (15)
参考文献 (16)
致谢 (17)
附录 (18)
1 设计任务和方案
1.1设计任务
(一)设计题目:抢答器
(二)设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。

1.2功能要求说明
该抢答器上电或按键复位后能自动显示系统提示符“P.”。

设定S2GN键、S3GN 键、S4GN键、S5GN键、S6GN键、S7GN键、S8GN键分别为一号选手键、二号选手键、三号选手键、四号选手键、开始键、答完键、复位键。

若在主持人按下开始键之前有人按下抢答键,则抢答违规,数码管显示器显示违规台号,违规指示灯(接在P3.2上的灯)亮,只有主持人按复位键后才能重新开始抢答。

主持人按下开始键后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;若30S后依然无人抢答,蜂鸣器发出音响,违规指示灯亮。

正常抢答下,从抢答键按下开始30S内,答完键没按下,则数码管显示器显示违规台号,违规指示灯亮,蜂鸣器发出音响。

各台数字显示的消除、蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位键实现。

1.3设计总体方案及工作原理说明
设计中采用AT89S52芯片、LED显示器、蜂鸣器、LED灯和一些独立式按键构成一个简易四路抢答器。

设计中是采用单片机的内部定时器进行定时,原理框图如图1.1所示
整个抢答器的工作原理是:在正常的供电状态下,开始抢答时利用单片机倒计时,并由单片机将所需要显示的数据送到LED显示器的输入口,当有键按下时则执行相应的键功能程序。

图1.1 原理框图
2抢答器的硬件系统的设计
2.1 硬件系统各模块功能设计
该抢答器主要由单片机最小系统、独立式键盘模块、LED显示电路模块、蜂鸣电路模块和LED指示灯电路模块组成。

各模块的功能如下:
(1)单片机最小系统
由AT89S52单片机、时钟电路和复位电路构成。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

时钟电路由一个12MHz的石英晶体振荡器和两个33pF的的电容组成振荡电路和分频电路。

复位电路采用上电复位和按键复位结合的方式对电路进行复位,主要是通过RST引脚送入单片机。

单片机最小系统为整个电路的核心。

(2)独立式键盘模块
采用独立式键盘接法,共有七个按键来对电路进行控制。

分别通过上拉电阻接在单片机的P1口线上。

其中有四个按键为抢答键(接在P1.0--P1.3口线上),开始键接在P1.4口线上,答完键接在P1.5口线上,复位键接在P1..6口线上。

(3)LED显示电路模块
采用两个四位一体共阳型数码管显示器进行显示。

由于位控线的驱动电流较大,
因此在P2口线上接了8个PNP型三极管提高驱动能力;在单片机的P1口线和P2口线上接了16个470Ω的电阻,这些电阻起限流的作用。

将段控口a--dp接在P0.0--P0.7上,位控口接在P2口线上,实现对显示的控制。

LED显示电路模块主要用来指示第一抢答者,显示倒计时和违规的台号。

(4)蜂鸣电路模块
单片机P3.1口线上接上一个1KΩ电阻然后再通过一个PNP型三极管与蜂鸣器相连接组成蜂鸣器电路,接入PNP型三极管是为了增强蜂鸣器的驱动电流。

蜂鸣电路主要完成提示和违规报警功能。

(5)LED指示灯电路模块
单片机P3.2口线上经过一个470Ω的电阻与LED灯的阴极相连接,LED灯的阳极接正五伏电压。

470Ω的电阻起限流的作用。

LED指示灯电路模块主要用来指示用违规操作发生。

2.2电路原理图、PCB图和元器件布局
Proteus原理图、PCB图以及元器件布局图分别见附录1附录2与附录3。

2.3元器件清单
元器件清单见附录4。

3 抢答器软件系统的设计
3.1 使用的单片机资源的情况
该抢答器用到了单片机的定时器的功能,定时器0采用工作方式1并以中断方式工作;在数据的显示时采用的是查表的方法,因此需要将表格、数据存到单片机的程序存储器中去。

本设计采用独立式键盘,键盘直接接在P1口上且按键的结果存贮在单片机的内部数据存储器里面。

用到的LED显示器接到了单片机的P0口线上和P2口线上。

LED 指示灯和蜂鸣器接在P3口线上。

3.2 各模块功能简要介绍
该抢答器所用的软件模块有定时器模块、按键模块、LED显示模块。

(1)定时器模块
选择定时器0,设置定时器定时方式为方式1以中断方式工作,设置定时时间为50mS。

(2)按键模块
采用独立式键盘,共用七个按键对电路进行控制和操作,分别为S2GN、S3GN、。

相关文档
最新文档