基于STC8G1K08A的上电自启开机卡模块

记录  ·  2025-07-11

因部分电脑主板BIOS不支持上电开机,故有此项目。

  • 供电支持5V输入或者主板PCIE插槽
  • 支持所有新老主板
  • 不影响原有按键开机功能

代码

#include "STC8G.H"
// 延时函数(单位ms),已根据STC8G1K08A的时钟频率校准(假设24MHz)
void DelayMs(unsigned int ms) {
    unsigned int i, j;
    for (i = ms; i > 0; i--) {
        for (j = 114; j > 0; j--); // 大约1ms的延时(需根据实际时钟校准)
    }
}
void main() {
    unsigned int i; // 将变量i的声明移到循环外部
    // 设置P3.3为推挽输出模式,用于控制光耦继电器
    P3M0 = 0x08; // 设置P3.3为推挽输出模式
    P3M1 &= ~0x08; // 清除P3.3的输出模式位
    // 设置P5.5为推挽输出模式,用于控制LED
    P5M0 = 0x20; // 设置P5.5为推挽输出模式
    P5M1 &= ~0x20; // 清除P5.5的输出模式位
    // 上电后,立即将P3.3设置为高电平(连通光耦继电器)
    P33 = 1;
    // 延时1秒
    DelayMs(1000);
    // 断开光耦继电器
    P33 = 0;
    // LED闪烁三次
    for (i = 0; i < 3; i++) {
        P55 = 0; // 点亮LED
        DelayMs(1000); // 调整延时参数为1000ms
        P55 = 1; // 熄灭LED
        DelayMs(1000); // 调整延时参数为1000ms
    }
    // 无限循环,防止程序退出
    while (1);
}
下一篇:没有了
评论
亦桉小站. All Rights Reserved.
Your IP: 216.73.216.213

赣ICP备19000739号-3