基于AT89C52单片机的抢答器设计.docx

上传人:b****1 文档编号:14518328 上传时间:2023-06-24 格式:DOCX 页数:39 大小:29.52KB
下载 相关 举报
基于AT89C52单片机的抢答器设计.docx_第1页
第1页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第2页
第2页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第3页
第3页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第4页
第4页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第5页
第5页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第6页
第6页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第7页
第7页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第8页
第8页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第9页
第9页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第10页
第10页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第11页
第11页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第12页
第12页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第13页
第13页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第14页
第14页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第15页
第15页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第16页
第16页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第17页
第17页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第18页
第18页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第19页
第19页 / 共39页
基于AT89C52单片机的抢答器设计.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于AT89C52单片机的抢答器设计.docx

《基于AT89C52单片机的抢答器设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的抢答器设计.docx(39页珍藏版)》请在冰点文库上搜索。

基于AT89C52单片机的抢答器设计.docx

基于AT89C52单片机的抢答器设计

基于AT89C52单片机的抢答器设计

 

毕业设计(论文)

课题:

基于AT89C52单片机的抢答器设计

学生:

郭婷系部:

电子信息系

班级:

应电094学号:

2009001171

指导教师:

童贞理

装订交卷日期:

装订顺序:

(1)封面

(2)毕业设计(论文)成绩评定记录(3)标题、中文摘要及关键词(4)正文(5)附录(6)参考文献

摘要

此次设计提出了用AT89C52单片机为核心控制元件,设计一个简易的8路抢答器,本方案以AT89C52单片机作为主控核心,与数码管、蜂鸣器等构成8路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用C语言编程,使其实现一些基本的功能。

本设计的系统实用性强、判断精确、操作简单、扩展功能强。

它的功能实现是比赛开始,主持人读完题之后按下开始开关,即计时开始,此时数码管开始进行30秒倒计时,直到有一个选手抢答时,对应的会在数码管上显示出该选手的编号以及剩余时间,同时蜂鸣器也会发出声音,以提示有人抢答本题,在规定的最后5秒时间内还没有做出抢答,蜂鸣器发出报警,提示选手尽快作答,如果30秒内无人作答则此题作废,即开始重新一轮的抢答。

关键词:

 单片机;数码管;抢答器

目 录

第1章 绪论9

第2章 整体设计方案10

2.1 方案设计10

2.2 方案论证11

第3章 硬件设计12

3.1 单片机介绍12

3.2 时钟电路和复位电路14

路14

复位电路:

14

3.3 抢答电路15

3.4 显示电路15

3.5 控制电路16

3.6报警电路17

3.7 整机工作原理17

第4章 软件设计19

4.1主程序模块19

4.2外部中断模块20

4.3定时中断模块23

4.4报警模块24

4.5控制模块25

第5章 系统的调试与仿真27

5.1Keil的安装调试27

l简介27

51库管理器与模拟调试器27

lC操作界面及应用27

接调试29

5.2抢答器Keil软件的仿真30

5.3调试与运行31

结 论32

参考文献33

附录1 电路原理图34

第1章 绪论

二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”。

随着单片机技术的发展人们越来越依赖对它的使用,从了在抢答器的设计上也有最初的逻辑电路控制到现在的单片机智能控制。

实现了更多的功能,让电路越来越简单减小了它的体积加快了它的反应速度。

本次设计是基于单片机51系列的理论知识,综合运用AT89S52单片机设计四路抢答器。

随着科技技术和经济的发展,先进,娱乐节目正处在一个发挥在那的活跃阶段,抢答器对于各种关于知识竞赛等娱乐节目是必不可少的,抢答器规范着竞赛程序的运行。

此吃设计提出了以AT89S52单片机为主控核心,与发光二极管、数码管、蜂鸣器等构成四路抢答器,利用了单片机的掩饰电路、按键复位电路、按键抢答电路、时钟电路、定时、中断等电路,设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,时期在开始新的一轮答题和比赛,同时还利用C语言编程,时期实现抢答器的功能。

