51 单片机入门实战
一、最小系统
51 单片机最小系统 = 电源 + 晶振(12MHz)+ 复位电路,这是所有外设工作的前提。
二、点亮第一颗 LED
#include <reg52.h>
sbit LED = P1^0; // 位定义
void main(void) {
LED = 0; // 低电平点亮
while (1);
}
三、按键消抖
机械按键按下瞬间会抖动,软件上延时 10ms 再采样一次:
if (KEY == 0) {
delay_ms(10); // 消抖
if (KEY == 0) LED = !LED;
while (!KEY); // 等待松手
}
四、中断:解放主循环
外部中断 INT0 触发后自动跳转中断服务函数,适合按键这类低频事件,避免主循环轮询浪费 CPU。
小结
裸机编程的精髓:轮询与中断,先会控制引脚,再慢慢啃外设。