亦桉小站

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

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

代码

#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);
}

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »