基于单片机的8路抢答器课程设计报告_第1页
基于单片机的8路抢答器课程设计报告_第2页
基于单片机的8路抢答器课程设计报告_第3页
基于单片机的8路抢答器课程设计报告_第4页
基于单片机的8路抢答器课程设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文档来源网络,仅供参考,侵权请联系删除。本文档来源网络,仅供参考,侵权请联系删除。单片机原理及接口技术设计题目:学号:姓名:指导教师:课程设计报告设计题目:学号:姓名:指导教师:基于单片机的8路抢答器XXXXXXXXXXX信息与电气工程学院二零一五年七月基于单片机的8路抢答器单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有 生命”的电子系统。而随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。本设计就是基于单片机设计抢答系统,通过串口通信动态传输数据,使抢答系统有了更多更完善的功能。单片机系统的硬件结构给予了抢答系统身躯”,而单片机的应用程序赋予了其新的生命”,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。 选手们都站在同一个起跑线上,体现了公平公正的原则。设计任务结合实际情况,基于AT89C51单片机设计一个8路抢答器。该系统应满足的功能要求为:设计一个可供8人进行的抢答器;系统设置复位按钮,按动后,重新开始抢答;抢答器开始时数码管显示序号0,选手抢答实行优先显示,优先抢答选手的编号一直保持到主持人将系统清除为止。抢答后显示优先抢答者序号,同时发出音响。,并且不出现其他抢答者的序号;抢答器具有定时抢答功能,且一次抢答的时间有主持人设定,本抢答器的时间可设定在1~99秒(本例中设置为20s),当主持人启动开始”开关后,定时器开始减计时,数码管显示倒计时的时间,同时蜂鸣器有短暂的声响;设定的抢答时间内,选手可以抢答,这时定时器停止工作,显示器上显示选手的号码和抢答时间。并保持到主持人按复位键;当设定的时间到,而无人抢答时,本次抢答无效,扬声器报警发出声音,并禁止抢答,定时器上显示00。主要硬件设备:AT89C51单片机、4位数码管、蜂鸣器等整体方案设计8路抢答器以AT89C51单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个抢答器的硬件系统。在主持人按下开始抢答的按钮之后,倒计时开始并在数码管上显示出来,选手按下抢答按钮进行抢答,送入单片机进行数据处理。最先抢答的选手编号会通过数码管显示出来, 同时结束抢答,不再显示其他选手编号和倒计时时间。再次按下开始抢答按钮时,开始下一次的抢答。 8路抢答器的原理图如图2-1所示。主持人电路图2-1基于单片机的8路抢答器原理图本系统硬件主要由按键、蜂鸣器、显示系统等几部分组成。各模块的主要功能如下:按键的功能是把抢答选手编号和开始抢答信号送入单片机;蜂鸣器的功能是抢答结束后进行报警提示;显示系统的功能是显示抢答选手编号以及倒计时时间。系统的整体设计方案设计图如图2-2所示。显示电路抢答电路• 显示电路抢答电路• ” •蜂鸣器图2-2系统的整体方案设计图整体电路原理图如下:图2-2系统的整体电路原理图如图所示,电路左上角部分为时钟电路和复位电路,用于给单片机提供时钟信号以及复位。电路左下角部分为选手抢答电路,按下8个按钮中的一个即可进行抢答,同时将信号发送给单片机并由单片机进行显示输出。此部分为输入环节。电路右上角部分为显示电路,进行显示已经开始抢答的时间和抢答选手编号,此处采用7段数码管共阳接法,四个反向器用于提供位选信号。当没有选手抢答时,此处显示抢答倒计时;开始有人抢答后,此处显示抢答选手的编号并停止计时。电路右下角为蜂鸣器部分,当有选手进行抢答或者抢答倒计时结束后,蜂鸣器会发声报警,进行提示。系统硬件电路设计3.1时钟电路单片机必须在时钟的驱动下才能工作•在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。图3-1外部震荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟 10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单

元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数 ,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12心3.2复位电路单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图所示

