基于STC8G1K08A的上电自启开机卡模块
因部分电脑主板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);
}
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »