第1章 概论 1
1.1 微控制器概述 1
1.2 MCU和MPU 1
1.3 微控制器和嵌入式系统 2
1.4 微控制器的应用开发 3
1.4.1 硬件和软件的协同设计 3
1.4.2 微控制器系统的设计方法 3
1.5 微控制器的历史与发展 5
习题与思考题 6
第2章 微控制器的结构、时序和工作方式 7
2.1 微控制器的结构 7
2.1.1 微控制器常用封装 7
2.1.2 微控制器的体系结构 8
2.1.3 微控制器的组成 9
2.2 微控制器时序 13
2.2.1 时钟周期、机器周期和指令周期 14
2.2.2 取指令和执行指令时序 15
2.3 微控制器工作方式 16
2.3.1 复位方式 16
2.3.2 程序执行方式 17
2.3.3 节电工作方式 17
2.3.4 程序的写入、校验和擦除 18
2.4 典型微控制器的特点 19
2.4.1 P89LPC936的特点 19
2.4.2 MC68HC908GP32的特点 21
2.4.3 PIC16F877的特点 25
习题与思考题 29
第3章 微控制器的指令系统 30
3.1 指令的表示与字节 30
3.1.1 指令表示形式 30
3.1.2 指令的字节 30
3.2 指令的寻址方式 31
3.2.1 隐含寻址 31
3.2.2 立即寻址 31
3.2.3 直接寻址 32
3.2.4 寄存器间接寻址 32
3.2.5 变址寻址 34
3.2.6 相对寻址 37
3.2.7 位寻址 38
3.3 指令的功能 38
3.3.1 数据传送指令 38
3.3.2 算术运算指令 40
3.3.3 逻辑运算指令 40
3.3.4 移位指令 40
3.3.5 位操作指令 40
3.3.6 控制转移指令 40
3.3.7 其他指令 40
3.4 典型微控制器的指令系统 40
3.4.1 MCS-51指令系统 40
3.4.2 M68HC08指令系统 57
3.4.3 PIC指令系统 74
习题与思考题 79
第4章 汇编语言程序设计 80
4.1 汇编语言的格式与构成 80
4.1.1 汇编语言的格式 80
4.1.2 伪指令 81
4.1.3 源程序的汇编 85
4.2 汇编语言程序设计方法 85
4.2.1 分支结构 86
4.2.2 循环结构 86
4.2.3 子程序调用 88
习题与思考题 90
第5章 微控制器的存储器、时钟和定时/计数器模块 91
5.1 存储器模块 91
5.1.1 半导体存储器的种类和特点 91
5.1.2 微控制器内部的存储器 93
5.1.3 ICP、ISP、IAP和监控ROM 95
5.1.4 P89LPC936的存储器模块 96
5.1.5 MC68HC908GP32的存储器模块 105
5.1.6 PIC16F877的存储器模块 111
5.2 时钟模块 121
5.2.1 时钟模块的构成 121
5.2.2 P89LPC936的时钟模块 122
5.2.3 MC68HC908GP32的时钟模块 125
5.2.4 PIC16F877的时钟模块 132
5.3 定时器/计数器及其扩展 135
5.3.1 定时/计数器模块的构成 135
5.3.2 P89LPC936的定时/计数器模块 136
5.3.3 MC68HC908GP32的定时/计数器模块 144
5.3.4 PIC16F877的定时/计数器模块 147
5.4 输入捕捉、输出比较与脉宽调制 150
5.4.1 CCP原理 150
5.4.2 P89LPC936的CCP功能 151
5.4.3 MC68HC908GP32的CCP功能 162
5.4.4 PIC16F877的CCP功能 166
习题与思考题 176
第6章 I/O端口与数据传送 178
6.1 I/O数据传送方式 178
6.1.1 几种用以类比的交通方式 178
6.1.2 几种I/O数据传送方式 179
6.2 I/O端口编址与类型 181
6.2.1 I/O端口编址 181
6.2.2 I/O端口类型 182
6.3 并行I/O端口 182
6.3.1 微控制器P89LPC936的I/O端口 184
6.3.2 MC68HC908GP32的I/O端口 188
6.3.3 微控制器PIC16F877的I/O端口 190
6.4 异步串行通信接口SCI 190
6.4.1 串行通信基础 191
6.4.2 RS-232C标准 197
6.4.3 LPC900的SCI模块 199
6.4.4 M68HC08的SCI模块 207
6.4.5 PIC16F877的SCI模块 217
6.5 同步串行端口SPI 228
6.5.1 SPI的工作原理与模块构成 228
6.5.2 LPC900的SPI接口 233
6.5.3 M68HC08的SPI接口 239
6.5.4 PIC16F87X的SPI接口 243
6.6 I2C接口 247
6.6.1 I2C结构与数据传输 247
6.6.2 LPC900的I2C接口 258
6.6.3 PIC16F87X的I2C接口 268
6.7 USB接口 270
6.7.1 接口特点 270
6.7.2 结构和数据流 271
6.7.3 USB交换的包格式 276
6.7.4 接口芯片和微控制器 279
6.7.5 USB系统的典型应用 284
6.8 CAN接口 285
6.8.1 特点 285
6.8.2 数据传送 286
6.8.3 物理层设计 288
6.8.4 CAN总线的通信芯片与微控制器 288
习题与思考题 298
第7章 复位、中断、监控与节电 300
7.1 复位 300
7.1.1 复位的作用、效果和复位源 300
7.1.2 LPC900的复位功能 301
7.1.3 M68HC08的复位功能 304
7.1.4 PIC16F87X的复位功能 306
7.2 中断 307
7.2.1 微控制器的中断源、中断功能和中断过程 307
7.2.2 P89LPC936的中断系统 310
7.2.3 MC68HC908GP32的中断系统 313
7.2.4 PIC16F877的中断系统 319
7.3 键盘模块与键盘中断 328
7.3.1 键盘与键盘中断(KBI)原理 328
7.3.2 LPC900的键盘中断功能 330
7.3.3 M68HC08的键盘中断功能 330
7.4 监视定时器WDT 333
7.4.1 监视定时器原理 333
7.4.2 LPC900的WDT 334
7.4.3 M68HC08的WDT 337
7.4.4 PIC16F87X的WDT 339
7.5 电源监控与节电模式 341
7.5.1 LPC900的电源监控和节电模式 342
7.5.2 M68HC08的节电模式 343
7.5.3 PIC16F87X的节电模式 350
习题与思考题 352
第8章 数模转换与模数转换 353
8.1 D/A原理与技术性能 353
8.1.1 数模转换器技术性能 353
8.1.2 脉宽调制型数模转换 354
8.1.3 T型电阻网络型数模转换 355
8.2 A/D原理与技术性能 359
8.2.1 模数转换器技术性能 359
8.2.2 逐次比较型模数转换 362
8.2.3 输入捕获型模数转换 371
8.3 ADC模块 372
8.3.1 P89LPC936的ADC模块 372
8.3.2 MC68HC908GP32的ADC模块 379
8.3.3 PIC16F877的ADC模块 382
习题与思考题 387
第9章 微控制器的C语言程序设计 388
9.1 C语言与微控制器 388
9.1.1 微控制器的编程语言 388
9.1.2 C语言编译器与程序开发过程 390
9.2 51系列微控制器C语言程序设计基础 390
9.2.1 KEIL编译器 390
9.2.2 C51程序设计基础 390
9.2.3 P89LPC936内部资源的C编程 394
9.3 Motorola微控制器C语言程序设计基础 395
9.3.1 ICC08编译器和08C语言 395
9.3.2 Motorola 08C语言编程 399
9.4 Microchip微控制器C语言程序设计基础 401
9.4.1 PICC编译器和PICC C语言 401
9.4.2 PICC C语言编程 405
习题与思考题 408
第10章 嵌入式实时操作系统 409
10.1 嵌入式实时操作系统基础 409
10.1.1 基本概念 409
10.1.2 嵌入式实时操作系统技术特点 410
10.2 几种典型的嵌入式实时操作系统 418
10.2.1 嵌入式实时操作系统RTX51 418
10.2.2 嵌入式实时操作系统PICOS18 421
10.2.3 嵌入式实时操作系统Small RTOS51 425
10.2.4 嵌入式实时操作系统μC/OS-Ⅱ 426
10.3 嵌入式实时操作系统的移植与应用 429
10.3.1 RTX51在单片机控制的GPS接收板上的应用 429
10.3.2 占先式实时内核μC/OS-Ⅱ在MC68HC908GP32上的移植 431
习题与思考题 433
第11章 微控制器应用系统的研制 434
11.1 微控制器应用系统的开发 434
11.1.1 开发工具 434
11.1.2 微控制器开发系统功能 435
11.1.3 应用ISP功能进行开发调试 437
11.2 微控制器应用系统研制过程 437
11.2.1 总体设计 437
11.2.2 硬件设计 439
11.2.3 软件设计 439
11.2.4 可靠性设计 442
11.3 应用实例1——T-40型机车速度表检验仪 444
11.3.1 配置与工作过程 444
11.3.2 系统构成 445
11.3.3 语音合成技术的应用 446
11.4 应用实例2——基于Small RTOS51的肠营养液输液系统 449
11.4.1 系统设计 450
11.4.2 使用Small RTOS51的优点 452
11.5 应用实例3——基于Ethernet和CAN的楼宇设备控制系统 453
11.5.1 系统总体设计 453
11.5.2 区域控制器 454
11.5.3 现场控制器 455
11.5.4 应用系统特点 456
习题与思考题 456
参考文献 458
附录A MCS-51指令表 459
附录B M68HC08指令表 465
附录C PIC16F87X指令表 478