Keil Logic Analyzer 使用详解
Logic Analyzer(逻辑分析仪)是 Keil MDK 内置的强大调试工具,可以在软件仿真模式下无需硬件直接观察引脚波形和变量变化,特别适合调试时序相关的代码。
一、基础配置(关键前提)
在使用 Logic Analyzer 之前,必须正确配置工程,否则会出现Unknown Signal错误。
1.1 Target 选项卡设置
点击魔术棒图标 →Target选项卡:
| 设置项 | 说明 |
|---|---|
| Xtal (MHz) | 填写实际晶振频率(你的工程是2MHz) |
| Device | 确认选择正确的芯片型号 |
⚠️ 晶振频率必须与代码配置一致,否则波形时间轴会完全错误。
1.2 Debug 选项卡设置(核心)
点击魔术棒 →Debug选项卡:
text
✅ Use Simulator (勾选,使用软件仿真模式) ✅ Run to main() (勾选,自动运行到main函数)
对于 8051 工程,Dialog DLL 使用默认配置即可,无需像 STM32 那样修改 DARMSTM.DLL。
配置示例:
Dialog DLL:默认(通常为S8051.DLL或空)Parameter:空或-pAT89C52
配置完成后重新编译(F7),确保0 Error(s), 0 Warning(s)。
二、打开 Logic Analyzer 窗口
点击
Debug按钮(放大镜图标)进入调试模式菜单栏:
View→Analysis Windows→Logic Analyzer或者点击工具栏的系统分析窗口图标(LA 图标)
![Logic Analyzer 打开方式示意]
text
View → Analysis Windows → Logic Analyzer
三、添加观测信号
3.1 添加引脚信号
在 Logic Analyzer 窗口中点击
Setup按钮在弹出的对话框中,在空白处双击或按Insert键
输入信号名称,按回车确认
3.2 信号命名规则(8051)
| 信号类型 | 正确格式 | 说明 |
|---|---|---|
| 单个引脚 | P1.7 | 观测 P1.7 引脚电平 |
| 单个引脚 | P3.7 | 观测 P3.7 引脚电平 |
| 整个端口 | P1 | 观测 P1 口所有引脚(十六进制) |
| 全局变量 | TICK | 观测 TICK 变量的值 |
📌注意:格式必须严格使用
Px.y,P1^7或PORT1.7等格式会报错
3.3 配置显示属性
选中已添加的信号,在右侧设置:
| 属性 | 说明 | 推荐值 |
|---|---|---|
| Display Type | 显示模式 | Bit(引脚)、Analog(变量波形)、State(状态转换) |
| Color | 波形颜色 | 自定义 |
| Hexadecimal Display | 十六进制显示 | 根据需要勾选 |
![Setup Logic Analyzer 对话框示意]
text
信号列表:[P1.7] [P3.7] [TICK] ... 显示类型:Bit / Analog / State
3.4 添加变量信号
对于变量(如TICK),可以直接在代码窗口中选中变量名,右键 →Add 'TICK' to...→Logic Analyzer。
⚠️ 限制:只能添加全局变量和静态变量,局部变量无法观测。
四、运行并观察波形
4.1 基本操作
| 操作 | 方法 |
|---|---|
| 运行程序 | 点击Run按钮(F5) |
| 停止程序 | 点击Stop按钮 |
| 暂停刷新 | 点击Stop图标(波形停止更新但继续记录) |
| 清除屏幕 | 点击Clear按钮 |
| 实时更新 | View→Periodic Window Update(勾选) |
4.2 波形缩放与测量
缩放波形:
In(放大):查看细节,网格时间间隔变小Out(缩小):查看整体All:显示完整记录范围
测量时间:
在波形上左键单击设置起始点(出现黄色光标)
移动鼠标到结束点
状态栏显示时间差:
Delta = xxx ms
设置时间范围:
Min Time/Max Time:设置显示的时间区间Grid:设置网格间隔
4.3 幅度调节(Analog模式)
对于变量波形:
点击
Auto:自动调节显示范围手动设置
Min/Max:自定义幅度范围
