Proteus仿真之点亮LED
# Proteus仿真之点亮LED
本示例演示如何使用Proteus仿真软件配合STM32F103C8T6微控制器(Blue Pill开发板常见型号)点亮LED。
# 一、新建Proteus工程
1.打开Proteus,新建工程命名为01-LED,文件路径根据实际设置。
2.窗口右下角默认按NEXT选项,直到出现FINISH,生成工程。
# 二、硬件操作步骤
元件清单:
元件 | 型号/参数 |
---|---|
微控制器 | STM32F103C8T6 |
LED | 普通LED即可 |
限流电阻 | 100Ω-1kΩ |
1.搜索STM32,我们这里使用STM32F103C8为仿真芯片。
2.搜索LED,选取任意颜色的发光二极管。
3.搜索RES,选取电阻,后续可双击电阻更改任意阻值。
4.点击左边栏终端,这里可以调出电源POWER和地GROUND等端口,点击并拖出电源。
电路连接:
- LED正极 → 限流电阻 → PA0(或其他GPIO)
- LED负极 → GND
5.按照图示连接元器件,注意区分二极管方向。
6.双击电阻R1,将阻值更改为适合值,实际搭建电路可使用1k欧的电阻,这里为了后续仿真的点灯效果将阻值改为100欧。
7.双击STM32芯片,点击文件夹装载代码。
8.进入工程文件的Debug文件夹,载入代码的hex文件。
9.点击Proteus界面左下角运行按键。
10可以看到黄色LED灯被成功点亮,实验成功。
# 软件实现
# 1. Keil MDK代码
#include "stm32f10x.h"
void delay_ms(uint32_t ms) {
for(uint32_t i =0; i<ms*1000; i++);
}
int main(void) {
// 启用GPIOA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
// 配置PA0为推挽输出
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
while(1) {
GPIO_SetBits(GPIOA, GPIO_Pin_0); // LED亮
delay_ms(500);
GPIO_ResetBits(GPIOA, GPIO_Pin_0); // LED灭
delay_ms(500);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 2. Proteus仿真注意事项
- 添加HEX文件:
- 将Keil生成的
hex
文件加载到STM32F103C8T6的Program File
属性中。
- 将Keil生成的
- 调试(可选):
- 可通过配置
Debug
工具查看寄存器状态。
- 可通过配置
# 预期效果
LED将以500ms间隔闪烁。仿真时建议:
- 添加示波器/逻辑分析仪观察GPIO波形。
- 通过截图记录仿真结果。
扩展建议:可尝试用PWM调节LED亮度或实现流水灯效果。