8位竞赛抢答器课程设计

上传人:仙*** 文档编号:34615296 上传时间:2021-10-22 格式:DOC 页数:18 大小:4.25MB
收藏 版权申诉 举报 下载
8位竞赛抢答器课程设计_第1页
第1页 / 共18页
8位竞赛抢答器课程设计_第2页
第2页 / 共18页
8位竞赛抢答器课程设计_第3页
第3页 / 共18页
资源描述:

《8位竞赛抢答器课程设计》由会员分享,可在线阅读,更多相关《8位竞赛抢答器课程设计(18页珍藏版)》请在装配图网上搜索。

1、目录1. 原理分析(by 张潇)31.1 设计任务31.2 性能指标31.3 工作原理32. 方案选择(by 张潇)42.1 方案设定42.2 方案比较42.3 方案选择43. 电路原理图绘制及仿真(by 王倩)43.1 所需元器件型号及数量43.2 电路原理图53.3 电路仿真结果64. Pcb图绘制(by 朱文广)64.1 pcb绘制步骤64.2 pcb绘制原则64.3 8路抢答器pcb图85. 综合调试(by 朱文广)85.1 软件调试85.2 硬件调试106. 总结(by 王倩)11附录1:电路仿真图12附录2: 8路抢答器完整程序131. 原理分析(by 张潇)1.1 设计任务以单片

2、机为核心,设计一个8位竞赛抢答器,同时供8名选手或8个代表队比赛。设置一个系统清除和抢答控制开关S,开关由主持人控制。抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。抢答器具有定时抢答功能,且一次抢答的时间可由主持人设定。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。1.2 性能指标电源电压:直流5V10% 选手组数:2-8组初始抢答倒计时:20s初始回答倒计时:30s倒计

3、时范围:1-99s可设倒计时提示时间:最后5s1.3 工作原理八路数字抢答器原理框图如图1所示,其工作原理为:接通电源后,主持人未按下开始抢答,抢答器处于禁止状态,数码管显示“-”;主持人宣布“开始”同时按下开始抢答按键,抢答倒计时开始计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,回答倒计时开始计时、禁止二次抢答、数码管显示抢答选手编号以及回答剩余时间。如果再次抢答必须由主持人再次操作清除和开始状态开关。图1 八路抢答器原理框图 2. 方案选择(by 张潇)2.1 方案设定方案一 以AVR单片机为主控制芯片,显示电路用L

4、CD1602实现,用机械开关按钮作为控制开关,实现抢答输入信号的触发。该电路的优点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能。方案二 该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。2.2 方案比较方案一由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便,同时AVR的编程一般需要gcc或者

5、icc,有特定的环境,与51相比,稍微复杂一点,资料也没有51多,而且对于初学者,51使用起来更得心应手一些。方案二使用的51单片机可靠性好功能性强,比起方案一,系统更具有灵活的可编程性,周围辅助电路也不多,简单可靠成本低,对于学生来说,不失为一个更优选。2.3 方案选择综上所述,方案二比方案一更具有可行性,因此我们选择使用AT89C51单片机为主控制器,外加4位数码管显示电路和报警电路、按键电路的组合,来完成我们8路抢答器的设计。3. 电路原理图绘制及仿真(by 王倩)3.1 所需元器件型号及数量元器件名称数量四位一体共阴数码管14.7K电阻1S8550 三极管1单片机140脚IC座112M

6、晶振122P电容210uF电容110K电阻11K排阻1按键15DC座1自锁开关1导线若干蜂鸣器13.2 电路原理图 图2 8路抢答器总体电路图如图2所示,该抢答器由主控制器AT89C51控制,外围显示电路、脉冲产生电路和按键电路构成。电路通电后打开电源开关,支持人按下开始键即开始抢答倒计时,倒计时时间和回答问题时间均可由主持人自由设定。倒计时最后5s时蜂鸣器会发出提示声。若有选手抢答成功,就开始回答倒计时,无人抢答则返回到最初状态。3.3 电路仿真结果见附录1。4. Pcb图绘制(by 朱文广)4.1 pcb绘制步骤 建立元件库。将自己所需的所有元件放入自己设计的pcb库专用设计文件。 规划电

7、路板,主要是确定电路板的边框,包括电路板的尺寸大小等等。在需要放置固定孔的地方放上适当大小的焊盘。 注意:在绘制电路板地边框前,一定要将当前层设置成Keep Out层,即禁止布线层。 导入网络表文件和修改零件封装。 设置布局。Protel99可以进行自动布局,也可以进行手动布局。如果是手动布局,用鼠标选中一个元件,按住鼠标左键不放,拖住这个元件到达目的地,放开左键,将该元件固定。 根据情况再作适当调整然后将全部器件锁定。放好后用VIEW3D 功能察看一下实际效果,存盘。4.2 pcb绘制原则印制电路板(PCB)是电子产品中电路元件和器件的支撑件它提供电路元件和器件之间的电气连接。随着电于技术的

