单片机抢答器的设计说明Word文档格式.docx

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

单片机抢答器的设计说明Word文档格式.docx

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

单片机抢答器的设计说明Word文档格式.docx

(二)、当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。

对于后者由于抢答电路制作完毕后电子元件被固定。

各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。

普通抢答器存在不公平性。

(三)、当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。

第二章抢答器的概述及制作要求

2.1抢答器的概述

对于抢答器我们大家来说都不陌生,现在很多文娱活动中都有抢答这一项,需要用到抢答器。

在目前的市场上,普通抢答器都需要几百块,价格比较昂贵。

本项目设计的抢答器,电路简单、成本较低、操作方便、灵敏可靠、具有较高的推广价值。

2.2设计任务、要求和知识点

基于AT89C52单片机设计制作一个抢答器,晶振采用12MHZ。

具体设计要求如下:

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

(2)给节目主持人设置一个控制开关,用来控制系统的清零和抢答的开始。

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

抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数据管上显示选手的编号,同时灯亮且伴随声音提示。

此外,要封锁输入电路,禁止其他选手抢答,最先抢答选手的编号一直保持到主持人将系统清零。

本项目需要通过学习和查阅资料,掌握和了解如下知识:

(1)+5V电源原理及设计。

(2)单片机复位电路工作原理及设计。

(3)单片机晶振电路工作原理及设计。

(4)按键电路的设计。

(5)蜂鸣器驱动电路设计。

(6)数码管特性及使用。

(7)AT89C52单片机引脚。

(8)单片机汇编语言及程序设计。

第三章单片机芯片的选择及模块性能分析

3.1单片机芯片的选择

单片机选用的是Atmel公司推出的AT89C52,它是一种低功效、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

在单芯片上拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89C52具有以下标准功能:

8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器串口、中断继续工作。

掉电保护方式下RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

而且,它还具有一个看门狗(WDT)定时/计数器。

如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

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

3.1.1单片机管脚说明

图3-1-1单片机的引脚

(1)Vcc:

供电电压。

(2)GND:

接地。

(3)P0口:

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

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

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

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

(4)P1口:

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

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

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

(5)P2口:

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

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

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

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

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

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

(6)P3口:

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

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

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

P3口功能引脚简介:

P3.0:

RXD(串行口输入)

P3.1:

TXD(串行口输出)

P3.2:

INT0(外部中断0输入)

P3.3:

INT1(外部中断1输入)

P3.4:

T0(定时器0外部脉冲输入)

P3.5:

T1(定时器1外部脉冲输入)

P3.6:

WR(外部数据存储器写脉冲输出)

P3.7:

RD(外部数据存储器读脉冲输出)

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

(7)RST:

复位输入。

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

(8)ALE/RPOG:

当访问外部存储器时,地址锁存允许的输出电平由于锁存地址的地位字节。

在Flash编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳出一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。

另外该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

(9)/PSEN:

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

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

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

(10)/EA/VPP:

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

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

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

(11)XTAL1:

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

(12)XTAL2:

来自反向振荡器的输出。

3.2模块性能分析

模块部分主要分为AT89C52芯片、复位电路、电源电路、主持人按键、声音提示、选手按键和数码管显示等部分组成,下面对这后两部分进行介绍,其中对数码管显示器做详细介绍,并根据实际工作情况采用合适的工作方式。

3.2.1选手按键

利用8个常开按钮开关S1~S8和8只电阻R1~R8组成抢答器的输入电路。

S1~S8为自复式常开按钮开关,分别作为8位抢答按钮,一般情况下锁存器的输入端为低电平。

当程序执行,按下按键时,数码管显示器上即显示相应的是哪位选手按下抢答。

3.2.2数码管显示

译码器的逻辑功能是将每一个输入的二进制代码译成对应的输出高、低电平信号,是编码器的反操作。

数码管可以用TTL或CMOS集成电路直接驱动,但是我们着采用了74LS245进行驱动。

所以使用译码器将BCD编码译成数码管所需要的驱动信号,以便使数码管用十进制数字显示出BCD编码表示的数值。

应根据实际情况决定究竟采用共阳还是共阴方式,其基本原则是:

若单片机口线直接驱动数码管各段,最好采用共阳极数码管,因为8051系列单片机口线输出高电平时,输出的电流很小,数码管不会太亮。

若数码管通过驱动芯片与单片机相连,就要看驱动芯片对数码管极性的要求了

点亮显示器分为静态和动态显示两种方法。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或是截止。

例如,其段数码管的a、b、c、d、e、f、导通,g截止,则显示0.这对这种显示方式每一位都要有一个8位输出口控制,所占硬件较多,一般用于显示位数较少(很少)的场合。

当位数较多时,用静态显示所需的I/O过多,一般采用动态显示方法。

所谓动态显示,就是逐位地轮流点亮各位显示器(扫描),对于每一位显示器而言,每个一段时间点亮一次。

显示器的点亮既与点亮时的导通电流有关,也与点亮时间和间隔时间比例有关。

调整电流和时间参数,可是实现亮度较高、较为稳定的显示,同时可减少工作电流。

对于共阳极数码管,当a、b、c、d、e、f、g、h端接低电平时,COM位高电平,数码管各段全部点亮。

例如,想让数码管显示“1”,就必须使数码管的b、c段点亮,其它段熄灭;

所以使b、c段为低电平,其它各引脚均为高电平。

在设计电路时,可将这几位分别接到单片机的引脚上,还要加上限流电阻,这样就可由程序控制数码管的工作情况了。

但是如果用一个端口驱动一个数码管,四位数码管就需要四个空闲端口,而在许多系统中并无四个端口可用。

此外,使用四个端口往往使得每一个数字都需要独立驱动(缓冲)电路和排阻,这将大大增加系统的成本。

最常见的解决方案是采用多路复用显示。

这是指对于每一个显示只驱动1/4时间。

只要在20Hz-50Hz之间循环所有显示,由于人眼存在视觉残留,在这样的显示方式下,数码管看起来时同时点亮的。

在这次课程设计中根据实际需要采用了七段数码管共阳极和静态显示方式。

抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器,555定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多,实际搭建起来费时费力,焊接很容易出错。

于是,我想到了用单片机实现。

单片机体积小价格低,应用方便,稳定可靠。

单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。

由于单片机本身不具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序置入单片机内。

在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。

在老师的指导下我选择了常用的单片机仿真软件proteus6.9以及keil进行仿真。

第四章电路设计

4.1总体设计

4.1.1电路原理图

根据上述分析,设计出基于AT89C52单片机抢答器电路原理图,工作原理为:

电源电路为单片机以及其他模块提供标准5V电源。

晶振模块为单片机提供时钟标准,使系统各部分能协调工作。

复位电路模块为单片机系统提供复位功能。

单片机作为主控制器,根据输入信号对系统进行相应的控制。

选手按下相应的按键,蜂鸣器发出提示音,直到按键释放。

数码管显示最先按下按键选手的编号。

选手回答完毕,主持人按下准备按钮,数码管清零,蜂鸣器停止发声,可以进入下一题的抢答。

根据抢答器的基本功能,可以设计出如下的单片机外围电路:

图4-1总体设计框图

图4-1总体设计

4.1.2元件清单

表4.1.2元件清单

元件名称

型号

数量/个

用途

单片机

AT89C52

1

控制核心

按键

8

选手输入

晶振

12MHZ

晶振电路

主持人输入

电容

30pF

2

三极管

9015

蜂鸣器及其驱动电路

电解电容

10μF/10V

复位电路

蜂鸣器

电阻

10kΩ

数码管

1位共阴

显示电路

电源

5v/0.5A

电源电路

集成块

74LS245

驱动

4.2外部振荡电路(晶振电路)

图4-2外部振荡电路

一般选用石英晶体振荡器。

此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生一正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。

电路中两个电容C1,C2的作用有两个:

一是帮助振荡器起振;

二是对振荡器的频率进行微调。

C1,C2的典型值为30PF。

晶振是石英振荡器的简称,英文名为Crystal,晶振分为有源晶振和无源晶振两种,其作用是在电路产生震荡电流,发出时钟信号。

它是时钟电路中最重要的部件,它的作用是向IC等部件提供基准频率,它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。

由于制造工艺不断提高,现在晶振的频率偏差、温度稳定性、老化率、密封性等重要技术指标都很好,已不容易出现故障,但在选用时仍可留意一下晶振的质量。

4.3复位电路的设计

单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位。

复位后单片机的各状态都恢复到初始化状态,复位电路是为确保微机系统中电路稳定可靠工作必不可少的一部分,复位电路的第一功能是上电复位。

一般微机电路正常工作需要供电电源为5V±

5%,即4.75~5.25V。

由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。

其电路图如图所示:

图4-3复位电路

4.4显示电路的设计

显示电路使用了七段数码管7SEG-COM-CAT-BLUE,它是共阴极的,由高电平点亮。

还采用74LS245作为负载驱动,74LS245不仅具有锁存功能。

它还是一个8路同相三态双向总线收发器,可双向传输数据。

 

图4-4显示电路

4.5按钮输入电路的设计

抢答器的选手按钮输入电路如下:

图4-5抢答按键

这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”

现象就可以了。

这里采用最常用的方法即延时法,其的原理为:

因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,如果不是则为无效。

4.6发声电路

这里能利用程序来控制单片机P2.0口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。

