




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.../创新实践课课程名称:创新实践课实践题目:基于51单片机8路抢答器设计学院:信息工程与自动化学院专业:生物医学工程年级:2014级学生姓名:201410407114赵丽莎201410407112刘海星指导教师:杨嘉林日期:2016-12-30教务处制目录TOC\o"1-3"\h\u21197一、前言 319917二、电路原理图设计 39634三、印制版图设计 79048四、软件设计 915242五、测试数据及分析 167202六、总结 18一、前言TOC\o"1-3"\h\u目前,抢答器已经作为一种必不可少的工具广泛应用于各种智力和知识竞赛场合,但一般的抢答器可靠性低,使用寿命短,介于这些不方便因素,此次设计提出了用51单片机为核心控制元件,设计一个简易的八路抢答器。本方案以51单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。本次设计的系统实用性强、判断精确、操作简单、扩展功能强。功能:以STC89C52RC单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位和报警的功能。此系统是基于51单片机,led发光二极管,一位共阳数码管,蜂鸣器,按键,等分立元件设计而成。元件设计的意义:关于按键:共设计了10个独立按键,其中8个分别为八位选手抢答输入用,另外两个分别为开始和停止按键!只有裁判按下了开始键才进入正常抢答,否则属于犯规抢答,抢答完毕,裁判按下停止,数码管显示0。关于led发光二极管:共设计了9个发光二极管,其中一个为电源指示,其他8个为选手抢答状态指示,正确抢答时led发光二极管缓慢闪烁,犯规抢答时,快速闪烁。关于数码管:选手按下自己的按键时显示相应的选手编号!裁判按下开始键时数码管显示倒计时,倒计时0--9--8--7--6--5--4--3--2--1--0共10秒。关于蜂鸣器:选手正确抢答时蜂鸣器响一声,犯规抢答时响两声,倒计时结束时响一声。系统采用5v直流供电,通电前注意电源正负极,以及电源接口是否匹配。此系统通电有个短暂的自检时间,led发光二级管都亮下再灭,蜂鸣器也响一声再停,方便检测部分元件好坏。二、电路原理图设计〔一介绍AltiumDesigner软件1、AltiumDesigner软件AltiumDesigner软件是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在WindowsXP操作系统。这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。AltiumDesigner除了全面继承包括Protel99SE、ProtelDXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。由于AltiumDesigner在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,AltiumDesigner对计算机的系统需求比先前的版本要高一些。2.AltiumDesigner软件的界面图1-1AltiumDesigner软件的界面3、功能最基本的功能就是画原理图,设计PCB,另外还可以编辑Geber文件,以及FPGA的设计,可以将你的设计输出为PDF文档或者CAD文档以方便保护自己的设计或者配合结构件的设计。〔二设计原理图步骤1、原理图设计流程图1-2原理图设计流程图2、步骤<1创建PCB工程〔项目文件启动ProtelDXP后,选择菜单[File]/[New]/[Project]/[PCBProject]命令;完成后如图6-2.3所示图1-3PCB创建图<2保存PCB项目〔工程文件选择[File]/[SaveProject]菜单命令,弹出保存对话框[Save[PCB_Project1.PrjPCB]AS…]对话框如图6-2.4所示;选择保存路径后在[文件名]栏内输入新文件名保存到自己自己建立的文件夹中。〔3创建原理图文件在新建的PCB项目〔工程下新建原理图文件。在新建的PCB项目〔工程下,选择菜单[File]/[New]/[Schematic]命〔4保存原理图文件选择[File]/[Save]菜单命令,弹出保存对话[Save[Sheet1.SchDoc]AS…]图1-4创建原理图基于51单片机的八路抢答原理图图1-5八路抢答的原理图元件清单表1-1元件清单元件名称规格型号数量电阻1k1个10k1个4.7k1个3k1个4707个排阻4701个电容100uf1个10uf1个22pf2个104pf1个红绿指示灯Led9个按键10个晶振12M1个电源座子1个单片机STC89C52RC1个Dip40座子DY_5V1个蜂鸣器FMQ1个三极管80501个1位共阳数码管SMG_11个三、印制版图设计<一>电路板设计流程图1-6印制电路板流程图〔二PCB图1.方法在PCB编辑器窗口左侧的工作面板上,单击左下角的[Files]标签,打开[Files]菜单。单击[Files]面板中的[NewFromTemplate]标题栏下的"PCBTemplate"选项,选择所需要的模板。2.创建PCB图的文件图1-7PCB图的创建3.导入网络表格后的PCB图激活PCB文件,执行菜单命令[Design]/[ImportChangesFrom单片机最小系统.PrjPCB]。图1-8图1-9元件布局〔1选中红色器件盒,在键盘上按下Delete键,将其删除。〔2选中某个元件,按住鼠标左键拖动到板合适的位置后放开鼠标左键〔在拖动过程中按下空格键可以旋转位置,将各个元件调整到适合的位置。<3>执行菜单[AutoRoute]/[All...]5..绘制好导线的PCB图图1-10绘制好导线的PCB图6、PCB的Bottomlayer和toplayer图1-11PCB图的Bottomlayer图1-12PCB图的toplayer四、软件设计〔一单片机软件流程图图1-13软件流程图keil软件介绍KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔μVision将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilμVision4:20XX2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。20XX3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeilμVision4,其编译器、调试工具实现与ARM器件的最完美匹配。〔三KeilC编译步骤1、运行Keilc51进入编辑界面,如图4.1所示。图1-14Keilc51编辑界面2、首先进入菜单project/newproject建立一个新工程,如图4.2所示。图1-15建立新工程选择要保存的路径,输入工程文件的名字,如图4-3所示。图1-16保存路径根据使用的单片机选择相应的型号,如图4.4所示。图1-17选择单片机型号单击"Target1"前面的"+"号,然后在"SourceGroup1"上单击右键,弹出如图4.5所示界面加入源文件。如还没有源文件请先进入菜单File/New生成一个*.C格式的文件。图1-18加入源文件界面进行输出文件设置,进入菜单project/optionsfortarget选择OUTPUT选项卡,勾选CrestHEXFile项,如图4.6所示。图1-19输出文件设置程序编写完成后进入菜单Project/Buildtarget编译工程,如图4.7所示。生成的*.HEX文件即可作为下载程序使用。图1-20生成文件〔四程序设计及说明//8个选手,正确抢答:显示选手号,对应的led慢闪,蜂鸣器响一声//犯规抢答:显示选手号,对应的led快闪,蜂鸣器响两声#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;//选手1--4sbitkey5=P1^4;sbitkey6=P1^5;sbitkey7=P1^6;sbitkey8=P1^7;//选手5--8sbitd1=P0^0;sbitd2=P0^1;sbitd3=P0^2;sbitd4=P0^3;//选手指示灯1--4sbitd5=P0^4;sbitd6=P0^5;sbitd7=P0^6;sbitd8=P0^7; // 5--8sbitalarm=P3^1;//蜂鸣器控制端ucharcodedisplay[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//共阳09bitflag=0;//是否允许抢答标志,初始[不允许]bitflag1=1;//是否允许扫描按键标记,初始[允许]ucharcounter,time=10;//计数器,10s抢答倒计时//==========================================================延时函数=================================================voiddelay1m<uintk>{ uintj; while<k--> for<j=0;j<121;j++>;}//===========================================================定时器,外中断初始化函数================================voidinit_function<>{ TMOD=0x01; //定时器T0,工作于方式1 TH0=<65535-50000>/256; //定时50ms TL0=<65535-50000>%256; TR0=0; //启动T0 IT0=IT1=1;//外部中断负跳变触发 ET0=EX0=EX1=EA=1;//允许T0,外部中断0,1中断,开总中断}//================================================T0中断服务函数====================================================voidtime0<>interrupt1 { TH0=<65535-50000>/256; //定时50ms TL0=<65535-50000>%256; counter++; }//===================================================响一声=========================================================voidspeak1<>{alarm=1; delay1m<300>; alarm=0;}//===================================================响两声=========================================================voidspeak2<>{alarm=1; delay1m<200>; alarm=0; delay1m<200>; alarm=1; delay1m<200>; alarm=0;}voidmain<>{ delay1m<500>;//延时检测led,蜂鸣器 P0=0x00;alarm=0;//关led,蜂鸣器 init_function<>;//初始化函数 P2=display[0];//初始显示0 while<1> { while<flag1> { if<flag>//正常抢答 { if<!key1>{flag1=0;TR0=0;speak1<>;P2=display[1];while<flag1==0>{d1=1;delay1m<300>;d1=0;delay1m<300>;}}//显示1,蜂鸣器叫,对应的led亮 elseif<!key2>{flag1=0;TR0=0;speak1<>;P2=display[2];while<flag1==0>{d2=1;delay1m<300>;d2=0;delay1m<300>;}}//显示2,蜂鸣器叫 elseif<!key3>{flag1=0;TR0=0;speak1<>;P2=display[3];while<flag1==0>{d3=1;delay1m<300>;d3=0;delay1m<300>;}}//显示3,蜂鸣器叫 elseif<!key4>{flag1=0;TR0=0;speak1<>;P2=display[4];while<flag1==0>{d4=1;delay1m<300>;d4=0;delay1m<300>;}}//显示4,蜂鸣器叫 elseif<!key5>{flag1=0;TR0=0;speak1<>;P2=display[5];while<flag1==0>{d5=1;delay1m<300>;d5=0;delay1m<300>;}}//显示5,蜂鸣器叫 elseif<!key6>{flag1=0;TR0=0;speak1<>;P2=display[6];while<flag1==0>{d6=1;delay1m<300>;d6=0;delay1m<300>;}}//显示6,蜂鸣器叫 elseif<!key7>{flag1=0;TR0=0;speak1<>;P2=display[7];while<flag1==0>{d7=1;delay1m<300>;d7=0;delay1m<300>;}}//显示7,蜂鸣器叫 elseif<!key8>{flag1=0;TR0=0;speak1<>;P2=display[8];while<flag1==0>{d8=1;delay1m<300>;d8=0;delay1m<300>;}}//显示8,蜂鸣器叫 else { if<counter>=20>//1S时间到 { counter=0;time--; if<time==0>//10S到 { TR0=0;P2=display[time];speak1<>;//显示0 flag=0;//抢答的时间内没人抢答,必须等待重新开始 } P2=display[time]; } } } else//犯规抢答 { if<!key1>{flag1=0;TR0=0;speak2<>;P2=display[1];while<flag1==0>{d1=1;delay1m<100>;d1=0;delay1m<100>;}}//数码管显示1,蜂鸣器叫 elseif<!key2>{flag1=0;TR0=0;speak2<>;P2=display[2];while<flag1==0>{d2=1;delay1m<100>;d2=0;delay1m<100>;}}//数码管显示2,蜂鸣器叫 elseif<!key3>{flag1=0;TR0=0;speak2<>;P2=display[3];while<flag1==0>{d3=1;delay1m<100>;d3=0;delay1m<100>;}}//数码管显示3,蜂鸣器叫 elseif<!key4>{flag1=0;TR0=0;speak2<>;P2=display[4];while<flag1==0>{d4=1;delay1m<100>;d4=0;delay1m<100>;}}//数码管显示4,蜂鸣器叫 elseif<!key5>{flag1=0;TR0=0;speak2<>;P2=display[5];while<flag1==0>{d5=1;delay1m<100>;d5=0;delay1m<100>;}}//数码管显示5,蜂鸣器叫 elseif<!key6>{flag1=0;TR0=0;speak2<>;P2=display[6];while<flag1==0>{d6=1;delay1m<100>;d6=0;delay1m<100>;}}//数码管显示6,蜂鸣器叫 elseif<!key7>{flag1=0;TR0=0;speak2<>;P2=display[7];while<flag1==0>{d7=1;delay1m<100>;d7=0;delay1m<100>;}}//数码管显示7,蜂鸣器叫 elseif<!key8>{flag1=0;TR0=0;speak2<>;P2=display[8];while<flag1==0>{d8=1;delay1m<100>;d8=0;delay1m<100>;}}//数码管显示8,蜂鸣器叫 } } }}//==========================================================外部中断0中断函数,开始===================================voidextern_int0<>interrupt0{ if<P2==display[0]>//数码管显示0时开始键才响应 { flag=flag1=1;//允许抢答,允许响应按键 time=10; P0=0x00;//灯都灭掉 alarm=0;//关蜂鸣器 TR0=1;//倒计时,开定时器 }}//==========================================================外部中断1中断函数,停止===================================voidextern_int1<>interrupt2{ flag1=1;//允许抢答, flag=0;//不允许响
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三一模考试试题及答案
- 科目一模拟考试题及答案
- 2025年中药执业资格真题及答案
- 淮阳消防笔试真题及答案
- 化学推理能力提升试题
- 化学反应速率影响因素试题
- 古代进阶考试题及答案大全
- 小考科学真题试卷及答案
- 2025年建工类培训考试题及答案
- 2025年陇桥学院考试试题及答案
- 项目投资控制的策略与实施步骤
- 2024年矿业权评估师考试矿业权评估经济与法律专业能力试题及答案
- 返工应急预案
- (2025年)政工师考试试题(附答案)
- 煤矿安全监测预警系统-洞察及研究
- T/CAPE 10108-2024设备设施报废管理指南
- 社会事务办2025年上半年工作总结及下半年工作计划
- 常微分方程教案
- 2025四川高考政治试题解读及2026备考策略指导课件
- 高三试卷:2025届浙江省“江浙皖县中”共同体高三10月联考-政治试题+答案
- 手术室实习生带教课件
评论
0/150
提交评论