8、飞速发展,PCB的密度越来越高。PCB设计的好坏对抗干扰能力影响很大因此,在进行PCB设计时必须遵守PCB设计的一般原则,并应符合抗干扰设计的要求。要使电子电路获得最佳性能,元器件的布局及导线的布设是很重要的。为了设计质量好。造价低的PCB,应遵循以下一般原则:A.布局。首先,要考虑PCB尺寸大校PCB尺寸过大时,印制线条长,阻抗增加,抗噪声能力下降,成本也增加;过小,则散热不好,且邻近线条易受干扰。在确定PCB尺寸后再确定特殊元件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。 B.尽可能缩短高频元器件之间的连线,设法减少它们的分布参数和相互间的电磁干扰。易受干扰的元器件不能相

9、互挨得太近,输入和输出元件应尽量远离。 C.某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电引出意外短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。 D.重量超过15g的元器件。应当用支架加以固定,然后焊接。那些又大又重。发热量多的元器件,不宜装在印制板上,而应装在整机的机箱底板上,且应考虑散热问题。热敏元件应远离发热元件。 E.对于电位器。可调电感线圈。可变电容器。微动开关等可调元件的布局应考虑整机的结构要求。若是机内调节,应放在印制板上方便于调节的地方;若是机外调节,其位置要与调节旋钮在机箱面板上的位置相适应。 F.应留出印制板定位孔及固定支架所占用的位置。

10、根据电路的功能单元对电路的全部元器件进行布局时,要符合以下原则: a.按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号尽可能保持一致的方向。 b.以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀。整齐。紧凑地排列在PCB上尽量减少和缩短各元器件之间的引线和连接。 c.在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件平行排列。这样,不但美观而且装焊容易易于批量生产。 d.位于电路板边缘的元器件,离电路板边缘一般不小于2mm。电路板的最佳形状为矩形。长宽比为3:2成4:3。电路板面尺寸大于200x150mm时应考虑电路板所受的机械强度。

11、G.布线。布线的原则如下: a.输入输出端用的导线应尽量避免相邻平行。最好加线间地线,以免发生反馈藕合。 b.印制摄导线的最小宽度主要由导线与绝缘基扳间的粘附强度和流过它们的电流值决定。c.印刷线路板的布线要注意以下问题:专用零伏线,电源线的走线宽度1mm;电源线和地线尽可能靠近,整块印刷板上的电源与地要呈“井”字形分布,以便使分布线电流达到均衡;要为模拟电路专门提供一根零伏线;为减少线间串扰,必要时可增加印刷线条间距离,在意;安插一些零伏线作为线间隔离;印刷电路的插头也要多安排一些零伏线作为线间隔离;特别注意电流流通中的导线环路尺寸;如有可能在控制线(于印刷板上)的入口处加接R-C去耦,以便

12、消除传输中可能出现的干扰因素;印刷弧上的线宽不要突变,导线不要突然拐角(90度)。 d.焊盘。焊盘要比器件引线直径大一些。但焊盘太大易形成虚焊。焊盘外径D一般不小于(d+1.2)mm,其中d为引线孔径。对高密度的数字电路,焊盘最小直径可取(d+1.0)mm。H.电源线设计:根据印制线路板电流的大小,尽量加租电源线宽度,减少环路电阻。同时。使电源线地线的走向和数据传递的方向一致,这样有助于增强抗噪声能力。I.地线设计原则:a. 数字地与模拟地分开。若线路板上既有逻辑电路又有线性电路,应使它们尽量分开。低频电路的地应尽量采用单点并联接地,实际布线有困难时可部分串联后再并联接地。高频电路宜采用多点串

13、联接地,地线应短而租,高频元件周围尽量用栅格状大面积地箔。b. 接地线应尽量加粗。若接地线用很细的线条,则接地电位随电流的变化而变化,使抗噪性能降低。因此应将接地线加粗,使它能通过三倍于印制板上的允许电流。如有可能,接地线应在23mm以上。c. 接地线构成闭环路。只由数字电路组成的印制板,其接地电路布成闭环路大多能提高抗噪声能力。4.3 8路抢答器pcb图图3 8路抢答器pcb图5. 综合调试(by 朱文广)5.1 软件调试该程序定义P1.0-P1.7为八路抢答输入数码管段选P0口,位选P2口,蜂鸣器输出为P2.0口。P3.1为开始抢答,P3.2为抢答时间设置按键,P3.3为回答时间设置按键,

