收藏 分享(赏)

基于51单片机8路抢答器设计.doc

上传人:精品资料 文档编号:8375883 上传时间:2019-06-23 格式:DOC 页数:21 大小:1.57MB
下载 相关 举报
基于51单片机8路抢答器设计.doc_第1页
第1页 / 共21页
基于51单片机8路抢答器设计.doc_第2页
第2页 / 共21页
基于51单片机8路抢答器设计.doc_第3页
第3页 / 共21页
基于51单片机8路抢答器设计.doc_第4页
第4页 / 共21页
基于51单片机8路抢答器设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、1创新实践课课程名称: 创新实践课 实践题目: 基于 51 单片机 8 路抢答器设计 学 院: 信息工程与自动化学院 专 业: 生物医学工程 年 级: 2014 级 学生姓名:201410407114 赵丽莎 201410407112 刘海星 指导教师: 杨嘉林 日 期: 2016-12-30 教 务 处 制2目录一、前言 .3二、电路原理图设计 .3三、印制版图设计 .7四、软件设计 .9五、测试数据及分析 16六、总结 183一、前言目前,抢答器已经作为一种必不可少的工具广泛应用于各种智力和知识竞赛场合,但一般的抢答器可靠性低,使用寿命短,介于这些不方便因素,此次设计提出了用 51 单片机

2、为核心控制元件,设计一个简易的八路抢答器。 本方案以 51 单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时还利用汇编语言编程,使其实现复位、定时和报警的功能。本次设计的系统实用性强、判断精确、操作简单、扩展功能强。功能:以 STC89C52RC 单片机作为主控核心,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路等,设计的八路抢答器不仅具有实时显示抢答选手的号码和抢答时间的功能,同时

3、还利用汇编语言编程,使其实现复位和报警的功能。此系统是基于 51 单片机 ,led 发光二极管,一位共阳数码管,蜂鸣器,按键,等分立元件设计而成。元件设计的意义:关于按键:共设计了 10 个独立按键,其中 8 个分别为八位选手抢答输入用,另外两个分别为开始和停止按键!只有裁判按下了开始键才进入正常抢答,否则属于犯规抢答,抢答完毕,裁判按下停止,数码管显示 0。关于 led发光二极管:共设计了 9 个发光二极管,其中一个为电源指示,其他 8 个为选手抢答状态指示,正确抢答时 led 发光二极管缓慢闪烁,犯规抢答时,快速闪烁。关于数码管:选手按下自己的按键时显示相应的选手编号!裁判按下开始键时数码

4、管显示倒计时,倒计时 0-9-8-7-6-5-4-3-2-1-0 共 10 秒。关于蜂鸣器:选手正确抢答时蜂鸣器响一声,犯规抢答时响两声,倒计时结束时响一声。系统采用 5v直流供电,通电前注意电源正负极,以及电源接口是否匹配。此系统通电有个短暂的自检时间,led 发光二级管都亮下再灭,蜂鸣器也响一声再停,方便检测部分元件好坏。二、电路原理图设计(一)介绍 Altium Designer 软件41、Altium Designer 软件Altium Designer 软件是原 Protel 软件开发商 Altium 公司推出的一体化的电子产品开发系统,主要运行在 Windows XP 操作系统。这

5、套软件通过把原理图设计、电路仿真、PCB 绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。 Altium Designer 除了全面继承包括 Protel 99SE、Protel DXP 在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了 FPGA 设计功能和 SOPC 设计实现功能,从而允许工程设计人员能将系统设计中的 FPGA 与 PCB 设计及嵌入式设计集成在一起。 由于 Altium Desig

6、ner 在继承先前 Protel 软件功能的基础上,综合了 FPGA 设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。2.Altium Designer 软件的界面图 1-1 Altium Designer 软件的界面3、功能最基本的功能就是画原理图,设计 PCB,另外还可以编辑 Geber 文件,以及 FPGA 的设计,可以将你的设计输出为 PDF 文档或者 CAD 文档以方便保护自己的设计或者配合结构件的设计。(二)设计原理图步骤 1、原理图设计流程5图 1-2 原理图设计流程图2、步骤(1)创建 PCB 工程(项目文件)启动 Prot

7、elDXP 后,选择菜单【 File】 /【 New】 /【 Project】 /【 PCBProject】命令;完成后如图 6-2.3 所示图 1-3 PCB 创建图(2)保存 PCB 项目(工程)文件6选择【File】 /【Save Project】菜单命令,弹出保存对话框【SavePCB_Project1.PrjPCBAS】对话框如图 6-2.4 所示; 选择保存路径后在【 文件名】栏内输入新文件名保存到自己自己建立的文件夹中。( 3)创建原理图文件在新建的 PCB 项目(工程)下新建原理图文件。在新建的 PCB 项目(工程)下,选择菜单【 File】 /【 New】 /【 Schema

8、tic】命( 4)保存原理图文件选择 【 File】/ 【 Save】菜单命令, 弹出保存对话【 SaveSheet1.SchDocAS】图 1-4 创建原理图3、基于 51 单片机的八路抢答原理图图 1-5 八路抢答的原理图74、元件清单表 1-1 元件清单元件名称 规格型号 数量电阻 1k 1 个10k 1 个4.7k 1 个3k 1 个470 7 个排阻 470 1 个电容 100uf 1 个10uf 1 个22pf 2 个104pf 1 个红绿指示灯 Led 9 个按键 10 个晶振 12M 1 个电源座子 1 个单片机 STC89C52RC 1 个Dip40 座子 DY_5V 1 个

9、蜂鸣器 FMQ 1 个三极管 8050 1 个1 位共阳数码管 SMG_1 1 个三、印制版图设计(一)电路板设计流程8图 1-6 印制电路板流程图(二)PCB 图1.方法在 PCB 编辑器窗口左侧的工作面板上,单击左下角的【 Files 】标签 ,打开【 Files 】 菜单。单击【 Files 】面板中的【 New From Template 】标题栏下的 “ PCB Template”选项 ,选择所需要的模板。2.创建 PCB 图的文件图 1-7 PCB 图的创建93.导入网络表格后的 PCB 图激活 PCB 文件 , 执行菜单命令 【 Design 】 / 【 Import Chang

10、es From 单片机最小系统 .PrjPCB 】 。图 1-8 图 1-94.元件布局(1)选中红色器件盒,在键盘上按下 Delete 键,将其删除。(2)选中某个元件,按住鼠标左键拖动到板合适的位置后放开鼠标左键(在拖动过程中按下空格键可以旋转位置),将各个元件调整到适合的位置。(3)执行菜单【Auto Route】/【All.】5绘制好导线的 PCB 图10图 1-10 绘制好导线的 PCB 图6、PCB 的 Bottom layer 和 top layer图 1-11 PCB 图的 Bottom layer图 1-12 PCB 图的 top layer11四、软件设计(一)单片机软件流

11、程图图 1-13 软件流程图(2)keil 软件介绍Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行 Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方

12、便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil Vision4:2009 年 2 月发布 Keil Vision4,Keil Vision4 引入灵12活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的 ARM 芯片,还添加了一些其他新功能。2011 年 3 月 ARM 公司发布最新集成开发环境 RealView MDK 开发工具中集成了最新版本的 Keil Vision4,其编译器、调试工具实现与 ARM

13、器件的最完美匹配。(三)Keil C 编译步骤1、运行 Keilc51 进入编辑界面,如图 4.1 所示。图 1-14 Keilc51 编辑界面2、首先进入菜单 project/new project 建立一个新工程,如图 4.2 所示。图 1-15 建立新工程3、选择要保存的路径,输入工程文件的名字,如图 4-3 所示。图 1-16 保存路径134、根据使用的单片机选择相应的型号,如图 4.4 所示。图 1-17 选择单片机型号5、单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如图 4.5 所示界面加入源文件。如还没有源文件请先进入菜单 Fil

14、e/New 生成一个*.C 格式的文件。图 1-18 加入源文件界面6、进行输出文件设置,进入菜单 project/options for target 选择 OUTPUT 选项卡,勾选 Crest HEX File 项,如图 4.6 所示。图 1-19 输出文件设置7、程序编写完成后进入菜单 Project/Build target 编译工程,如图 4.7 所示。生14成的*.HEX 文件即可作为下载程序使用。图1-20 生成文件(四)程序设计及说明/8 个选手,正确抢答:显示选手号,对应的 led 慢闪,蜂鸣器响一声/ 犯规抢答:显示选手号,对应的 led 快闪,蜂鸣器响两声#includ

15、e#define uchar unsigned char#define uint unsigned intsbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;/选手 1-4sbit key5=P14;sbit key6=P15;sbit key7=P16;sbit key8=P17;/选手 5-8sbit d1=P00;sbit d2=P01;sbit d3=P02;sbit d4=P03;/选手指示灯 1-4sbit d5=P04;sbit d6=P05;sbit d7=P06;sbit d8=P07;/ 5-8sbit alarm

16、=P31;/蜂鸣器控制端uchar code display10=0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84;/共阳 0-9bit flag=0;/是否允许抢答标志,初始 【不允许】 bit flag1=1;/是否允许扫描按键标记,初始【允许】uchar counter,time=10;/计数器,10s 抢答倒计时/=延时函数=void delay1m(uint k)uint j;while(k-)for(j=0;j=20)/1S 时间到counter=0;time-;if(time=0)/10S 到TR0=0;P2=displaytim

