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

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

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

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

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

基于单片机的抢答器设计

摘要

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

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

它的功能实现是比赛开始,主持人读完题之后按下总开关,即计时开始,此时数码管开始进行1s的加计时,直到有一个选手抢答时,对应的会在数码管上显示出该选手的编号和抢答所用的时间,同时该选手对应的发光二极管会发出相应的光,蜂鸣器也会发出声音,以提示有人抢答本题,如果在规定的60s时间内没有做出抢答,则此题作废,即开始重新一轮的抢答。

关键词:

STC89C52单片机动态显示中断按键控制

Abstract

ThisdesignuseAT89C51asthecorecontrolelementispresentedtodesignasimpleresponder,thisschemeisAT89C51singlechipmicrocomputerascontrolcore,andMAX232leddigitaltubebuzzerbuzzerconstitutefourroad,suchasusingthetimedelayofthesinglechipmicrocomputercircuitbuttonresetcircuitclocktiming/interruptcircuit,designofviestoanswerfirstinstrumentshaveareal-timedisplayviestoanswerfirstcontestant'snumberandthecharacteristicsofviestoanswerfirsttime,andresetcircuit,tostartanewroundoftheanswerand,atthesametimealsouseofClanguageprogramming,makeitimplementssomebasicfunctionality

Thisdesignthesystemofpracticaljudgmentaccurateoperationsimpleextensionfunctionoftherealizationofthefunctionofthestrongeritisthematchbegan,andthehosttoreadthetopicafterpressthemainswitch,thetimerstartsandthedigitaltubeto1softime,untilthereisacontestantviestoanswerfirst,thecorrespondingwillbedisplayedonthedigitaltubeoutofthecontestant'sserialnumberandviestoanswerfirstthetime,theplayeratthesametimethecorrespondingledsemitlight,buzzerwillsound,ontologytoremindsomeoneviestoanswerfirst,ifwithinthetimestipulatedinthe60smadenoviestoanswerfirst,thenthistopicinvalid,isbeginningtoroundofviestoanswerfirst

 

Keywords:

DynamicdisplayofSTC89C52singlechipinterrupt,buttoncontrol

第一章绪论

第一节单片机抢答器的背景

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

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

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

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

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

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

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

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

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

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

在知识竞赛中,往往会用到抢答器。

故此我们就选择利用单片机编程来设计抢答器,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题。

第二节单片机抢答器的意义

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

控制系统的四个模块为:

显示模块、存储模块、语音模块、抢答开关模块。

该系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能,用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。

本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。

系统工作原理本系统采用89C52单片机作为核心。

控制系统的四个模块分别为:

存储模块、显示模块、语音模块、抢答开关模块。

该抢答器系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能。

工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设计。

第三节抢答器的应用

随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。

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

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

抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。

第二章整体设计方案

第一节单片机的选择

一、什么是单片机

单片机是指一个集成在一块芯片上的完整计算机系统。

尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:

CPU、内存、内部和外部总线系统。

单片机是将中央处理器,随机存储器。

只读存储器,定时器芯片和I/O接口电路集成于一个芯片上的微控制器。

单片机也被称为微控制器,是因为它最早被用在工业控制领域。

单片机由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。

INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

早期的单片机都是8位或4位的。

其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。

此后在8031上发展出了MCS51系列单片机系统。

基于这一系统的单片机系统直到现在还在广泛使用。

随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。

90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。

随着INTELI960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。

而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。

目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。

而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

单片机是靠程序的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板,但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别。

只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

二、单片机的应用

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

1.在智能仪器仪表上的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。

例如精密的测量设备(功率计,示波器,各种分析仪)。

2.在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。

例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

3.在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

4.在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

5.单片机在医用设备领域中的应用

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。

此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。

三、如何选择单片机

ATMEL公司的89C52单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。

89C52单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。

89C52单片机工作电压为2.7~6.0V,可以实现耗电最优化。

89C52的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。

由于单片机的种类很多,在选择单片机时要依据实际设计要求选择合适的单片机。

例如当设计仅仅需要一个单片机定时器那么选择89C1051或89C2051即可,而不选择89C52,因为后者的价格较高一些。

当然若程序和数据区的要求较高那么选择的单片机还要满足程序空间的要求。

表2.151和52的比较

数据存储器

程序存储器

定时器

中断

51系列

128B

4KB

2

5

52系列

256B

8KB

3

8

在本课题中,我们选用现在较为流行的52系列单片机,即选用ATMEL公司的STC89C52。

第二节单片机的基本结构

一、单片机的引脚分布及功能

MCS-52系列单片机中的8032、8052及8752均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

图2.1STC89C52的引脚图

Pin9:

RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。

8052的复位方式可以是自动复位,也可以是手动复位,见下图4。

此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

图2.2复位电路和晶振电路图

1、8位微处理器和控制器;

2、内部含有4KB的程序ROM;

3、2个16位的计数/定时器;

4、内部时钟振荡器;

5、全双工方式的串行接口(UART)种寻址方式;

6、最高时钟振荡频率可达12MHZ,大部分指令执行时间为1s,乘、除指令为4s。

二、信号引脚介绍:

1.输入/输出口线。

2.ALE地址锁存控制信号。

