《微控制器 架构、编程、接口和系统设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(印)Raj Kamal著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111270300
  • 页数:446 页
图书介绍:本书全面介绍各种主流微处理器、控制与通信接口、嵌入式系统编程、嵌入式实时操作系统以及开发调试工具和系统设计等内容,系统完整地讨论了嵌入式系统开发的相关技术和知识,适合电学、电子学、计算机科学工程专业的本科生阅读。

第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、扩展8051 XA和8051 MX系列 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串行1O 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 1O事务的方法 163

7.3.2 8257编程 166

7.3.3连接到8086、 8085、 8096和86HC 11 / 12 169

7.4可编程中断控制器8259 170

7.5 ADC电路接口 173

7.6 DAC电路接口 177

7.7内部集成电路接口(12C总线标准) 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和DMC24xxx系列兼容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 80518位PSW(程序状态字) 252

9.1.3 Intel 80x96 16位PSW(程序状态字) 253

9.1.4 Motorola 8位68HC 11 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 μVision2 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