14、P3.4为时间加,P3.5为时间减,P3.6为停止。程序流程图见图4。主程序设置抢答时间和回答时间时间题时间定时器及并行口初始化将时间计数器及启动标志值1开中断Y采并行口数据为0吗?YN启动标志=1吗?判断哪一组为抢答组判断抢答组号将抢答组号送显示将抢答组发光二极管点亮N抢答时间到了吗?Y输出响铃信号提示超时Y继续抢答比赛吗?N系统返回 图4 程序流程图具体程序见附录2。5.2 硬件调试 (a)接通电源 (b)抢答倒计时 (c)回答倒计时 (d)自主设定倒计时时间 图5 整机调试图6. 总结(by 王倩)这次综合课程设计是我们在大学第一次真正意义上的完成的一个作品,从最开始的原理分析、方案选择

15、,到后来的调试,最后得到一个成品。这次的实验对我们组的成员来说,是一个很大的挑战,因为我们之前都没有参加过比赛,而我们这一届也与电子设计大赛无缘,所以,不管是分工合作方面还是技术方面,我们都不看好自己。但是我们都没有退缩,因为我们都渴望成功,无论如何,我们都相信努力才会有结果,坚持成了我们心中唯一的信念。最后我们用实际行动证明了自己,巨大的满足感让我们都兴奋不已。我们完成了预期的目标,而且我们收获到的,不只是这个实验的成功,而是我们团队的合作经历和难得的经验。单片机是一门应用性和实践性很强的学科,很多人都想学习单片机,并且想知道如何学习单片机。通过这次实验,我们深深地体会到,学单片机不仅要学习

16、理论知识,实践操作也很重要。相信很多学过单片机的人都有这样的经历,就是把自己写的程序烧录到单片机里面的时候会发现与自己想要的结果有很大的不同。这就是实践操作太少,经验不足的缘故。这个实验对我们小组来说,最难的莫过于写程序。所以我们的程序是仿写的,从网上下了很多类似的程序,一边调试一边改,最后找出了最适合我们的需求的总程序。在电路制作方面,对我们来说也是个难题,画pcb完全是现学现用,但值得庆幸的是,我们学会了,虽然最后画出来的图也没有尽如人意。我们还是不够仔细,在按键电路的部分没有加入电阻,也没有防抖动部分,希望下次我们可以做得更好更加完善。在这个实验前期,我们都忽略了一个大问题,那就是谨慎。

17、不管是程序的改进,还是电路的封装,还是电路焊接,还是整机调试,每一个过程都需要我们谨慎小心对待,一旦出错,我们就得不到想要的结果。这虽然是一个小实验,但对于我们的生活态度也有一定的影响。对待任何事情,我们都要百分百用心,仔细认真,并坚持不懈,总会有成功的一天。最后,感谢老师的悉心教导,耐心地为我们解决难题,让我们可以有今天的进步。附录1:电路仿真图附录2: 8路抢答器完整程序#include reg51.h /51系列单片机定义文件#include intrins.h /调用_nop_();延时函数用#define uchar unsigned char/无符号字符(8位)#define ui

18、nt unsigned int /无符号整数(16位)bit OK; /开始抢答标志位,响铃标志位sbit speak=P20; /声音输出口sbit start=P31;/开始sbit end=P36;/终止sbit add=P34; /+sbit sub=P35; /- /其中抢答设置时间,以及回答设置时间,采用的是单片机中断口p3.2以及p3.3,故不用定义sbit S1=P21;/第一个数码管sbit S2=P23;/第二个数码管sbit S3=P25;/第三个数码管sbit S4=P27;/第四个数码管uchar Q_T=20,H_T=30,qt,ht;/初始抢答时间,回答时间uch

19、ar a=11,b=11,c=11,d=11,n,m=0,k; /数码管显示选手编号与计数值,计时器中断次数,犯规选手号/*/uchar code dis_7=0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7,0x00,0x80;/* 共阳七段LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 -*/ /*1毫秒延时子函数*/void delay1ms(uint t)uint i,j;for(i=0;it;i+) for(j=0;j120;j+) ;/*响铃标志子程序*/void nose()speak=0; delay1ms(500)

20、; speak=1;/*显示子程序*/void display() P0=dis_7a; /第一个数码管显示 S1=0; /打开第一个数码管显示 delay1ms(5); /稍作延时 S1=1; /关闭数码管显示 P0=dis_711; S2=0; delay1ms(5); S2=1; P0=dis_7b; S3=0; delay1ms(5); S3=1; P0=dis_7c; S4=0; delay1ms(5); S4=1; /*非法抢答*/void false() if(P1!=0xff) /如果p1口不等于ff,则执行一下程序,否则跳过 if(P1=0xf7) /1号选手违规按下 m=1

