【keil】单步调试

一、步骤

1、打开stc-isp软件

2.打开keil仿真设置,选择对应的单片机型号

3.点击将所选目标单片机设置为仿真芯片,点击下载,按一下单片机打下载按钮

4.此时已经将仿真程序下载到单片机

5.此时点击options,找到debug选择STC Montor 51 Driver

找到当前对应的端口号(和stc里面的端口号对应)

6.点击进入调试界面

注意点:默认状态选择到左边,应修改到选择右边

也可以看右下角,如果是simulation 显示的是STC Monitor-51才是对的

7.run开始运行 stop停止运行

二、单步调试

1、数码管显示不正常

点击数组后,点击watch Windows

取消16进制显示

将刚才打印到的数组添加进去

注意的是,只用在停止状态数据才会刷新,程序运行过程中不会刷新

可以看到,这个数组是正确的

下面继续排查 数码管转换函数中的另一个数组,一定要在停止状态添加,然后再运行,否则数据无法刷新

查看watch窗口可以看到,除了第一个,后面的都是空

因此,目前可以确定,错误在数码管转换函数里

进入函数发现,变量的初始条件没有设置

如果发现错误要进行修改,一定要退出调试界面,否则无法成功修改,要退出调试界面重新编译后,再进入调试界面,这个程序才会被更新

2.忘记写EA=1

在其他地方打断点不会听,说明没有执行到这里

然后再逐层往下面大断点

发现时间变量是0,这是不合理的

将断点打到这里,程序仍然没有停,说明程序没有运行到中断服务程序

然后再去看中断服务程序的初始化

看到是正确的,那么就可能是总中断没有开

3.断点的删除

删除所有断点

当然也可以手动删除

断点所停的行代表没有执行

4.功能按键

点击step是进入函数和执行当前这一步

点击step over是跳过这一个,是执行完再跳到下一步

step和step over的区别是:如果是函数,step会进入这个函数,step over是无论是不是函数,都执行到下一行

点击step out是 往下执行完函数,直到退出当前的函数

5.关于按键

在调试模式下,矩阵键盘上面的两行按键不能使用,由于P30和P31用到了串口通信,一旦按下上两行的按键,就会干扰串口通信调试就会崩溃掉

如果程序里用到了这两行,就可以换两个按键,比如67改成89

在独立按键模式下,就可以换一下45

6.头文件

当发现报一串错误时,可能是头文件的函数没有加分号

三、打包文件夹

选中两个,然后压缩到zip文件

然后以准考证号命名压缩包

相关推荐
悠哉悠哉愿意8 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11018 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元8 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133978 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315208 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
古译汉书8 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
Alaso_shuang8 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟8 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126918 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315208 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机