PICSimLab是什么?一文读懂这款免费开发板模拟器
【免费下载链接】picsimlabPICSimLab - Programmable IC Simulator Laboratory项目地址: https://gitcode.com/gh_mirrors/pi/picsimlab
PICSimLab(Programmable IC Simulator Laboratory)是一款免费的实时开发板模拟器,让程序员和嵌入式新手在电脑里就能仿真 Arduino、ESP32、STM32、PIC 等微控制器开发板,接上 LED、传感器、显示屏等虚拟元件运行真实固件——不用买硬件,也能完整调试嵌入式项目。
它是开源项目(当前稳定版 v0.9.2,开发版 v0.9.3),由开发者 L. C. G. Lopes 维护,Linux、Windows 可原生运行,macOS 可通过 Wine 使用。
🎯 一分钟了解:PICSimLab 能帮你做什么?
PICSimLab 的定位是仿真真实硬件,而不是一个 IDE:
- 实时仿真开发板:内置 20 余块开发板,覆盖 AVR、PIC、MSP430、ESP32、STM32 等主流架构;
- 连接虚拟元件:从最简单的 LED、按键,到 W5500 以太网盾、ILI9341 彩屏、SD 卡、EEPROM,一应俱全;
- 集成真实工具链:它不提供代码编辑,而是让你用平时开发真实板卡的工具(Arduino IDE、MPLABX、VSCode + PlatformIO)写代码、下调试器(GDB),仿真行为与真机一致;
- 可视化调试:内置示波器、逻辑分析仪、虚拟终端,能直接观察引脚波形和串口数据。
💡 核心价值:写一次代码,先在模拟器里验证,再烧到真机,大幅降低"买板子 → 烧坏/接线错 → 重买"的成本。
🔌 支持哪些开发板?
所有开发板资源位于share/boards/目录,每块板包含三个文件:
| 文件 | 作用 |
|---|---|
board.map | 引脚映射,定义板子上每个引脚对应 MCU 的哪个脚 |
board.svg | 开发板外观图形 |
demo.pzw | 开箱即用的演示工程(工作区格式为.pzw) |
内置开发板一览:
| 开发板 | 芯片/架构 | 仿真后端 |
|---|---|---|
| Arduino Uno / Nano / Mega | AVR(ATmega328P/2560) | simavr |
| ESP32-DevKitC、ESP32-C3-DevKitC | ESP32 / ESP32-C3 | qemu-esp32 |
| STM32 H103、Blue Pill | STM32F103 | qemu-stm32 |
| PICGenios、Xpress、uCboard、K16F、gpboard | PIC 系列 | picsim / gpsim |
| Curiosity / Curiosity HPC | MSP430 | uCsim |
| Franzininho DIY | ATtiny85 | simavr |
| Breadboard(面包板) | 可插各种 MCU | 多种 |
| Control Painel | 虚拟控制面板 | — |
| Remote TCP | 远程连接真机 | — |
其中Control Painel(控制面板)是一块虚拟板:带屏幕、一排 LED、电阻和开关,非常适合教学演示,下图就是它的外观:

各板源码实现在src/boards/,仿真后端适配层在src/sim_backend/(包括bsim_picsim.cc、bsim_simavr.cc、bsim_qemu.cc、bsim_gpsim.cc等)。
💡 虚拟元件库:从 LED 到以太网盾
这是 PICSimLab 最让人上头的部分——share/parts/目录按用途分为四大类,拖进仿真窗口即可接线使用:
- Input(输入类):DHT11/DHT22 温湿度、BMP280 气压、MPU6050 六轴、DS18B20 温度、超声波 HC-SR04、游戏摇杆、薄膜键盘、电位器、光敏电阻……
- Output(输出类):LED、7 段数码管(含译码器版)、HD44780 字符屏、ILI9341 彩屏(带触摸)、SSD1306 OLED、蜂鸣器、舵机、步进电机、WS2812B 灯带、LCD 矩阵……
- Other(扩展类):W5500 以太网、SD 卡、24CXXX EEPROM、MCP23017/PCF8574 IO 扩展器、RTC 时钟芯片、跳线、逻辑门……
- Virtual(虚拟类):信号发生器、虚拟终端、VCD 波形导入/导出、传递函数模块……
每个元件都有part.map+part.svg定义引脚与外观,对应的仿真驱动在src/devices/与src/parts/中,例如 I2C/SPI 位驱动模拟由src/devices/bitbang_i2c.cc、bitbang_spi.cc实现。
🛠️ 如何安装 PICSimLab?最快上手指南
Linux(Debian 系)一键安装步骤
git clone --depth=1 https://gitcode.com/gh_mirrors/pi/picsimlab cd picsimlab bscripts/install_deps.sh bscripts/build_all_and_install.sh依赖脚本bscripts/install_deps.sh会自动装好 wxwidgets、lxrad、picsim 等全部依赖,之后重新编译只需make -j$(nproc)。
Windows 安装方法
- 最简单:直接下载 Release 渠道的稳定版可执行安装包,双击安装;
- 进阶:在 Linux 或 WSL 下执行
bscripts/build_w64.sh交叉编译 Windows 64 位版本。
macOS 运行方法
macOS 暂无原生构建,推荐:先安装 xquartz 和 Wine,再双击 Windows 版安装包运行即可。
🚀 第一次仿真:跑通你的第一个工程
- 打开任意开发板自带的
demo.pzw演示工程(如share/boards/Arduino Uno/demo.pzw),即可看到完整的仿真工作区; - 用你熟悉的 IDE 编写固件:Arduino 板用 Arduino IDE、PIC 板用 MPLABX、ESP32/STM32 用 PlatformIO,通过 GDB 或串口把程序加载进模拟器;
- 调整仿真速度(IO 时钟比例)、观察示波器波形、在虚拟终端里看串口输出;
- 需要与主机程序交互时,还支持Remote TCP远程模式和
rcontrol远程控制接口。
官方示例工程可以在tests/目录找到完整对照:tests/blink/(点灯)、tests/i2c/(BMP280 传感器)、tests/spi/、tests/serial/(串口通信)等,每个.pzw都附带对应的.ino固件源码,是学习最佳资料。
🐛 遇到问题?按三层结构排查故障
PICSimLab 的仿真由三部分构成,官方建议按层次定位问题:
- 你的固件程序:先在真机(或部分电路)上验证,排除代码问题;
- MCU 指令仿真:用调试器单步查看指令与外设行为;
- 板卡与元件仿真:即 PICSimLab 本体。
提交问题前,建议附上固件源码和.pzw工作区文件。项目还提供自动化自测框架:tests/下的 C++ 自测与tests/python/下的 pytest 用例(见tests/python/README.md),会远程操控模拟器自动验证各板点灯是否正确,开发者回归测试全靠它。
✅ 总结:PICSimLab 适合谁?
- 嵌入式新手:零硬件成本熟悉 Arduino/ESP32/STM32 开发流程;
- 学生与教师:用
demo.pzw演示工程 + 示波器直观讲解寄存器与外设; - 开发者:上真机前做回归验证,配合
picsimlab_tool命令行工具(源码tools/picsimlab_tool/)集成进 CI。
一句话:想学嵌入式但预算有限?PICSimLab 就是你的免费开发板模拟器,装上它,今天就能"点亮"第一个虚拟 LED。
【免费下载链接】picsimlabPICSimLab - Programmable IC Simulator Laboratory项目地址: https://gitcode.com/gh_mirrors/pi/picsimlab
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考