带时间限制及声光提示的抢答器设计报告.docx

上传人:b****4 文档编号:24470961 上传时间:2023-05-27 格式:DOCX 页数:32 大小:594.10KB
下载 相关 举报
带时间限制及声光提示的抢答器设计报告.docx_第1页
第1页 / 共32页
带时间限制及声光提示的抢答器设计报告.docx_第2页
第2页 / 共32页
带时间限制及声光提示的抢答器设计报告.docx_第3页
第3页 / 共32页
带时间限制及声光提示的抢答器设计报告.docx_第4页
第4页 / 共32页
带时间限制及声光提示的抢答器设计报告.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

带时间限制及声光提示的抢答器设计报告.docx

《带时间限制及声光提示的抢答器设计报告.docx》由会员分享,可在线阅读,更多相关《带时间限制及声光提示的抢答器设计报告.docx(32页珍藏版)》请在冰豆网上搜索。

带时间限制及声光提示的抢答器设计报告.docx

带时间限制及声光提示的抢答器设计报告

 

电子线路课程设计

(2)

 

论文(设计)题目:

带时间及声光提示的抢答器的设计

 

系别:

物理与电子工程系

专业:

电子信息工程

年级:

2007级

学生姓名:

梅人中

指导教师:

彭建盛

时间:

2010年6月20日

目录

摘要……………………………………………………………………………2

关键词……………………………………………………………………………2

一、设计任务与要求……………………………………………………………2

二、方案设计与论证……………………………………………………………3

2.1总体方案设计…………………………………………………………3

2.1.1方案一………………………………………………………………3

2.1.2方案二………………………………………………………………4

2.2各个模块方案设计……………………………………………………4

2.2.1核心控制器…………………………………………………………4

2.2.2按键模块…………………………………………………………5

2.2.3数码显示模块……………………………………………………5三、硬件单元电路设计与参数计算……………………………………………5

3.1单片机控制电路………………………………………………………5

3.2按键电路……………………………………………………………6

3.3声光提示电路…………………………………………………………6

3.4数码显示电路………………………………………………………7

3.5有关参数的算………………………………………………………7

四、软件设计与流程图…………………………………………………………8

五、总原电路及元器件清单……………………………………………………9

5.1.总原理图……………………………………………………………9

5.2.PCB制板图…………………………………………………………11

5.3.整体电路仿真图以及仿真结果分析………………………………12

5.4.元件清单……………………………………………………………13

六、安装与调试…………………………………………………………………13

七、性能测试与分析……………………………………………………………14

八、结论与心得…………………………………………………………………14

九、参考文献……………………………………………………………………14

十、致谢…………………………………………………………………………15

十一、程序清单…………………………………………………………………15

 

带时间及声光提示的抢答器的设计

摘要:

本系统是基于AT89S52单片机带时间和声光提示的抢答器,它由控制核心AT89S52单片机、选手按键、主持人按键、声光提示和LED数码显示等部分组成。

选手按键和主持人按键均由独立按键构成,采用扫描方式工作;声光提示部分由无源蜂鸣器提供声音提示,光提示由发光二极管提供。

LED数码显示部分则是由普通发光二极管构成的数码管。

关键词:

AT89S52单片机按键无源蜂鸣器发光二极管

一、设计任务与要求

(1)设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,编号为1、2、3、4、5、6、7、8,各用一个按钮。

(2)给节目主持人设置5个控制开关,用来控制系统的清零和抢答的开始及各种时间的调节控制。

(3)抢答器具有数据锁存功能、显示功能和声光提示功能。

(4)主持人可以通过两个时间调节键来调节抢答限制时间和答题时间限制时间。

需在主持人按下抢答开始后方可开始,且各个环节有相应的时间限制。

(5)显示部分用LED组成的模拟数码管来显示数字。

二、方案设计与论证

2.1总体方案设计

2.1.1方案一:

基于逻辑数字电路抢答器的设计

定时抢答器的总体框图如下图2.1所示,它由主体电路和扩展两部分组成。

主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。

扩展电路完成定时抢答的功能。

图2.1.1方案一结构图

系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。

该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程比较繁琐,使用不方便。

2.1.2方案二:

基于AT89S52单片机控制的抢答器的设计器

抢答器的控制核心是AT89S52单片机,用查询式键盘进行抢答。

通过抢答按键模块,连接按键进行抢答。

实现功能的框图如下所示,按下开始按钮,此时进入抢答状态,选手的输入采用扫描式的输入,之后由相关的信息由单片机处理,送到显示部分显示。

此时如果有人第一个按下相应的按键,经过单片机的处理选择,显示相应的号码,并锁存,不再响应其它按键输入。

主持人系统有开始按键,限时开始按键,抢答时间调节按键,限时时间调节按键。

