第1章 体系结构基础 1
1.1 的数据类型和存储器格式 1
1.2 ARM处理器的工作状态和运行模式 2
1.3 寄存器组织 3
1.3.1 寄存器分类 3
1.3.2 通用寄存器 5
1.3.3 程序状态寄存器 6
1.4 异常 8
1.4.1 ARM体系结构所支持的异常类型 8
1.4.2 各类异常的具体描述 9
1.4.3 对异常的响应和返回 11
1.5 ARM指令集 12
1.5.1 ARM指令的功能与格式 12
1.5.2 指令的条件码 13
1.6 ARM指令的寻址方式 14
1.6.1 寄存器寻址 14
1.6.2 立即寻址 14
1.6.3 寄存器移位寻址 15
1.6.4 寄存器间接寻址 15
1.6.5 基址寻址 16
1.6.6 相对寻址 16
1.6.7 多寄存器寻址 16
1.6.8 堆栈寻址 17
1.6.9 块拷贝寻址 17
1.6.10 ARM伪指令 18
1.7 Thumb指令集 18
1.8 ARM汇编语言编程 19
18.1 ARM汇编语言规范 19
1.8.2 汇编伪指令 20
1.8.3 程序设计举例 20
1.8.4 汇编语言与C/C++混合编程 22
1.9 启动代码 22
1.9.1 Startup.s文件 23
1.9.2 Target.c文件 25
1.9.3 Target.h文件 26
1.9.4 Config.h文件 27
复习思考题 27
第2章 Proteus for ARM7虚拟仿真 29
2.1 Proteus for ARM简介 29
2.1.1 Proteus支持的ARM模型 29
2.1.2 Proteus ELF/SWARF装载器 31
2.1.3 Proteus LPC2000的调试窗口 31
2.2 集成环境ISIS 35
2.3 原理图绘制与源代码仿真调试 38
2.4 用IAR EWARM生成源代码仿真调试程序 42
2.4.1 创建项目 42
2.4.2 项目选项配置与编译链接 45
复习思考题 49
第3章 LPC213xARM处理器 50
3.1 LPC213x处理器特性与存储器结构 50
3.1.1 主要特性 50
3.1.2 存储器结构 51
3.1.3 存储器重新映射和Boot Block 53
3.1.4 存储器加速模块 55
3.2 系统控制模块 57
3.2.1 时钟频率控制 57
3.2.2 VPB分频器 61
3.2.3 功率控制 62
3.2.4 复位 63
3.2.5 唤醒定时器 64
3.3 外部中断输入 65
3.4 向量中断控制器C 68
3.4.1 VIC寄存器 68
3.4.2 中断源 71
3.4.3 VIC使用注意事项 73
3.5 引脚功能配置 74
3.5.1 引脚选择寄存器 74
3.5.2 引脚配置示例 76
3.6 系统控制应用举例 76
3.6.1 存储器映射 76
3.6.2 锁相环 78
3.6.3 存储器加速模块 83
3.7 VIC中断应用举例 84
3.7.1 外部中断 84
3.7.2 向量中断 86
3.7.3 嵌套中断 88
3.7.4 快速中断 90
3.7.5 软件中断 91
复习思考题 93
第4章 LPC2138片内集成功能应用技术 94
4.1 通用输入输出端口GPIO 94
4.1.1 主要特性 94
4.1.2 寄存器描述 94
4.1.3 应用举例 95
4.2 通用异步接收发送器UART 100
4.2.1 主要特性 100
4.2.2 寄存器描述 101
4.2.3 应用举例 107
4.3 I2C接口 114
4.3.1 主要特性 114
4.3.2 寄存器描述 117
4.3.3 应用举例 120
4.4 SPI接口 124
4.4.1 主要特性 124
4.4.2 SPI数据传输 125
4.4.3 寄存器描述 126
4.4.4 应用举例 128
4.5 SSP接口 133
4.5.1 主要特性 133
4.5.2 寄存器描述 133
4.5.3 应用举例 136
4.6 定时器/计数器 139
4.6.1 主要特性 139
4.6.2 寄存器描述 139
4.6.3 应用举例 144
4.7 脉宽调制器PWM 152
4.7.1 主要特性 152
4.7.2 寄存器描述 154
4.7.3 应用举例 158
4.8 A-D转换器 167
4.8.1 主要特性 167
4.8.2 寄存器描述 168
4.8.3 应用举例 170
4.9 D-A转换器 177
4.9.1 主要特性 177
4.9.2 寄存器描述 177
4.9.3 应用举例 178
4.10 实时时钟 183
4.10.1 主要特性 183
4.10.2 寄存器描述 183
4.10.3 应用举例 187
4.11 看门狗定时器 192
4.11.1 主要特性 192
4.11.2 寄存器描述 193
4.11.3 应用举例 194
复习思考题 199
第5章 LPC2138片外扩展功能应用技术 201
5.1 液晶显示器LCD接口技术 201
5.1.1 点阵字符型液晶显示模块接口技术 201
5.1.2 12864点阵图型液晶显示模块接口技术 210
5.1.3 T6963C点阵图型液晶显示模块接口技术 219
5.2 用DS18B20与LPC2138实现的数字温度计 228
5.3 用DS1302与LPC2138实现的万年历 236
5.4 SD卡与LPC2138的接口及应用 249
5.4.1 SD卡简介 249
5.4.2 FAT16文件系统 251
5.4.3 SD卡接口应用举例 269
5.5 网络芯片ENC28J60与LPC2138的接口及应用 269
5.5.1 ENC28J60的功能模块与引脚分布 269
5.5.2 ENC28J60主要特性 271
5.5.3 ENC28J60应用举例 272
复习思考题 310
第6章 μC/OS-Ⅱ在LPC2138上的移植与应用 311
6.1 μC/OS-Ⅱ简介 311
6.2 μC/OS-Ⅱ在LPC2138上的移植 312
6.2.1 编写OS_CPU.H文件 313
6.2.2 编写OS_cpu_c.c文件 314
6.2.3 编写Os_cpu_asm文件 317
6.3 编写μC/OS-Ⅱ应用程序 319
6.3.1 任务管理 319
6.3.2 任务管理应用编程举例 322
6.4 任务的同步与通信 325
6.4.1 信号量 325
6.4.2 信号量应用编程举例 328
6.4.3 消息邮箱 330
6.4.4 消息邮箱应用编程举例 333
复习思考题 335
附录 337
附录A ARM硬件开发平台 337
A.1 电源电路 337
A.2 复位电路 338
A.3 时钟电路 338
A.4 RS232串口和MODEM电路 339
A.5 键盘电路 340
A.6 LED显示电路 340
A.7 LCD显示电路 342
A.8 I2C接口电路 342
A.9 音频接口电路 343
A.10 电动机驱动电路 343
A.11 ADC采样电路 345
A.12 网络接口电路 345
A.13 SD卡接口电路 346
A.14 USB接口电路 346
A.15 总线接口电路 347
A.16 PS/2接口电路 347
A.17 扩展模块接口电路 348
A.18 JTAG接口电路 348
附录B Proteus中的常用元器件 350
参考文献 352