17、e;speak1();/显示 0flag=0;/抢答的时间内没人抢答,必须等待重新开始P2=displaytime;else/犯规抢答if (!key1)flag1=0;TR0=0;speak2();P2=display1;while(flag1=0)d1=1;delay1m(100);d1=0;delay1m(100);/数码管显示 1,蜂鸣器叫else 17if(!key2)flag1=0;TR0=0;speak2();P2=display2;while(flag1=0)d2=1;delay1m(100);d2=0;delay1m(100);/数码管显示 2,蜂鸣器叫else if(!ke

18、y3)flag1=0;TR0=0;speak2();P2=display3;while(flag1=0)d3=1;delay1m(100);d3=0;delay1m(100);/数码管显示 3,蜂鸣器叫else if(!key4)flag1=0;TR0=0;speak2();P2=display4;while(flag1=0)d4=1;delay1m(100);d4=0;delay1m(100);/数码管显示 4,蜂鸣器叫else if(!key5)flag1=0;TR0=0;speak2();P2=display5;while(flag1=0)d5=1;delay1m(100);d5=0;d

19、elay1m(100);/数码管显示 5,蜂鸣器叫else if(!key6)flag1=0;TR0=0;speak2();P2=display6;while(flag1=0)d6=1;delay1m(100);d6=0;delay1m(100);/数码管显示 6,蜂鸣器叫else if(!key7)flag1=0;TR0=0;speak2();P2=display7;while(flag1=0)d7=1;delay1m(100);d7=0;delay1m(100);/数码管显示 7,蜂鸣器叫else if(!key8)flag1=0;TR0=0;speak2();P2=display8;wh

20、ile(flag1=0)d8=1;delay1m(100);d8=0;delay1m(100);/数码管显示 8,蜂鸣器叫/=外部中断 0 中断函数,开始=void extern_int0() interrupt 0if(P2=display0)/数码管显示 0 时开始键才响应flag=flag1=1;/允许抢答,允许响应按键time=10;P0=0x00;/灯都灭掉alarm=0;/关蜂鸣器TR0=1;/倒计时,开定时器/=外部中断 1 中断函数,停止=void extern_int1() interrupt 2flag1=1;/允许抢答,flag=0;/ 不允许响应按键TR0=0;/关定时

21、器 18P0=0x00;/灯都灭掉alarm=0;/关蜂鸣器P2=display0;/显示 0(5)导程序1、利用以下两个软件将程序导入 51 单片机图 1-212、在指定文件夹找到程序并添加图 1-22五、测试数据及分析1、程序初始化19图 1-23 未按下开始键2、按下开始键,属于正常抢答,显示选手号,led 慢闪,蜂鸣器响一声,锁定其他选手图 1-24 开始抢答2、裁判按下开始键时数码管显示倒计时,倒计时 0-9-8-7-6-5-4-3-2-1-0 共 10 秒。选手 8 按下自己的按键 8 时,抢答器上显示相应的选手编号 8,结果如图图 1-25 正常抢答3、未按下开始键,属于犯规抢答

22、,显示选手号,led 快速闪烁,蜂鸣器响两声,锁定其他选手20图 1-26 犯规抢答4、按下停止,回到初始状态图 1-27 复位六、总结此次设计主要以硬件系统为基础,硬件系统关系到电子产品的好坏,如系统的抗干扰性,安全性和可行性等,所以要合理地选择,合理地安排,尽量减少干扰,以提高系统性能。单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机,以减少对其的干扰,防止程序的混乱现象。硬件系统的好坏很大部分在于经验,比如焊接是否干净利落,器件是否完好,操作是否规范等,所以我们要有好的动手能力。 软件设计确实设计的核心,具有多样化,灵活性高,易移植等优点。首先我们要深深领会各指令的含

23、义才能更加熟练应用。中断的合理利用可以有效减少对 CPU的占用,更好的处理好其他功能。延时的应用会顺利地实现显示,鸣笛等功能,同时还可以去掉系统固有的不稳定性。定时的应用则比较实际,能实现我们所需的功能。软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。 通过此次的课程设计,让我们更进一步的巩固了单片机的各种知识。但在设计的过程中,遇到了很多的问题,有一些知识已经不太清楚了,但是通过一些资料又21重新的翻阅并且认真的复习了相关教科书中的内容。此次的课程设计树立了对自己工作能力的信心,相信会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我们充分的体会到了创造过程中的探索的艰难和成功的喜悦。虽然这次做出的作品还存在很多需要改进的地方,但是在整个设计过程中所学习到的东西是这次实践所得到的最大收获跟财富,使我们终身受益。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报