四路抢答器的文档.doc

上传人:b****3 文档编号:2490517 上传时间:2022-10-30 格式:DOC 页数:12 大小:178.50KB
下载 相关 举报
四路抢答器的文档.doc_第1页
第1页 / 共12页
四路抢答器的文档.doc_第2页
第2页 / 共12页
四路抢答器的文档.doc_第3页
第3页 / 共12页
四路抢答器的文档.doc_第4页
第4页 / 共12页
四路抢答器的文档.doc_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

四路抢答器的文档.doc

《四路抢答器的文档.doc》由会员分享,可在线阅读,更多相关《四路抢答器的文档.doc(12页珍藏版)》请在冰豆网上搜索。

四路抢答器的文档.doc

“融园杯”电子竞赛之

组长:

组员:

设计时间:

2010、11、11

一、前言:

在电视中,我们经常会看到一些抢答题目,而抢答器却是这个衡量时间的至关重要的工具。

而作为设计者的我们需要就是把那些看似很远的东西拿到身边,让科学与我们越来越近,体会到科学真正给我们带来的喜悦以及给生活带来的便利。

单片机具有CPU所具有的功能,从而使我们的产品更接近智能化和高可控制性等特点。

本次设计主要是通过数码管实现四路抢答器的功能。

数码管拥有蜂鸣器和数码管以及LED显示,因此,选择数码管进行实现四路抢答器功能是合理并且实现方便。

因此对于四路抢答器的硬件设计便是对数码管的硬件电路的设计。

本次竞赛作品,主要针对一些时间限制的抢答,因此,本产品具有较强的实用性和比较合适的价钱。

二、设计目的:

1、熟悉抢答器的工作原理

2、了解和熟悉单片机的软硬件的设计方法

3、加强自己的实践动手能力,在做实物的过程中充分锻炼自己能力,扬长避短,达到更进一步的提高自己综合素质

三、设计任务和要求:

1.设计任务

(1)设计一台可供4名选手参加比赛的智力竞赛抢答器。

用数字显示抢答倒计时间,由“20”倒计到“0”时,无人抢答,蜂鸣器鸣响。

选手抢答时,数码显示选手组号,同时蜂鸣器鸣响,倒计时停止。

(2)分组:

负责抢答硬件电路的设计和调试。

负责编写程序和相关调试工作。

2.设计要求

(1)4名选手编号为:

1,2,3,4。

各有一个抢答按钮,按钮的编号与选手的编号对应,也分别为1,2,3,4。

(2)当选手按下自己抢答器时候,数码立即显示从20秒开始逐秒递减,抢答的开始。

(3)如果抢答定时已到,却没有选手抢答时,本次抢答无效。

系统扬声器报警,并封锁输入编码电路,禁止选手超时后抢答,时间显示器显示0。

四、总体方案选择:

1)硬件电路的设计:

1、原理图(附件一)

2、硬件电路的PCB

2、protues仿真图

2)程序设计:

程序清单(附件一):

五、元器件清单:

元器件名称

规格

数量

AT89S52

1

底座

3

晶振

12MHZ

1

发光二极管

9

单排插

40脚

1

三极管

9012

9

蜂鸣器

1

小按键

9

下载口座子

十芯

1

18b20温度传感器

1

六脚开关

1

USB电源线加接口

1

电阻

200Ω

1

电阻

4.7KΩ

1

电阻

1KΩ

3

电阻

470Ω

24

电解电容

220uF

1

瓷片电容

33pF

2

排阻

10KΩ

2

短路帽

3

杜邦线8p

1

PCB板子

1

电源黄色插座

1

五、设计感想:

通过本次参与竞赛,我们获得不少。

首先,从知识积累和技术提高方面来讲。

无论是对硬件电路的设计、调试以及检查错误还是对电路的工作原理的都需要我们运用自己已有的知识以及自己掌握一些自己不熟悉的知识。

需要我们较强的学习能力和较强的领悟能力,和理解分析能力。

对于程序的设计方面,让我更加熟练的运用自己已学的C语言,对于自己提高C语言和更加熟练的掌握C语言有很好的巩固作用。

其次,对于仿真电路的设计以及调试工作让我更加对电路的原理以及工作方式有更明确的理解。

对使用Protues、multisim以及keil的调试,让我们更加熟悉它们的使用和调试。

更加有助于我们的学习和实践相结合。

再次,对于自己的一些综合素质提高也很有帮助。

当问题出现时,我们可能会有点不开心,但是这个时候我们需要更加坚定自己的信念和决心。

我们需要自己学会分析和解决问题,有自己的独立见解。

