基于51单片机红外遥控定时开关智能家电插座设计

1 系统功能介绍

本系统设计的核心目标是实现对家电插座的智能化控制,用户可通过定时、手动操作以及红外遥控等方式对插座进行开关管理。系统采用STC8C52单片机作为主控核心,配合DS1302时钟芯片、LCD1602液晶显示器、继电器模块、蜂鸣器电路以及红外接收模块等,实现智能化、自动化的功能。其主要功能如下:

  1. 精准时间管理:通过DS1302实时时钟芯片实现24小时不间断计时,掉电后由纽扣电池继续供电,保证时钟不丢失。
  2. 信息显示:LCD1602液晶能够实时显示年、月、日、星期、时、分、秒,方便用户直观查看。
  3. 定时功能:可设置5组定时开启和5组定时关闭任务,每一组均可设置是否启用,所有定时信息掉电保存。
  4. 模式切换:具备自动与手动两种模式,自动模式下系统根据设定时间自动开关家电;手动模式下可通过按键或遥控器直接控制开关。
  5. 继电器控制:通过继电器实现插座通断,插座上可接驳风扇、台灯、电饭煲等家电,满足日常生活需求。
  6. 提示功能:蜂鸣器提示不同状态,开机或开启时短促提示,关闭时长鸣提示,用户无需查看显示屏即可通过声音确认状态。
  7. 红外遥控操作:支持使用普通红外遥控器进行操作,方便远程控制;不同按键对应不同功能,例如切换模式、修改时间或手动开关插座。
  8. 掉电保存:系统内所有定时与模式设定数据均可掉电保存,用户无需反复设置,提升系统的实用性与稳定性。

该系统结合了定时开关、手动控制、遥控器远程操作等功能,既能满足节能环保需求,又能为用户提供便捷与智能化的家居体验。


2 系统电路设计

本系统电路由多个功能模块组成,每个模块承担不同的任务。整体电路由STC8C52单片机控制,外围电路则为单片机提供输入与输出接口。以下将对各模块逐一进行介绍。

2.1 单片机最小系统电路

系统的核心是 STC8C52单片机。其工作电源为5V,采用标准的最小系统电路设计:

  • 使用12MHz晶振电路为单片机提供时钟信号;
  • 通过复位电路保证上电时单片机复位;
  • 通过I/O口扩展与LCD1602、DS1302、继电器、蜂鸣器以及红外接收电路连接。

STC8C52具备EEPROM功能,可将定时设置信息掉电保存,这也是本系统的重要设计之一。

2.2 DS1302实时时钟电路

DS1302是一种低功耗实时时钟芯片,支持年、月、日、星期、时、分、秒的计时。

  • 工作电源为5V,外接32.768kHz晶振用于时间计数。
  • 芯片带有涓流充电电路,可连接一颗3V纽扣电池,保证掉电后仍能继续计时。
  • 与单片机通过串行接口通信,只需3根引脚(CE、SCLK、I/O),接口简单。

该模块确保了系统具备可靠、持续的计时能力。

2.3 LCD1602液晶显示电路

LCD1602是系统的人机交互界面,显示内容包括:

  • 当前时间(时、分、秒);
  • 日期(年、月、日);
  • 星期;
  • 当前模式(自动/手动);
  • 当前继电器状态(开/关)。

LCD1602通过8位并行总线方式与单片机相连,配合使能信号与读写控制信号完成数据读写。

2.4 按键电路

系统设置与手动操作均依赖按键电路。按键数量一般为4~6个,主要包括:

  • 模式切换键:在自动模式与手动模式间切换;
  • 加键:在手动模式下直接打开开关,在设置模式下数据加1;
  • 减键:在手动模式下直接关闭开关,在设置模式下数据减1;
  • 确认键/设置键:进入设置状态或确认修改。

按键采用上拉电阻方式,低电平触发,避免误动作。

2.5 继电器控制电路

继电器用于控制家电插座的通断:

  • 单片机输出控制信号驱动三极管放大后,驱动继电器线圈动作;
  • 继电器触点用于控制220V市电的接通与断开;
  • 为保证安全,控制部分与市电部分隔离设计。

继电器旁路并联一颗指示灯,直观显示继电器的动作状态。

2.6 蜂鸣器报警电路

蜂鸣器用于提示系统状态变化:

  • 开机与开启时短促鸣响;
  • 关闭时长鸣一声。

蜂鸣器通过单片机I/O口控制,加入驱动三极管电路增强驱动能力。

2.7 红外遥控接收电路

红外接收模块采用常见的 VS1838B 模块:

  • 接收遥控器发射的红外信号,经内部解码输出数字信号;
  • 与单片机I/O口相连,单片机根据接收到的红外码值执行不同操作。

遥控器按键功能分配为:

  • “|<<”:切换模式;
  • “>>|”:进入设置或换页;
  • “—”:减小设置值或关闭开关;
  • “+”:增大设置值或打开开关。

2.8 电源电路

系统电源部分设计为5V直流电:

  • 输入为220V交流电,通过变压器+整流+稳压电路转换为5V直流;
  • 采用7805稳压芯片或DC-DC模块提供稳定电源;
  • 为单片机、LCD1602、DS1302等模块供电。

同时,DS1302外接一颗3V纽扣电池,确保掉电时仍能保持时钟计时功能。


3 程序设计

本系统的软件设计基于C语言,运行于STC8C52单片机环境。程序分为主程序与各功能模块程序。以下将对各部分进行详细介绍。

3.1 主程序设计

主程序负责初始化各模块,并在主循环中不断刷新显示、检测时间、响应按键与遥控输入。

#include <reg52.h>
  #include "lcd1602.h"
  #include "ds1302.h"
  #include "key.h"
  #include "relay.h"
  #include "beep.h"
  #include "ir.h"
  void main() {
  LCD_Init();
  DS1302_Init();
  Relay_Init();
  Beep_Init();
  IR_Init();
  Key_Init();
  while(1) {
  LCD_DisplayTime();
  Key_Scan();
  IR_Scan();
  Timer_Check();   // 检查定时开关
  }
  }

3.2 DS1302时钟程序设计

用于读取与设置时间,并在掉电后保持时钟正常运行。

#include "ds1302.h"
void DS1302_ReadTime(TimeStruct *time) {
time->sec  = DS1302_Read(0x80);
time->min  = DS1302_Read(0x82);
time->hour = DS1302_Read(0x84);
time->day  = DS1302_Read(0x86);
time->month= DS1302_Read(0x88);
time->week = DS1302_Read(0x8A);
time->year = DS1302_Read(0x8C);
}

3.3 LCD1602显示程序设计

LCD1602用于实时显示时间与状态。

void LCD_DisplayTime() {
LCD_SetCursor(0,0);
LCD_Printf("Time:%02d:%02d:%02d", hour, min, sec);
LCD_SetCursor(1,0);
LCD_Printf("Date:%02d-%02d-%02d", year, month, day);
}

3.4 按键扫描程序设计

按键检测用户操作,并执行模式切换、数据修改等功能。

void Key_Scan() {
if(KEY_MODE == 0) { Mode_Toggle(); }
if(KEY_ADD == 0)  { Value_Add(); }
if(KEY_SUB == 0)  { Value_Sub(); }
if(KEY_SET == 0)  { Enter_Setting(); }
}

3.5 继电器与蜂鸣器控制程序

通过继电器实现插座的开关,并用蜂鸣器提示。

void Relay_On() {
RELAY = 1;
Beep_Short();  // 短促提示
}
void Relay_Off() {
RELAY = 0;
Beep_Long();   // 长鸣提示
}

3.6 红外遥控解码程序设计

通过定时器捕捉红外脉冲宽度,解码出按键值,完成对应操作。

void IR_Scan() {
unsigned char key = IR_GetKey();
switch(key) {
case IR_MODE: Mode_Toggle(); break;
case IR_ADD:  Value_Add();   break;
case IR_SUB:  Value_Sub();   break;
case IR_SET:  Enter_Setting(); break;
}
}

3.7 定时开关管理程序设计

用于检测当前时间与设定的定时时间是否匹配,若匹配则执行开关操作。

void Timer_Check() {
for(int i=0; i<5; i++) {
if(timer_on[i].enable && CompareTime(now, timer_on[i])) {
Relay_On();
}
if(timer_off[i].enable && CompareTime(now, timer_off[i])) {
Relay_Off();
}
}
}

4 总结

本系统基于STC8C52单片机,结合DS1302实时时钟、LCD1602显示、继电器、蜂鸣器及红外遥控模块,实现了一款智能家电插座。系统功能完善,既能自动定时控制,又能手动与遥控操作,满足现代家庭的节能、智能需求。电路设计模块化清晰,程序设计结构合理,具有良好的扩展性与实用性。

本设计不仅适合作为家居生活的智能化改造方案,也可作为单片机课程设计、毕业设计的优秀选题,兼顾实用性与教学价值。