• 单片机遥控开关系统设计(结构原理、电路、程序)


    本设计提出了一种基于单片机的遥控开关系统。通过对样机的测试结果表明,本系统采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点。一般设备系统采用专用的遥控编码及解码集成电路。此方案具有制作简单,容易等特点,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,应用范围受到限制。而本系统消除了此问题,智能化大大提高。通过对样机的调试运行,节能效果很好,具有极其广泛的应用价值和应用前景。

    1 引言

    随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,遥控技术有了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中使用越来越广泛。

    本论文是基于单片机设计了一个智能化的遥控开关系统。该系统用AT89C2051单片机作为控制芯片,制作一个遥控器,键盘采用行列式操作,按键中断扫描方式提高了CPU效率。遥控器发射器采用红外线脉冲个数编码,根据脉冲个数来确定是哪个按键按下,并发射相应的信号来控制电灯调光,无键按下时处于低功耗空闲方式状态。另一个单片机控制系统能被遥控操作,通过软件解码实现对一个电灯的调光,以及对继电器的控制功能。

    2 系统的结构组成和工作原理

    用单片机制作一个红外遥控器,可以分别控制8个控制继电器开关,和一个电灯开关,并且可以对电灯进行亮度的调光控制。

    红外发射部分结构图如下图2.1所示

    当按下遥控按钮时,单片机产生相应的控制脉冲,由红外发光二极管发射出去。

    红外接收部分结构如下图2.2所示:

    采用红外遥控不影响周边环境的、不干扰其他电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,适合进行多路遥控。

    3 硬件电路设计

    3.1 遥控发射器电路设计

    电路主要由AT89C2051单片机、行列式操作键盘、低功耗空闲方式控制电路、红外发射电路电源等部分组成。

    遥控电路的主芯片采用美国ATMEL公司的AT89C2051Flash单片机。它是一个低电压,高性能CMOS8位单片机,片内含2KB的可反复擦写的只读Flash程序存储器和128字节的随机存取收据(RAM);2.7~6V的电源使用电压、两个16位定时器∕计数器;6个中断源、15条I∕O引线;1个精密模拟比较器以及片内振荡器和时钟电路;直接LED驱动输出以及空闲和掉电方式等功能。遥控器采用两节1.5V电池串联提供3V电源供电,在遥控系统设计中,片内模拟比较器接口只是作普通I∕O运用。

    行列式操作键盘又称为矩阵式键盘。用I∕O线组成行、列结构,按键设置在行列的交点上,行列线分别连接到按键开关的两端,键盘中有无按键按下是由列线送入扫描字、行线读入行线状态来判断的。为了提高CPU效率,同时也为了节约电池电源能量,遥控器采用按键中断扫描方式。无键按下时,单片机处于低耗空闲待机方式,有键按下时触发外部中断实现查键及执行键功能程序。

    AT89C205l的CPU有2种节电工作方式,即空闲方式和掉电方式,遥控器采用空闲节电工作方式。当CPU执行完置IDL=1(PCON.0=1)指令后,系统进入空闲工作方式,这时内部时钟不向CPU 提供,而只供给中断、串行口、定时器部分。遥控器退出低功耗空闲方式电路由IN4148二极管组成“与”门实现。当有键按下时,由“与”门触发外部中断1发生中断,单片机退出空闲工作方式,进入键盘和红外发射程序,结束后又进入低功耗空闲方式待机。在使用过程中单片机基本上处于空闲工作方式,功耗相当低,从而为使用电池电源提供了保障。

    红外线发射和指示灯电路利用遥控器信息码由AT89C2051单片机的定时器1调制成38.5kHz红外线载波信号,由P3.5口输出,经过三极管9013放大,由红外线发射管发送。电阻R1的大小可以改变发射距离,按键的操作指示灯使用一个LED发光二极管。定时器1按照方式2工作,即设置自动8位重装模式。在用作定时器时,在每个机器周期计算器加1,所以可以把它看成累加机器周期,1个机器周期包括12个振荡周期,则计数频率为振荡频率的十二分之一。当M1M0为10时,定时器∕计数器工作于方式2。在此方式下,设置了一个8位的计数器,并自动恢复初值的功能,以T1为例,将TL1作为计数器,将TH1作为寄存器使用,存放计数初值。当TL1作增1计数至溢出时,除了把溢出标志位TF1置1外,同时还将TH1中的计数初值送入TL1中,使TL1又重新从初值开始计数。而TH1中的计数初值由软件编程置入,在常数重装入的过程中,TH1保持不变。在方式2中,T0和T1的操作功能完全相同,可自由选择使用。

    3.2 遥控接收器电路设计

    接收控制系统主要由AT89C52单片机、电源电路、红外接收电路、50Hz交流过零检测电路、电灯调光控制电路、控制继电器电路等部分组成。

    单片机AT89C52有40个引脚,32个外部双向输入∕输出(I∕O)端口,同时内含2个外中断口,3个16位定时器∕计数器,6个中断源、低功耗空闲和掉电方式,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微机处理器和Flash存储器结合在一起,特别是可以反复擦写的Flash存储器可有效地降低开发成本。控制系统采用5V电源电压,外接12MHz晶振。

    电源电路由桥式整流、电容滤波、7805稳压器及电源指示灯组成。交流电经过桥式整流变成直流电,再经过电容滤波,7805集成稳压器稳压成为稳定的+5V电源,用一个发光二极管指示灯指示电源状态。

    红外遥控接收器集成了模块化,一般为三个引脚,输出为检波整形过的方波信号。红外接收电路如图3.1所示,接收器前端红外滤光片去除可见光使红外光通过。监测器红外光敏二极管,使器件构成最大受光区。在放大器端增加电滤波,消除低频干扰和高频干扰。数据检测一般用峰值监测器,通用信号比较器电路,输出新电平去处理器。

    交流电过零检测电路如图3.2所示。过零检测电路主要由两个NPN型三极管组成,Q1的基极过一200K电阻进行限流,电阻另一端为被检测端,经过全桥整流后为全波,一周期内可以触发两次。被检测端为经过变压器后整流得到的,此处电源主要供给AT89C52用,电路设计中仅有输入和输出端的电解电容滤波,考虑高频杂波最好加入104/50V的钽电容而使得电源更干净,更好的防止干扰。在桥后串一二极管是为防止电源反接,一般在CPU电路板上。

    可控硅电灯调光控制电路设计原理图如图3.3所示。电灯调光是由可控硅的导通角控制的。AT89C52产生可控硅控制的移相脉冲,移相角的改变实现导通角的改变,即当移相角较大是,可控硅的导通角较小,分布在电灯上的电压较低,电等较暗;当移相角较小时,可控硅的导通角较大,分布在电灯上的电压较高,电灯很亮;当导通角不为0时,电灯即可发光;当导通角为0时,电灯熄灭。当AT89C52的P0.0位为低电平时,9012三极管导通,三极管电极电流驱动光电耦合器导通,使可控硅的G极产生脉冲信号触发可控硅导通;当AT89C52的P0.0位为高电平时,9012三极管截止,则光电耦合器和可控硅都处于截止状态。

    本设计有八路控制继电器电路,在红外接收原理图上只画出一路控制继电器电路。图3.4为HK4100F继电器驱动电路原理图,三极管Q5的基极B接到AT89C52单片机的P0.7口,三极管的发射极E接到继电器线圈的一端,线圈的另一端接到+5V电源VCC上;继电器线圈两端并接一个二极管IN4148,用于吸收释放继电器线圈断电时产生的反向电动势,防止反向电势击穿三极管Q5及干扰其他电路;R14和发光二极管LED9组成一个继电器状态指示电路,当继电器吸合的时候,LED9点亮,这样就可以直观的看到继电器状态了

    4.1 遥控发射器的程序设计

    4.1.1初始化程序和主程序

    初始化程序流程图如4.1所示。初始化程序主要是设置P1口和P3口为高电平状态复位,关P3.5口遥控输出,设置堆栈指针SP为#70H,关闭总中断源,设置中断优先级IP,选择定时器∕计数器1和设置工作方式为2的自动8位重装载模式。方式2是8位定时器/计数器,晶体振荡器频率为12MHZ,则机器周期为f/12=12/12=1μs。计数功能计数初值X=28—计数值(计数值=T×f/12)。

     主程序流程图如4.2所示。主程序部分首先调用初始化程序,再进入主程序循环状态。在循环中主要有两个任务,即调用键盘程序和进入低功耗空闲待机方式。系统完成键盘查询程序后即进入空闲节点方式,直到外部中断1中断或硬件复位而退出,CPU再次转向循环部

     在发射程序中,首先要装入发射脉冲个数,第一个码间隔即起始码为3ms时,开高频定时中断调制(P3.7端口设为高电平)。然后设置软件陷阱,提高单片机的可靠性,以免出现死机现象,在进行循环指令,第一个码间隔3ms完成既R0为0时码距间隔为1ms,如果之后脉冲个数为零,这时取反,关高频中断调制即P3.7为低电频,系统退出发射程序。如果脉冲个数还有则再循环发射。P3.7端口取反为低电频时工作指示灯开,高电频时指示灯关。在程序中调用500ms的延时程序是确保遥控器发射的准确性。发射程序流程图如下4.3所示。

    4.2 遥控接收器的程序设计

    初始化程序流程图如图4.4所示。初始化程序部分主要使系统进入复位初始化的状态值。具体是:P1、P2、P3口置位设置为高电平状态,使之成为输入口。选择工作寄存器区,设置堆栈指针SP,设置中断优先级IP,开外部中断0和定时器1,开总中断允许。设置导通角为零的延时值,并设置电灯默认熄灭的标志位。

    主程序部分首先调用初始化程序,再进入主程序循环状态。在循环中主要任务是50Hz交流电过零检测,如果是过零则调用延时子程序,发开导通角脉冲,调用延时256μs程序,然后关脉冲并返回过零检测状态。图4.5为主程序流程图。

    5 性能指标

    调试后系统性能指标测试如下:

    1最大遥控距离:10m;

    2最大接收角:90度;

    3遥控器发射时工作电流:8mA;

    4遥控器静态电流:0.6mA;

    5调光控制系统最大输出电压(5档调光):交流200V;

    6调光控制系统最慢输出电压(1档调光):交流50V;

    7调光控制系统停止输出电压:0V;

    8继电器正常工作。

    采用红外遥控方式时,距离、角度等使用效果受一顶的限制,如果采用调频或调副发射接受,则发射距离会更远,接受将不受角度的影响。本单片机遥控编码及解码方案适合一切需要应用到遥控的电器系统,是自行设计带遥控功能的控制系统的首选理想方案。

    6 结束语

    随着遥控技术的使用越来越广泛,智能化控制已成为一种趋势。本设计提出了一种基于单片机的遥控开关系统。通过对样机的测试结果表明,本系统采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点。一般设备系统采用专用的遥控编码及解码集成电路。此方案具有制作简单,容易等特点,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,应用范围受到限制。而本系统消除了此问题,智能化大大提高。通过对样机的调试运行,节能效果很好,具有极其广泛的应用价值和应用前景。

    【学习交流群586269249】

    【网盘免费资料包,大家需要的自行领取】:

    嵌入式物联网 stm32 c/c++、QT Linux资料包【华清远见发放资料包】http://makerschool.mikecrm.com/7ADq4jq【下方分享一些免费教程资料,大家感兴趣的可以看下】

    智能多彩rgb床头灯

    stm32-点亮一盏led

    程序、进程、线程

    STM32单片机之GPIO开发

    STM32-按键消抖

    一小时轻松搞定CoAP连接协议

    带你彻底搞懂NB-IoT开发

    手把手教你做一个语音控制智能灯

    (stm32直流电机驱动)

    超声波雷达测距仪

  • 相关阅读:
    使用宝塔面板安装mysql
    内涵语录
    Java 中如何将一个类中方法的局部变量在另一个方法中调用?
    设计模式(十一)----结构型模式之装饰者模式
    推进数据要素化,数据云为何是“加速器”?
    推荐一个stable-diffusion-webui的升级项目stable-diffusion-webui-forge
    Kafka 搭建过程
    Android报错之com.baidu.mapapi.common.BaiduMapSDKException
    季节优化算法(Seasons optimization algorithm,SOA)附matlab代码
    Today‘s web RPC案例
  • 原文地址:https://blog.csdn.net/an520_/article/details/126099993