48-正版+基于单片机的无线八路抢答器设计

更新时间:2024-05-11 16:13:05 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于单片机的八路抢答器 1

编号:

单片机课程设计报告

题 目:八路抢答器设计制作 院 (系): 电子工程系 专 业: 电子信息工程技术 学生姓名: 学 号:

指导教师单位: 姓

名:

题目类型:?理论研究 ?实验研究 ?工程设计 ?工程技术研究 ?软件开发

2013年7月3日

基于单片机的八路抢答器 2

摘 要

随着社会的不断进步,电子技术也飞速的向前发展.特别是大规模集成电路的发展,把我们带进了电子化时代。电子产品的日益增多,也让我们的生活越来越方便。特别是计算机的发展,真可谓是突飞猛进。自从1946年世界上第一台计算机的诞生以来,还不到六十年的时间,计算机就取得了举世瞩目的成绩。特别是在通信领域,实现了信息一体化的时代。作为大学生的我们,更需要加强实践能力的培养。课程设计在一定程度上反映了我们对理论知识的理解程度,是理论与实践的桥梁。它不仅能锻炼我们的动手能力,而且能够培养我们对问题的思考能力以及对知识的进一步了解。当你能把你所学到知识化作为现实的东西时,我们能力就提升到一个新台阶。

很多人都认为学习是枯燥无味的,有时觉得与现实太遥远。在学习之余,我们仍然可以找到一点有趣的事情,比如说做一个声控灯泡、数字钟等等。生活中我们要找到自己感兴趣的东西。这次综合课程设计中,我制作了八路抢答器。

抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。本节介绍一种利用51单片机作为核心部件进行逻辑控制及信号产生的八路抢答器。近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新的工程应用技术。本次课程设计我们做的是八路抢答器,我们采用STC89C51单片机实现抢答功能,性能更稳定,更易操作调试。

关键词:多路数字抢答器 STC89C51 PROTEUS

基于单片机的八路抢答器 3

目 录

·引 言 ........................................................................................................................................................... 4 ·绪 论 ........................................................................................................................................................... 5 第1章 系统设计内容 ................................................................................................................................... 5 1.1系统设计依据 .......................................................................................................................................... 5 1.2设计任务和要求 ...................................................................................................................................... 5 1.3 设计目的 ................................................................................................................................................. 6 1.4 设计要点 ................................................................................................................................................. 6 第2章 硬件设计 ........................................................................................................................................... 7 2.1系统工作介绍 .......................................................................................................................................... 7 2.2 单片机控制原理 ..................................................................................................................................... 7 2.3 抢答器的原理 ....................................................................................................................................... 12 2.4 功能模块电路 ....................................................................................................................................... 13

2.4.1开始抢答电路 .................................................................................................................... 13 2.4.2 选手抢答键 ....................................................................................................................... 13 2.4.3 显示与显示驱动电路 ....................................................................................................... 14 2.4.4蜂鸣器音频输出电路 ........................................................................................................ 14 2.4.5 发射电路设计 ................................................................................................................... 15 2.4.6 接收电路设计 ................................................................................................................... 17

第3章 软件设计 ......................................................................................................................................... 19 3.1程序设计 ................................................................................................................................................ 19

3.1.1 系统流程图 ....................................................................................................................... 19 3.1.2显示抢答违规流程图 ........................................................................................................ 20 3.1.3抢答成功流程图 ................................................................................................................ 20

3.2 程序代码 ............................................................................................................................................... 21

3.2.1 主程序 ............................................................................................................................... 21 3.2.2 定时器子程序 ................................................................................................................... 25 3.2.3 延时子程序 ....................................................................................................................... 26 3.2.4 显示子程序 ....................................................................................................................... 26

第4章 系统调试 ......................................................................................................................................... 27 第5章 结论 ................................................................................................................................................. 27 参考文献资料 ............................................................................................................................................... 28 附录一:抢答器原理图 ............................................................................................................................... 29 附录二:仿真图 ........................................................................................................................................... 31

基于单片机的八路抢答器 4

·引 言

随着电子技术的飞速发展,基于单片机的控制系统已经广泛应用于工业、农业、电力、电子、智能楼宇等行业。微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于单片机的照明控制系统的普及与应用奠定了坚实的基础。

电子智能抢答器在抢答过程中,为了知道哪一组或哪一位选手先回答问题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒也可以分辨出使哪组优先回答问题。抢答组数可以在八组以内任意使用,本系统设计为模块主机与从机实现无线连接,系统工作原理本系统采用STC89C51单片机作为核心。控制系统的五个模块分别为:单片机最小系统、显示模块、显示驱动模块、抢答开关模块、无线传输模块。

多路数字抢答器在各种智力竞赛中经常用到。在各校举行的各种竞赛中我们也经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。为解决这个问题,我准备借本次课程设计的机会制作一个八路数显抢答器。一方面加深我们对所学习的知识的了解,巩固模拟、数字电路知识,也提升我们解决日常生活中常见问题的能力,掌握一般设计方法与设计步骤。积累实际设计制作经验,为走向更复杂更实用的应用领域奠定基础。控制系统主要由单片机控制电路、存储器接口电路及显示电路组成。具体以单片机为系统工作核心,负责控制各个部分协调工作。在其外围接上了复位电路、上拉电阻、数码管、无线模块、按钮及扬声器,其中用到了KEIL软件,集成调试环境,集成编辑器、编译器、调试器,支持软件模拟等。同时也用到了PROTEUS软件,通过仿真可完全实现对所设计系统的功能的模拟。

基于单片机的八路抢答器 5

·绪 论

单片机作为计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。对于计算机专业的学生来说,即使暂时没有从事单片机的应用与开发,学习单片机也有很重要的意义。学习它,不仅为将来可能从事该方面的开发打下基础,另一方面,由于单片机作为微型计算机的一个种类,麻雀虽小,五脏俱全,可以把它当作微型计算机的一个简化模型来看待,学习单片机可以加深对微型计算机工作原理的理解,更加清楚计算机的脉络。同时,提供了一个实际应用手段。21世纪,是一个信息技术飞速发展的时代,智力竞赛是一种形式比较活泼的教育方式,是人们休闲娱乐生活的一部分。这些竞赛一方面充实了人们的娱乐生活,另一方面也提高了人们努力汲取相关领域的知识的兴趣。智力竞赛,也就是几个参赛选手之间在规定的时间,规定的地点相互竞争的比赛。

抢答是各种竞赛常用的一种形式。在抢答赛中,往往要有主持人宣布抢答的开始,还要确定是哪个选手抢到了答题权,具体答题的时间有时也要设定。这些如果仅凭主持人的主观判断,很容易出现误判的情况。因此,在竞赛中,抢答器就扮演了一个非常重要的角色。

第1章 系统设计内容

1.1系统设计依据

抢答器由计数器、寄存器、集成定时器和译码显示等组合、无线传输与接收、时序电路组成。可分为抢答电路,定时电路,报警电路,无线电路等几个单元部分。每个单元电路分别可以处理一些抢答竞赛中的基本问题。

本次课程设计设计的是一个多路定时无线抢答器,是一个多于两位选手参赛的一个抢答器,具有锁存和显示功能。同时有主持人控制系统的清零和抢答的开始。抢答开始后,若有任何一名选手按动抢答按钮,抢答器就会显示该选手编号直至系统被主持人清零,并有扬声器发出提示,同时其他人再抢答就无效了。这次设计的抢答器还有自动定时功能,主持人可以设定选手答题的时间。当主持人启动“开始”键后,定时器会自动减计时,这个会显示在显示器上。选手只有在抢答时间内抢答才有效,若在答题时间内没有选手答题,时间到时,报警电路就会发出警报亮灯并且禁止抢答。