图4-6发声电路

第五章系统软件设计

5.1抢答器流程图

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

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

流程图如下:

图5-1抢答器主程序流程图

5.2主程序

我所设计的抢答器的程序采用的是汇编语言设计,本次设计的主程序中包括LED显示程序以及按键控制子程序,程序设计如下:

ORG0000H

JMPBEGIN

TABLE:

;

共阴极数码管显示代码表

DB3FH,06H,5BH,4FH,66H;

01234

DB6DH,7DH,07H,7FH;

5678

DELAY:

MOVR5,#20;

延时20×

20ms子程序

LOOP4:

MOVR6,#50

LOOP5:

MOVR7,#100

DJNZR7,$

DJNZ6,LOOP5

DJNZR5,LOOP4

RET

BEGIN:

MOVP2,#0FFH;

P2口置高电平,准备接收信号

MOVR4,#0;

"

R4"

的位标志值清零。

MOVA,R4;

位标志值送A寄存

AGAIN:

MOVDPTR,#TABLE;

共阴极数码管代码表首址送

MOVCA,@A+DPTR;

取出显示"

0"

的代码送P口显示

MOVP1,A

LOOP1:

MOVA,P3;

接收P3口的抢答信号。

CPLA;

抢答信号求反

JZLOOP1;

如果没有抢答信号再返回LOOP1

LOOP2:

RRCA;

有抢答信号则逐次移动判断是那一位抢答

INCR4;

每移一次位,R4位标志值加1

JNCLOOP2;

如果没有遇到抢答信号返回LOOP1继续移位

MOVA,R4;

遇到抢答信号把R4位标志的只送A

MOVCA,@A+DPTR;

找到相应位的显示代码

MOVP1,A;

送P1口显示

LOOP3:

JNBP2.2,BEGIN;

若主持人按了复位信号健则转向程序复位

CPLP2.0;

若没按复位信号键,则通过P2.2给出高低信号驱动蜂鸣器

LCALLDELAY;

调用延时程序

SJMPLOOP3;

P2.2口反复间隔0.4秒变化,驱动蜂鸣器

END

5.3中断程序

5.3.1什么是中断

中断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。

有五种中断源:

外部中断0、外部中断1、定时器中断0、定时器中断1、串行中断。

它们的描述如下图所示:

表5-3-1五种中断源的表示

中断源符号

名称

终端引起的原因

中断矢量地址

INT0

外部中断0

由P3.2低电平或下降沿信号

0003H

T0

定时器中断0

定时/计数器0回零溢出P3.4

0013H

INT1

外部中断1

由P3.3低电平或下降沿信号

000BH

T1

定时器中断1

定时/计数器1回零溢出P3.5

001BH

TI/RI

串行中断

串行口接收或发送完帧数据引起的中断

0023H

5.3.2中断所用到的寄存器

介绍定时器/计数器中所介绍的寄存器:

(1)、定时器/计数器控制寄存器TCON

TCON的作用是控制定时器的启动`停止,标志定时器的溢出和中断情况;

(2)、中断允许控制寄存器IE

对中断源的开放或屏蔽是由中断寄存器IE控制的,地址为0A8H,即可以按字节寻址,也可以按位寻址。

当单片机复位时,IE被清零。

(3)、串行控制寄存器SCON

定时/计数器的控制方法:

在启动定时/计数器工作之前CPU必须将一些命令(称为控制字)写入定时/计数器中,这个过程称为定时/计数的初始化。

(定时/计数器的初始化通过定时/计数器的方式寄存器TMOD和控制寄存器TCON来完成。

1定时/计数器方式寄存器TMOD

表5-3-2选择定时方式表

GATE

C/T

M1

M0

定时器1定时器0

工作方式

功能说明

方式0

13位计数器

方式1

16位计数器

方式2

自动再装入8位计数器

方式3

定时器0:

分成两个8位计数器;

定时器1:

停止计数

②中断程序的编写的步骤:

(1)、根据要求设置IE(中断允许寄存器)的对应位EA(EA—总中断允许位EA=1开放所有的中断;

EA=0禁止所有的中断),某个中断源还有相应的中断允许位

①、当=1时:

允许相应中断源的中断;

②、当=0时:

禁止相应中断源的中断;

(2)、INT0、INT1设定触发方式IT0(外部中断触发方式控制位)当为0时:

低电平触发;

当为1时:

下降沿触发;

(3)、返回值是Void中断函数名()interrupt()

5.3.3为什么采用中断控制方式

CPU与外部设备的数据传送方式:

(1)、无条件传送方式

CPU总认为外设处于准备好的状态,外设比较简单

(2)、程序查询传送方式

外设有一个状态(状态存储在寄存器内)

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

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

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

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