3.在系统扩展时,ALE用于控制把口输出的底8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。

此外由于ALE是以十二分之一晶振频率的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。

4.外部程序存储器读选通信号。

5.在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。

6.访问程序存储器控制信号。

7.当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储。

8.RST复位信号,当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。

9.XTAL1和XTAL2外接晶体引线端,当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

10.VSS地线。

11.VCC+5V电源。

三、单片机的存储器配置

图2.3单片机的内部存储器配置

从用户的角度存储器分3个逻辑地址空间:

1.片内外统一编址的64KB程序存储器地址空间0000H~FFFFH即(a)图;

2.256B的片内数据存储器地址空间00H~FFH(包括低128B的内部RAM地址00H~7FH和高128B的特殊功能寄存器地址空间)即(b)图;

3.64KB的外部数据存储器或扩展I/O接口地址空间0000H~FFFFH如(c)图。

4.画出RAM的组成,RAM共有256个单元,按功能分为两部分低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。

其中高128单元是供给专用寄存器使用,因这些寄存器的功能已作为专门规定故此称之为特殊功能寄存器SFR-11个SFR有位寻址作用,而且要说明低128单元是单片机的真正RAM存储器。

 

表2.2RAM的组成图

30H~7FH

通用RAM区

20H~2FH

位寻址区(00H~7FH)

18H~1FH

工作寄存器3区(R7~R0)

10H~17H

工作寄存器2区(R7~R0)

08H~0FH

工作寄存器1区(R7~R0)

00H~07H

工作寄存器0区(R7~R0)

低128单元是单片机的真正RAM存储器,按其用途划分为三个区域:

⒈通用寄存器区,通用寄存器为CPU提供了就近数据存储的便利,有利于提高单片机的运算速度。

此外,使用通用存储器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。

⒉位寻址区,内部RAM的20H~2FH单元,即可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。

⒊工作寄存区,用户存储数据的。

第三章硬件设计

第一节单片机的最小系统

图3.1单片机的最小系统图

说明:

(1)复位电路:

由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。

典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C取10,R取8.2K。

当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;

(2)复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。

此电路除具有上电复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平;

(3)晶振电路:

典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的方波便于12分频,方便定时操作);

(4)单片机:

一片AT89S51/52或其他51系列兼容单片机;

注意:

对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行;

(5)电源部分:

接+5伏特的电压。

第二节数码管显示电路

LED显示器,实现七段数码管的显示三位十六进制数。

来进行倒计时,即来限制抢答的时间。

其中数码管的显示可以分为两种:

静态显示和动态显示。

静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管,在这种采用这种方式,必须要给LED恒定的电压,要求电压一直保持,所以一般在LED和单片机之间加锁存器,这种显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的CPU时间少。

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

通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

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

图3.2数码管显示电路图

第三节按键控制电路

在一些按键控制电路中,人机接口通常是LED显示器和小型按键。

常见的工作方式有两种:

一是直接使用系统中的CPU对显示器进行动态显示和键盘检测;二是专用的显示、键盘芯片。

但这两种方式存在着不能及时响应、价格较高等缺点。

介绍了一种性价比高的显示/键盘电路的结构及工作原理。

以ATMEL89C51系列单片机为核心构成的显示/键盘电路,他具有功能强、价格低廉等特点。

按键可直接连接到STC89C52的P1口,这样其电路结构最为简单,工作时可使用中断方式,但使用STC89C52在不用扫描方式时最多只可以有8个按键,此次设计抢答器利用六个按键与P1.0~P1.5相连。

如图3.3按键控制电路。

图3.3按键控制电路

第四章软件设计

第一节抢答器流程图

流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。

总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。

流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。

流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。

为便于识别,绘制流程图的习惯做法是:

方框表示:

要执行的处理(Process)

平行四边型表示:

代表资料输入(Input)

不规则图形代表资料输出(Output)或报表输出(Print)

菱形表示:

决策或判断(例如:

If...Then...Else)

图4.1抢答器主程序流程图

图4.2抢答器定时器中断流程图

图4.3外部中断程序图

第二节主程序

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

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

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

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

本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,程序设计如下:

#include

sbitk0=P1^0;

sbitk1=P1^1;

sbitk2=P1^2;

sbitk3=P1^3;

voiddelay(unsignedint);

main()

{

TMOD=0X01;/*采用方式一,即十六位计数器*/

TH0=(65536-50000)/256;/*设置初始值*/

TL0=(65536-50000)%256;

IT0=0;

EA=1;ET0=1;/*开启总中断源*/

EX0=1;/*启动外部中断0*/

{while

(1)

{display();

if(kz==0)

TR0=1;/*开启定时器0中断*/

if(num==20)

{num=0;

time++;

if(time==60)/*60秒的计时*/

time=0;

}

}

}

}

voidexter0()interrupt0/*外部中断程序*/

{EA=0;l0=0;

if(k0==0)/*开关0按下*/

{d0=0;qiangdanum=1;B0=1;

}/*1号选手抢答成功,数码管显示1,蜂鸣器响,第1个二极管亮*/

if(k1==0)/*开关1按下*/

{d1=0;qiangda

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

当前位置:首页 > 经管营销 > 经济市场

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

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