1.2设计任务和要求

以单片机为核心,设计一个8位竞赛抢答器。

1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示。 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。

基于单片机的八路抢答器 6

3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。

4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30s等)。当主持人启动“开始”按键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续时间为0.5s左右。

5)参赛选手在设定时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手编号和抢答时间,并保持到主持人将系统清除为止。

6)如果定时时间到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00;

7)设计出软件编程方法,并写出源代码; 8)主机与从机实现无线抢答 9)用PROTEUS进行仿真;

10)论文格式要符合学院的统一规定,结构要合符逻辑,表达要得体。

1.3 设计目的

通过设计学习单片机最小系统的基本设计方法,掌握单片机应用系统的开发调试过程。

(1)学习单片机开发工具功能、特点和使用方法。 (2)学会单片机控制系统程序的编制和编制和调试方法。 (3)设计单片机抢答器硬件电路,绘制出电路原理图。 (4)编制并调试出键盘扫描程序和显示驱动程序。

(5)掌握单片机定时器的基本用法,编制出定时器的中断程序。 1.4 设计要点

根据控制系统的工作原理和执行装置,可以将系统设计分为硬件和软件两大部分。硬件设计部分,包括编写电路原理图、合理选择元器件、焊接各个元器件,然后对硬件性能进行调试、测试,以达到设计要求。软件设计部分,首先在设计之前完成系统总框图和确定各个功能模块,然后进行具体设计,包括各模块的流程图,选择合适的编程语言和软件应用程序,进行编程设计等;最后是通过软件对程序进行调试、测试,以及仿真,以达到性能的最优化。

下面是软硬件设计方法确定的。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil C语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,可以进行仿真测试,已达到设计功能要求。为配合软件的灵活设计,硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,再确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计可以在焊接元器件之前画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真软件上进行调试,发现设计错误时立即修改,高效,准确地完成硬件设计。

基于单片机的八路抢答器 7

第2章 硬件设计

2.1系统工作介绍

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

当主持人按下开始键时,向单片机P3.2引脚输入一个低电平信号,表示整个电路开始工作,此时数码管前两位显示选手编号(无人抢答显示00),后两位显示倒计时剩余时间。若在25秒内仍然无人抢答,蜂鸣器在最后5秒发出连续报警,提示抢答时间快要结束;若在30秒内有人抢答,并且抢答成功,则将选手编号显示在数码管前两位上,后两位显示抢答剩余时间,同时蜂鸣器发出一声报警,提示其他没有抢答的选手此题已被人抢答成功。若在抢答过程中遇见特殊情况,主持人则可以通过时间加,时间减按键来进行时间调节。若要开始新的一轮抢答,主持人按下复位键再按开始键即可。

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

图2-1 单片机抢答器设计方案

2.2 单片机控制原理

单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。它的最大优点是体

基于单片机的八路抢答器 8

积小,可放在仪表内部。但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。

简单的说,用单片机系统来设计抢答器,实现两组的抢答时间即使是相差几微秒,也可分辨出哪组优先答题。

P0端口(P0.0-P0.7):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3端口(P3.0-P3.7):

P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。

STC89C51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

基于单片机的八路抢答器 9

U11234567891011121314151617181920P10P11P12P13P14P15P16P17RESETP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36WRP37/RDX2X1GNDSTC89C52VCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221 图2-2 STC89C51单片机引脚图

单片机是美国STC公司最新推出的一种新型51内核的单片机。片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。

(一)STC89C51主要功能、性能参数如下:

(1)内置标准51内核,机器周期:增强型为6时钟,普通型为12时钟; (2)工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ; (3)STC89C51RC对应Flash空间:4KB; (4)内部存储器(RAM):512B; (5)定时器\\计数器:3个16位; (6)通用异步通信口(UART)1个; (7)中断源:8个;