此次程序运用了查表、中断定时等知识设计出C程序。

第2章 整体设计方案

2.1 方案设计

方案一:

采用模数电设计,包括优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。

通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。

经过布线、焊接、调试等工作后数字抢答器成形。

如图2-1所示。

方案二:

采用AT89C52单片机为核心控制元件,发光二极管、数码管、蜂鸣器等构成8路抢答器,利用了单片机的延时电路、按键时钟电路、复位电路、报警电路、显示电路、控制电路、抢答电路,设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用C语言编程,使其实现一些基本的功能。

如图2-2所示。

2.2 方案论证

抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动、证券、股票交易及各种智力竞赛等场合。

在很多公开竞争场合要求有公正的竞争裁决,因此出现了抢答器。

方案一由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。

因此我们设计采用方案二以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。

第3章 硬件设计

3.1 单片机介绍

单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。

AT89C52是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。

AT89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

图3-1 AT89C52引脚图

主要功能特性如表3-2所示:

兼容MCS-51指令系统4k可反复擦写(1000次)FlashROM32个双向I/O口可编程UARL通道两个16位可编程定时/计数器全静态操作0-24MHz1个串行中断128x8bit内部RAM两个外部中断源共6个中断源可直接驱动LED3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能表3-2 AT89C52功能特性表

AT89C52单片机的管脚功能:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2(外部中断0)