C3RSTPSENALE图3-2复位电路C3RSTPSENALE图3-2复位电路EA值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值 ,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。3.3显示电路本设计所用的为4位8段共阳数码管,由P0控制显示数字,P2.0~P2.3控制位选信号。最高位显示选手编号,低两位显示倒计时时间。显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。使用数码管应该注意位选信号,以及共阳和共阴的区别。其与单片机的接口电路如图3-3所示。ABC口EFG口尸 1E9斗PD.UADIPD.2.*AD2PD.^'AmPO.flj'ADBF2.WA8P2.3i!AH1P2P2创M*ABC口EFG口尸 1E9斗PD.UADIPD.2.*AD2PD.^'AmPO.flj'ADBF2.WA8P2.3i!AH1P2P2创M*F27.(A15P3;Q-RXDPX1JTXDP32'IN^Fa.l'INTIP3.4frO3B34

至322122271015RP2HE^FACK.gU2ARLSQ4U2:C7CLS04U2:EFS6117<S04图3-3数码管与单片机的接口电路3.4键盘扫描电路键盘是人与微机系统打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。mercmfer.01n_3mercmfer.01n_34.5£7JI»T111JJJIpppppppp图3-4独立键盘它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多, 因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺”现象。这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几 ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里我们取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。3.5蜂鸣器由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的(但AVR可以驱动小功率蜂鸣器),所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。当有选手进行抢答或者抢答倒计时结束时,蜂鸣器进行报警提示。驱动电路如图3-4所示。I7.F!■・P3.5/T1P3.6/WRP3.7/RD15I7.F!■・P3.5/T1P3.6/WRP3.7/RD15

17R3LS1SPEAKERNPN10k图3-4蜂鸣器电路系统程序设计4.1主程序流程图当主持人按下开始按钮后,计时器开始倒计时显示。若有选手抢答,计时终止并显示抢答选手的编号。本轮抢答结束。只有当主持人再次按下开始按钮后,才能进行下一轮的抢答。系统主程序流程图如图4-1所示。

图4-1主程序流程图4.2倒计时时间显示流程图当主持人按下开始按钮之后,计时器开始显示倒计时,每过一秒减一。当倒计时完成后,若还没有人进行抢答,数码管显示00,抢答结束。其流程图如下:

4.3选手抢答流程图当主持人按下开始按钮之后,8位选手进行抢答。当其中某一位选手进行抢答后,数码管显示抢答选手的编号并锁定,此时其他选手无法再次抢答,本次抢答结束。直到主持人再次按下开始按钮后,才能进行下一轮抢答。具体流程图如下:外中断QY申断返回*T■Y外中断QY申断返回*T■Y图4-3抢答选手显示程序流程图系统调试5.1Proteus软件仿真调试在proteus中新建工程,搭好电路,保存。然后在AT89C51单片机中加载C语言编写程序生成的hex文件。点击左下角的运行按钮(或Debug-RunSimulation),按下结束按钮结束仿真。开始仿真后,倒计时显示如图5-1.图5-1抢答开始,进行倒计时例如3号选手抢答后,显示如图5-2.图5-2图5-22号选手进行抢答若倒计时结束仍无人抢答,显示如图若倒计时结束仍无人抢答,显示如图 5-3.图5-3倒计时结束,仍无人抢答RP2UJ!A图5-3倒计时结束,仍无人抢答RP2UJ!A5.2结果分析抢答器仿真模拟结果与实际抢答一致,可以进行 8路抢答程序清单#include<reg52.h>II 包含51单片机寄存器定义的头文件#defineN205.2结果分析抢答器仿真模拟结果与实际抢答一致,可以进行 8路抢答程序清单#include<reg52.h>II 包含51单片机寄存器定义的头文件#defineN20unsigned charTab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};II0xbf为“-”code*******************II数码管显示0〜9的段码表unsignedcharint_time;II记录中断次数unsignedcharsecond;II储存秒unsignedcharnum;II记录抢答选手编号charflag1=0;II复位标志对按键的接口进行定义了 K1、K2、K3、K4、K5,K6,K7,K8分别为***********************************************************P1.0-P1.7sbitK仁P1A0;sbitK2=P1A1;sbitK3=P1A2;sbitK4=P1A3;sbitK5=P1A4;sbitK6=P1A5;sbitK7=P1A6;sbitK8=P1A7;sbitB0=P3A6;II 蜂鸣器控制sbitKA=P3A0;II 主持人开始*************函数功能:快速动态扫描延时************************************************************************/voiddelay(void){inti;for(i=0;i<3000;i++)

}/***********************************************************************函数功能:显示秒入口参数:k出口参数:无************************************************************************/voidDisplaySecond(unsignedchark){P2=0xf7; //P2.3 弓I脚输出低电平, 第4位点亮P0=Tab[k%10]; // 显示个位delay();P0=0xff;七****************************************P2=0xfb;//P2.2 弓I脚输出低电平, 第3位点亮P0=Tab[k/10]; // 显示十位delay();P0=0xff;r***********************************///***************void_reset(){///***************void_reset(){while(1){复位函数*******************if(KA==0) /*if(KA==0) /*{delay(); /*if(KA==0) /*flag1=1;复位开关按下*/按键去抖动*/复位开关按下*/P2=0xfd; //P2.1P0=Tab[10]; //delay();P0=0xff;'******************************引脚输出低电平,显示“-”第2位点亮P2=0xfe;P0=Tab[num];delay();P0=0xff;//P2.0H|吐口检山ZtrtbSa第3位点亮引脚输出低电平,//显示抢答选手编号

}if(flag1)// 出现复位,返回原程序{//flag仁0;break;}}}/*********************************************************************名称:key()*功能:进行了独立键盘的键盘扫描,并且二极管发光,扬声器发声*输入:无*输出:无**********************************************************************/voidkey(){开关0按下*/按键去抖动*/开关0按下*/按键去抖动*/开关0按下*/{delay(); /*if(K1==0) /*{//void_stop();num=1;B0=1;DisplaySecond(N-second);P2=0xfe;P0=Tab[num];while(!K1); /*_reset();等待按键k0释放*//*死循环只显示本按键号 */}显示1,蜂鸣器响*/}if(K2==0){delay();/*1号选手抢答成功,数码管/*按键去抖动*/if(K2==0){//void_stop();num=2;B0=1;DisplaySecond(N-second);II显示抢答选手P2=0xfe;P0=Tab[num];while(!K2); I*等待按键k1释放*I_reset();}}if(K3==0) I* 开关2按下*I{delay(); I* 按键去抖动*Iif(K3==0){num=3;B0=1;DisplaySecond(N-second);P2=0xfe;P0=Tab[num];while(!K3); I* 等待按键k2放*I_reset();I* 死循环只显示本按键号*I} I*3 号选手抢答成功,数码管显示3,蜂鸣器响*I}if(K4==0) I* 开关3按下*I{delay(); I* 按键去抖动*Iif(K4==0){num=4;B0=1;DisplaySecond(N-second);II 显示抢答选手P2=0xfe;P0=Tab[num];while(!K4); I* 等待按键k3放*I_reset();显示显示4,蜂鸣器响*/}}/*4if(K5==0)/*{delay();/*if(K5==0)/*{号选手抢答成功,数码管开关5按下*/按键去抖动*/开关5按下*/num=5;B0=1;DisplaySecond(N-second);P2=0xfe;P0=Tab[num];while(!K5); /*等待按键k5释放*/_reset();/*死循环只显示本按键号*/}显示5,蜂鸣器响*/}}显示5,蜂鸣器响*/}if(K6==0){delay();if(K6==0)/* 开关6按下*//* 按键去抖动*//* 开关6按下*/num=6;B0=1;DisplaySecond(N-second);P2=0xfe;P0=Tab[num];while(!K6); /* 等待按键k6释放*/_reset();/*死循环只显示本按键号 */} /*6 号选手抢答成功,数码管本文档来源网络,仅供参考,侵权请联系删除。显示6,蜂鸣器响*I}if(K7==0)jI*开关7按下*Idelay();I*按键去抖动*Iif(K7==0)I*开关7按下*I{num=7;B0=1;DisplaySecond(N-second);II显示抢答选手P2=0xfe;P0=Tab[num];等待按键k7释放*II*死循环只显示本按键号等待按键k7释放*II*死循环只显示本按键号 *I号选手抢答成功,数码管开关8按下*I按键去抖动*I开关8按下*I_reset();IIwhile(1);} I*7显示7,蜂鸣器响*I}if(K8==0) I*{delay(); I*if(K8==0) I*{num=8;B0=1;DisplaySecond(N-second);P2=0xfe;P0=Tab[num];while(!K8); I* 等待按键k8释放*I_reset();I*死循环只显示本按键号 *I} I*8 号选手抢答成功,数码管显示8,蜂鸣器响*I}本文档来源网络,仅供参考,侵权请联系删除。voidmain(void) //{主函数while(1){num=0;TMOD=0x01;//TH0=(65536-46083)/256;//1.085微秒//=50000微秒=50毫秒TL0=(65536-46083)%256;EA=1;ET0=1;TR0=1;int_time=0;second=0;while(1){key();DisplaySecond(N-second);if(flag1){flag仁0;break;}使用定时器T0将定时器计时时间设定为 46083X//////////开启总中断定时器T0中断允许启动定时器T0开始运行中断次数初始化秒初始化//调用秒的显示子程序}}}//********************************************************//函数功能:定时器T0的中断服务程序//*******************************************************voidinterserve(void)interrupt1using1{TR0=0;// 关闭定时器T0每来一次中断每来一次中断,中断次数int_time 自加1够20次中断,即1秒钟进行一次检测结果采样int_time++; //if(int_time==20)//{int_time=0;//

温馨提示

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

评论

0/150

提交评论