微控制器:架构、编程、接口和系统设计
作者 : (印)Raj Kamal著
译者 : 张炯 周密 吕紫旭 黄琼 等译
丛书名 : 计算机科学丛书
出版日期 : 2009-09-02
ISBN : 978-7-111-27030-0
定价 : 75.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 457
开本 : 16
原书名 : Microcontrollers -Architecture, Programming, Interface and System Design, 1E
原出版社: Pearson Education Asia
属性分类: 教材
包含CD :
绝版 :
图书简介

本书全面介绍各种主流微处理器、控制与通信接口、嵌入式系统编程、嵌入式实时操作系统以及开发调试工具和系统设计等内容,系统完整地讨论了嵌入式系统开发的相关技术和知识,适合电学、电子学、计算机科学工程专业的本科生阅读。对嵌入式系统设计感兴趣的软件工程师和对单片机交互感兴趣的硬件工程师而言,本书也是难得的软硬件兼备的优秀参考书。

图书特色

微控制器架构、编程、接口和系统设计 
Microcontrollers
Architecture, Programming,
Interfacing and System Design
(印) Raj Kamal 著 张炯 周密 吕紫旭 黄琼 等译

本书从8051微控制器着眼,讲解使用8051、68HC11、80x96和ARM系列微控制器进行系统开发的方法,并通过实例对RTOS、软件构件块、中断处理机制、定时器、IDE和接口电路的使用进行详解。除微控制器的通用体系结构以外,本书还覆盖了程序设计、接口设计和系统设计等主题。

本书特点
详细描述了8051微控制器的体系结构、指令和内部资源。
深入浅出地介绍了RTOS、IPC、IDE、软件构件块、中断处理机制和实时控制中定时器以及同步的使用。
涵盖8251、8255、8237、8279、8259以及ADC和DAC等外设。
介绍与键盘、LCD显示器、打印机、Flash存储器、步进电机和直流马达、伺服电动机、光编码器、加工控制、机器人、电源控制和DSP系统等外部设备的接口的电路设计。
介绍8051、68HC11、80x96和ARM系列微控制器的实际应用。

作者简介
Raj Kamal
在印度理工学院获得博士学位,是一名具有33年教学经验的计算机和电子专业的资深教授。他的研究领域包括嵌入式系统、微控制器、Internet、Web技术和计算机系统结构等,在国内外杂志上发表过大量研究论文。

图书前言

本书为电学、电子学、计算机科学工程专业的大学生而写,也为对系统设计感兴趣的软件工程师和对单片机交互感兴趣的硬件工程师而写。本书首先介绍经典的8051单片机的内容,然后阐述设计嵌入式系统所必须了解的一些概念。
第1章首先介绍8051的体系结构,然后讲述其指令系统、中断服务结构、编程和交互方法。这些概念的学习将便于我们开发基于像8051、80x96、68HC11/12/16,还有最新基于ARM的高性能低功耗的单片机的系统。
各章的组织如下:
第1章介绍了单片机的类型,列出了多种流行的单片机及其应用程序实例。
第2章描述了单片机的总体结构,并介绍了单片机硬件片上资源,例如内存,端口,定时设备,脉宽调制器,IO串口通信设备,数模转换器和模数转换器。
第3章通过三步法解释了8051单片机家族的结构。描述了8051片上资源—专用函数寄存器(SFR)和内部存储器地址、单个位地址、内部程序和数据地址、外部程序和数据地址、内存映射的片上端口、内部定时器、串口通信和通用异步接收发送器(UART)。同时也描述了8051的中断资源以及内部和外部设备中断的特殊的服务特征。还会介绍一种外部8051的变体和Philips novel 8051MX的变体。
第4章描述了8051的指令集。解释了数据传输指令、数据和位操作指令、算数和逻辑运算指令、程序流控制和中断控制指令等多种指令的使用。
第5章是微处理器和单片机中有关中断结构的创新性的展现。本章详细阐明了中断向量、优先级和中断屏蔽的概念以及来自多个内部和外部中断源的多种中断服务的方式。
第6章涉及单片机定时器、时钟对比、输入捕获和内部时钟程序的内容。本章也阐述了中断延迟、密度和限制。这些概念在单片机定时器设备应用程序编程中得到了广泛的使用。这些软件定时器和真实的时钟中断也会详细讨论。
第7章讲述了同微处理器和单片机交互的外围芯片,涉及8251、8255、7257、8259。本章也解释了模数转换和数模转换控制器线路、接口以及一些其他概念。
第8章涉及同键盘和显示设备进行交互时非常重要的一个方面—移动电话、掌上电脑和PDA用户。它从一个基本的按键和按键弹回的交互开始。进一步包括了LCD控制器以及在工业控制系统、仪器和机器人技术中涉及的许多重要的接口。
第9章描述了编程框架,包括寄存器、汇编器以及(以汇编语言和C语言构成的)结构化的汇编程序、决策块、控制结构等。
第10章给出了用于创建一个强大编程框架的软件编译块的概念。关键词解析的问题也将会得到阐述。
第11章描述了实时操作系统的概念和例子。一个重要的方面是抢先和轮循机制以及多任务同步机制的介绍。
第12章讨论了开发工具,包括IDE的使用,ICE,目标系统,设备编程,代表性的代码生产和调试工具。
第13章讲述了Motorola 单片机68HC11的结构、内部存储和设备。其强大的定时器和简单的中断结构是本章描述的重点。
第14章描述了Intel 80x96单片机、其16位结构、内部存储和设备。同时也谈到了强大的高速输出和输入,在页0内存区域的垂直和水平窗口。
第15章讨论了最新的高性能、低功耗的32位单片机ARM。它有着创新性的RISC结构和指令集。还讨论了一个全新的指令子集—Thumb指令集。本章介绍了最新的基于Philips、STElectronics、Samsung单片机的ARM结构。这些单片机促进了高速路由和掌上电脑的发展。
附录给出了重要的8051基本汇编程序,以及在8051上编译数据。参考文献帮助读者进一步理解和学习多个同单片机相关的主题。

Raj Kamal

上架指导

计算机\硬件

封底文字

本书从8051微控制器着眼,讲解使用8051、68HC11、80x96和ARM系列微控制器进行系统开发,并通过实例对RTOS、软件构件块、中断处理机制、定时器、IDE和接口电路的使用进行详解。除微控制器的通用体系结构以外,本书还覆盖了程序设计、接口设计和系统设计等主题。
本书特色
·详细描述了8051微控制器的体系结构、指令和内部资源。
·深入浅出地介绍了RTOS、IPC、IDE、软件构件块、中断处理机制和实时控制中定时器以及同步的使用。
·涵盖8251、8255、8237、8279、8259以及ADC和DAC等外设。
·与键盘、LCD显示器、打印机、Flash存储器、步进电机和直流马达、伺服电动机、光编码器、加工控制、机器人、电源控制和DSP系统等外部设备的接口电路设计。
·8051、68HC11、80x96和ARM系列微控制器的实际应用。

关于作者
 Raj Kamal在印度理工学院获得博士学位,是一名具有33年教学经验的计算机和电子专业的资深教授。他作为一位嵌入式系统、微控制器、Internet、Web技术和计算机系统结构等领域的权威作者,在国内外杂志上已经发表了大量研究论文。

译者简介

张炯 周密 吕紫旭 黄琼 等译:暂无简介

图书目录

出版者的话
译者序
前言
第1章  微控制器的种类、选择和应用 1
本章目标 1
1.1  微控制器 1
1.1.1  中央处理单元 1
1.1.2  微处理器 1
1.1.3  微计算机 2
1.1.4  计算机系统 2
1.1.5  微控制器 3
1.1.6  嵌入式处理器 3
1.2  微控制器的种类 4
1.2.1  8位、16位、32位微控制器 4
1.2.2  全内嵌式和带外部存储器的
微控制器 5
1.2.3  CISC和RISC结构微控制器 5
1.2.4  哈佛和普林斯顿存储结构
微控制器 6
1.3  主流微控制器概览 6
1.3.1  8051、扩展8051XA和8051MX
系列 6
1.3.2  MC68HC11/68HC12系列 7
1.4  微控制器的选择 8
1.4.1  所需特性列表及需要考虑的因素 8
1.4.2  处理器和处理器系列的选择 9
1.4.3  基于片上资源的选择 9
1.4.4  软件构建块的选择 9
1.4.5  基于开发工具的选择 9
1.5  应用实例 9
1.5.1  自动加工控制 10
1.5.2  仪器应用 11
本章小结 12
关键术语 13
问题回顾 14
实践练习 14
多项选择题 15
第2章  微控制器的体系结构和资源概述 16
本章目标 16
2.1  微控制器体系结构 16
2.1.1  8048和8049微控制器体系结构的
功能概述 16
2.1.2  8048系列微计算机的管脚和信号 18
2.2  系列成员 19
2.3  微控制器资源 20
2.3.1  总线宽度 20
2.3.2  程序和数据存储器 21
2.3.3  并口 23
2.3.4  EEPROM和Flash 24
2.3.5  脉宽调制输出 25
2.3.6  使用PWM或者定时器的片上
D/A转换 26
2.3.7  片上A/D转换 26
2.3.8  复位电路 27
2.3.9  看门狗定时器设备 28
2.3.10  灵活位处理能力 29
2.3.11  节电模式 29
2.3.12  定时器 30
2.3.13  实时时钟 31
2.3.14  异步和同步串行通信接口 32
2.4  高级和下一代微控制器中的资源 32
本章小结 33
关键术语 33
问题回顾 35
实践练习 36
多项选择题 37
第3章  8051/8031系列的体系结构 39
本章目标 39
3.1  8051微控制器 39
3.1.1  硬件 39
3.1.2  端口和电路的IO管脚 48
3.2  内部和外部存储器 52
3.3  计数器和定时器 57
3.4  Intel 8051的同步串行和异步串行通信
接口 62
3.4.1  串行同步通信 64
3.4.2  串行异步模式通信 65
3.4.3  与RS232连接 66
3.5  中断 67
本章小结 70
关键术语 71
问题回顾 73
实践练习 74
多项选择题 75
第4章  8501系列微控制器指令集 77
本章目标 77
4.1  基本汇编语言编程 77
4.1.1  机器码 77
4.1.2  指令中的操作码和操作数 77
4.1.3  指令周期 80
4.1.4  指令执行时间 80
4.1.5  作为指令集合的程序和例程 80
4.1.6  寻址模式 80
4.1.7  指令集的指令分类 81
4.2  数据传送指令 82
4.2.1  MOV指令 83
4.2.2  MOVC类型指令 84
4.2.3  MOVX类型指令 85
4.2.4  应用SP来使用堆栈区域的PUSH和
POP指令 86
4.2.5  XCH类型指令 87
4.3  数据和位处理指令 88
4.3.1  字节数据处理(清除、求补、循环
移位和交换)指令 88
4.3.2  布尔变量(位)处理和布尔处理
指令 89
4.4  算术指令 91
4.5  对寄存器、内部RAM和SFR字节进行
逻辑操作的指令 93
4.6  程序流控制指令 95
4.6.1  周期延迟(NOP)指令 96
4.6.2  长跳转、绝对跳转和短跳转 96
4.6.3  条件相对短跳转 97
4.6.4  递减然后根据是否为0进行条件
跳转 98
4.6.5  比较后跳转 98
4.6.6  例程调用—无条件返回和从例程
中返回 99
4.7  中断控制流程(RETI指令) 100
本章小结 101
关键术语 101
问题回顾 103
实践练习 104
多项选择题 105
第5章  实时控制:中断 107
本章目标 107
5.1  MCU的中断处理结构 107
5.1.1  例程、中断和中断服务例程 108
5.1.2  8051中的中断服务 109
5.1.3  中断源的标识 109
5.1.4  中断服务例程的地址 110
5.2  中断等待时间和中断最终期限 113
5.3  多重中断源 113
5.4  不可屏蔽中断源 114
5.5  中断源的使能(解除屏蔽)或者禁用 115
5.6  轮询来确定中断源及其优先级分配 116
5.6.1  轮询更高优先级中断源的优点 118
5.6.2  在ISR结束时轮询更高优先级待
响应中断源的优点 118
5.7  Intel 8051中的中断结构 120
本章小结 121
关键术语 122
问题回顾 123
实践练习 123
多项选择题 124
第6章  实时控制:定时器 126
本章目标 126
6.1  MCU中的可编程定时器 126
6.1.1  编程特性 126
6.1.2  溢出事件 129
6.2  自由运行计数器和实时控制 130
6.2.1  使用输出比较寄存器以及作为
自由运行计数器运行的定时器 131
6.2.2  使用输入采集寄存器 133
6.2.3  实时钟中断 136
6.2.4  软件定时器 138
6.3  中断间隔和密度、约束 138
6.3.1  中断服务延迟 138
6.3.2  中断服务间隔 141
6.3.3  中断密度 141
6.3.4  中断约束 141
本章小结 142
关键术语 143
问题回顾 143
实践练习 144
多项选择题 144
第7章  系统设计:外设与接口 146
本章目标 146
7.1  8251串行IO USART通信接口 146
7.1.1  8251的编程 150
7.1.2  处理器和DCE的连接 154
7.2  8255并行端口接口 155
7.2.1  8255编程 160
7.2.2  连接8255到处理器 163
7.3  8257可编程DMA控制器 163
7.3.1  IO事务的方法 163
7.3.2  8257编程 166
7.3.3  连接到8086、8085、8096和
86HC11/12 169
7.4  可编程中断控制器8259 170
7.5  ADC电路接口 173
7.6  DAC电路接口 177
7.7  内部集成电路接口(I2C总线标准) 179
本章小结 181
关键术语 182
问题回顾 183
实践练习 184
多项选择题 185
第8章  系统设计:数字和模拟接口方法 187
本章目标 187
8.1  开关、小键盘和键盘接口 187
8.1.1  单键按键(开关)及其接口 187
8.1.2  按键阵列和它的接口 189
8.1.3  小键盘或者键盘(按键矩阵)和
它的接口 192
8.2  LED和LED阵列 194
8.2.1  LED和LED信号器 194
8.2.2  LED或信号器的阵列 194
8.2.3  7段十六进制数字的LED阵列 195
8.3  键盘/显示器控制器(8279) 197
8.4  文字数字式设备—显示系统和它的
接口 204
8.4.1  16段数码显示器 204
8.4.2  点阵显示器 205
8.4.3  LCD显示器 205
8.4.4  LCD显示器控制器 206
8.4.5  LCD显示控制器的接口连接 208
8.4.6  Hitachi 44780、Optrex DMC 16xx、DMC 16xxx、DMC 20xxx和DMC 24xxx系列兼容LCD控制器的编程 209
8.5  打印机接口 213
8.5.1  并行接口来连接打印机中的打印
控制器 213
8.5.2  串行RS232C接口来连接打印机中
的打印控制器 213
8.6  使用IEEE 488(GPIB)总线来实现
可编程指令接口 214
8.7  与Flash存储器连接的接口 216
8.8  其他一些接口 217
8.8.1  将MCU端口IO管脚与连接的物理
系统光隔离 217
8.8.2  与线圈的接口 217
8.8.3  与扩音器的接口 217
8.8.4  在音乐播放盒中与小键盘和扬声器
的接口 219
8.8.5  在机器人、打印机或工业驱动器中
与步进电机的接口 219
8.9  与大功率设备连接的接口 221
8.9.1  与输入和输出模块连接的接口 221
8.9.2  与大功率电机和加热器连接的
接口 222
8.9.3  使用高级微控制器来与功率器件
连接的接口 223
8.10  模拟输入接口 223
8.11  模拟输出接口 224
8.11.1  DC电机控制 224
8.11.2  伺服电机控制 225
8.12  光学电机转轴编码器 226
8.12.1  增量式转动编码器 226
8.12.2  旋转绝对角度编码器 227
8.13  工业控制 229
8.13.1  控制应用 229
8.13.2  基于MCU的刻度尺 229
8.14  工业过程控制系统 230
8.15  基于MCU测量仪表的原型 232
8.16  机器人和嵌入式控制 235
8.17  数字信号处理和数字滤波器 236
8.17.1  数字信号处理 236
8.17.2  数字滤波器 237
本章小结 237
关键术语 238
问题回顾 241
实践练习 242
多项选择题 244
第9章  编程框架:汇编语言和C语言
编程 246
本章目标 246
9.1  编程基础 246
9.1.1 寄存器 246
9.1.2  Intel 8051 8位PSW(程序状态字) 252
9.1.3  Intel 80x96 16位PSW(程序
状态字) 253
9.1.4  Motorola 8位68HC11 CCR(状态
条件码) 253
9.1.5  累加器 253
9.1.6  指向内存的寄存器(变址寄存器和
基址寄存器) 255
9.1.7  通用数据/地址寄存器和临时
内存或寄存器文件 256
9.1.8  位可访问寄存器 257
9.1.9  CPU寄存器结构的考虑 258
9.1.10  指令和寻址模式 259
9.2  CPU寄存器和内部RAM的结构 259
9.3  汇编语言编程 260
9.4 汇编程序 262
9.5  在中断期间保持CPU状态 265
9.6  传递参数 266
9.6.1  传递参数 266
9.6.2  将参数传递到堆栈中 267
9.7  控制结构 268
9.7.1  N路分支(决策块) 268
9.7.2  循环 269
9.8  运行时计算分支转移目的地 270
9.9  C语言编程和使用GNU工具 270
9.9.1  用C语言编程 271
9.9.2  内嵌代码 272
9.9.3  参数传递 273
9.9.4  程序编译过程和开发工具 273
9.9.5  GNU工具 274
本章小结 274
关键术语 275
问题回顾 277
实践练习 278
多项选择题 279
第10章  编程框架:软件构建模块 281
本章目标 281
10.1  堆栈 281
10.2  队列 286
10.3  表 292
10.3.1  表数据和软件构建模块 292
10.3.2  查询表 298
10.3.3  Hash表 300
10.4  字符串 301
10.4.1  字符串作为可变长度的字符
数组 302
10.4.2  将字符串作为程序存储中的常量
使用 305
10.5  状态机 306
10.6  按键处理 308
10.6.1  实际使用中的按键处理 308
10.6.2  监控按键事件并查找按键字符 309
本章小结 311
关键术语 312
问题回顾 314
实践练习 314
多项选择题 315
第11章  系统设计中的实时操作系统 317
本章目标 317
11.1  实时操作系统 317
11.1.1  多任务系统 317
11.1.2  多任务系统中的任务定义 319
11.1.3  多任务系统中的任务特性 319
11.1.4  实时操作系统 320
11.2  Keil RTX51 实时操作系统 322
11.2.1  RTX51的典型功能特性及其循环
调度的使用 322
11.2.2  RTX51全功能版中的抢占式调度 324
11.2.3  RTX51版本 325
11.2.4  RTX51精简版例程 326
11.2.5  RTX51全功能版例程 327
11.3  设计中RTOS的使用 328
本章小结 331
关键术语 331
问题回顾 332
实践练习 333
多项选择题 333
第12章  微控制器应用程序开发工具 335
本章目标 335
12.1  基于系统的微控制器开发阶段 335
12.2  软件开发周期和应用程序 336
12.3  软件开发工具 337
12.3.1  集成开发环境 338
12.3.2  RTOS 340
12.3.3  宏汇编器和反汇编器 340
12.3.4  编译器 340
12.3.5  库和库管理器 340
12.3.6  链接器/定位器和生成hex文件 340
12.3.7  调试器和模拟器 341
12.4  来自Keil公司的典型IDE版本和工具 341
12.4.1  IDE mVision2 341
12.4.2  C51编译器 344
12.4.3  A51汇编器 346
12.4.4  LIB51库管理器 347
12.4.5  BL51链接器/定位器 347
12.4.6  OC51分块目标文件转换器和OH51
目标文件到Hex文件转换器 347
12.5  仿真器和在线仿真器 348
12.6  目标板 349
12.7  设备编程器 350
本章小结 351
关键术语 351
问题回顾 353
实践练习 354
多项选择题 354
第13章  16位微控制器8096 80196系列 357
本章目标 357
13.1  硬件 357
13.1.1  80196系列MCU的CPU、地址和
数据总线概述 357
13.1.2  80196系统结构 359
13.2  Intel 80196系列MCU系统的存储器
映射 362
13.2.1  片内RAM 362
13.2.2  片内ROM/EPROM 365
13.2.3  外部程序/数据存储空间(PROM/RAM) 366
13.3  IO端口 366
13.4  可编程定时器及高速输出和输入
捕获 367
13.5  中断 368
13.5.1  不可屏蔽和可屏蔽中断源 368
13.5.2  中断服务 369
13.6  指令 369
本章小结 371
关键术语 371
问题回顾 372
实践练习 373
多项选择题 373
第14章  Motorola MC68HC11系列 375
本章目标 375
14.1  体系结构 375
14.1.1  内部架构和硬件概述 375
14.1.2  68HC11的架构 378
14.1.3  256字节地址空间内的寄存器片内RAM 380
14.1.4  存储器映射 383
14.2  寻址方式和指令 383
14.2.1  指令集使用的寻址方式 383
14.2.2  指令 384
14.3  接口方法 386
14.3.1  通用并行IO接口 386
14.3.2  存储器接口和附加IO端口 389
14.3.3  IO接口 390
14.3.4  串行IO设备 390
14.3.5  RS232和RS485 391
14.4  中断 391
14.4.1  不可屏蔽和可屏蔽中断源及复位 391
14.4.2  中断向量和优先级 391
14.4.3  中断服务 392
14.5  可编程定时器 392
14.5.1  时序信号的产生和度量 392
14.5.2  输入捕获 393
14.5.3  输出比较 393
14.5.4  频率度量 394
14.5.5  脉冲累加器计数器 394
14.6  模拟接口应用 394
本章小结 395
关键术语 395
问题回顾 397
实践练习 397
多项选择题 397
第15章  ARM 32位MCU:架构、编程和
开发工具 399
本章目标 399
15.1  16/32位处理器简介 399
15.2  ARM体系结构和组织 400
15.3  ARM/THUMB编程模式 404
15.4  ARM/THUMB指令集 406
15.4.1  32/16位ARM指令集 406
15.4.2  32位指令格式 410
15.4.3  Thumb指令集扩展 411
15.4.4  ARM异常处理 415
15.4.5  汇编和C编程(GNU工具) 417
15.4.6  ARM/Thumb配合工作 418
15.5  开发工具 418
本章小结 421
关键术语 422
问题回顾 423
实践练习 424
多项选择题 424
附录A 426
附录B 428
附录C 431
附录D 433
附录E 434
附录F 435
附录G 437
多项选择题答案 442
参考文献 444

教学资源推荐
作者: 黄建文 章鸣嬛 编著 孙德文 主审
参考读物推荐
作者: 李占英 姚丽君 梅彦平 等编著
作者: Jayaram. Bhasker
作者: (美)John D.Musa
作者: 丛霖 郑志强 编著