(8)有ISP(在系统可编程)\\IAP(在应用可编程),无需专用编程器\\仿真器; (9)通用I\\O口:32\\36个; (10)工作电压:3.8~5.5V;

(11)外形封装:40脚PDIP、44脚PLCC和PQFP等。 (二)STC89C51单片机的引脚说明: 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口的

基于单片机的八路抢答器 10

管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P0/P1/P2/P3口作为输入时都是准双向口。

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

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 (三)STC89C51单片机最小系统:

最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。

STC89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图2-3所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。

复位电路 时钟电路 STC89C51单片机 I/O

基于单片机的八路抢答器 11

图2-3 单片机最小系统原理框图

(1) 时钟电路

STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图2-4所示。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。 C21830pFY1C311.0592MHz19 30pF图2-4 STC89C51内部时钟电路

(2) 复位电路

当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。

复位电路通常采用上电自动复位和按钮复位两种方式。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。按键手动复位电路见图2-5。时钟频率用11.0592MHZ时C取10uF,R取10kΩ。

VCCS49C1R110uF10k 图2-5 STC89C51复位电路

(3) STC89C51中断技术概述

中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。

基于单片机的八路抢答器 12

图2-6为整个中断响应和处理过程。

如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。

2.3 抢答器的原理

抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.0),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,数码管30秒倒计时抢答,蜂鸣器响声提示并显示他的组号,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。单片机最小系统、抢答按键模块(四位并行数码显示)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。由于仿真中没有无线芯片,所以选手抢答用按键代替如下图:

图2.3抢答器总原理图

基于单片机的八路抢答器 13

2.4 功能模块电路 2.4.1开始抢答电路

在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。

图2.4.1开始抢答电路

2.4.2 选手抢答键

89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。由于仿真中没有无线芯片,所以选手抢答用按键代替如下图:

图2.4.2 选手抢答电路

基于单片机的八路抢答器 14

2.4.3 显示与显示驱动电路

此电路包括显示和驱动,显示采用数码管,驱动用P2口, 违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。在+5V电压下接1k的上拉电阻,保证正常压降,驱动数码管更亮。

图2.4.3 示与显示驱动电路

2.4.4蜂鸣器音频输出电路

通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音和稍微显眼的灯控,有抢答违规,开始抢答,抢答时间结束和回答时间到得提示声和亮灯提醒。

图2.4.4蜂鸣器音频输出电路

基于单片机的八路抢答器 15

2.4.5 发射电路设计

由于无线信号容易受外界环境影响,因此从系统的可靠性考虑,发射的控制信号采用编码的方式进行传送,而且在同一区域内要同时使用多个系统而相互间又不影响,所以无线信号的编码由SC2262集成电路完成,该电路具有8位地址信号和4位数据信号,不同的地址与数据的组合,可以编制上万种编码,完全可以满足同一区域内互不影响地工作。发射芯片地址编码输入有“1”、“0”和“开路”三种状态,数据输入有“1”和“0”两种状态。由各地址、数据的不同接脚状态决定,编码从输出端Dout输出,通过红外发射管发射出去。

Dout输出的编码信号是调制在38kHz载波上的,OSC1、OSC2外接的电阻决定载频频率,一般电阻可在430k—820k之间选择即可。

SC2262-IR是2262系列用于红外遥控的专用芯片,它是一种CMOS工艺制造的低功耗低价位通用编码电路,SC2262-IR最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,SC2262-IR最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于遥控发射电路。

编码芯片SC2262-IR发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,当有按键按下时,SC2262-IR得电工作,其第17脚输出经调制的串行数据信号。SC2262-IR的管脚图如图1所示,管脚说明如表1所示,性能参数如表2所示。

SC2262-IR特点:CMOS工艺制造,低功耗,外部元器件少,RC振荡电阻,工作电压范围宽:2.6~15v ,数据最多可达6位,地址码最多可达531441种。应用范围:车辆防盗系统、家庭防盗系统、遥控玩具、其他电器遥控。图7为2262引脚图,表1为引脚介绍。

图2.4.5 发射芯片管脚图

表1 管脚说明 名称 A0-A11 D0-D5 Vcc Vss TE OSC1 OSC2 Dout 管脚 1-8、10-13 7-8、10-13 18 9 14 16 15 17 说 明 地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空)。 数据输入端,有一个为“1”即有编码发出,内部下拉。 电源正端(+) 电源负端(-) 编码启动端,用于多数据的编码发射,低电平有效。 振荡电阻输入端,与OSC2所接电阻决定振荡频率。 振荡电阻振荡器输出端; 编码输出端(正常时为低电平)

基于单片机的八路抢答器 16

本设计利用无线芯片配合无线模块实现无线的传输,采用编码的形式,采用两套无线芯片使用不同的编码,使得设计更加安全可靠,系统原理图如下:

GNDM1FSMKATADVCC12VK4U2123456789A0A1A2A3A4A5A6A7GND2262R1310KR1410KR1510KR1610KCK142DM2FSMKATADGNDVCCVCCVTOSC2OSC1TED0D1D2D3181716151413121110D14148R174.7MD24148D34148D4414842AK342BK2423131313112VK8U4123456789A0A1A2A3A4A5A6A7GND2262R810KR1910KR2010KR2110KCK542D31VCCVTOSC2OSC1TED0D1D2D3181716151413121110R224.7M42BK64231D54148D64148D74148D8414842AK73131图2.4.6 从机原理图

基于单片机的八路抢答器 17

2.4.6 接收电路设计

接收电路的无线接收与解调部分采用的是现成的高频接收模块,可以简化设计工作,而且可靠性较好,接收模块采用的是超再生接收,具体的解调过程为:当发射器发送1时,相应的发射高频电路工作,接收部分就会相应地收到一个315 M的高频信号,使模块输出为1,当发射部分发送的是0时,发射高频部分停止工作,接收部分就输出为0,这样就实现了无线信号的传输。

经高频接收且解调出来的信号是编码集成电路SC2262编码后的串行信号,必须经相应的解码电路解码才能还原出控制信号数据。SC2272就担任了这个解码任务。SC2262和SC2272是一对专用的编、解码集成电路,当接收部分SC2272的8位地址数据与发射部分的8位地址数据相同时,就会在SC2272的17脚输出一个高电平,表示解码成功,同时在4位数据位上输出相应的数据信号,后续的输出控制电路就根据解码输出的数据位。

表2-8 PT2272管脚说明 名称 A0-A11 管脚 1-8,10-13 说明 地址管脚,用于进行地址编码,可置为 “0”,“1”,“f”(悬空),必须与2262一致,否则不解码 D0-D5 VCC GND DIN OSC1 OSC2 VT 地址或数据管脚,当做为数据管脚时,只有在地址码与2262一致 7-8,10-13 一致,数据管脚才能输出与2262数据端对应的高电平,否则输出为低电平,锁存型只有在接收到下一数据才能转换 18 9 14 16 15 17 电源正端(+) 电源负端(-) 数据信号输入端,来自接收模块输出端 振荡电阻输入端,与OSC2所接电阻决定振荡频率; 振荡电阻振荡器输出端; 解码有效确认 输出端(常低)解码有效变成高电平(瞬态) SC2272的暂存功能是指当发射信号消失时,SC2272的对应数据输出位即变为低电平。而锁存功能是指,当发射信号消失时,SC2272的数据输出端仍保持原来的状态,直到下次接收到新的信号输入。为了能正确解调出调制的编码信号,接收端需加一级前置放大级,保证输入SC2272的信号幅度足够大。SC2272各输出端通过各种接口即可控制相应的负载。电路图如图所示。

基于单片机的八路抢答器 18

