#include <reg51.h>

sbit IR_IN = P3^2;   // 红外接收模块输入引脚
sbit Relay = P2^0;   // 继电器控制引脚

unsigned char IR_value;  // 存储红外遥控器传输的值

// 红外初始化函数
void IR_Init() {
    // 初始化红外接收模块相关设置
    // 例如设置中断、定时器等
}

// 红外解码函数
unsigned char IR_Decode() {
    // 对红外接收到的信号进行解码,将解码后的值返回
}

// 主函数
void main() {
    Relay = 0;  // 初始状态关闭继电器

    while (1) {
        if (IR_IN == 0) {  // 检测到红外信号
            IR_value = IR_Decode();  // 解码红外信号
            // 根据解码后的值控制继电器状态
            if (IR_value == 0x01) {
                Relay = ~Relay;  // 切换继电器状态
            }
            // 可以根据需要添加其他红外码对应的操作
            // 例如 if (IR_value == 0x02) { // do something }
            // ...
            while (IR_IN == 0);  // 等待红外信号结束
        }
    }
}