选手系统有抢答按钮,计时显示,声光提示等。

图2.1.2方案二结构图

由以上可知,方案一结构太复杂,成本过高,而方案二编程简单,易于制作。

所以选用方案二。

2.2各个模块方案设计

2.2.1核心控制器

(1)方案一

由CPLD、FPGA来作主控制器。

其特点是具有用户可编程的特性,其可灵活的配置IO端口,方便的进行硬件功能设置。

具有静态可重复编程或在线动态重构特性,使硬件的功能象软件一样通过编程来修改,不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力。

(2)方案二

由单片机AT89S52进行控制,实现相关功能。

AT89S52具有以下标准功能:

8K字节Flash,256字节RAM,32位I/O口线,还可扩展外部存储器。

编程容易实现,外围电路较为简单。

大规模可编程逻辑器件一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。

本系统状态较多,难度较大。

另外系统没有其它高标准的要求,基于成本及控制功能的考虑,最终选择了AT89S52这个比较普通单片机来实现系统设计。

2.2.2按键模块

(1)方案一

独立键盘,键盘接口中使用多少根IO线,键盘中就有几个按键,这种类型的键盘,在按键比较少和IO口资源不紧张时使用。

在工作中键盘的各个按键互不干扰。

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

如图2.2.2.1

图2.2.2.1

(2)方案二

采用矩阵式键盘,矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上,编程实现较复杂,但占用IO口较少。

这种形式的键盘结构,能够有效的提高单片机IO口的利用率,适用于按键

输入多的情况,如图2.2.2.2。

图2.2.2.2矩阵键盘

2.2.3显示模块

(1)方案一

采用点阵组成的LED屏,亮度高而且组装也容易,但编程复杂,需要较多的驱动芯片,因而成本高,不适合一般的制作。

(2)方案二

采用普通发光二极管按一定顺序排列构成数码管,虽然构成的LED灯数目多,但结构还是较简单,制作也较容易而且单片机控制也方便,成本也不是很高,因而出于成本和控制的考虑,选用方案二。

三、硬件单元电路设计与参数计算

3.1单片机控制电路

图3.1单片机控制电路

单片机控制部分的电路图如上,晶振频率为12M,P0口接上拉电阻。

3.2按键电路

图3.2按键电路

按键部分如上图所示,选手按键由P1口控制,共有8个按键;主持人按键有四个按键,由P3口控制。

全部按键采用独立式键盘。

3.3声光提示电路

图3.3声光提示电路

声音提示部分由无源蜂鸣器和PNP三极管构成,给其1个脉冲,它就会发出声响;光提示部分由发光二极管和限流电阻构成。

3.4数码显示电路

图3.4数码显示电路

此部分如上图所示,由140个发光二极管和28个构成,每两列二极管由单片机的一个口控制。

 

3.5有关参数的计算

在软件编程过用到了定时/计数器0和定时/计数1,定时器1控制有人按下抢答器时“嘟”的哪一声响,其他的则由定时器0处理。

定时器0和1的定时溢出时间都为20毫秒。

定时/计数器0和1都工作在方式1,即16加1计数器,分为两个8位的寄存器,定时20毫秒的计算公式为

TH0=(65536-2000)/256;

TL0=(65536-2000)%256;

TH1=(65536-2000)/256;

TL1=(65536-2000)%256;

TH0和TH1分别表示定时器0和1在工作方式1时的高8位寄存器,TL0和TL1则为低8位寄存器,因为定时器0和1是加1计数器,是一直加到65536溢出,变为0,所以给寄存器装入的是和65536相差2000的初值,晶振为12M,12分频后,频率为1M,也就是周期为1微秒,即为单片机每执行1条指令所用的时间,执行2000次加1,则就是2000乘以1微秒等于20毫秒。

四、软件设计与流程图

上电复位后显示模块显示“F”,程序开始对系统进行初始化。

开始抢答后,若没有选手按动抢答按钮则开始9秒的倒计时,直到抢答限制时间到,进入下一轮的抢答。

若有选手按动抢答按钮,编号立即锁存,并在显示模块选手的编号,且伴随声音提示。

在开始键没按下时,有人按了抢答器,则该人违规,数码管显示号码,与此同时LED亮,表示有人违规。

其他人再按下时则不响应,优先响应第一个。

有人违规及有人抢答时会发出“嘟”的一声。

当抢答时间或答题时间快到时会响3下。

程序流程图如下:

图四程序流程图

五、总电路原理图及元器件清单

5.1总原理图

总原理图如下:

图5.1系统总原理图

5.2PCB图

图5.2系统整体PCB图

5.3整体电路仿真图以及仿真结果分析

仿真开始后,由发光二极管组成的显示电路显示“F”,当开始键按下后,便开始依次显示倒计时9~0,如果有选手键按下,则显示是几号按下。

按下限时开始键后,便是倒计时9秒;在开始键没按下时,有人近按了抢答器,则也显示违规的号码。

有人违规及有人抢答时蜂鸣器会发出“嘟”的一声。

当抢答时间或答题时间快到时会响3下。

如果不在三极管的基极加上一个电阻,则单片机的IO口无法输出电平,无法控制三极管的导通或截止;当三极管的C极和E极反过来时,LED灯的亮度很暗,这是因为三极管的反向电流比较小的缘故。

图5.3系统仿真图

5.4元件清单

表5-4带时间及声光提示的抢答器元器件清单

元件名称

型号

数量/个

用途

元件名称

型号

数量/个

用途

单片机

AT89S52

1

控制核心

按键

8

选手输入

晶振

12M

1

晶振电路

按键

5

主持人输入,复位键

电容

30pF

2

晶振电路

排阻

10K

1

上拉电阻

电阻

10K

1

复位电路

发光二极管

143

电源指示电路,显示电路

电阻

200

1

蜂鸣器控制电路

电解电容

10uF/16V

1

复位电路

电阻

470

2

光提示电路

电解电容

220uF/25V

1

滤波电路

电阻

470

1

电源指示电路

六、安装与调试

电路使用覆铜板焊接和安装,由于元器件都安装在同一面,需要屏蔽掉电阻和三极管等器件;调试分软件调试和硬件调试,软件调试使用Keil软件,使用该软件可单步调试,软件调试一般包括分块调试和联机调试两个阶段。

程序的分块调试一般在单片机开发板上运行,也可配合相应的硬件模块单独运行某个程序块,然后检查是否正确,如果不是预期的结果,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到结果正确为止。

联机调试就是将已调好的完整的程序在全部的硬件电路上运行。

看是否结果是否正确,如不正确,则检查软件是否能实现所需要的功能,重新修正,直到结果正确为止。

硬件调试主要检查电路是否连接正确,在保证电路无错连,开路,断路的情况下和软件配合调试,看是否能实现预期的功能。

七、性能测试与分析

1.上电复位后,显示部分显示字符“F”,按下开始键后,有9秒的抢答时间,如果无人抢答,则恢复显示“F”。

2.如果上电后没按开始键,这时如果有人按下抢答器,则是违规,也显示违规的号码,与此同时黄灯亮。

3.抢答时间和限时时间由抢答时间调节键和限时时间调节键调节,可从0~9调节。

4.第一个选手抢答后,单片机会锁存这个编号,不再响应其他选手的抢答。

5.有人抢答成功后,在显示部分显示相应的号码,按下限时开始键,将会进行最大为9秒的倒计时。

6.开始键、答题限时键按下,有人违规及有人抢答时会发出“嘟”的一声。

7.当抢答时间或答题时间快到时会间断响3下。

实物如图所示。

图七作品实物图

八、结论与心得

通过这次课程设计,无论是在硬件方面还是软件方面我都得到了不少的收获。

经过这一个月的努力,过程曲折可谓一语难尽。

在此期间我也失落过,也曾一度热情高涨。

从开始时满盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

  多和同学讨论,在做课程设计的过程中要不停的讨论问题,这样,可以尽可能的获取更多的想法,这样就不会使自己在做的过程中不会迷失方向,并且这样也是为了方便最后程序和硬件结合在一起。

讨论不仅是一些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使处自己处理问题要快一些。

在整整一个月的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,有时软件仿真出来了,硬件也不一定可以实现,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

  对我而言,知识上的收获重要,结果不一定是最重要。

 

九、参考文献

[1]杨居义等单片机课程设计指导北京:

清华大学出版社2009.9:

233-245

[2]Proteus教程—电子线路设计、制版与仿真/朱清慧,张凤蕊,翟天嵩编著。

--北京:

清华大学出版社,2008.9

一十、致谢

特别感谢我的指导老师彭建盛,在本系统开发中给予我悉心指导,从系统开发到结束中过程遇到很多困难都是他给我鼓励与指引,使我能够克服重重困难,将系统做完成,在此谨向彭建盛老师致以诚挚的谢意和崇高的敬意。

我还要感谢在班里同学和朋友,感谢你们在我遇到困难的时候帮助我,给我支持和鼓励,感谢你们,

谢谢!

一十一、程序清单

#include

#defineucharunsignedchar

#defineuintunsignedint

chars;

ucharnum=0;

chartime=9;//抢答时间

chardatitime=9;//答题限时时间

uinttt,t1;//T0,T1定时器定一秒

bitflag,s_flag=1,b_flag,fall_flag;//标志位

bitK_startcountflag,K_timecountflag;//时间调整标志位

sbitK0=P3^0;

sbitbeep=P3^7;//蜂鸣器

