《嵌入式技术基础与实践》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:王宜怀,刘晓升编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:7302161836
  • 页数:438 页
图书介绍:本书介绍嵌入式技术的基础知识与应用实践。

第1部分 嵌入式系统入门导引 2

第1章 概述 2

1.1 嵌入式系统的含义与发展历史 2

1.1.1 嵌入式系统与单片机 2

1.1.2 MCU的发展简史 4

1.1.3 MCU在我国的应用与教学概况 5

1.2 嵌入式系统常用术语 6

1.2.1 与硬件相关的术语 6

1.2.2 与通信相关的术语 8

1.2.3 与功能模块相关的术语 8

1.2.4 与嵌入式软件相关的术语 9

1.3 嵌入式系统开发方法导引 10

1.3.1 嵌入式产品的一般构成 10

1.3.2 嵌入式产品的一般开发方法 11

1.4 嵌入式系统的特点与学习建议 13

1.4.1 嵌入式系统的特点 13

1.4.2 嵌入式系统的学习建议 15

练习题 16

第2章 Freescale HC08/S08/RS08 MCU概述 17

2.1 08系列单片机简介 17

2.1.1 Freescale单片机的命名规则 17

2.1.2 08系列单片机资源简介 18

2.2 HC08系列单片机 19

2.2.1 MC908GP32单片机的性能概述 20

2.2.2 内部结构简图与引脚功能 20

2.2.3 GP32最小系统 23

2.2.4 GP32存储器组织 24

2.3 HCS08系列单片机 25

2.3.1 HCS08系列MCU的基本特征 25

2.3.2 MC9S08GB60的内部结构简图与引脚功能 25

2.3.3 GB60存储器组织 28

2.4 RS08系列单片机 29

2.4.1 RS08系列MCU的基本特征 29

2.4.2 MC9RS08KA2的内部结构简图与引脚功能 29

2.4.3 KA2存储器组织 31

2.5 进一步讨论 32

2.5.1 内存大端、小端排序问题 32

2.5.2 嵌入式系统MCU的选择问题 32

练习题 33

第3章 HC08/S08/RS08 CPU 34

3.1 HC08 CPU基本构成 34

3.2 寻址方式 37

3.3 指令系统 40

3.3.1 数据传送类指令 42

3.3.2 算术运算类指令 44

3.3.3 逻辑运算类指令 48

3.3.4 位操作类指令 49

3.3.5 移位类指令 50

3.3.6 程序控制类指令 51

3.3.7 其他指令 54

3.4 HCS08 CPU与HC08 CPU的比较 55

3.5 RS08 CPU简介 56

3.5.1 RS08 CPU和RAM的寄存器 56

3.5.2 RS08分页方案 57

3.5.3 RS08的寻址方式 57

3.5.4 RS08的子程序调用 58

3.5.5 RS08的指令集 59

3.6 08汇编语言基础 60

3.6.1 08汇编源程序格式 60

3.6.2 08伪操作指令 62

练习题 64

第4章 通用I/O接口及第一个汇编工程 66

4.1 通用I/O接口的基本概念及连接方法 66

4.2 MC908GP32的通用I/O 67

4.2.1 A口 68

4.2.2 B口 69

4.2.3 C口、D口和E口 69

4.3 汇编工程文件组织与第一个汇编入门程序 70

4.4 进一步讨论 78

4.4.1 I/O口的输入和输出电流 78

4.4.2 端口上拉问题 79

练习题 81

第5章 08C语言及第一个08C工程 83

5.1 标准C语言的基本语法 83

5.1.1 数据类型 83

5.1.2 运算符 84

5.1.3 流程控制 85

5.1.4 函数 88

5.1.5 指针 89

5.1.6 结构体 91

5.1.7 共用体 92

5.1.8 位域 93

5.1.9 编译预处理 94

5.1.10 用typedef定义类型 95

5.2 08C语言的使用 96

5.2.1 寄存器和I/O口的使用 96

5.2.2 位操作方法 97

5.2.3 中断处理 98

5.2.4 08C的常用库函数 100

5.2.5 08C语言与汇编语言的混合编程 101

5.2.6 08C与标准C的其他不同之处 103

5.3 08C工程文件组织 103

5.4 进一步讨论 110

5.4.1 变量的定义 110

5.4.2 变量存储空间分配 111

5.4.3 数据类型的选用 113

5.4.4 位操作的其他实现方法 114

5.4.5 算法设计问题 115

练习题 116

第2部分 嵌入式系统的基础应用第6章 源程序编译及调试 118

6.1 MT-IDE集成开发套件 118

6.1.1 硬件平台 119

6.1.2 软件概述 122

6.2 MT-IDE集成开发环境的使用 123

6.2.1 运行第一个汇编工程实例 123

6.2.2 编译过程中产生的文件 126

6.2.3 新建一个汇编工程 128

6.2.4 运行第一个C工程实例 129

6.3 CodeWarrior软件简介 131

6.3.1 CodeWarrior的安装 132

6.3.2 新建工程 132

6.3.3 编译、链接与仿真调试 134

6.4 进一步讨论 135

