《微控制器原理与应用 第5版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(加)Peter Spasov著;李小洪译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302118000
  • 页数:579 页
图书介绍:本书以应用较广的摩托罗拉68HC11和68HC12为例,全面介绍理解和使用微控制器必须了解的背景知识。这两种微控制器易于使用,具备一个完整控制系统或嵌入式设备的基本特性。本书首先解释微控制器的应用和基本原理。接着介绍如何从编程者的角度进行开发。最后描述硬件内容,让读者了解到如何为控制应用将设备连接到外部世界。原英文版已经被美国伊利诺州立大学芝加哥分校、加拿大奎尔夫大学和科汀大学等院校采用。本书具有以下特色:同时提供C和汇编语言程序清单;学习目标、章未小结、例题和习题遍布各章;8个附录进一步强化关键主题;配套网站资源提供源代码和TRHSimll仿真程序的演示版。

第1部分 介绍微控制器技术 1

第1章 微控制器原理 1

1.1 微控制器是什么,有什么用处 1

目录 1

1.1.1 概况 2

1.1.2 术语和惯例 3

1.1.3 技术视角 3

1.2.1 早期的计算机 4

1.2.2 数字计算机 4

1.2 历史 4

1.1.4 特定视角 4

1.2.3 微处理器 5

1.2.4 微控制器 5

1.2.5 摩托罗拉MC68HC11 5

1.3 自上而下看微控制器系统 7

1.3.1 微控制器系统 7

1.3.2 微控制器单元(MCU) 8

1.3.3 中央处理单元(CPU) 10

1.4 存储器概念 11

1.4.1 结构 11

1.4.2 半导体存储器 13

1.5 微控制器存储器分配图 14

第2章 编程 16

2.1 汇编语言和其他编程语言 16

第2部分 软件 16

2.2 源代码、目标代码和汇编编译器 18

2.2.1 机器语言 18

2.2.2 汇编语言 20

2.2.3 例子 21

2.2.4 手工汇编 22

2.3 使用高级语言 23

2.3.1 一般概念 23

2.2.5 仿真器 23

2.3.2 微控制器的C语言 24

2.4 中央处理单元(CPU)的读取/执行操作 26

2.5 指令集和寻址模式 29

2.5.1 指令集参考 30

2.5.2 指令的类型 31

2.5.3 寻址模式 31

2.5.4 前缀字节 31

2.5.5 固有寻址模式 32

2.5.6 列表和执行惯例 34

2.5.7 停止程序的执行 36

2.5.8 立即寻址模式 36

2.5.9 直接寻址和扩展寻址模式 39

2.5.10 变址寻址模式 44

2.5.11 存储器堆惯例 51

2.5.12 寻址模式复习 52

2.6 基本操作 53

2.6.1 数据处理 53

2.6.2 算术 55

2.6.3 逻辑 56

2.6.4 其他操作 60

2.6.5 C中的基本算术和逻辑操作 60

2.7.1 2的补码和符号位 61

2.7 微控制器算术和条件代码寄存器 61

2.7.2 进位、溢出、零和半进位 63

2.7.3 二进制编码的十进制数(BCD)算术 69

2.7.4 乘法 70

2.7.5 整数除法 71

2.7.6 小数除法 71

2.7.7 浮点数 72

2.8 用循环和分支控制程序流程 74

2.8.1 流程控制 74

2.8.2 条件分支 76

2.8.3 相对寻址 81

2.8.4 二级存储器访问指令 82

2.8.5 跳转指令 84

2.8.6 浮动程序 85

2.9 总结 85

练习题 85

第3章 堆栈、子程序、中断和复位 92

3.1 堆栈介绍 92

3.2 使用堆栈保存数据 93

3.3 使用子程序 96

3.4 利用子程序进行模块化编程 101

3.4.1 自上而下解决问题 101

3.4.3 文件和使用子程序 105

3.4.2 子程序库 105

3.4.4 简单的参数传递 108

3.5 子程序操作 109

3.5.1 子程序对堆栈的使用 109

3.5.2 嵌套子程序说明 111

3.6 中断概念 112

3.6.1 复位 112

3.6.2 中断 114

3.7 中断矢量 116

3.8 中断操作 118

3.8.1 中断屏蔽和使能 118

3.8.2 寄存器入栈 119

3.9 硬件中断和复位 120

3.9.1 加电和外部复位 120

3.8.3 中断优先级和中断嵌套 120

3.9.2 其他处理器复位 121

3.9.3 非法操作码陷阱 122

3.9.4 不可屏蔽中断(XIRQ) 122

3.9.5 中断请求(IRQ) 126

3.9.6 中断设置 126

3.10 软件和CPU控制中断 127

3.10.1 软件中断(SWI) 127

3.9.7 中断查询 127

3.10.2 CPU控制和监视 128

3.11 死神之吻:堆栈溢出 128

3.12 总结 129

练习题 129

第4章 交叉汇编和程序开发 133

4.1 程序开发介绍 133

4.2 源代码的格式 134

4.3 代码和数据段 137

4.4 伪操作 138

4.5 分两步汇编的过程 144

4.6 汇编选项和预处理命令 148

4.7 十六进制和二进制文件 150

4.8 文档文件 153

4.9 模拟 156

4.10 仿真板和仿真 156

4.11 总结 158

练习题 159

第3部分 硬件 161

第5章 总线概念和操作模式 161

5.1 引言 161

5.2 总线 161

5.3 三态 163

5.4 地址译码 166

5.4.1 地址译码电路 166

5.4.2 一个地址译码设计的例子 167

5.4.3 局部和全部译码系统 169

5.5 操作模式 169

5.6 单芯片操作模式 170

5.7 扩展复用操作模式 171

5.8 特殊启动模式 172

5.9 特殊测试操作模式 173

5.10 系统电路 173

5.11 总结 175

练习题 176

6.1 半导体技术 177

6.1.1 集成电路 177

第6章 硬件 177

6.1.2 晶体管的原理 179

6.1.3 生产和设计硬件 180

6.1.4 HCMOS和其他的逻辑系列 180

6.1.5 CMOS和HCMOS防护 181

6.2 芯片指标 183

6.2.1 数据手册 183

6.2.3 建议的工作条件 184

6.2.4 直流(dc)电特性 184

6.2.2 最大额定值 184

6.2.5 交流(ac)电特性 186

6.3 存储器技术 187

6.3.1 回顾和概览 187

6.3.2 只读存储器(ROM) 187

6.3.3 随机访问存储器(RAM) 188

6.4 可擦除可编程只读存储器(EPROM) 188

6.5 闪存 191

6.6 电可擦除可编程只读擦除器(EEPROM) 191

6.6.1 起源和应用 191

6.6.2 寄存器块 191

6.6.4 修改EEPROM的编程向导 192

6.6.3 EEPROM操作和指标 192

6.7 配置控制寄存器(CONFIG) 196

6.8 RAM和I/O映射寄存器(INIT) 196

6.9 总结 197

练习题 197

第7章 时钟操作 199

7.1 时序图 199

7.2 系统时钟 200

7.3 总线操作 203

7.4 周期操作 207

7.5 示波器测试循环 209

7.6 逻辑分析仪 211

7.7 传输线的影响 213

7.8 总结 215

练习题 216

第4部分 接口连接 218

第8章 接口连接的概念 218

8.1 介绍 218

8.2 输入/输出子系统和寄存器 219

8.2.1 不同的子系统 219

8.2.2 I/O寄存器 220

8.2.3 I/O端口 220

8.2.4 端口替换单元 221

8.3 存储器或输入/输出映射 222

8.4 用轮询或中断接口 225

8.4.1 轮询I/O 225

8.4.2 中断I/O 226

8.5 并行I/O子系统 226

8.6 串行系统 227

8.6.1 同步串行I/O系统 228

8.6.2 异步串行I/O子系统 229

8.7 可编程计时器I/O子系统 230

8.8 模拟数字I/O子系统 231

8.9 I/O子系统寄存器 233

8.9.1 控制寄存器和系统配置 234

8.9.2 状态寄存器 235

8.9.3 数据寄存器 236

8.10 接口标准 237

8.11 总结 238

练习题 239

第9章 并行输入/输出 240

9.1 子系统的介绍 240

9.2 7 段(LED)显示输出 243

9.2.1 7段显示 243

9.2.2 7段代码 244

9.2.3 驱动7段显示器 245

9.2.4 软件查找7段代码 247

9.2.5 硬件解码器 247

9.2.6 多路复用显示器 247

9.3 液晶显示器(LCD) 249

9.3.1 操作 249

9.3.2 7段LCD 250

9.3.3 点阵LCD 250

9.3.4 LCD激励波形 254

9.4.1 矩阵键盘 255

9.4 键盘接口 255

9.4.2 7选2键盘解码 256

9.4.3 去抖动 259

9.4.4 矩阵键盘的软件驱动程序 260

9.4.5 使用硬件解码芯片 265

9.5 其他使用输入/输出的设备 266

9.6 选通输入/输出 266

9.6.1 输入选通 267

9.6.2 输出选通 268

9.6.3 配置 269

9.7 完整的握手输入/输出 271

9.7.1 输入握手 271

9.7.2 输出握手 274

9.8.1 Centronics并行接口 278

9.8 并行接口标准 278

9.8.2 IEEE-488通用仪器总线 284

9.8.3 小型计算机系统接口(SCSI) 287

9.9 总结 289

9.9.1 并行I/O子系统总结 289

9.9.2 并行I/O应用总结 291

