第1章 概述 1
1.1 单片机的发展趋势 1
1.2 单片机的结构特点与应用 3
1.2.1 单片机的结构特点 3
1.2.2 单片机的应用 3
1.3 常用单片机系列简介 4
1.4 单片机系统的设计方法与要点 9
1.5 单片机的学习方法 11
1.6 单片机开发技能的提高 12
第2章 典型单片机应用选型指南 14
2.1 单片机的选择方法 14
2.2 51系列单片机介绍 15
2.3 51系列单片机应用选型指南 16
2.3.1 Atmel系列单片机选型 17
2.3.2 WinBond系列单片机选型 23
2.3.3 STC系列单片机选型 28
2.3.4 Pgilips系列单片机选型 37
2.3.5 C8051(Silicon Labs)系列单片机选型 42
2.3.6 μPSD3xx(ST)系列单片机选型 55
2.4 AVR系列单片机介绍 57
2.5 AVR系列单片机应用选型指南 58
2.6 MSP430系列单片机介绍 66
2.7 MSP430系列单片机应用选型指南 67
第3章 51系列单片机应用基础 76
3.1 MCS-51系列单片机的硬件结构 76
3.1.1 单片机的基本组成 76
3.1.2 单片机的存储器结构 82
3.1.3 单片机的I/O端口逻辑结构 88
3.1.4 单片机的时钟与复位电路 93
3.2 MCS-51系列单片机的中断系统 98
3.2.1 中断的概念 98
3.2.2 MCS-51中断系统 100
3.2.3 中断程序的设计 106
3.3 MCS-51单片机的定时器/计数器 109
3.3.1 定时器/计数器的工作原理 109
3.3.2 定时器/计数器所用到的寄存器 110
3.3.3 定时器/计数器的控制 110
3.4 MCS-51单片机的异步通信和串行接口 118
3.4.1 单片机的异步通信 118
3.4.2 MCS-51的串行接口 119
3.4.3 RS232通信电平 126
3.5 单片机系统的扩展与接口技术 128
3.5.1 单片机系统扩展的原理 128
3.5.2 外部存储器的扩展 130
3.5.3 输入/输出接口的扩展 137
3.5.4 键盘的接口技术 142
3.5.5 显示器的接口技术 144
3.5.6 A/D转换器的接口技术 147
3.5.7 D/A转换器的接口技术 150
3.5.8 开关电路接口及光电耦合器接口 154
第4章 AVR系列单片机应用基础 158
4.1 AVR单片机ATmega64/128的性能与结构 158
4.2 ATmega64/128的引脚功能与存储器 162
4.3 ATmega64/128的系统管理 168
4.3.1 时钟系统与复位 168
4.3.2 电源管理与睡眠模式 171
4.4 ATmega64/128的中断系统 173
4.4.1 中断向量 173
4.4.2 中断资源描述 175
4.4.3 复位和中断向量位置的确定 177
4.5 ATmega64/128的I/O端口与外围接口 179
4.5.1 ATmega64/128的I/O端口 179
4.5.2 总线扩展 183
4.5.3 A/D转换器接口与模拟比较器 187
4.6 ATmega64/128的定时器/计数器 196
4.6.1 8位定时器/计数器0(T/CO) 196
4.6.2 16位定时器/计数器1和3 201
4.6.3 看门狗定时器 212
4.7 ATmega64/128的通用串行接口 213
4.7.1 TWI(I2C)接口 213
4.7.2 USART串行接口 218
第5章 MSP430系列单片机应用基础 227
5.1 MSP430单片机的结构和寄存器资源 227
5.2 MSP430的存储结构和地址空间 230
5.3 MSP430的系统复位与中断结构 234
5.3.1 系统复位 234
5.3.2 中断结构 236
5.4 MSP430单片机的低功耗 236
5.5 MSP430单片机的时钟系统 239
5.5.1 时钟源 240
5.5.2 时钟模块寄存器设置 242
5.5.3 时钟失效及安全操作 244
5.6 MSP430的通用I/O端口 245
5.6.1 I/O端口的主要功能 245
5.6.2 I/O端口的设置 247
5.7 MSP430的定时器 249
5.7.1 看门狗定时器 249
5.7.2 基本定时器 252
5.7.3 16位定时器A 254
5.7.4 16位定时器B 262
5.8 MSP430的比较器A 264
5.9 MSP430的串口通信 267
5.9.1 波特率的产生 268
5.9.2 MSP430的通用串行通信模块的异步模式 270
5.10 MSP430的模/数、数/模转换模块 275
5.10.1 ADC12模/数转换器 276
5.10.2 DAC12数/模转换器 283
第6章 单片机的C语言程序设计 289
6.1 C51语言特点 289
6.2 C51的标识符与关键字 290
6.3 C51程序设计的基本规则 292
6.3.1 数据类型与存储模式 292
6.3.2 对硬件主要资源的定义 296
6.3.3 运算符与表达式 299
6.4 基本语句 305
6.4.1 说明语句与表达式语句 305
6.4.2 复合语句 306
6.4.3 条件语句 306
6.4.4 开关与跳转语句 308
6.4.5 循环语句 310
6.4.6 函数调用语句与返回语句 311
6.4.7 空语句 312
6.5 函数 312
6.5.1 函数的定义 312
6.5.2 函数的调用 314
6.5.3 main函数 316
6.5.4 C51中断函数 316
6.5.5 C51库函数 318
6.6 C51的数据结构 319
6.6.1 数组 319
6.6.2 指针 321
6.6.3 结构 326
6.7 预处理 327
6.7.1 文件包含指令 328
6.7.2 宏定义 328
6.7.3 条件编译 329
6.7.4 其他预处理命令 331
6.8 AVR单片机的C程序设计基础 331
6.9 MSP430的C程序设计基础 332
6.9.1 IAR C430语言基础 332
6.9.2 IAR C430的函数 333
第7章 单片机的实践指导 336
7.1 基本实践指导 336
7.1.1 流水灯功能的实现与编程实验 336
7.1.2 按键与数码管静态显示实验 338
7.1.3 数码管动态显示实验 341
7.1.4 UART串行通信接口实验 346
7.1.5 A/D转换器接口与编程实验 349
7.1.6 D/A转换器接口与编程实验 351
7.1.7 I2C、SPI接口实验 354
7.1.8 数字钟接口实验 362
7.1.9 微型打印机接口实验 371
7.1.10 简易数字频率计的设计与编程实验 372
7.1.11 脉冲测宽电路与编程实验 375
7.1.12 温度测量与控制实验 378
7.2 综合实践指导 383
7.2.1 XD2008单片机I/O串口实验 386
7.2.2 XD2008单片机点阵汉字显示实验 387
7.2.3 XD2008单片机A/D、D/A综合实验 393
7.2.4 XD2008单片机秒表、报警综合实验 398
7.2.5 XD2008单片机温度测量、通信综合实验 402
7.3 应用系统 409
7.3.1 GSM/GPRS无线通信模块的典型应用 409
7.3.2 高性能GPS模块与单片机的典型应用 419
附录A 51系列单片机相关器件封装 430
附录B AVR系列单片机相关器件封装 463
附录C MSP430系列单片机相关器件封装 475
参考文献 487