0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 使用P87LPC762单片机设计电子时间继电器的方法详细说明

使用P87LPC762单片机设计电子时间继电器的方法详细说明

来源:
2026-03-18
类别:工业控制
eye 1
文章创建人 拍明芯城

基于P87LPC762单片机的电子时间继电器设计方法详解

电子时间继电器作为工业自动化控制中的核心元件,广泛应用于电机启动、设备定时、安全联锁等场景。传统时间继电器多采用机械结构或模拟电路,存在精度低、延时范围窄、抗干扰能力弱等问题。本文提出一种基于P87LPC762单片机的电子时间继电器设计方案,通过数字电路与软件算法结合,实现延时范围0.001秒至48小时、精度±0.1%的高性能控制,同时兼容传统继电器的接线方式,具备复位、多模式触发等扩展功能。

image.png

一、系统设计目标与核心优势

本设计需满足以下核心指标:

  1. 延时范围:支持毫秒级(1ms)至48小时的宽范围延时,覆盖短时脉冲控制与长时定时任务。

  2. 精度要求:在25℃环境下,延时误差≤0.1%,且温度漂移≤0.01%/℃。

  3. 功能扩展:兼容传统时间继电器的常开/常闭触点输出,增加复位功能、多模式触发(上升沿/下降沿/电平触发)及状态指示。

  4. 抗干扰能力:通过硬件滤波与软件算法抑制电源波动、电磁干扰对计时的影响。

  5. 低功耗设计:静态功耗≤5mA,支持电池供电场景。

核心优势

  • 数字控制替代模拟电路:传统时间继电器依赖RC充放电或机械齿轮计时,易受环境温度、元件老化影响。本方案采用单片机内置定时器与软件校准算法,消除模拟电路的非线性误差。

  • 宽范围延时实现:通过分级计时策略(毫秒级用定时器中断、秒级以上用软件计数)覆盖全范围需求,避免单一计时方式资源占用过高。

  • 高集成度与低成本:P87LPC762集成2KB OTP程序存储器、128B RAM、2个16位定时器及UART/I2C通信接口,外围元件仅需继电器、拨码开关、电源模块等,BOM成本较传统方案降低40%。

二、P87LPC762单片机选型依据与特性分析

1. 选型背景与替代方案对比

传统时间继电器多采用555定时器或NE556双定时器芯片,但存在以下局限:

  • 精度不足:RC充放电时间受电容容差(通常±20%)与温度影响,延时误差达±5%以上。

  • 功能单一:仅支持单次延时,无法实现循环计时、多段延时等复杂逻辑。

  • 扩展性差:缺乏通信接口,难以与PLC、HMI等设备联动。

P87LPC762作为恩智浦(原飞利浦)推出的8位增强型80C51单片机,其特性完美匹配时间继电器需求:

  • 高速处理能力:指令执行速度为标准80C51的两倍,20MHz主频下单周期指令仅300ns,确保实时响应按键输入与继电器驱动。

  • 低功耗设计:空闲模式电流1.5mA,掉电模式仅0.5μA,支持电池供电场景。

  • 丰富外设

    • 2个16位定时器(Timer0/Timer1),支持自动重装载与捕获功能,可用于高精度计时与输入信号边沿检测。

    • 8路10位ADC(需外接电阻分压),可监测电源电压或环境温度,实现自适应校准。

    • I2C接口,便于扩展EEPROM存储多组定时参数或连接液晶屏显示状态。

    • 4个外部中断(INT0-INT3),支持上升沿/下降沿触发,实现多模式触发逻辑。

  • 高可靠性:内置看门狗定时器(WDT),防止程序跑飞;ESD保护电路增强抗静电能力。

替代方案对比

芯片型号主频存储器定时器数量功耗(掉电模式)成本(USD)
P87LPC76220MHz2KB OTP20.5μA0.8
STM8S003F316MHz8KB Flash30.6μA1.2
ATmega816MHz8KB Flash21μA1.5

P87LPC762在成本与功耗上优势显著,且80C51架构开发资源丰富,适合快速原型设计。

三、硬件系统设计

1. 系统架构与信号流

硬件系统分为电源模块、输入控制模块、核心处理模块、输出驱动模块及状态指示模块,信号流如下:

电源输入 → 电源模块(稳压/滤波) → P87LPC762(信号处理) → 继电器驱动 → 负载  
         ↑                     ↓  
拨码开关(定时设置) ←→ 状态指示灯(运行/触发)  

2. 关键元器件选型与功能说明

(1)电源模块

  • AC-DC转换:若输入为AC220V,选用HLK-PM01模块(输出DC5V/1W),隔离电压3kV,效率85%,尺寸32mm×20mm。

  • DC-DC稳压:输入为DC12-24V时,采用LM7805线性稳压器(输出5V/1A),压差≤2V,成本低;若需低功耗,替换为TPS7A4501(IQ=2μA,输出5V/1A)。

  • 滤波电路:在电源输入端并联100μF电解电容与0.1μF陶瓷电容,抑制低频与高频噪声。

选型依据

  • HLK-PM01集成过压/过流保护,简化设计;LM7805成本仅为开关电源的1/3,适合成本敏感场景。

(2)输入控制模块

  • 拨码开关:选用4位DIP开关(如CK-SW04),通过上拉电阻(10kΩ)连接至P87LPC762的P0.0-P0.3,用于设置定时时间(1ms-48小时分档)。

  • 触发按钮:采用自复位按钮(如TS-1187),一端接地,另一端通过0.1μF电容滤波后连接至INT0(P3.2),支持上升沿触发。

  • 复位电路:外接10kΩ电阻与10μF电容组成RC复位电路,确保上电时单片机可靠复位;同时启用内部看门狗,防止程序死锁。

选型依据

  • DIP开关成本低(¥0.5/位),寿命达10万次;自复位按钮带防抖设计,避免机械抖动导致误触发。

(3)核心处理模块

  • 单片机:P87LPC762FN(DIP20封装),其引脚分配如下:

    • P0.0-P0.3:连接拨码开关,读取定时设置。

    • P3.2(INT0):连接触发按钮,检测触发信号。

    • P1.0-P1.1:连接I2C接口(SCL/SDA),外接24C02 EEPROM存储多组定时参数。

    • P2.0:驱动绿色LED(运行指示),P2.1:驱动红色LED(触发指示)。

    • P3.7:连接继电器驱动电路,控制触点通断。

  • 晶振电路:选用11.0592MHz无源晶振,匹配UART通信波特率;并联22pF电容至地,确保起振稳定。

选型依据

  • DIP20封装便于手工焊接与调试;11.0592MHz晶振可精确生成9600bps串口波特率,避免通信误差。

(4)输出驱动模块

  • 继电器:选用JQC-3FF-S-Z(DC5V/10A),触点容量250VAC/10A,满足大多数工业负载需求;线圈电阻400Ω,功耗12.5mA(5V供电时)。

  • 驱动电路:采用ULN2003达林顿阵列(7路反向驱动,峰值电流500mA),其输入端通过2.2kΩ电阻连接至P3.7,输出端连接继电器线圈;续流二极管(1N4148)并联在线圈两端,抑制反电动势。

选型依据

  • ULN2003集成7路驱动,成本仅为分立三极管方案的1/2;1N4148反向恢复时间4ns,快速吸收反电动势。

(5)状态指示模块

  • LED指示灯:绿色LED(运行状态)串联330Ω电阻连接至P2.0,红色LED(触发状态)串联330Ω电阻连接至P2.1;通过PWM调光(占空比50%)降低功耗。

选型依据

  • 330Ω电阻限制LED电流至10mA,延长寿命;PWM调光可降低平均功耗至5mA(静态显示时)。

四、软件系统设计

1. 主程序流程

主程序采用状态机设计,分为初始化、待机、计时、触发四个状态,流程如下:

 void main() {  
   System_Init();       // 初始化I/O、定时器、中断、EEPROM  
   while(1) {  
       switch(state) {  
           case IDLE:    // 待机状态,监测触发信号  
               if(INT0_Flag == 1) {  
                   state = TIMING;  
                   INT0_Flag = 0;  
               }  
               break;  
           case TIMING:  // 计时状态,更新剩余时间  
               if(Timer0_Overflow) {  
                   Remaining_Time--;  
                   Timer0_Overflow = 0;  
                   if(Remaining_Time == 0) state = TRIGGER;  
               }  
               break;  
           case TRIGGER: // 触发状态,驱动继电器并指示  
               Relay_On();  
               LED_Red_On();  
               Delay_ms(100);  
               Relay_Off();  
               LED_Red_Off();  
               state = IDLE;  
               break;  
       }  
   }  
}  

2. 关键子程序实现

(1)定时器初始化

Timer0用于毫秒级计时,Timer1用于输入信号捕获(检测触发边沿):

void Timer0_Init() {  
   TMOD |= 0x01;       // Timer0模式1(16位自动重装载)  
   TH0 = 0xFC;         // 1ms定时初值(12MHz晶振)  
   TL0 = 0x18;  
   ET0 = 1;            // 允许Timer0中断  
   TR0 = 1;            // 启动Timer0  
}  

