keil4 也就是 Keil uVision4,主要用来开发 51 单片机程序,运行程序分为两种模式,一种是软件仿真运行,不需要连接硬件开发板,在软件内部模拟单片机执行代码,另一种是下载到真实开发板硬件运行,需要配套烧录器或者开发板自带串口下载电路,很多新手以为点运行就直接在电脑上执行单片机代码,这个理解是错误的,单片机程序是编译生成 hex 文件之后,再写入单片机芯片,由芯片本身执行代码,操作的时候要先新建工程选择对应的单片机型号,编写源码,完成编译,确认没有报错,再选择仿真或者硬件下载方式运行,第一步新建工程并匹配芯片型号,第二步添加 c 源文件,第三步编译工程排查错误,第四步配置调试下载选项,第五步启动运行或者烧录 hex 到开发板,最终实现程序运行,需要重点注意,如果编译存在 error 错误,程序是无法生成有效 hex 文件,也就不能正常运行,warning 警告一般不影响运行,但是建议修正,避免潜在 bug。
前期准备清单
第一 已经安装好 Keil uVision4 软件,软件授权正常,没有编译限制。
第二 如果是硬件运行,准备 51 开发板,下载线,比如 STC ISP 串口下载线或者 JLink,安装对应的驱动。
第三 确认已经写好 C 语言源码,工程里面已经添加主函数 main 文件,单片机型号和开发板实际芯片保持一致,型号选错会导致寄存器地址错误,程序运行异常。
标准操作步骤
1 打开 keil4 软件,点击 Project 菜单,选择 New uVision Project,新建工程,保存工程,在弹出器件选择窗口,挑选和开发板一致的 51 单片机型号,确认添加启动文件。
2 在左侧工程窗口,右键 Source Group,选择 Add Files to Group,把编写好的 c 源文件添加进工程,确认 main 函数已经编写完成。
3 点击顶部 Build Target 按钮,也就是编译按钮,观察下方输出窗口,查看编译结果,出现 error 就双击报错信息,定位代码位置修改,直到编译零错误,成功生成 hex 文件。
4 选择运行模式,如果是软件仿真,点击 Options for Target,切换到 Debug 标签页,选中 Use Simulator 软件仿真选项,设置仿真参数。
5 设置完成之后,点击顶部调试按钮进入仿真模式,再点击 Run 全速运行,也可以使用单步 step,断点调试,观察寄存器 IO 口变量变化。
6 如果是硬件真实运行,在 Debug 标签页选择对应的硬件调试器,比如 JLink,配置下载算法,点击 Load 把程序下载进单片机,下载完成之后单片机自动复位,程序开始在开发板上运行。
7 如果使用 STC 单片机,还可以单独导出 hex 文件,打开 STC ISP 软件,选择芯片型号,加载 keil4 生成的 hex,通过串口点击下载,给开发板上电完成烧录,之后独立运行程序。
常见故障对照表格
| 故障现象 | 原因 | 处理方案 |
|---|---|---|
| 编译报错无法生成 hex | 代码语法错误 芯片型号选错 | 修改代码,重新选择正确单片机型号 |
| 软件仿真没有反应 | 没有进入 debug 模式 | 先点击调试按钮,再点击 Run 全速运行 |
| 硬件下载失败 | 驱动异常 串口选错 波特率过高 | 重装驱动,核对串口号,降低波特率 |
| 下载成功但是程序不跑 | 晶振配置错误 复位电路异常 | 核对晶振参数,检查复位电路 |
| 找不到 hex 文件 | 没有勾选生成 hex 选项 | 在 Options for Target Output 页面勾选 Create HEX File |
深度补充要点
keil4 默认不会自动生成 hex 文件,这个是新手高频踩坑点,必须在 Output 选项卡手动勾选 Create HEX File,否则编译之后没有 hex 文件,串口下载软件就找不到文件。
软件仿真只是模拟,不能完全替代真实硬件,外设时序 IO 电平和真实芯片会存在差异,仿真运行正常不代表开发板一定可以正常运行。
全速运行 Run 是连续执行代码,单步调试是一行一行执行,适合排查 bug,设置断点之后,程序运行到断点位置会自动暂停,方便查看变量状态。
STC 系列单片机很多支持冷启动下载,也就是下载的时候需要给板子重新上电,下载软件会提示等待上电,这个是 STC 芯片本身特性,不是 keil4 运行程序出错。
【常见问题】
问题 1 keil4 怎么运行程序 一定要接开发板吗
回答 1 keil4 怎么运行程序,不一定要接开发板,可以使用软件仿真模式在电脑内部模拟运行程序,如果要在真实单片机上执行,才需要连接开发板烧录运行。
问题 2 keil4 怎么运行程序 编译成功但是没有 hex 文件怎么办
回答 2 keil4 怎么运行程序,编译成功但是没有 hex 文件,是因为没有勾选 Create HEX File 选项,在 Output 标签页勾选之后重新编译,就可以生成 hex 用于烧录运行程序。
问题 3 keil4 怎么运行程序 Run 和单步调试有什么区别
回答 3 keil4 怎么运行程序,Run 是全速连续运行程序,单步调试是逐行执行代码,适合排查错误,两种都属于 keil4 里面运行程序的调试方式。
问题 4 keil4 怎么运行程序 STC 单片机可以直接用 keil4 烧录吗
回答 4 keil4 怎么运行程序,STC 单片机一般不直接依靠 keil4 烧录,是 keil4 编译生成 hex 之后,再使用 STC ISP 串口软件下载,下载完成之后单片机独立运行程序。
【免责申明】
本文内容仅作为单片机开发学习参考,不同版本 keil4 以及不同型号 51 单片机操作细节存在差异,硬件接线下载操作请注意供电安全,本文不替代官方手册。


