第1章 ARM处理器简介 1
1.1 ARM概述 1
1.1.1 ARM处理器特性 1
1.1.2 ARM系列产品简介 1
1.2 ARM7TDMI内核概述 2
1.2.1 指令操作 2
1.2.2 存储器访问及接口 3
1.3 ARM7TDMI相关结构框图 3
1.4 ARM7TDMI内核工作状态 5
1.5 可处理的异常 5
1.6 ARM相关寄存器 6
1.7 ARM支持的寻址方式 7
1.8 ARM支持的指令集 7
1.8.1 ARM指令集 7
1.8.2 Thumb指令集 8
1.9 ARM内核调试接口 8
1.9.1 调试系统的典型结构 8
1.9.2 调试接口 9
1.9.3 Embedded ICE-RT 9
第2章 ADuC 70xx系列嵌入式系统硬件结构与存储器组织 11
2.1 ADuC 70xx系列嵌入式系统简介 11
2.2 ADuC 70xx系列嵌入式系统封装与引脚配置 13
2.3 ADuC70xx系列微控制器存储空间 31
2.4 非易失性Flash/EE存储器 32
2.4.1 Flash/EE存储器结构及访问 32
2.4.2 Flash/EE存储器的可靠性 33
2.4.3 Flash/EE存储器的编程模式 34
2.4.4 Flash/EE存储器的相关寄存器 34
2.4.5 Flash/EE的执行时间 36
2.5 静态随机存储器SRAM 37
2.6 存储器映射寄存器MMR 37
2.7 存储器的读/写方式 39
2.8 存储器的重映射和复位 39
2.8.1 重映射过程 40
2.8.2 复位过程 40
2.9 外部存储接口 41
2.9.1 接口配置及功能 41
2.9.2 相关寄存器描述 42
2.9.3 外部存储器的读/写时序 44
2.10 应用实例 45
2.10.1 存取外扩RAM 45
2.10.2 128-64字符点阵液晶控制 47
2.10.3 16-02液晶控制 63
第3章 模拟外设与接口 68
3.1 模数转接器(ADC) 68
3.1.1 模数转换器(ADC)简介 68
3.1.2 信号输入设计与转换方式 69
3.1.3 相关寄存器描述 73
3.2 ADC应用实例 77
3.2.1 ADC转换精度测试 77
3.2.2 外部输入信号转换 79
3.3 数模转换器DAC 83
3.3.1 DCC简介 83
3.3.2 DAC内部结构及特性 84
3.3.3 线性衰减现象 85
3.3.4 相关寄存器描述 85
3.4 DAC应用实例 87
3.4.1 DAC模拟正弦波输出 87
3.4.2 LED亮度控制 88
第4章 数字外设与接口 91
4.1 三相脉宽调制(PWM)波形发生器 91
4.1.1 PWM简介 91
4.1.2 PWM模块内部结构 92
4.1.3 模块内各单元功能描述 92
4.1.4 相关寄存器描述 99
4.2 PWM应用实例 101
4.2.1 正弦波模拟输出 101
4.2.2 直流电机控制 102
4.3 通用输入/输出(GPIO) 103
4.3.1 GPIO简介 103
4.3.2 相关寄存器描述 105
4.4 GPIO应用实例 108
4.4.1 蜂鸣器控制 108
4.4.2 单总线温度测量 108
4.5 通用异步串口(UART) 112
4.5.1 配置及电路连接 112
4.5.2 波特率发生器 113
4.5.3 相关寄存器描述 114
4.5.4 网络寻址操作及相关寄存器描述 118
4.6 UART应用实例 120
4.6.1 与PC进行通信 120
4.6.2 多机组网通信 121
4.7 SPI接口 124
4.7.1 配置及电路连接 124
4.7.2 SPI工作模式 126
4.7.3 相关寄存器描述 129
4.8 SPI应用实例 131
4.9 集成电路总线I2C接口 132
4.9.1 总线结构及工作方式 133
4.9.2 相关寄存器描述 135
4.9.3 主从工作模式 140
4.10 I2C应用实例 142
4.10.1 兼容I2C接口存储器读/写 142
4.10.2 兼容I2C接口日历时钟芯片控制 144
4.10.3 兼容I2C接口驱动芯片控制 147
4.11 可编程逻辑阵列PLA 152
4.11.1 连接方式 152
4.11.2 相关寄存器描述 153
4.12 PLA应用实例 156
第5章 中断系统与定时器/计数器 160
5.1 中断系统 160
5.1.1 中断及中断源 160
5.1.2 ADuC70xx支持的中断和中断源种类 160
5.1.3 相关寄存器描述 161
5.2 中断应用实例 163
5.3 ADuC70xx定时器/计数器 164
5.3.1 RTOS定时器Timer0 165
5.3.2 通用定时器Timer1 166
5.3.3 唤醒定时器Timer2 168
5.3.4 看门狗定时器Timer3 169
5.4 定时器应用实例 172
5.4.1 蜂鸣器持续报警 172
5.4.2 精确计时显示 173
5.4.3 脉冲宽度测量 175
5.4.4 系统复位 176
第6章 系统控制模块及硬件系统设计参考 179
6.1 电源监视器 179
6.1.1 功能及特性 179
6.1.2 相关寄存器描述 179
6.2 电压比较器 180
6.2.1 功能及结构 180
6.2.2 迟滞性描述 180
6.2.3 相关寄存器描述 181
6.3 晶体振荡器和锁相环(PLL) 182
6.3.1 时钟系统结构 182
6.3.2 使用外部晶振作为时钟源 182
6.3.3 使用外部时钟作为时钟源 183
6.3.4 系统操作模式及功耗 183
6.3.5 相关寄存器描述 184
6.4 系统控制模块应用实例 186
6.4.1 系统供电监测 186
6.4.2 比较器输出控制蜂鸣器 187
6.4.3 系统时钟配置 187
6.5 硬件系统设计参考 188
6.5.1 电源设计 188
6.5.2 IOVDD电源灵敏度 189
6.5.3 线性稳压器 189
6.5.4 接地和电路板布局 190
6.5.5 时钟振荡器设计 191
6.5.6 上电复位设计 192
6.5.7 典型系统配置 192
第7章 ADuC70xx系列嵌入式系统开发工具 194
7.1 IAR开发环境简介 194
7.2 相关仿真器 197
7.3 IAR的具体应用 197
7.3.1 新建工程 197
7.3.2 选项设置 202
7.3.3 应用程序的编译和运行 209
7.4 串行下载协议 213
7.4.1 简介 213
7.4.2 加载器和物理接口 214
7.4.3 数据传输包格式 214
7.4.4 命令应答 215
7.4.5 记录类型 218
7.5 通过I2C接口更新代码 219
7.5.1 简介 219
7.5.2 可能存在的危险 220
7.5.3 在I型号上测试I2C加载器并调试代码 220
第8章 ADuC70xx相关C语言基础 223
8.1 C语言简介 223
8.1.1 数据类型 223
8.1.2 算术运算符和算术表达式 229
8.1.3 关系运算符和表达式 231
8.1.4 逻辑运算符和表达式 232
8.2 控制语句 233
8.2.1 if语句 234
8.2.2 条件运算符和条件表达式 235
8.2.3 switch语句 236
8.2.4 while语句 237
8.2.5 do-while语句 237
8.2.6 for吾句 238
8.2.7 break和continue语句 239
8.3 数组 239
8.3.1 一维数组的定义和引用 240
8.3.2 二维数组的定义和引用 241
8.3.3 字符数组 243
8.4 函数 244
8.4.1 概述 244
8.4.2 函数定义的一般形式 245
8.4.3 函数的参数和函数的值 246
8.4.4 函数的调用 247
8.4.5 数组作为函数参数 248
8.4.6 局部变量和全局变量 249
8.4.7 变量的存储类别 250
8.5 指针 252
8.5.1 地址指针的基本概念 252
8.5.2 变量的指针和指向变量的指针变量 252
8.5.3 数组指针和指向数组的指针变量 254
8.5.4 字符串的指针和指向字符串的指针变量 255
8.5.5 函数指针变量 256
8.5.6 指针数组和指向指针的指针 257
8.6 结构体与共用体 257
8.6.1 定义结构的一般形式 258
8.6.2 结构类型变量的说明 258
8.6.3 结构变量成员的表示方法 260
8.6.4 结构变量的初始化 260
8.6.5 结构数组的定义 260
8.6.6 结构指针变量的说明和使用 261
8.6.7 共用体 263
8.6.8 枚举类型 264
8.6.9 类型定义符typedef 265
8.7 位运算 265
8.7.1 位运算符 266
8.7.2 位域 267
8.8 编译预处理 267
8.8.1 概述 267
8.8.2 宏定义 268
8.8.3 文件包含 270
8.8.4 条件编译 270
第9章 ADuC70xx系列嵌入式系统应用实例 272
9.1 μCOS-II系统移植 272
9.1.1 μCOS-II系统到ARM7内核的移植 272
9.1.2 μCOS-II系统到ADuC70xx移植的特殊设计 273
9.1.3 移植的测试与实现 276
9.2 网络化数据采集系统设计 276
9.2.1 系统硬件设计 276
9.2.2 系统软件设计 278
9.2.3 验证及结论 278
9.3 无线遥控智能探测避险小车设计 279
9.3.1 引言 279
9.3.2 实现原理 279
9.3.3 系统硬件设计 281
9.3.4 系统软件设计 282
9.4 动态称重传感器的设计 286
9.4.1 引言 286
9.4.2 系统硬件设计 286
9.4.3 系统软件设计 287
9.5 高速电梯液压主动导靴控制系统设计 289
9.5.1 引言 289
9.5.2 电梯轿厢水平振动模型 289
9.5.3 液压主动导靴控制原理分析 290
9.5.4 控制器硬件设计 291
9.5.5 控制器软件设计 293
9.6 高精度PLC模拟前端设计 294
9.6.1 引言 294
9.6.2 系统需求分析 294
9.6.3 总体结构设计 295
9.6.4 主要硬件模块设计 295
9.6.5 系统软件设计 298
9.6.6 测量结果以及误差分析 300
9.7 高精度光照度计设计 301
9.7.1 硅光电池的光电转换原理 301
9.7.2 系统硬件电路设计 302
9.7.3 系统软件设计 304
9.7.4 程序清单 306
9.8 智能语音电子体温计设计 310
9.8.1 系统硬件电路设计 310
9.8.2 系统软件设计 312
9.8.3 程序清单 313
附录 本书配套实验板简介 315
参考文献 317