《51单片机四路抢答器报告.doc》由会员分享,可在线阅读,更多相关《51单片机四路抢答器报告.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、天津理工大学专业设计报告设计题目:基于51单片机的四路抢答器一设计概述31.1程设计的目的31.2.课程设计的根本要求31.3.课程设计具体要求31.4. 设计任务3二硬件设计42.1控制系统及所需元件42.2. 抢答器显示模块52.3 电源方案的选择52.4抢答器键盘的选择52.5 外部振荡电路6三 程序设计73.1程序流程图:73.2系统的调试83.3 焊接的问题及解决9总 结10附录C程序及实物演示图片11一设计概述1.1程设计的目的1 进一步熟悉和掌握单片机的结构及工作原理。2 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3 通过课程设计,掌握以单片机核心的电路设计的根本方法
2、和技术。4 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5 通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应打下根底。1.2.课程设计的根本要求1. 认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。2. 提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。3. 提高独立分析、解决问题的能力,逐步增强实际应用训练。4. 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、标准。1.3.课程设计具体要求a) 要求每位同学独立完成设计任务b) 原理图设计
3、。1 原理图设计要符合工程的工作原理,连线要正确。2 图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。3 原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。c) 程序调计1 根据要求,将总体项能分解成假设干个子功能模块,每个功能模块完成一个特定的功能。2 根据总体要求及分解的功能模块,确定各功能模块之间的关系,设直出完整的程序流程图。d) 设计说明书1 原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。2 程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。3 画出
4、工作原理图,程序流程图如并给出相应的程序清单。1.4. 设计任务利用单片机AT89S51实现单片机可控制四路抢答器的二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。其中单片机STC89C52是系统工作的核心,它主要负责控制各个局部协调工作。 所需元件:该系统的核心器件是 STC89C52。各口功能:P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。电子抢答器用
5、单片机来设计制作完成的,由于其功能的实现主要是通过软件编程来完成的,所以采用单片机STC89C52,它是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和512 bytes的随机存取数据存储器RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。下列图为其I/O口引脚图:2.2. 抢答器显示模块显示模块为LED信号灯模块分别采用四位一体共阴极数码管和四个发光二极管,体积小,功耗低,故障率低,
6、程序编译容易,资源占用较少。2.3 电源方案的选择系统需要5V电源来驱动单片机STC89C52。利用电脑的USB接口可以提供5V电压来驱动单片机。2.4抢答器键盘的选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者那么用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,本钱低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。本设计采用独立式键盘。键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了5根I/O口线,该键盘就有5个按键,这种类型的键盘,其按键比拟少,且键
7、盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如下图。最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比拟多的I/O口线,当单片机应用系统键盘中需要的按键比拟少或I/O口线比拟充裕时,可以采用这样类型的键盘。 抢打电路 复位电路2.5 外部振荡电路外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外
8、接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图所示。 三 程序设计初始化局部S0= =0启动中断假设有选手抢答中断停止, 点亮信号灯结束开始NYYN3.1程序流程图:扫 描 键 盘S1键按下S2键按下S4键按下S3键按下扫描停止与S1键对应的发光二极管亮与S2键对应的发光二极管亮与S3键对应的发光二极管亮与S4键对应的发光二极管亮YYYYNNNN主程序我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个局部除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供
9、应用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比拟灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,具体程序见附件。3.2系统的调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否到达设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。 本图为单片机程序烧录工具硬件调试分单元电路调试和联机调试,单元电路试验在硬件电
10、路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误如错线、开路、短路等。这种调试可单独模拟进行,也可通过开发装置由软件配合进行。硬件联机调试那么必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉
11、附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否到达设计要求,是否到达预期的效果。3.3 焊接的问题及解决一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质
12、量不高的常见原因是:焊锡用量过多,形成焊点的锡堆积;焊锡过少,缺乏以包裹焊点。冷焊。焊接时烙铁温度过低或加热时间缺乏,焊锡未完全熔化、浸润、焊锡外表不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。假设夹杂加热缺乏的松香,那么焊点下有一层黄褐色松香膜;假设加热温度太高,那么焊点下有一层碳化松香的黑色膜。对于有加热缺乏的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,那么要吃净焊锡,清洁被焊元器件或印刷板外表,重新进行焊接才行。焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为
13、注意。焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。焊点外表的焊锡形成锋利的突尖。这多是由于加热温度缺乏或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。总 结经过近半个月的努力,在我们合作下,我们较好的完成了这次设计工程,通过此次电子制作比赛,我们重新认识到了自学的重要性,以及学以致用的道理。我们在图书馆和网上查阅了大量的资料,同时也认识到了图书馆的重要作用。 通过此次的抢答器的设计,让我们更加重视到专业知识的重要性及动手能力的 必要性,在整个制作过程中,我们出现很多问题,但我们并没有因此而放弃,在
14、不断调试和失败中,我们不仅学到了专业知识,更是磨炼了我们的心智,让我们受益匪浅。任何事情只要去做,多多去尝试,努力的要以自己去做为前提的心态,那么任何事情即使做的不好,也会受益很多,不是有句话叫做:心态决定的成败的话吗,实在是有理。无论做什么事情都不可能一帆风顺,碰到阻碍不要舍弃,不要踟蹰不前,不经历风雨,怎么见彩虹!在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,比方protel画图,proteus仿真软件,以丰富自己的知识,掌握更多的硬件与软件设计技巧,使我们在今后的制作中提高效率。这次设计任务也使我们加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些
15、缺乏,我们真诚的接受老师和同学的批评和指正.。附录C程序#include sbit key1=P30;sbit key2=P31;sbit key3=P32;sbit key4=P33;sbit key5=P37;sbit BEEP=P20;unsigned char temp;unsigned char pulse_number1=9;unsigned char code TAB10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f; void delay_100ms(unsigned int t)unsigned char i,j,k;f
16、or(i=t;i0;i-) for(j=200;j0;j-); for(k=248;k0;k-) ; void beep() BEEP=1; delay_100ms(100); BEEP=0; void T0_int() interrupt 1 static unsigned char count;unsigned char a=1;count+; TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(count=20) count=0; P0=TABpulse_number1-; beep(); if(pulse_number1=0) P0=TAB0;
17、 TR0=0; while(a) beep(); if(!key5)a=0; void main() bit flag; temp=0x00; P2=temp; P0=0x3f; TMOD=0x01; TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1; TR0=1; while(!flag) if(!key1)P0=0x06;beep();flag=1;TR0=0; else if (!key2)P0=0x5b;beep();flag=1;TR0=0;else if (!key3)P0=0X4f;beep();flag=1;TR0=0;else if (!key4)P0=0x66;beep();flag=1;TR0=0; while(flag);