P3.3(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6(外部数据存储器写选通)

P3.7(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次有效。

但在访问外部数据存储器时,这两次有效的信号将不出现。

VPP:

当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

3.2 时钟电路和复位电路

A,时钟电路

单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号。

单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:

内部振荡和外部振荡。

本系统设计采用内部振荡方式。

B,复位电路:

复位电路是必不可少的一部分,复位电路的第一功能是上电复位。

一般电路正常工作需要供电电源为5V±5%,即4.75~5.25V。

RST端的外部复位电路有两种操作方式:

上电自动复位和按键手动复位。

按键手动复位有电平方式和脉冲方式两种,本系统设计采用上电复位,上电复位是直接将RST端通过电阻接高电平来实现单片机的复位。

如图3-2所示。

图3-2 复位、时钟电路

3.3 抢答电路

按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。

独立式键盘是一种常见的输入装置,但是独立式键盘局限于个数,以及占用较多I/O口,所以本次设计采用的是矩阵式键盘。

如图3-3所示。

图3-3 抢答电路

矩阵键盘行扫描实现原理:

判断键盘中有无键按下

将全部平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置

在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:

依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

3.4 显示电路

在单片机应用系统中,对于系统的运行状态和运行结果,通常都需要直观交互显示出来。

单片机应用系统中最常用的显示器有LED和LCD两种。

这两种显示器都可以显示数字、字符及系统的状态,LED和LCD数码显示最为普遍,本设计采用的是更为环保的4位LED显示器。

如图3-4所示。

图3-4 显示电路

4位数码管动态显示原理与实现:

P0.0-P0.6端口接动态数码管的字形码笔段,P2.0-P2.3端口接动态数码管的数位选择端。

4位数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选端控制电路,位选端由独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选端控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。

就使各个数码管轮流受控显示,这就是动态显示原理。

在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。

3.5 控制电路

本次设计中控制电路采用4个独立按键来控制抢答时间的加减,时间对抢答器功能的调节,如图3-5所示。

图3-5 控制电路

控制电路的原理与实现:

当控制电路中K9-K12中有键被按下时,对应的I/O口被置低电平,听过中断程序实现相对应的功能。

该电路采用独立式按键,其原理简单明了。

3.6报警电路

因为抢答器的报警比较简单,只起提示选手的抢答成功信息及时间警告等少许功能,本次报警电路核心器件采用一个蜂鸣器实现报警。

如图3-6所示。

图3-6 报警电路

3.7 整机工作原理

本系统采用单片机作为整个控制核心。

控制系统的四个模块为:

显示模块、控制模块、报警模块、抢答模块(原理图见附录1)。

工作时,该系统通过矩阵键盘输入抢答信号,经单片机的处理,输出控制信号,利用一个4位数码管来完成显示功能并伴随蜂鸣器报警,用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。

当主持人按下开始键时,向单片机P3.2引脚输入一个低电平信号,表示整个电路开始工作,此时数码管前两位显示选手编号(无人抢答显示00),后两位显示倒计时剩余时间。

若在25秒内仍然无人抢答,蜂鸣器在最后5秒发出连续报警,提示抢答时间快要结束;若在30秒内有人抢答,并且抢答成功,则将选手编号显示在数码管前两位上,后两位显示抢答剩余时间,同时蜂鸣器发出一声报警,提示其他没有抢答的选手此题已被人抢答成功。

若在抢答过程中遇见特殊情况,主持人则可以通过时间加,时间减按键来进行时间调节。

若要开始新的一轮抢答,主持人按下复位键再按开始键即可。

此次用单片机设计的抢答器思路简单明了,可操作性强,可靠性高,扩展功能强,能够完全实现普通抢答器的基本功能。

第4章 软件设计

4.1主程序模块

主程序主要完成硬件初始化,子程序调用和程序间的切换,由于本设计要求抢答器具有开始、复位、抢答、三种方式切换功能,所以主程序除了要进行硬件部分的初始化以外还要进行各个程序之间的调用和切换。

主程序流程图如图4-6所示。

程序:

voidmain

huang0;red0;EA1;

TMOD0x11;T2CON0x01;

TH065536-50000/256;TL065536-50000%256;

TH165536-5000/256;TL165536-5000%256;

TH265536-50000/256;TL265536-50000%256;

ET01;TR00;ET11;TR11;ET21;TR20;IT01;EX01;IT11;

EX11;aa0;bb0;shijian30;

while1

keyscan;

4.2 外部中断模块

抢答器主要外部中断来自于选手们的抢答,当选手抢答时,抢答器同时判断被按下的键号并显示在数码管之上,然后再数码管上显示剩余时间,同时关闭中断,表示抢答结束,此时再有键按下抢答器也不会做出反应。

外部中断流程图如图4-3所示。

程序:

voidtimer_2interrupt5

TH265536-50000/256;

TL265536-50000%256;

P10xfe;

tempP1;

temptemp&0xf0;

whiletemp!

0xf0

delay5;

tempP1;

temptemp&0xf0;

whiletemp!

0xf0

tempP1;

TR20;

switchtemp

case0xee:

TR00;TF20;num1;bj;red1;huang0;break;

case0xde:

TR00;TF20;num2;bj;red1;huang0;break;

case0xbe:

TR00;TF20;num3;bj;red1;huang0;break;

case0x7e:

TR00;TF20;num4;bj;red1;huang0;break;

whiletemp!

0xf0

tempP1;

temptemp&0xf0;

P10xfd;

tempP1;

temptemp&0xf0;

whiletemp!

0xf0

delay5;

tempP1;

temptemp&0xf0;

whiletemp!

0xf0

tempP1;

TR20;

switchtemp

case0xed:

TR00;TF20;num5;bj;red1;huang0;break;

case0xdd:

TR00;TF20;num6;bj;red1;huang0;break;

case0xbd:

TR00;TF20;num7;bj;red1;huang0;break;

case0x7d:

TR00;TF20;num8;bj;red1;huang0;break;

whiletemp!

0xf0

tempP1;

temptemp&0xf0;

4.3定时中断模块

由于抢答器中需要显示倒计时来提示选手们抢答时间,在规定时间内作答,所以需要有定时中断模块,当时间小于6秒时,抢答器需要提供警告,以及当抢答时间结束时,要关闭外部中断,表示抢答结束,此时再有键按下抢答器也不会做出反应。

流程图如图4-3所示。

程序:

EA1;ET01;/*开启总中断源*/

EX01;/*启动外部中断0*/

ifshijian0

TR00;TR20;TF20;

4.4报警模块

报警模块主要作用有两个,一是当时间还剩5秒时,蜂鸣器放出报警,以此提示选手们抢答时间将要结束;二是当有选手第一时间抢答成功时发出报警声,提示其他选手不必再抢答。

报警程序流程图如图4-4所示。

程序:

ifbb1

bb0;

ifshijian5

speak~speak;

ifshijian4

speak~speak;

ifshijian3

speak~speak;

ifshijian2

speak~speak;

ifshijian1

speak~speak;

4.5控制模块

控制模块主要作用是对抢答器的开始和复位功能进行控制,主要由主持人来实现功能。

当开始键被按下时,抢答器开始正常工作;当抢答器停止工作是,可以按下复位键使抢答器回答初始化状态。

控制程序流程图如图4-5所示。

程序:

voidkeyscan

ifsjia0

delay5;

ifsjia0

shijianshijian+1;

ifshijian99

shijian0;

while!

sjia;

ifsji0

delay5;

ifsji0

shijianshijian-1;

ifshijian0

hijian30;

while!

sji;

第5章 系统的调试与仿真

5.1Keil的安装调试

1.Keil简介

KeilC:

是德国KEIL公司开发的单片机C语言编译器。

其前身是FRANKLINC51,功能相当强大。

μVision2:

是一个forWindows的、集成化的C51开发环境。

集成了文件编辑处理、项目管理、编译链接、软件仿真调试等多种功能,是强大的C51开发工具。

在后面的讨论中,对KeilC和μVision2两个术语不做严格的区分,一般多称呼为KeilC,包含有μVision2集成开发环境之意。

KeilC的编译器和链接器包括C51、A51、L51和BL51。

C51是C语言编译器,其功能是将C源代码编译生成可重新定位的目标模块。

A51是汇编语言编译器,其功能是将汇编源代码编译生成可重新定位的目标模块。

L51是链接/定位器,其功能是将汇编源代码和C源代码生成的可重定位的目标模块文件(.OBJ),与库文件链接、定位生成绝对目标文件。

BL51也是链接/定位器,除了具有L51所有的功能之外,1可以链接定位大于64KB的程序;2具有代码域及域切换功能;3可用于RTX51实时多任务操作系统

2.LIB51库管理器与模拟调试器

LIB51库管理器可以把由汇编器、编译器创建的目标文件构建成目标库(.LIB)。

这些库是按规定格式排列的目标模块,可在以后被链接器所使用。

KeilC有三个模拟调试器:

1、模拟程序运行与调试,包括C、汇编、宏汇编程序;

(2)模拟CPU及其外围器件,如串行口、定时器/计数器、I/O口等。

2、硬件调试器tScope51

tScope51用于对硬件目标板进行调试。

3、监视程序Monitor51

通过串行口,PC机与目标板进行通信,利用Monitor51,在PC机上显示程序的运行情况

3.KeilC操作界面及应用

编辑状态的操作界面主要由5部分组成:

最上面的菜单栏、菜单栏下面的工具栏、左边的工程管理窗口、中间的编辑窗口、下面的输出信息窗口。

菜单项主要有:

文件、编辑、视图View、工程、调试、片内外设Peripherals、工具、软件版本控制系统SVCS、窗口、帮助。

工具都是相应菜单项的快捷操作按钮,所以,下面以介绍菜单项为主线,并指明对应的工具按钮。

在KeilC中,文件的管理采用的是项目(也叫工程)方式,而不是以前的单一文件方式。

工程管理器的功能:

对C51源程序、汇编源程序、头文件等文件统一管理;可以对文件进行分组。

如图4-7所示。

工程管理窗口内容及分布,与Windows的资源管理器相似

1、建立项目

选择Project菜单下的NewProject命令,创建新工程,在对话框中设定新工程的位置,输入新工程名字保存即可。

2、选择CPU

在出现的为新工程选择CPU的界面,在“database”栏下选择所使用的CPU。

确定后,会弹出一“CopyStandard8051StartupCodetoProjectFolderandAddFiletoProject”信息,一般选择“是”即可。

3)移走项目:

在欲移走的

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

当前位置:首页 > 工程科技 > 能源化工

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

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