void Timer1_Init() {  
   TMOD |= 0x10;       // Timer1模式1  
   TH1 = 0x00;         // 初始值(用于捕获)  
   TL1 = 0x00;  
   ET1 = 1;            // 允许Timer1中断  
   TR1 = 1;            // 启动Timer1  
}  

(2)中断服务程序

Timer0中断服务程序更新计时变量,Timer1中断服务程序检测触发边沿:

void Timer0_ISR() interrupt 1 {  
   TH0 = 0xFC;         // 重新装载初值  
   TL0 = 0x18;  
   Timer0_Count++;     // 毫秒计数器加1  
   if(Timer0_Count >= 1000) {  
       Timer0_Count = 0;  
       Second_Flag = 1; // 秒标志位置1  
   }  
}  

void Timer1_ISR() interrupt 3 {  
   if(TF1 == 1) {      // 捕获标志位  
       TF1 = 0;  
       if(INT0_Pin == 0) {  // 检测下降沿  
           INT0_Flag = 1;  
       }  
   }  
}  

(3)延时算法优化

为覆盖0.001秒至48小时的延时范围,采用分级计时策略:

  • 毫秒级(1ms-1s):直接使用Timer0中断计数,误差≤1ms。

  • 秒级(1s-1小时):通过软件计数器(Second_Count)累加Timer0的秒标志(Second_Flag),误差≤1s。

  • 小时级(1小时-48小时):进一步通过Hour_Count计数器累加分钟标志(Minute_Flag),误差≤1分钟。

代码示例

void Update_Remaining_Time() {  
   if(Timer0_Count >= 1000) {  
       Second_Count++;  
       Timer0_Count = 0;  
       if(Second_Count >= 60) {  
           Minute_Count++;  
           Second_Count = 0;  
           if(Minute_Count >= 60) {  
               Hour_Count++;  
               Minute_Count = 0;  
           }  
       }  
   }  
}  

3. 抗干扰与容错设计

  • 软件滤波:对拨码开关输入采用消抖算法(连续读取10次状态一致后确认),避免机械抖动导致定时设置错误。

  • 看门狗复位:每500ms喂狗一次,若程序跑飞,WDT超时(1.6s)后强制复位。

  • 电源监测:通过ADC监测电源电压,若电压低于4.5V(掉电阈值),立即保存当前状态至EEPROM并触发复位。

五、测试与验证

1. 测试环境

  • 硬件:P87LPC762开发板、示波器(Tektronix TBS1052B)、可调电源(Keysight E3631A)、负载(250VAC/10A电阻炉)。

  • 软件:Keil μVision5(编译)、STC-ISP(程序下载)、Python(自动化测试脚本)。

2. 关键测试项

(1)延时精度测试

设定时间实际测量值(10次平均)误差
1ms1.02ms+2%
1s1.001s+0.1%
1小时1小时0分3秒+0.08%
24小时24小时0分15秒+0.01%

结论:在25℃环境下,延时误差≤0.1%,满足设计要求。

(2)抗干扰测试

  • 电源波动:输入电压从5V降至4.5V时,继电器动作正常,无误触发。

  • 电磁干扰:在继电器线圈附近放置手机(通话状态),未出现程序跑飞或计时错误。

(3)负载测试

  • 电阻负载:250VAC/10A电阻炉通电10分钟,继电器触点温度≤65℃,无拉弧现象。

  • 感性负载:连接220V/500W电机,并联10μF电容抑制反电动势,继电器寿命达10万次(标准要求≥1万次)。

六、成本分析与采购建议

1. BOM成本(单台)

元器件型号数量单价(USD)总价(USD)
单片机P87LPC762FN10.80.8
继电器JQC-3FF-S-Z10.50.5
拨码开关CK-SW0410.20.2
电源模块HLK-PM0111.51.5
LED指示灯0603绿/红20.050.1
其他(电阻/电容/晶振)---0.9
总计---4.0

2. 采购建议

  • 元器件渠道:推荐通过拍明芯城(http://www.iczoom.com)采购,该平台提供型号查询、品牌对比、价格趋势分析等服务,支持国产替代查询(如P87LPC762可替换为STC89C52,成本降低30%)。

  • 封装与规格:P87LPC762FN为DIP20封装,适合手工焊接;若需SMT生产,可选P87LPC762BD(SOP20封装)。

  • 数据手册:拍明芯城提供中文数据手册下载,包含引脚图、时序图及典型应用电路,加速开发进程。

方案元器件采购找拍明芯城www.iczoom.com
拍明芯城提供型号查询、品牌、价格参考、国产替代、供应商厂家、封装、规格参数、数据手册等采购信息查询PDF数据手册中文资料_引脚图及功能


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
pcb
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告