点亮第一个LED灯
基于 vscode + EDEI 故与其他教程不同
同上一篇 新建项目 配置好 cmake 配置 头文件目录等
LED
发光二极管 单向导电
我们可以从原理讲解图(HC6800-ES.pdf)看到 LED连接方式
以下是gemini对于原理图的描述
### 1. 模块组成
* 控制端引脚:P20/SDA、P21/SCL、P22、P23、P24、P25/WR、P26/RD、P27/LCDE(共8个单片机GPIO引脚)。
* 发光二极管(LED):D1 至 D8,共8个发光二极管,表面带斜线表示为发光器件。
* 限流排阻:RP7 和 RP9,均为 1KΩ 的4路集成电阻,用于限制流过LED的电流。
* 电源端:VCC(正电源公共端)。
### 2. 硬件连接关系
* 电源公共端:VCC 分别连接到排阻 RP7 的 5、6、7、8 脚,以及 RP9 的 5、6、7、8 脚。
* 限流排阻与LED阳极:
* RP7 的 1、2、3、4 脚分别对应连接到二极管 D1、D2、D3、D4 的阳极(正极)。
* RP9 的 1、2、3、4 脚分别对应连接到二极管 D5、D6、D7、D8 的阳极(正极)。
* LED阴极与控制引脚:
* D1 阴极 -> P20/SDA
* D2 阴极 -> P21/SCL
* D3 阴极 -> P22
* D4 阴极 -> P23
* D5 阴极 -> P24
* D6 阴极 -> P25/WR
* D7 阴极 -> P26/RD
* D8 阴极 -> P27/LCDE
### 3. 工作原理
* 电路架构:该模块采用共阳极(Common Anode)连接方式。所有LED的阳极均通过限流排阻连接到高电平 VCC。
* 控制逻辑:
* 当单片机控制引脚输出低电平(0 / GND)时,LED两端产生正向电压差,二极管导通,LED点亮。
* 当单片机控制引脚输出高电平(1 / VCC)或处于高阻态时,LED两端无电压差或反向截止,LED熄灭。
* 限流计算简述:1KΩ 排阻起到保护作用,防止电流过大烧毁LED或单片机引脚。工作电流 $I \approx (V_{CC} - V_{LED}) / 1K$。
P20/SDA:连接到单片机的 P2.0 引脚(该引脚通常复用为 I2C 总线的数据线 SDA)。
P21/SCL:连接到单片机的 P2.1 引脚(该引脚通常复用为 I2C 总线的时钟线 SCL)。
P22:连接到单片机的 P2.2 引脚。
P23:连接到单片机的 P2.3 引脚。
P24:连接到单片机的 P2.4 引脚。
P25/WR:连接到单片机的 P2.5 引脚(该引脚通常复用为外部总线的写使能控制线 WR)。
P26/RD:连接到单片机的 P2.6 引脚(该引脚通常复用为外部总线的读使能控制线 RD)。
P27/LCDE:连接到单片机的 P2.7 引脚(该引脚通常复用为液晶显示器的使能控制线 LCDE)。
单片机核心是从上往下取码的,从P2.7开始,P2.0结束,而LED模块是从P20开始,两者相反,要从单片机核心开始,这对后面很重要
电阻用于限流 防止电流过大而烧毁
注意方向 单片机输出高电平的时候不亮 低电平的时候亮
通过控制单片机高低电平来控制亮灭
单片机(mcu)的 cpu 通过寄存器 (八个为一组) 控制引脚
寄存器通过驱动器(增大电流) 给 io 口置高低电平
如果CPU从ROM/RAM拿到store指令,并执行store指令,把一个0存入视频中的寄存器,寄存器对应的灯就会亮
CPU从RAM/ROM里拿出指令,然后执行
一般指令集里的load/store指令可以用地址来查找总线上的所有能存数据的设备,包括存储器和外设的寄存器
高电平 5V 低电平 0V
cpu通过配置寄存器 来控制硬件电路 硬件电路来执行我们想要执行的功能
给第一个LED点亮
点亮第一个LED 给P20低电平 其他都高电平
此排(八个) led 由 P2口来控制
我们修改P2口即可控制这排LED
注意 第一个的LED是最低位的 详见上述gemini的电路解析
参考代码
// 在教程的 kail5 中应该是 REGX52.H 可以通过右键自动插入
// 没在vscode中看到相关的自动插入
#include <REG52.H> // 现在变成了 REG52.H 没有 X
void main() {
P2 = 0xFE // 1111 1110;
// P2 = P2 & ~(1 << 0); // 此只影响最低位 不影响P2的其他位
// P2 = ~(1 << 0) // 同直接赋值 0xFE
while(1) {} // 用来阻塞执行完的代码
}点开这个 .H 文件 可以看到 AT89X52 中的芯片定义
其中有一个P2的定义 0XP2
构建代码成二进制
将二进制烧录到单片机中
vscode + EDEI 方案 中全部内置 不需要用额外的软件 详见上一篇
教程是使用 kail5构建hex文件后(默认不构建hex文件) 使用 STC-ISP 软件烧录到单片机中
单片机执行完毕后 会自动重新运行