基于单片机的多路多功能遥控器的设计毕业论文
2020-02-17 23:21:32
摘 要
红外遥控开关广泛的应用于电子设备控制、智能家居等领域,本设计完成了一种由STC89C52单片机控制的红外遥控开关,可以实现多路定时开关的控制。该设计用5V电压为STC89C52单片机供电,随后由STC89C52单片机驱动电磁继电器模组,电磁继电器可以连接220V的外部电路,实现低电压电路对高电压电路的智能控制。使用NEC协议的红外遥控器对电路进行控制,通过STC89C52单片机的软件对NEC协议的红外信号解码来判断发送的信息,并通过内部定时器以及内部程序逻辑来实现四路电磁继电器的定时通断功能。本论文主要研究了NEC协议的传输原理和传输帧结构,并对如何使用STC89C52单片机实现软件解码进行了探究。论文实现的多路多功能遥控开关具有两种工作状态,分别以不同的方式控制4路电磁继电器的工作状态,这主要是通过软件算法逻辑实现的。所做实物为了增加用户的体验,添加了一块1602液晶来显示工作状态和开关的通断状况,通过编写驱动程序来让STC89C52单片机驱动1602液晶正常工作。
关键词:红外控制器;NEC协议帧结构;STC89C52单片机
Abstract
This thesis demonstrates an infrared remote control switch controlled by STC89C52 single-chip microcomputer, which can realize the control of multi-channel timing switch. The design utilizes a 5V power to the STC89C52 single-chip microcomputer. Then the STC89C52 single-chip microcomputer support the electromagnetic relay module. The electromagnetic relay can be connected to the external circuit of 220V to realize the intelligent control of the low-voltage circuit to the high-voltage circuit. The infrared remote controller of NEC protocol is used to control the circuit. The infrared signal of NEC protocol is decoded by the software of STC89C52 microcontroller to judge the transmitted information. The internal timer and program logic are used to achieve the timing switching function of the four-way electromagnetic relay. This thesis mainly studies the transmission principle and transmission frame structure of NEC protocol, and attempts to use a STC89C52 single-chip microcomputer to process software decoding. The multi-channel multi-function remote control switch proposed in the thesis has two working states, and controls the working state of the four-way electromagnetic relay in different ways, which is mainly based on software algorithm logic. In order to enhance the user experience, a piece of 1602 LCD is added to display the working state and the on/off state of the switch. The STC89C52 single-chip microcomputer drives the 1602 LCD to work normally by writing the driver.
Key Words: Infrared Controller; NEC Protocol Frame Structure; STC89C52 single-chip microcomputer
目 录
第1章 绪论1
1.1 课题研究背景1
1.2 研究目的意义1
1.3 国内外研究现状1
1.4 研究主要内容与章节安排2
第2章 系统逻辑架构与实现3
2.1 系统工作逻辑结构3
2.2 各模块实现的具体功能4
第3章 开关控制部分原理与实现6
3.1 STC89C52简述及最小系统构建6
3.2 开关控制逻辑与程序编写7
3.3 延时程序编写10
第4章 红外解码部分原理与程序实现13
4.1 NEC协议简述13
4.2 NEC协议解码程序逻辑与编写14
第5章 1602液晶部分原理与驱动编写17
5.1 1602液晶简述17
5.2 1602液晶驱动程序编写17
第6章 硬件实物调试22
第7章 结论24
参考文献25
致谢26
- 绪论
1.1 课题研究背景
自1866年德国人维尔纳·冯·西门子(Ernst Werner von Siemens)制成了发电机以来的一百多年来,第二次工业革命已经深深的影响了我们每个人生活的方方面面,电灯、电话、电视,直到现在的互联网、电脑,智能手机和智能家电等,这一切的发展都离不开电的应用。伴随着电的广泛应用,控制电路通断的开关也发展迅速,按照结构分类,开关可以分为微动开关、船型开关、钮子开关、拨动开关、按钮开关、按键开关,还有薄膜开关、点开关等。只要电子电路还在持续发展,开关的发展和研究就不会停止。
1.2 研究目的意义
为了满足现代人对生产和生活的需求,高压电和低压电分别在各自的领域中得到了充分应用,在电路传输的过程中和某些特殊的生产过程中某些电压甚至高达数百万伏特,相反的,在现在的微型集成电路中,例如CPU,一些单片机使用的则是1.25V或3.3V的低电压。过高的电压会对人的身体造成伤害,所以要保证人可以直接接触的电压都要在安全电压范围以内。安全电压是指电压幅值在一定范围内的电压,个体的生理组织不同会造成个体的阻值存在微小的差异,但不同个体的安全电压一般在36V以内,低于36V的工作电压不会对人体造成生命伤害,所以与人体直接接触的带电体两端的电压必须低于36V[1]。但在一些生产和日常的生活中,大部分的电器的供电都不能保持在安全电压范围内,那么要怎样实现在控制电器工作的同时又保证人身的安全呢?电磁继电器和远程遥控器的出现很好的解决了这个问题。电磁继电器的出现使得使用在安全电压范围内的低电压电路控制高电压电路成为了可能。电磁继电器通过一个电磁铁将高压的危险电路与控制电路隔离开来,避免了危险的发生。远程遥控器则解决了距离问题,要知道,当电压达到一定程度,同时空气湿度较大时,空气可能会被击穿,考虑到人身安全,与工作电路距离过近也不是什么好的选择。
电子技术的飞速发展还使得人们的生活变得智能化,各种智能家电也慢慢的出现在了日常生活中,空调、冰箱、扫地机器人等等,数不胜数,大大方便了人们的日常生活。但是,现在的智能家电还不够完善,主要问题是智能家电还不够智能,还需要用户对其进行控制,但是这样的家电数量较多时,控制这些设备就会变得比较麻烦,如何简单便捷的控制不同家电的工作,是当前需要解决的一个问题[2]。
1.3 国内外研究现状
在远程遥控技术中,红外遥控技术是应用较为广泛的,当前常用的红外协议有NEC协议、Philips RC5协议、Sony SIRC协议和一些其他的协议。统一协议给用户带来了更好地体验,例如,有两个不同的电子产品都采用了红外遥控,如果这两种产品使用了两种不同的协议的红外遥控,那么用户需要使用两个遥控器来分别控制这两台设备,相反的,如果这两个设备使用了同一种红外协议,那么用户就可以使用一个遥控器来控制这两台设备,这样就是大家日常生活所说的“万能遥控器”。在国外的一些国家从很早以前就可以用一个遥控器来控制多个公司生产的空调,随着现代电子技术的飞速发展,居民家中的智能家电越来越多,不仅仅局限于空调,像是冰箱、电视、扫地机器人甚至窗户都可以变得更加智能,来提高用户的使用体验,一个可以控制多个器件的遥控器的应用范围越来越广,也越来越有意义。反观国内,由于历史原因,对于电子技术的发展不及国外先进国家,所以在智能家电的普及和各大制造厂商之间还是存在一些壁垒,这些困难都需要时间去慢慢的解决。另外的,如今智能手机的迅速发展也在很大程度上可以替代遥控器的功能,智能手机更加轻便、更加符合国人的生活习惯,是今后的发展大趋势[3]。
1.4 研究主要内容与章节安排
本文主要研究了一种STC89C52基于单片机的红外遥控的多功能开关系统,主要分为以下三个部分:开关控制部分、红外遥控部分和LCD显示部分,这三个部分之间的具体的逻辑关系以及每一个部分内的逻辑转换会在第2章中详细的描述。
开关控制部分是整个系统的核心,在这一部分中实现了在接收到红外遥控信号后系统如何在两种工作模式之间的切换以及如何控制每一个工作模式下不同开关的通断问题,详细的逻辑结构与代码编写在第3章会做出讲解。
红外遥控部分采用的红外协议是NEC协议,在本文的第3章中会着重讲述NEC协议的规范以及如何使用STC89C52单片机实现对NEC协议的红外信号进行解码,提取出其中的有效信息。
LCD显示部分则是使用了1602液晶显示屏来显示系统当前工作状态。1602液晶是一款常用的外设,在第4章会讲述1602液晶的硬件接口并讲解1602液晶驱动程序的编写。
- 系统逻辑架构与实现
2.1 系统工作逻辑结构
本文论述的红外遥控开关系统是一种接收外部红外信号,内部进行解码,对解码所得到的信息进行处理和判断,进而控制LCD显示以及开关的通断。
图2.1 系统工作逻辑框架
当系统通电之后,单片机内的程序开始执行,在进入工作模式之前,会对单片机的中断控制寄存器和两个定时器进行初始化设置,具体的设置项目会在第3章中详细描述。当程序将所有外设初始化完毕,就进入了正常的工作状态,开始等待红外信号的输入。
红外信号的产生是由使用NEC协议的模块提供的,这个红外模块会将红外信号转换为电平信号,这个电平信号作为单片机的外部中断输入。单片机接收到外部中断之后会进入红外信号的解码逻辑,在第4章中会对解码过程进行详细的描述,当解码完成后,会对解码所得的红外信息进行判断,因为红外模块可以发送很多的信息,但由于本设计中所需要的有效信息有限,所以需要对红外信息进行判断,当接收到的是无效的信息时,系统不会做任何处理,只会继续等待,直到接收到有效信息,才会进入后续的判断逻辑[4]。
在接收到有效的红外信息后,开关控制部分会对这个信息进行处理,进而控制外部开关的通断,LCD液晶则会实时的显示工作状态。系统对当前收到的指令处理完毕之后会再次进入等待状态,等候下一个控制指令的输入。
2.2 各模块实现的具体功能
系统的开关控制模块共设计了两种工作状态,每一种工作状态都可以控制四个开关的通断。此外还设计了一个状态锁,状态锁用于锁定系统状态,由一个单独的红外信号控制,当接收到这个信号后,状态锁的状态会发生变化。当状态锁处于打开状态时,系统处于锁定,此时切换工作模式的红外信号和改变开关通断的红外信号均不再有效,只有当再次接收到状态锁信号时,才会将状态锁关闭,这时系统才能正常的接收控制工作模式和开关通断的红外信号。
两个工作模式分别用两个红外信号控制,工作模式一是延时开启模式,在这个模式下,接收到开关打开的控制信号后,四个开关会分别延迟不用的时间后再开启,并会在LCD液晶上显示倒计时,四个开关的延迟分别是:0秒、2秒、5秒和10秒;工作模式二是延时关闭模式,与工作模式一相反,这个模式下,四个开关在接收到控制信号后会先打开,在一定延时之后自动关闭,同样会在LCD液晶上显示倒计时,四个开关的延时时间与工作模式一一样。在两个工作模式之间切换时,需要接受到不同的工作模式控制信息才会进行状态转换,例如,当前系统工作在模式一,此时接受到工作模式一的控制信号,系统不会做任何处理,会把这个信号当作无效信号处理;当接收到工作模式二的控制信号后,系统首先会将四个开关的状态重置,即全部关闭,然后在LCD液晶上显示的工作模式变为模式二。由工作模式二转换为工作模式一是同样的道理。在系统通电完成初始化之后会默认工作在模式一[5]。
开关控制信号由四个红外信号分别控制,这个信号是状态转换信号,在不同的工作模式下会有所不同,在模式一下,当开关关闭,接收到对应的红外控制信号,开关打开,在此接收到红外信号,开关关闭,在有延迟开启的三个开关中,在延时过程中接收到红外信号不会打断延迟,也不会关闭开关,只有当延时倒计时结束开关打开之后,才能在接收红外信号之后关闭开关。在模式二下,除了延时为0秒的开关一以外(开关一的通断状态变化与模式一相同),其余的三个开关会在延迟倒计时结束之后自动关闭,不需要接收红外控制信号进行开闭,所以在模式二下,三个有延时的开关的对应红外信号只能控制开关从断开的状态到打开的状态,而没有关闭的功能。且在两个模式下的倒计时过程中状态锁和工作模式的转换信号均不能打断读秒。
综上,本系统的工作由7个红外信号控制,一个状态锁控制信号,两个工作模式切换信号以及4个开关控制信号,这7个信号的红外编码将在第4章中说明,其余的红外信号都将判断为无效信号。
系统选用了1602LCD液晶来显示系统的工作状态。1602液晶可以显示两行数据,每一行最多可以同时显示16个字符。当系统初始化完成之后,LCD第一行会显示“Initialize over”,第二行会显示“Work in MOD 1”。当状态锁为工作状态时,LCD两行会分别显示“All SW locked”和“Please unlock”。在正常的工作模式下,LCD第一行会显示当前工作模式,第二行则会显示四个开关的通断状态[6]。
外部的四个开关电路选用了一个四路电磁继电器模组,当开关打开时,对应的电磁继电器的指示灯亮并且电磁继电器接通。
各模块硬件之间的连接结构如图2.2所示。
图2.2 硬件连接结构框图
- 开关控制部分原理与实现
3.1 STC89C52简述及最小系统构建
STC89C52是一个嵌入式微控制器(Microcontroller Unit,以下简称MCU),MCU是将整个计算机系统的主要硬件集成到一块芯片中,一般以微处理器内核为核心,集成ROM/EEPROM、RAM、总线逻辑、定时/计数器、看门狗、串口、A/D、D/A等各种必要的功能和外设。
STC89C52是STC公司生产的一种8位的微控制器,它具有低功耗、高性能的特点,具有8K字节Flash,512字节RAM,采用双列直插式封装,共有40个引脚。
图3.1 STC89C52引脚图
考虑到篇幅的原因,在此只对本设计用到的引脚做介绍。
Pin20脚,VSS,接GND;Pin40脚,VCC,接 5V。单片机的工作电压范围一般为4.0~5.5V,通常给单片机外接5V直流电源。Pin31引脚EA是访问内部或外部程序存储器选择信号,以此来确定单片机是从内部ROM或者外部ROM来运行程序。当Pin31引脚为低电平时,单片机会从外部程序存储器开始执行;当这个引脚为高电平时,单片机会从背部程序存储器开始执行,由于STC89C52单片机拥有内部程序存储器,所以本设计中将Pin31引脚接5V直流电源。Pin18引脚和Pin19引脚是外部晶振引脚,这两个引脚外接一个晶振,产生时钟信号来控制CPU的工作速度,常用的外部晶振频率有8MHz、11.0592MHz和12MHz等。RST(Pin9)是复位引脚,当这个引脚保持两个机器周期以上的高电平时,就可完成复位操作。
单片机最小系统是指单片机能够运行起来所必须得最基本电路组成,单片机最小系统要有电源电路、时钟电路、复位电路和EA引脚的连接。电源电路是给单片机供电的电路,一般的将Pin40,VCC引脚接 5V,Pin20,VSS引脚接GND即可。
图3.2 单片机时钟电路
时钟电路就是振荡电路,是单片机工作时间的基准,由外部晶振的频率决定。选用12MHz的晶振是因为在设计中需要设计以秒为单位的定时器,12MHz的晶振会让时间设置更准确一些。
图3.3 上电复位电路 图3.4 手动复位电路 图3.5 混合复位电路
复位电路的作用是使单片机内各寄存器的值变为初始状态,其实现的原理是给单片机的RST引脚(Pin9)提供两个机器周期以上的高电平。上电复位电路是在单片机接通电源是产生复位信号,通过调节电容和容值和电阻的阻值可以调节提供高电平的时间。当单片机刚上电时,RST端为高电平,然后通过电阻不断放电至低电平,完成复位过程。手动个复位电路是手动按键产生复位信号,完成单片机的重新启动。通常在单片机在工作中出现混乱或者死机时,使用数手动复位电路来实现单片机的重启。混合复位电路则是集成了上述两种复位电路的所有功能[7]。
由于本设计中不需要单片机从外部程序存储器中开始运行程序,所以EA引脚接 5V的直流电源。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: