1.1 51单片机的特点 1
第1章 KeilC51的简单回顾 1
1.1.1 AT89C51的引脚功能 2
1.1.2 AT89C2051简介 4
1.2 C51程序的基本结构 5
1.3 C51的标识符与关键字 7
1.4 C5 1的数据类型 9
1.5 C51的常量和变量 13
1.5.1 C51的常量 13
1.5.2 C51的变量 15
1.6.1函数的说明 18
1.6 C51的函数 18
1.6.2函数的定义 19
1.6.3 函数的调用 19
1.7 C51的数组与指针 20
1.7.1 C51的数组 20
1.7.2 C51的指针 21
1.8 C51的结构与联合 24
1.8.1 C51的结构 24
1.8.2 C51的联合 27
1.9 C51类型定义 29
1.10 C51的编译预处理 29
1.10.1宏定义 30
1.10.2文件包含 33
1.10.3条件编译 34
第2章 KeilC51开发工具简介 37
2.1 单片机应用系统设计的基本步骤 37
2.2 DOS下的C51开发工具 39
2.2.1 C51开发工具介绍 39
2.2.2 Keil C51的C编译器 40
2.2.3 KeilC51的A51宏汇编器 41
2.2.4 Keil C51的BL51代码连接器/定位器 42
2.2.5 Keil C51的OC51目标文件转换器 43
2.3 Windows下的C51开发工具 44
2.2.6 Keil C51的OH51目标十六进制转换器 44
2.2.7 Keil C51的LIB51库文件管理器 44
2.3.1 μVision1版本 45
2.3.2μVision2版本 47
2.4μVision2的安装 51
2.4.1系统需求 51
2.4.2安装步骤及注意事项 51
2.4.3μVision2的具体安装过程 51
2.5μVision2安装后的文件组织结构 54
2.6一个完整的应用实例 54
3.1.1目标、文件组和文件的管理 59
第3章 μVision2的集成开发环境 59
3.1μVision2项目管理窗口 59
3.1.2项目窗口中的文件和文件组的属性 62
3.2μVision2的菜单栏 64
3.3μVision2工具栏的使用 76
3.4 μVision2快捷键的使用 79
3.5μVision2的各种窗口 81
3.5.1设置窗口属性 81
3.5.2源代码编辑窗口 84
3.5.3 反汇编窗口 85
3.5.4 Watch Call Stack窗口 86
3.5.5 Memory窗口 87
3.5.6 CPU寄存器窗口 89
3.5.7串行窗口 89
3.5.8性能分析窗口 90
3.5.9代码覆盖窗口 91
3.5.10符号观察窗口 92
第4章 用μVision2建立项目 95
4.1启动μVision2并创建一个项目 95
4.1.1创建一个新的项目 95
4.1.2新建一个源文件 96
4.2增加和配置启动代码 97
4.3μVision2的CPU和程序启动代码详解 98
4.4为目标设置工具选项 101
4.4.1配置对话框介绍 101
4.4.2例子项目的设置 102
4.5编译项目并生成HEX文件 123
4.6代码分块 124
4.7使用资源浏览器 138
4.8 KeilC51与汇编语言的接口 141
4.8.1模块内接口 141
4.8.2模块间接口 143
4.9.1C语言列表文件 146
4.9列表文件的使用 146
4.9.2汇编语言列表文件 150
4.10 μVision2的使用技巧 153
4.10.1导入μVision1的项目到μVision2 153
4.10.2为列表文件和目标文件指定单独的文件夹 153
4.10.3复制工具设置到一个新的目标中 154
4.10.4使用μVision2器件库中没有的微控制器 155
4.11 μVision2的高级编程技巧 156
第5章 用μVision2调试项目 165
5.1用μVision2调试项目 165
5.1.1设置调试参数 167
5.1.2指定调试器初始化文件 168
5.1.3启动代码调试模式 170
5.1.4使用反汇编窗口 171
5.1.5使用断点 173
5.1.6使用变量和函数观察窗口 177
5.1.7使用CPU寄存器观察窗口 181
5.1.8使用内存观察窗口 181
5.1.9使用串口观察窗口 183
5.1.10使用执行效果观察窗口 184
5.1.11使用内存标记窗口 185
5.1.12使用符号观察窗口 186
5.2在Command窗口中使用调试命令 188
5.1.13程序的运行 188
5.2.1调试命令概述 189
5.2.2调试命令详解 190
5.3μVision2调试器表达式 212
5.3.1地址空间及地址空间类型 212
5.3.2调试常量 213
5.3.3调试变量 216
5.3.4调试符号 217
5.3.5调试表达式 221
5.4μVision2的调试函数 225
5.4.1函数分类 226
5.4.2创建和调用函数 231
5.4.3μVision2调试器的特点 236
5.5一些调试技巧 237
5.5.1仿真I/O端口 237
5.5.2仿真中断和时钟输入 237
5.5.3仿真外部I/O设备 238
5.5.4从PC串口输入到8051串口 238
5.5.7预置I/O端口和内存的值 239
5.5.9使用快捷键 239
5.5.8调试结果输出文件 239
5.5.6从文件读入调试命令 239
5.5.5检查非法内存使用 239
5.5.10内核调试 240
第6章 μVision2的实时操作系统RTX-51 241
6.1 RTX-51简介 241
6.2 RTX-51的任务 242
6.2.1 RTX-51单任务程序 242
6.2.2 RTX-51循环任务切换 242
6.2.3 RTX-51循环多任务切换 242
6.2.4 RTX-51事件和延时 243
6.2.5使用RTX-51信号 244
6.2.6抢先任务切换 244
6.2.7 RTX-51的其他特性 245
6.3 RTX-51的系统函数 246
6.3.1函数一览 246
6.3.2函数详解 247
6.4使用RTX-51 Tiny的要求和限定 253
6.5 RTX-51 Tiny的任务管理 255
6.6 RTX-51 Tiny的配置文件 256
6.7 RTX-51应用实例 258
6.7.1项目介绍 258
6.7.2源代码注释 259
6.7.4 TRAFFIC.Uv2项目调试 270
6.7.3交通灯控制器命令 270
第7章 在μVision2中使用片上外设 280
7.1特殊功能寄存器 280
7.2通用寄存器组 284
7.3 中断服务程序 285
7.4并行I/O口 290
7.5定时器/记数器 292
7.6串行接口 294
7.7看门狗定时器 295
7.8数/模转换(D/A)和模/数转换(A/D) 296
7.9低功耗模式 298
8.1使用Monitor-51的硬软件要求 300
第8章 使用μVision2内嵌的Monitor-51 300
8.2 Monitor-51的使用方法 302
8.3配置Monitor-51 302
8.4一个实例 306
8.5使用Monitor-5 1的限制 309
8.6故障诊断 310
附录 312
附录A C51的库函数 312
A.1 字符函数(CTYPE.H) 313
A.2一般I/O函数STDIO.H 319
A.3字符串函数STRING.H 327
A.4标准函数STDLIB.H 335
A.5数学函数MATH.H 339
A.6绝对地址访问ABSACC.H 347
A.7内部函数INTRINS.H(本征函数) 348
A.8变量参数表STDARG.H 350
A.9全程跳转SETJMP.H 352
A.10访问SFR和SFR bitd地址的REGXXX.H 353
附录B Keil C5 1与ANSI C的差别 354
附录C Keil C51不同版本的差别 356
附录D μVision2支持的8051CPU派生器件 360
附录E μVision2的错误信息 362
主要参考文献 374