21、; /赋值1,送显示 if(P1=0xfb) /2号选手违规按下 m=2; /赋值2,送显示 if(P1=0xfd) /3号选手违规按下 m=3; /赋值3,送显示 if(P1=0xfe) /4号选手违规按下 m=4; /赋值4,送显示 if(P1=0xef) /5号选手违规按下 m=5; /赋值5,送显示 if(P1=0xdf) /6号选手违规按下 m=6; /赋值6,送显示 if(P1=0xbf) /7号选手违规按下 m=7; /赋值7,送显示 if(P1=0x7f) /8号选手违规按下 m=8; /赋值8,送显示 n=0; /计数器中断次数清零 while(end=1) /停止按键未按下

22、,循环以下 if(n=6) /若计数器中断次数大于等于6,则执行以下程序 a=m;b=11;c=11; /a赋值违规选手号数,b,c赋值11,显示数码管中间一横 display(); /延时 speak=0; /开启蜂鸣器 if(n=20) /若计数器中断次数等于20,则执行以下程序 n=0; /清零 speak=1;m=0; /关闭蜂鸣器;违规抢答位清零 a=10;b=10;c=10; /a,b,c均赋值10/*/main()TMOD=0x11; TH0=0x3c; TL0=0xb0; EA=1; ET0=1; EX0=1; EX1=1; OK=0; speak=1; TR0=1; whil

23、e(1) /无尽循环 display(); /显示程序 while(start=1) /开始未按下,循环以下程序 false(); /违规子程序 display(); /显示子程序 if(start=0) /若开始按键按下,则执行以下程序 delay1ms(2); /稍作延时,防止抖动 while(start=0);/若开始按键按下,则执行以下程序 nose(); /响铃子程序 OK=1; /开始抢答标志位 TR0=0; qt=Q_T; /抢答时间赋初值 n=0; /计数器中断次数清零 while(qt0&end=1&OK=1&P1=0xff) /抢答时间大于0且停止按键未按下且开始抢答标志为

24、1且未有选手按键按下则执行以下程序 TR0=1; a=10; /a赋值10 b=qt/10; /b赋值抢答时间十位 c=qt%10; /c赋值抢答时间个位 display(); /调用显示 speak=1; if(n20) /若计数器中断大于20,则执行以下程序 n=0; /n清零 qt-; /抢答时间减1 if(qt=5) /如果抢答时间小于等于5,则执行以下程序 if(n7)speak=0; if(qt=0) /如果抢答时间等于0 a=10;b=10;c=10;d=10;OK=0;speak=1;m=0;n=0; /则a,b,c,d均置10;抢答标志,响铃关闭,选手号,计数器中断数均清零

25、if(end=0) /如果主持人按下终止按键 a=10;b=10;c=10;d=10;OK=0;speak=1;m=0;n=0; /则a,b,c,d均置10;抢答标志,响铃关闭,选手号,计数器中断数均清零 if(P1!=0xff) /如果有选手按下按钮,则执行以下程序 k=P1; /p1口数值赋给k nose(); /响铃子程序 if(k=0xf7) /比较k的值 m=1; /赋对应选手号给m if(k=0xfb) /跟以上一样,以下以此类推 m=2; if(k=0xfd) m=3; if(k=0xfe) m=4; if(k=0xef) m=5; if(k=0xdf) m=6; if(k=0x

26、bf) m=7; if(k=0x7f) m=8; n=0; /n清零 ht=H_T; /回答时间赋初值 while(end=1&ht0) /当终止未按下且回答时间大于0,则循环以下程序 TR0=1; /打开计时器 a=m; /a赋值选手号 b=ht/10; /b赋值回答时间十位 c=ht%10; /c赋值回答时间个位 display(); /调用显示子程序 speak=1; if(n=20) /如果计时器中断次数等于20,则执行以下程序 n=0; /清零 ht-; /回答时间减1 if(ht=5) /如果回答时间小于等于5,则执行以下程序 if(n7)speak=0; a=10;b=10;c=

27、10;d=10;OK=0;speak=1;m=0;n=0; /清零 /*定时0中断*/void time_intt0(void) interrupt 1TH0=0x3c;TL0=0xb0; /赋初值 n+;/*/*外中断0*/void time_intt2(void) interrupt 0 /采用中断设置时间while(end=1)/终止未按下,循环以下 if(add=0)/如果键按下,执行以下程序 delay1ms(2);/稍作延时,防止抖动 while(add=0);/当+键等于0,则循环 if(Q_T=99)/如果抢答时间大于等于99 Q_T=0;/则抢答时间清零 else/否则 Q_T+;/抢答时间加1 if(sub=0)/如果-键按下,执行以下程序 delay1ms(2);/稍作延时,防止抖动 while(sub=0);/当-键等于零,则循环 if(Q_T=99)/回答时间 H_T=0; else H_T+; if(sub=0) delay1ms(2); while(sub=0); if(H_T=0) H_T=99; /回答时间 else H_T-; a=10;b=H_T/10;c=H_T%10;display();/b,c赋值的是回答时间 a=10;b=10;c=10;display();/*/

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!