一、步骤
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文件

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