练习题 292

10.1 异步通信系统 295

10.1.1 串行通信的第一步 295

第10章 串行子系统 295

10.1.2 协议和流控制 301

10.1.3 通信通道操作 301

10.1.4 modem 302

10.2 串行通信接口(SCI) 304

10.2.1 68HC11中的SCI子系统 304

10.2.2 发送操作 305

10.2.3 接收操作 306

10.2.4 SCI软件 306

10.3 SCI寄存器 312

10.3.1 串行通信数据寄存器(SCDR) 312

10.3.3 串行通信控制寄存器1(SCCRI) 313

10.3.2 波特率寄存器(BAUD) 313

10.3.4 串行通信控制寄存器2(SCCR2) 314

10.3.5 串行通信状态寄存器(SCSR) 317

10.3.6 接收错误 318

10.4 同步串行输入/输出 321

10.5 串行外围接口(SPI) 322

10.6 SPI拓扑结构和应用 323

10.6.1 总线拓扑 323

10.6.2 使用总线拓扑的微控制器I/O 324

10.6.3 级联拓扑 325

10.6.4 使用级联拓扑的微控制器I/O 326

10.6.5 SPI数据传输操作总结 327

10.7 SPI软件 328

10.7.1 配置和寄存器 328

10.7.2 主机SPI操作 331

10.7.3 从机SPI操作 332

10.7.4 采样驱动程序 333

10.7.5 把字长度为奇数的数据传输到外围设备 335

10.8 SPI错误处理 336

10.9 网络通信 336

10.9.1 物理层和数据链路层 337

10.9.2 互连网络和以太网 338

10.9.3 68HC11以太网接口 341

10.10 总结 343

10.10.1 异步通信 343

10.10.2 串行通信接口(SCI) 343

10.10.3 同步串行系统 344

10.10.4 串行外围接口(SPI) 344

练习题 344

第11章 可编程定时器操作 348

11.1 概述 348

11.2 输出比较器 352

11.2.1 操作顺序 353

11.2.2 单个脉冲的例子 355

11.2.3 方波和脉宽调制(PWM)输出 358

11.2.4 步进马达输出 363

11.3 输入捕捉 367

11.3.1 操作顺序 367

11.3.2 脉冲宽度的例子 368

11.3.3 周期(频率、速度)测量 370

11.3.4 长周期测量 374

11.4 脉冲累加器 376

11.4.1 功能描述 376

11.4.2 事件计数 377

11.4.3 门控时间累加器 380

11.5 实时中断 383

11.6 总结 386

练习题 387

第12章 模拟转换器子系统 389

12.1 概念和术语 389

12.2 变换器 392

12.2.1 传感器 392

12.2.2 信号调节 396

12.2.3 激励器 397

12.3 数模转换器 399

12.4 模数转换器 404

12.5 内嵌A/D子系统 407

12.6 总结 412

练习题 413

第5部分 微控制器世界 415

第13章 应用控制软件 415

13.1 布尔逻辑控制 415

13.2 序列发生器 417

13.3 序列机 420

13.4 模拟反馈控制 426

13.5 数字信号处理器 431

13.6 使用C语言 436

13.6.1 为什么使用C 437

13.6.2 控制例子 438

13.6.3 使用C语言的PID控制器 442

13.6.4 C函数库 444

13.6.5 用户自定义函数 445

13.6.6 幕后:使用堆栈 447

13.6.7 指针 450

13.6.8 中断编程 451

13.6.9 其他变量类型和特性 455

13.7 多任务 455

13.8.1 为什么要用它,它是什么 461

13.8 模糊逻辑 461

13.8.2 概述 462

13.8.3 建立一个知识库 463

13.8.4 模糊逻辑推理 469

13.8.5 开发以及其他 472

13.8.6 MC68HC12支持的模糊逻辑 473

13.9 总结 475

练习题 476

第14章 应用 479

14.1 汽车发动机控制 479

14.2 消费类电子:自动照相机 485

14.3 计算机外围设备:点阵打印机 491

14.4 社会和微控制器技术 499

第15章 8位微控制器系列 501

15.1 微控制器和半导体行业 501

15.2 摩托罗拉系列 503

15.2.1 68HC11系列 503

15.2.2 68HC05系列 504

15.2.3 68HC16系列 506

15.2.4 68HC08系列 508

15.2.5 68HC12系列 509

15.3 摩托罗拉的HCS12系列 511

15.4 其他系列的说明 512

15.5 选择微控制器 513

15.6 总结 516

附录A 指令集摘要 517

附录B 快速参考 530

附录C 更多的信息 538

附录D 惯例 541

附录E 头和库文件源程序清单 546

附录F 数字逻辑和二进制代码 549

附录G 基础波形 561

附录H 因特网和网站资源 563

术语表 569

缩写词 575