P13P17GNDDATADATAVCC9013VCCGNDDATADATAVCC9013VCCANTP16ANT1234A0A1A2VCCVTOSC2820K接收模块P12123R122272M4R7接收模块R62.2K181716152272A0A1M4VCCVT181716820KR112.2K5A3OSC114A2OSC26A4DIN413A3OSC1157A5D3512R52.2kA4DIN148A6D21190136A5D3139A7D17GNDD0108A6D212R102.2kR4P119A7D1112.2kGNDD010R851P2.2k9013R3R890132.2k2.2kP10P1490139013

图2.4.7 接收原理图

9013基于单片机的八路抢答器 19

第3章 软件设计

3.1程序设计 3.1.1 系统流程图

60秒到中断返回 开 始 初始化 读键盘是否有键按中断条件是否满足 调用显示抢答违 进入中断程序 开中断并响设定定时器值 并启动定时器 30秒抢答时间并显示 调用读键子程序为延时程序 调用抢答者获得的回答问题子程序 是否有键按下

基于单片机的八路抢答器 20

3.1.2显示抢答违规流程图

显示违规者编号 报警一直提示 开 始

3.1.3抢答成功流程图

RET 60秒答问题时间到并响声提示 显示抢答者后30秒倒计时 设置定时器初值并启动 响声提示 开 始

基于单片机的八路抢答器 21

3.2 程序代码

3.2.1 主程序 void main() {

init();

if(k==0) //主持人按下开始键 {

Timer(); delay(10); while(!k); while(1) {

dis(); m=0; n=0;

if(second==10){beep=1;delay(500);beep=0;} if(second==0) {

TR0=0;n=1; if(k==0)

{beep=1;delay(500);beep=0;second=29;TR0=1;m=1;} } if(n==0) {

if(k1==0) {delay(5);if(k1==0);while(!k1);t=1;} else if(k2==0) {delay(5);if(k2==0);while(!k2);t=2;} else if(k3==0) {delay(5);if(k3==0);while(!k2);t=3;} else if(k4==0) {delay(5);if(k4==0);while(!k2);t=4;} else if(k5==0) {delay(5);if(k5==0);while(!k2);t=5;} else if(k6==0) {delay(5);if(k6==0);while(!k2);t=6;} else if(k7==0) {delay(5);if(k7==0);while(!k2);t=7;} else if(k8==0) {delay(5);if(k8==0);while(!k2);t=8;} else if(k==0) {delay(5);if(k==0);while(!k);t=0;i=0;second=29;beep=1;delay(500);beep=0;TR0=1;}

} while(t) {

if(m==0) //开关,保证程序只执行一次 {

switch(t) {

case 1: {

基于单片机的八路抢答器 22

TR0=0;i=1;second=0;beep=1;delay(500);beep=0;

a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 2: {

TR0=0;i=2;second=0;beep=1;delay(500);beep=0;

a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 3: {

TR0=0;i=3;second=0;beep=1;delay(500);beep=0;

a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 4: {

TR0=0;i=4;second=0;beep=1;delay(500);beep=0;

a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 5: {

TR0=0;i=5;second=0;beep=1;delay(500);beep=0;

a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break; } case 6: {

TR0=0;i=6;second=0;beep=1;delay(500);beep=0;

a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break; } case 7: {

TR0=0;i=7;second=0;beep=1;delay(500);beep=0;

a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break; } case 8: {

TR0=0;i=8;second=0;beep=1;delay(500);beep=0;

基于单片机的八路抢答器 23

a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break; } } }

if(a1==0) //选手1的分数 { second=score1; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score1+=1;if(score1==99)score1=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score1-=1;if(score1==0)score1=60;} dis(); }

else if(a2==0)

{ second=score2; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score2+=1;if(score2==99)score2=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score2-=1;if(score2==0)score2=60;}

dis(); }

else if(a3==0)

{ second=score3; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score3+=1;if(score3==99)score3=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score3-=1;if(score3==0)score3=60;}

second=score3; dis(); }

else if(a4==0)

基于单片机的八路抢答器 24

{

second=score4; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score4+=1;if(score4==99)score4=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score4-=1;if(score4==0)score4=60;}

second=score4; dis(); }

else if(a5==0) {

second=score5; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score5+=1;if(score5==99)score5=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score5-=1;if(score5==0)score5=60;}

second=score5; dis(); }

else if(a6==0) {

second=score6; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score6+=1;if(score6==99)score6=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score6-=1;if(score6==0)score6=60;}

second=score6; dis(); }

else if(a7==0) {

second=score7;

基于单片机的八路抢答器 25

dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score7+=1;if(score7==99)score7=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score7-=1;if(score7==0)score7=60;}

second=score7; dis(); }

