51单片机自学记录-点亮第一个LED
2025-09-26 来源:bilibili
GPIO
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。通过软件控制GPIO输出的高低电平,可以完成点亮LED等行为。
对于型号为STC89C52的51单片机,一共有40个引脚,其中有32个是GPIO引脚,分为4组,称作P0,P1,P2,P3,每组一共有8个引脚,可用Pi.j表示(i是组号,j是0-7)。每个引脚可以通过配置相应的寄存器来设置高低电平,实现其功能。同一时刻,一个引脚只能实现它的一个功能。
LED
LED 即发光二极管。它具有单向导电性,通过 5mA 左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管。
在51单片机中,每个LED灯都有串联着一个电阻,用于限制电流。
单片机从左往右8个LED灯D1-D8,各自的阴极分别对应GPIO引脚P20-P27。当它们为低电平时,LED灯就会各自亮起来。
每一个引脚有自己的寄存器空间,当在寄存器中的值为0时,对应的引脚就是低电平,否则就是高电平。
代码
在regx52.h头文件中,已经用变量P2定义了寄存器地址。P2刚好占1个字节,首地址(第一位)就是P20,以此类推,第i位就是P2(i-1)的值。

点亮第一个led
将此代码生成得到的hex文件下载至单片机,可以看见第一个led灯亮了。
因此得知,在代码层面,led的亮起由p2变量保存的值决定,它占一个字节,每位的0/1决定对应led负极的低/高电平。当负极为低电平时,led灯就会亮起。
还可以这样写,将P2的每一位用sbit类型取出来,单独控制:

单独控制每个led
这段代码与上面的代码现象一致。

实验现象
注意,单片机在执行程序时,在main函数执行完成后,会重头再执行main函数。因此led灯会常亮。
上一篇:51单片机最强并行端口是P0
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策




