电脑工场
白蓝主题五 · 清爽阅读
首页  > 电脑基础

单片机示例程序:从点亮LED开始的实战入门

刚接触单片机的朋友,常卡在“写了代码却没反应”这一步。其实问题往往不在芯片本身,而是缺一个能跑通、看得见效果的示例程序。今天就用最常见的STC89C52和Arduino Uno,带你看两个真正能上手的单片机示例程序

STC52:让LED闪烁起来

用Keil C51写一段最基础的延时闪烁程序,接好最小系统板和LED(阳极接P1.0,阴极经220Ω电阻接地):

#include <reg52.h>

void delay(unsigned int i) {
    while(i--);
}

void main() {
    while(1) {
        P1 = 0xFE;  // P1.0输出低电平,LED亮
        delay(60000);
        P1 = 0xFF;  // P1.0恢复高电平,LED灭
        delay(60000);
    }
}

编译下载后,LED会以约0.5秒间隔闪烁——这是你和单片机第一次“对话成功”的信号。

Arduino:三行搞定呼吸灯

对新手更友好的Arduino,不用算定时器、不纠结晶振频率。把LED接到引脚9,上传这段代码:

void setup() {
    pinMode(9, OUTPUT);
}

void loop() {
    for(int i=0; i<=255; i++) {
        analogWrite(9, i);
        delay(10);
    }
    for(int i=255; i>=0; i--) {
        analogWrite(9, i);
        delay(10);
    }
}

LED亮度会像呼吸一样渐明渐暗。背后是PWM调光,但你连寄存器都不用碰,就能直观理解“控制信号”的作用。

别光抄代码,试试改一改

把第一个程序里的delay(60000)改成delay(30000),LED闪得更快;把第二个程序中delay(10)换成delay(5),呼吸节奏就变急促了。动手改数字、观察变化,比背一百条理论都管用。

单片机不是玄学,它只是需要一个能立刻反馈的起点。这些示例程序,就是你调试工具、万用表和面包板之外,最实在的第一块敲门砖。