同时,我们学会更加懂得分析的重要性。

七、参考文献:

[1]康华光.电子技术基础数字部分.北京:

高等教育出版社,2006

[2]王彦朋.大学生电子设计与应用.北京:

中国电力出版社,2007

[3]张钦双.实用电子电路200例.北京:

机械工业出版社,2003

[4]李光弟朱月秀单片机基础.北京:

北京航空航天大学出版社,2006

[5]马忠梅.单片机的C语言应用程序设计.北京航空航天大学出版社,2006

[6]常华.仿真软件教程.北京:

清华大学出版社,2006

附件一:

程序清单

/********************************************************************项目名称:

四路抢答器的设计

设计者:

刘军

设计日期:

2010年11月11日

*********************************************************************

功能要求:

(1)显示系统提示符“P.”。

(2)设计一个四路抢答器。

键功能:

S2:

抢答开始;S3:

抢答结束;S4、S5、S6、S7为四路抢答按键;S8:

抢答器复位。

指示灯:

LED0:

抢答开始指示;LED1:

抢答结束指示;LED2:

违规指示;LED3:

超时指示;LED4、LED5、LED6、LED7为四路位置指示;

要求:

在抢答开始键S2按下之前,有S4、S5、S6、S7键按下,视为违规,违规指示灯LED2亮,蜂鸣器报警,数码管显示违规回路号;抢答开始键S2键按下后,抢答开始指示灯LED0亮,蜂鸣器报警;如20秒之内无人抢答,抢答结束指示灯LED1亮,蜂鸣器报警;抢答开始键S2键按下后,如20秒之内有人抢答,则相应回路指示灯亮,蜂鸣器报警,数码管显示回路号并开始倒计时,计时初值20秒:

如在20秒内没有回答完毕,则超时指示灯LED3亮,蜂鸣器报警;如在20秒内回答完毕,则需按抢答结束键S3,抢答结束指示灯LED1亮,蜂鸣器报警;按下S8键抢答器复位,重新开始抢答。

***********************************************************

LED数码管显示器设定;

P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a

P2.0---P2.7位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)

***********************************************************

独立式键盘设定;

8个按键S2至S9分别依次接在P1.0至P1.7口线

/**********************************************************

宏定义

***********************************************************

数组区

共阳数码管字型码

P.显示序号

***********************************************************函数区

voidDelayX1ms(uintcount) 延时函数

voidfind_code_auto_flush(void) 显示缓冲区更新函数

voidtimer0(void) 定时器t0中断服务函数

voidput_on_leds(void) 显示输出函数

voidinit_sys(void) 定时器初始化函数

keychuli() 键值处理函数

key() 键盘扫描函数

voidmain() 主函数

***********************************************************

变量定义

ucharsec 计时变量

ucharpos 段码序号数组下标

uchardmask 位控码

uchark 返回键值

ucharkeyzhi,keyzhii 键盘按键值临时存放

ucharbiaozhi 标志位

位变量定义

bitbiaozhi0=biaozhi^0; 超时标志位

bitbiaozhi1=biaozhi^1; 抢答标志位

bitbiaozhi2=biaozhi^2; 开始标志位

*/

#include"reg52.h"

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

/*定义定时器TO时间常数和方式控制字*/

#definev_th00x3c

#definev_tl00xb0

#definev_tmod0x01

ucharsec; //定义计时变量

/*共阳数码管字型码*/

/*0,1,2,3,4,5,6,7,8,9,p.,灭*/

charcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0xff};

/*"P."显示代码序号*/

charfind_code[8]={10,11,11,11,11,11,11,11};

/********************************************************/

//函数名:

voidDelayX1ms(uintcount)

//功能:

延时时间为1ms

//调用函数:

//输入参数:

count,1ms计数

//输出参数:

//说明:

总共延时时间为1ms乘以count,crystal=12Mhz

/********************************************************/

voidDelayX1ms(uintcount)

{

uintj;

while(count--!

=0)

{

for(j=0;j<80;j++);

}

}

/***********显示缓冲区更新函数**************/

voidfind_code_auto_flush(void)reentrant

{

find_code[7]=sec/10; //获得秒十位

find_code[6]=sec%10; //获得秒个位

}

/**********定时器t0中断服务函数***********************/

voidtimer0(void)interrupt1using2//选用定时器0工作方式为1

{

staticucharclick=0;//定时器0定时中断次数

TH0=v_th0;TL0=v_tl0;//设置初始值50ms为循环20次为1ms,12MHz

++click;

if(click>=20)

{

clic

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

当前位置:首页 > 解决方案 > 工作计划

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

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