else if(a8==0) {

second=score8; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score8+=1;if(score8==99)score8=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score8-=1;if(score8==0)score8=60;}

second=score8; dis(); }

if(k==0){i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;} while(!k);

} } } }

3.2.2 定时器子程序 void Timer() {

TMOD|=0x01;

TH0=0xd8; //初值55536,计数10000次,每次1US,总计10ms TL0=0xf0;

IE=0x82; //这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时 TR0=1; }

基于单片机的八路抢答器 26

void tim(void) interrupt 1 using 1 //为定时中断TR0 {

TH0=0xd8; //重新赋值 TL0=0xf0; count++;

if(count==100) //100*10ms=1秒 {

count=0;

second--; //秒减1 } }

3.2.3 延时子程序

void delay(uint z) //延时函数 {

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--); }

3.2.4 显示子程序

void display (uchar shiwei,gewei,xuanshou) //显示函数 {

P2=0xfe; //打开显示时间十位的位选 P0=shiwei;//显示十位 delay(5);

P2=0xfd; //个位位选 P0=gewei; delay(5);

P2=0xf7; //选手位选 P0=xuanshou; delay(5); }

基于单片机的八路抢答器 27

第4章 系统调试

软件的设计与调试实行分模块实现的方法。本设计软件调试中的分模块包括显示功能模块,调整时间功能模块,抢答功能模块以及报警功能模块和无线模块。各个独立模块功能调试成功后,将这些模块程序通过主程序合并在一起,最后再对合并后的总程序进行调试。各软件模块首先要通过PC和仿真器进行软件调试,当仿真效果符合要求后在烧写进单片机看是否在实际电路板上正常工作。本设计通过利用Proteus仿真,将所编写的程序用wave软件编译,所仿真原理图见附录。

第5章 结论

自接触单片机以来,一直觉得单片机非常难,这次的课程设计我开始是以老师布置题目为主要选择对象的,但是后面发现,像八路抢答器在我脑海中根本没得一点意象,上网搜了很多资料,也感觉不怎么很懂,于是问老师怎么弄,后面发现老师的意见和我的原本的程序和图只有几个地方不同,于是便将两者综合了一下,经调试和运行后,发现还行的通,于是便开始了忐忑的正文模版之路,以为快搞完了,后面发现其实程序和图还是要细细的弄懂才能写好报告,于是我又将程序和图细细的剖析了一遍,慢慢的画出流程图,然后慢慢将流程图和proteus图画好和截取下来,经过最近这段时间的在电脑前面的驻守,觉得只要自己肯付出和努力,发现其实很多的东西不是那么难懂的,以后还是要好好提升自己的动手能力和独立思考的能力。

在此,还是非常感谢我们的指导老师,她是一位很负责和很细心的老师,谢谢她的辅导和鼓励,这次的课程设计给了我一个很好的开始,我会好好努力的以后。纵然课程设计是学校所要求的科目,纵然每次都这么紧张和辛苦,但是我还是觉得有些东西做了,就一定会有一定的价值吧。

基于单片机的八路抢答器 28

参考文献资料

[1] 康华光,邹寿彬编.电子技术基础数字部分(第四版)[M].北京:高等教育出版

社,2005

[2] 谢自美编.电子线路设计·实验·测试 (第二版) [M].上海:电子工业出版

社,2001

[3] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京

航空航天大学出版社,1999年

[4] 陆坤,奚大顺,李之权等,电子设计技术[M].成都:电子科技大学出版社1997年

[5] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999年

[5] 胡学海.单片机原理及应用系统设计[M].北京:京电子工业出版社,2005年 [6] 林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术[M].西安:西安电子科

技大学出版社,2005年

[7] 李朝青主编,《单片机原理与接口技术》.北京航天航空大学出版社,1994年 [8] 何立民主编,《单片机应用与设计》.北京航天航空大学出版社,1990年 [9] 邹逢兴编著,《计算机硬件技术基础实验教程》高等教育出版社,1994年 [10] 裴亚男,付智辉主编,《数字逻辑》,西南交通大学出版社,2005年 [11] 李海主编,《74系列芯片手册》, 重庆大学出版社, 1999年

基于单片机的八路抢答器 29

附录一:抢答器原理图

1.主机

12S11110AF2S9S387BRP1 1021KP12U34-LEDDCVCC1COMR1R2R3R4R5R6R7R8S1fS2S3ba3S1123456789AFBEDdpCGVCCcgS4edpVCCS4S3S2S1AFBEDdpCG1234564039383736353433323130292827262524232221(AD0)P0.0(AD1)P0.1(AD2)P0.2(AD3)VC.CP03(AD4)P0.4(AD5)P0.5(AD6)P0.6(AD7)P0.7P1.0P1.1P1.2P1.3P1.41.05(RXD)P316PXDP33..12((TINT0))ALE/PROGPEA/VPPP13..73(INT1)(A15)P2.7(A14)P2.6(A13PE2.5P)SN(A12)P2.4(A11)P2.3(A10)P2.2(A9)P2.1(A8)P2.0CGS4EDdpVCCP3.4(T0)P3.5(T1)P3.6(WR)P3.7(RD)XTAL2XTAL1U1STC89C51GNDRSTR22.2KbeQ190121234567819011121314151617181920VCCCOMR1R2R3R4R5R6R7R8123456789cLS1RP2 10310KY1C23012MHzC330SPEAKERVCC+C110uFR110KK913START2413RESETK102413qiangjiaK112413qiangjianK122413dajiaK132413dajianK1424P13GNDDATADATAVCCGNDDATADATAVCCP179013VCC2469013VCC2272123456789A0A1A2A3A4A5A6A7GNDM4VCCVTOSC2OSC1DIND3D2D1D0R7接收模块ANTR62.2K18171615141312R52.2k1110R4P112.2k接收模块P12ANT123456789R12246SWITCH2272A0A1A2A3A4A5A6A7GNDM4VCCVTOSC2OSC1DIND3D2D1D018171615141312R102.2k1110R82.2k135820K820KR112.2K1359013P1690139013R32.2kP1090139013P15R82.2kP149013

基于单片机的八路抢答器 30

2.从机

GNDM1FSMKATADVCC12VK4U2123456789A0A1A2A3A4A5A6A7GND2262R1310KR1410KR1510KR1610KCK142D31VCCVTOSC2OSC1TED0D1D2D3181716151413121110R174.7M42BK24231D14148D24148D34148D4414842AK33131M2FSMKATADGNDVCC12VK8U4123456789A0A1A2A3A4A5A6A7GND2262R810KR1910KR2010KR2110KCK542D31VCCVTOSC2OSC1TED0D1D2D3181716151413121110R224.7M42BK64231D54148D64148D74148D8414842AK73131

基于单片机的八路抢答器 31

附录二:仿真图

本文来源:https://www.bwwdw.com/article/z27g.html

Top