基于51单片机的四路电子抢答器设计报告书文档格式.docx

上传人:b****2 文档编号:283836 上传时间:2023-04-28 格式:DOCX 页数:18 大小:180.44KB
下载 相关 举报
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第1页
第1页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第2页
第2页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第3页
第3页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第4页
第4页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第5页
第5页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第6页
第6页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第7页
第7页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第8页
第8页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第9页
第9页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第10页
第10页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第11页
第11页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第12页
第12页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第13页
第13页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第14页
第14页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第15页
第15页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第16页
第16页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第17页
第17页 / 共18页
基于51单片机的四路电子抢答器设计报告书文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的四路电子抢答器设计报告书文档格式.docx

《基于51单片机的四路电子抢答器设计报告书文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的四路电子抢答器设计报告书文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

基于51单片机的四路电子抢答器设计报告书文档格式.docx

(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。

(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;

(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。

当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。

(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。

(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。

等待下一轮抢答。

二硬件设计

2.1控制系统及所需元件

控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。

其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。

所需元件:

该系统的核心器件是STC89C52。

各口功能:

P0.0-P0.3是数码管的位选口;

P2.0-P2.7是数码管的段选口,为其传送段选信号;

P1.0-P1.3是4组抢答信号的输入口;

P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;

P1.6为蜂鸣器的控制口;

P3.4-P3.7为选手信号灯输出口;

在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。

电子抢答器用单片机来设计制作完成的,由于其功能的实现主要是通过软件编程来完成的,所以采用单片机STC89C52,它是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和512bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。

下图为其I/O口引脚图:

STC89C52管脚图

2.2.抢答器显示模块

显示模块分为数码管模块和LED信号灯模块

分别采用四位一体共阴极数码管和四个发光二极管,体积小,功耗低,故障率低,程序编译容易,资源占用较少。

(见图1,图2)

图1

图2

2.3电源方案的选择

系统需要5V电源来驱动单片机STC89C52。

利用电脑的USB接口可以提供5V电压来驱动单片机。

2.4抢答器键盘的选择

键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。

键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。

在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。

本设计采用独立式键盘。

键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了6根I/O口线,该键盘就有6个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。

因此可以根据实际需要对键盘中的按键灵活的编码。

如图所示。

最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。

独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。

其模块电路图如图4所示。

采用六个BUTTON按钮作为抢答的选择按钮,与STC89C52的P1.0-P1.5相连。

图4键盘模块

2.5蜂鸣器模块

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件,其图形如图所示.

2.6外部振荡电路

外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图所示。

三程序设计

3.1程序流程图:

抢答器主程序流程图

抢答器定时器中断流程图

键盘扫描流程图

主程序

我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。

这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,具体程序见附件。

3.2系统的调试

系统调试包括硬件调试和软件调试,而且两者是密不可分的。

我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;

软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。

硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。

这种调试可单独模拟进行,也可通过开发装置由软件配合进行。

硬件联机调试则必须在系统软件的配合下进行。

软件调试一般包括分块调试和联机调试两个阶段。

程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;

也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。

这时该程序功能块已调试完毕,可去掉附加程序段。

其它程序功能块可按此法进行调试。

程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。

从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。

在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。

在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。

系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。

3.3焊接的问题及解决

一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。

造成焊接质量不高的常见原因是:

①焊锡用量过多,形成焊点的锡堆积;

焊锡过少,不足以包裹焊点。

②冷焊。

焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!

)。

③夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。

若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;

若加热温度太高,则焊点下有一层碳化松香的黑色膜。

对于有加热不足的松香膜的情况,可以用烙铁进行补焊。

对于已形成黑膜的,则要"

吃"

净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。

④焊锡连桥。

指焊锡量过多,造成元器件的焊点之间短路。

这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。

⑤焊剂过量,焊点明围松香残渣很多。

当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。

⑥焊点表面的焊锡形成尖锐的突尖。

这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。

总结

经过近半个月的努力,在我们合作下,我们较好的完成了这次设计项目,通过此次电子制作比赛,我们重新认识到了自学的重要性,以及学以致用的道理。

我们在图书馆和网上查阅了大量的资料,同时也认识到了图书馆的重要作用。

通过此次的抢答器的设计,让我们更加重视到专业知识的重要性及动手能力的必要性,在整个制作过程中,我们出现很多问题,但我们并没有因此而放弃,在不断调试和失败中,我们不仅学到了专业知识,更是磨炼了我们的心智,让我们受益匪浅。

任何事情只要去做,多多去尝试,努力的要以自己去做为前提的心态,那么任何事情即使做的不好,也会受益很多,不是有句话叫做:

心态决定的成败的话吗,实在是有理。

无论做什么事情都不可能一帆风顺,碰到阻碍不要舍弃,不要踟蹰不前,不经历风雨,怎么见彩虹!

在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,比如protel画图,proteus仿真软件,以丰富自己的知识,掌握更多的硬件与软件设计技巧,使我们在今后的制作中提高效率。

这次设计任务也使我们加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我们真诚的接受老师和同学的批评和指正.。

附录(C程序)

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

Ucharcodetable[]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//共阴数码管0~9编码

uinti,j,time,num;

ucharge,shi;

bitflag,flag1;

sbitk1=P1^0;

sbitk2=P1^1;

sbitk3=P1^2;

sbitk4=P1^3;

sbitk5=P1^4;

sbitk6=P1^5;

//k1~k4为选手按键,k5为主持人开关,k6为复位键

sbitbeep=P1^6;

//定义蜂鸣器的端口

sbitwei1=P0^0;

sbitwei2=P0^1;

sbitwei3=P0^2;

sbitwei4=P0^3;

//定义数码管的位选端口

sbitled1=P3^4;

sbitled2=P3^5;

sbitled3=P3^6;

sbitled4=P3^7;

//定义LED灯的端口

voiddelay(uinta)//延时函数

{

uinti,j;

for(i=a;

i>

0;

i--)

for(j=110;

j>

j--);

}

voiddisplay()//显示函数

shi=time/10;

ge=time%10;

P2=table[num];

//显示选手编号

wei1=0;

delay

(1);

wei1=1;

P2=table[shi];

wei3=0;

delay

(1);

//显示时间

wei3=1;

P2=table[ge];

wei4=0;

wei4=1;

voidkeyscan()

if(k1==0)//按键按下

{

delay(10);

//延时去抖动

if(k1==0)

{

num=1;

led1=0;

flag=1;

TR0=~TR0;

TR1=0;

//开定时器0,关定时器1

beep=1;

delay(500);

beep=0;

//蜂鸣器响500毫秒

while(!

k1);

//等待按键释放

}

if(k2==0)

{

delay(10);

if(k2==0)

num=2;

led2=0;

k2);

}

if(k3==0)

if(k3==0)

num=3;

led3=0;

k3);

if(k4==0)

if(k4==0)

num=4;

led4=0;

k4);

display();

//显示选手编号和时间

if(time==0)

TR0=0;

TR1=0;

flag=1;

//关计时器0和1

if(time==6)

TR1=1;

voidinit()

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

EA=1;

ET0=1;

ET1=1;

beep=0;

//作品上蜂鸣器是赋高电平响,开始置低关闭

voidmain()

init();

//初始化

while

(1)

if(k6==0)

if(k6==0)

{

P3=0xff;

//关闭所有LED灯

flag1=k6;

time=15;

num=0;

while(!

flag1)

if(k5==0)

if(k5==0)

{

flag1=1;

flag=k5;

TR0=1;

k5);

flag)

keyscan();

//扫描键盘

}

}

}

}

voidtime0()interrupt1

i++;

if(i==20)

i=0;

time--;

voidtime1()interrupt3

TH1=(65536-50000)/256;

j++;

if(j==10)

j=0;

beep=~beep;

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

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2