6.4.1 MCU中Flash程序的保密机制 135

6.4.2 验证MCU中程序的正确性 135

练习题 136

第7章 串行通信接口(SCI) 137

7.1 异步串行通信的基础知识 137

7.1.1 基本概念 137

7.1.2 RS-232C总线标准 139

7.2 电平转换电路与SCI通用编程原理 141

7.2.1 SCI的外围硬件电路 141

7.2.2 SCI的基本编程原理 141

7.3 GP32 SCI模块寄存器 142

7.4 串行口初始化与收发编程的基本方法 146

7.5 串行通信通用函数与测试实例 148

7.5.1 串行通信子函数 148

7.5.2 查询方式工程文件 151

7.5.3 中断方式工程文件 152

7.5.4 通过PC方程序调试串行通信 155

7.6 串行通信进一步讨论 155

7.6.1 唤醒功能 156

7.6.2 协议和控制流问题 157

7.6.3 用通用I/O接口模拟SCI接收数据 157

练习题 160

第8章 键盘 161

8.1 键盘基本问题与GP32的键盘中断口 161

8.1.1 键盘模型及接口 161

8.1.2 键盘的基本问题 162

8.1.3 MC908GP32单片机的键盘中断模块 163

8.2 汇编语言键盘中断模块编程实例 165

8.2.1 按键识别与键盘定义子程序 165

8.2.2 键盘中断编程举例 169

8.3 08C语言键盘中断模块编程实例 171

8.3.1 按键识别与键盘定义函数 172

8.3.2 键盘中断编程08C语言举例 174

练习题 176

第9章 LCD与LED编程 177

9.1 数码管编程实例 177

9.1.1 扫描法LED显示编程原理 177

9.1.2 接口实例 178

9.1.3 数码管汇编语言实例 179

9.1.4 数码管08C语言实例 183

9.2 LCD概述 183

9.2.1 LCD的特点 183

9.2.2 LCD的分类 184

9.3 点阵字符型LCD的接口特性 185

9.3.1 点阵字符型液晶显示模块的基本特点 185

9.3.2 HD44780的引脚与时序 186

9.3.3 HD44780的编程结构 187

9.3.4 HD44780的指令集 188

9.4 点阵字符型LCD编程实例 190

9.4.1 LCD汇编编程工程实例 191

9.4.2 LCD 08C编程实例 196

练习题 197

第10章 SPI与模拟量转换 198

10.1 SPI的基本工作原理 198

10.1.1 SPI概述 198

10.1.2 SPI的数据传输 199

10.1.3 SPI模块的时序 199

10.2 GP32的SPI模块编程基础 201

10.2.1 SPI模块的引脚 201

10.2.2 SPI模块的寄存器 202

10.2.3 SPI编程基本方法 204

10.3 A/D和D/A转换的基本问题 205

10.4 MC908GP32内部A/D转换模块 206

10.4.1 GP32 A/D转换模块寄存器 207

10.4.2 A/D转换模块的基本编程方法 208

10.5 GP32 MCU A/D转换编程实例 209

10.5.1 A/D转换08C语言编程实例 209

10.5.2 A/D转换汇编语言编程实例 212

10.6 利用SPI进行高位A/D芯片的扩展 213

10.6.1 A/D芯片TLC2543概述 213

10.6.2 SPI模块与TLC2543的接口扩展 215

10.7 利用SPI进行高位D/A芯片的扩展 218

10.7.1 D/A芯片TLV5608概述 218

10.7.2 SPI模块与TLV5608的接口实现 219

10.7.3 扩展D/A的程序实现 219

10.8 常用传感器及采样电路简介 223

练习题 226

第11章 GB60的IIC模块及其应用 227

11.1 IIC总线概述 227

11.2 IIC总线工作原理 228

11.3 GB60的IIC模块的编程基础 232

11.3.1 GB60 IIC模块寄存器 232

11.3.2 GB60 IIC模块编程 236

11.4 IIC应用实例——GB60与PCF8563时钟芯片通信 242

11.4.1 PCF8563芯片简介 242

11.4.2 MCU使用专门的IIC模块与PCF8563时钟芯片通信 245

练习题 248

第12章 定时接口模块 249

12.1 计数器/定时器的基本工作原理 249

12.1.1 实现计数与定时的基本方法 249

12.1.2 MC908GP32 MCU的定时接口的基本原理概述 250

12.2 定时器模块的编程基础 252

12.2.1 定时器模块的3个基本寄存器 252

12.2.2 定时溢出中断汇编工程实例 254

12.2.3 定时溢出中断08C工程实例 259

12.3 定时器模块的输入捕捉功能 260

12.3.1 输入捕捉的基本含义 260

12.3.2 输入捕捉的寄存器 260

12.3.3 输入捕捉中断编程实例 262

12.4 定时器模块的输出比较功能 266

12.4.1 输出比较的基本含义 266

12.4.2 输出比较寄存器 267

12.4.3 不带缓冲输出比较与带缓冲的输出比较 268

12.5 定时器模块的脉宽调制输出功能 269

12.5.1 脉冲宽度调制器PWM 269