sbitrled=P3^1;//指示灯

sbitK1=P1^0;

sbitK2=P1^1;

sbitK3=P1^2;

sbitK4=P1^3;

sbitK5=P1^4;

sbitK6=P1^5;

sbitK7=P1^6;

sbitK8=P1^7;

sbitK_Time=P3^2;//答题计时键

sbitK_startcount=P3^3;//开始抢答时间调整键

sbitK_timecount=P3^4;//答题计时时间调整键

 

voiddelay(ucharms)

{

uchary;

for(;ms>0;ms--)

for(y=120;y>0;y--);

}

ucharcodetabledu[]={

0X80,/*0*/

0Xf2,/*1*/

0X48,/*2*/

0X60,/*3*/

0X32,/*4*/

0X24,/*5*/

0X04,/*6*/

0Xf0,/*7*/

0X00,/*8*/

0X20,/*9*/

0x1c,/*F*/

};//共阳数码管编码

voidT0_Init(void)

{

TMOD=0X01;//定时器的工作方式

TH0=(65536-2000)/256;//定时20毫秒

TL0=(65536-2000)%256;

TH1=(65536-2000)/256;

TL1=(65536-2000)%256;

ET0=1;

ET1=1;

EA=1;

P0=0;

}

voidKey_Scan(void)//开始键扫描

{

if(K0==0)

{

delay(5);

if(K0==0)

{

while(!

K0);

TR0=1;

s=time;

tt=0;

flag=1;

s_flag=1;

b_flag=1;

num=0;

beep=1;

rled=1;

fall_flag=0;//清除违规标志位

K_startcountflag=0;

K_timecountflag=0;

}

}

}

voidScan(void)//八路热键扫描(哪个键先按下,哪个优先级最高)

{

if(K1==0)

{

delay(5);

if(K1==0)

{

while(!

K1);

num=1;//数码管显示1号"1"

TR0=0;//关闭定时器0,时间停止

TR1=1;//打开定时器1,使扬声器响一声

s_flag=0;//关闭开始键标志位,使再按其他七个键不会响应

}

}

if(K2==0)//下面七个键的处理同上

{

delay(5);

if(K2==0)

{

while(!

K2);

num=2;

TR0=0;

TR1=1;

s_flag=0;//重要

}

}

if(K3==0)

{

delay(5);

if(K3==0)

{

while(!

K3);

num=3;

TR0=0;

TR1=1;

s_flag=0;

}

}

if(K4==0)

{

delay(5);

if(K4==0)

{

while(!

K4);

num=4;

TR0=0;

TR1=1;

s_flag=0;

}

}

if(K5==0)

{

delay(5);

if(K5==0)

{

while(!

K5);

num=5;

TR0=0;

TR1=1;

s_flag=0;

}

}

if(K6==0)

{

delay(5);

if(K6==0)

{

while(!

K6);

num=6;

TR0=0;

TR1=1;

s_flag=0;

}

}

if(K7==0)

{

delay(5);

if(K7==0)

{

while(!

K7);

num=7;

TR0=0;

TR1=1;

s_flag=0;

}

}

if(K8==0)

{

delay(5);

if(K8==0)

{

while(!

K8);

num=8;

TR0=0;

TR1=1;

s_flag=0;

}

}

}

voiddisplay(void)

{

if(flag==1)//开始键按下,开始计时抢答

{

if(num!

=0)//如果有人抢答,则显示相应的几号

{

P2=tabledu[num];//显示几号抢到了

delay(250);

if(K_Time==0)

{

num=0;

}

}

else//否则没人抢答,则前面不显示几号

{

delay

(2);

P2=tabledu[s];

delay(250);

}

}

else//如果开始键没有按下,则显示F(若有违规者,则显示违规号码)或时间调整

{

if(fall_flag==1)//违规显示

{

if(num!

=0)

{

P2=tabledu[num];//显示几号违规了

delay(250);

}

else

{

P0=0XFF;

}

}

else//没有人违规才显示调整时间

{

if(K_startcountflag==1)

{

P2=tabledu[time];

delay(250);

}

elseif(K_timecountflag==1)

{

P2=tabledu[datitime];

delay(250);

}

else//否则显示F

{

P2=tabledu[10];

delay(250);

}

}

}

}

voidTime_Scan(void)//调整时间键扫描

{

if(K_startcount==0)//抢答时间调整

{

delay(5);

if(K_startcount==0)

{

while(!

K_startcount);

time++;

if(time==10)

{

time=0;

}

K_startcountflag=1;//将抢答时间标志位置1

K_timecountflag=0;//同时关闭答题时间标志位

}

}

if(K_timecount==0)//答题时间调整

{

delay(5);

if(K_timecount==0)

{

while(!

K_timecount);

da

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1