12.5.2 用定时器实现PWM 270

12.5.3 不带缓冲脉宽调制输出与带缓冲脉宽调制输出 270

12.5.4 PWM 08C工程实例 271

12.5.5 PWM汇编工程实例 274

练习题 274

第13章 Flash存储器 276

13.1 Flash存储器概述与编程模式 276

13.1.1 Flash存储器的基本特点与编程模式 277

13.1.2 HC08系列单片机Flash存储器的特点与编程模式 277

13.2 MC908GP32单片机Flash存储器编程方法 279

13.2.1 Flash存储器编程的基本概念 279

13.2.2 Flash存储器的编程寄存器 279

13.2.3 Flash存储器的编程过程 281

13.3 GP32单片机Flash在线编程汇编语言实例 283

13.3.1 Flash存储器的擦除及写入汇编子程序 283

13.3.2 Flash存储器在线编程汇编主程序及PC方程序 288

13.4 GP32单片机Flash在线编程08C语言实例 291

13.5 HCS08系列单片机Flash编程方法 292

13.5.1 Flash存储器的编程寄存器 292

13.5.2 Flash存储器的编程过程 295

13.5.3 Flash存储器的安全性 297

练习题 297

第14章 其他功能模块 299

14.1 CONFIG寄存器 299

14.2 时钟发生模块与锁相环 300

14.2.1 PLL锁相环 301

14.2.2 GP32的CGM结构及外部连接 302

14.2.3 CGM的编程基础 304

14.2.4 PLL参数计算与编程步骤 307

14.2.5 初始化及PLL编程实例 309

14.3 中断 311

14.3.1 中断源与中断向量地址 311

14.3.2 IRQ引脚中断 311

14.3.3 断点模块BRK与软件中断SWI指令 312

14.4 复位与系统集成模块 312

14.4.1 复位 312

14.4.2 系统集成模块 313

14.5 低功耗模式与看门狗功能 314

14.5.1 低功耗模式 314

14.5.2 系统正常操作监视模块 315

练习题 315

第3部分 嵌入式系统应用实例 318

第15章 实际应用系统设计实例 318

15.1 应用系统概要 318

15.1.1 应用系统概要 318

15.1.2 应用系统需求分析 318

15.1.3 应用系统设计分析 319

15.2 硬件设计 321

15.2.1 芯片选型 321

15.2.2 设计框图 322

15.2.3 MCU引脚汇总列表 323

15.2.4 各模块硬件分析与设计 324

15.3 软件设计 327

15.3.1 编写硬件驱动程序注意点 327

15.3.2 各模块头文件 327

15.3.3 各模块子程序的前导注释 329

练习题 331

第16章 JB8的USB 1.1模块与应用实例 332

16.1 USB概述 332

16.2 USB系统基本概念 333

16.2.1 USB主机 333

16.2.2 USB设备 334

16.3 USB物理特性 335

16.3.1 USB接口 335

16.3.2 USB信号 336

16.3.3 检测设备连接和速度 337

16.4 USB的通信协议 338

16.4.1 包 339

16.4.2 信息包格式 340

16.4.3 事务 341

16.4.4 USB传输类型 343

16.4.5 设备列举 344

16.5 JB8 USB模块的编程方法 348

16.5.1 MC68HC908JB8简介 349

16.5.2 USB功能模块 349

16.5.3 USB寄存器 352

16.5.4 USB中断 358

16.5.5 JB8 USB 1.1通信编程 358

16.6 PC方USB 1.1编程实例 365

16.6.1 PC方USB 1.1编程步骤 365

16.6.2 PC方USB 1.1 VB编程实例 370

练习题 372

第17章 GZ60的CAN模块及应用实例 373

17.1 CAN技术规范 373

17.1.1 CAN的基本概念 373

17.1.2 报文传输和帧结构 375

17.1.3 位定时与同步 379

17.2 MSCAN08模块 380

17.2.1 MSCAN08特性 380

17.2.2 外部引脚 380

17.2.3 报文存储结构 381

17.2.4 标识符校验滤波 381

17.2.5 中断 384

17.2.6 协议保护 384

17.3 MSCAN08通信接口硬件电路 385

17.4 MSCAN08模块的编程结构 385

17.4.1 缓冲区结构 386

17.4.2 控制寄存器 388

17.5 CAN通信子函数与测试实例 395

17.5.1 CAN通信子函数 395

17.5.2 CAN总线通信回环工作方式测试工程文件 400

17.5.3 CAN总线接口正常工作方式测试工程文件 402

练习题 405

附录A 寄存器及中断向量表 406

A.1 GP32寄存器及中断向量表 406

A.2 GB60寄存器及中断向量表 410

附录B CPU08按字母索引的指令系统 416

附录C HC08标准头文件实例 426

C.1 GP32汇编语言用头文件 426

C.2 GP32 08C语言用头文件 428

附录D 08C函数库 431

附录E Freescale常用封装形式及实际大小 435

附录F 苏州大学Freescale嵌入式系统实验室已有核心板及评估板 436

附录G 本书配套教学资料目录结构 437

参考文献 438