当前位置:首页 > 工业技术
Freescale 9S12十六位单片机原理及嵌入式开发技术
Freescale 9S12十六位单片机原理及嵌入式开发技术

Freescale 9S12十六位单片机原理及嵌入式开发技术PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:孙同景主编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111238836
  • 页数:468 页
图书介绍:本书详细地讨论了该芯片的指令系统,汇编语言程序设计。
《Freescale 9S12十六位单片机原理及嵌入式开发技术》目录

序 1

前言 1

第1章 Freescale单片机概述 1

1.1 Freescale 8位单片机 1

1.1.1 MC68HC08系列 2

1.1.2 MC68HCS08系列 5

1.1.3 MC9RS08系列 6

1.2 Freescale 16位单片机 6

1.2.1 Freescale 16位单片机命名参考规则 6

1.2.2 MC68HC12系列单片机 7

1.2.3 MC9S12系列单片机 8

1.2.4 MC9S12X系列单片机 13

1.3 Freescale 32位单片机 16

1.4 Freescale DSC型单片机 21

1.5 习题 24

第2章 MC9S12单片机的内核及片上资源 25

2.1 MC9S12单片机的内部结构及引脚功能 25

2.1.1 内部结构 25

2.1.2 引脚分配 27

2.1.3 CPU12内核结构 32

2.1.4 指令队列 34

2.1.5 堆栈 34

2.1.6 低功耗模式 35

2.2 MC9S12的存储器 36

2.2.1 存储空间分配 36

2.2.2 相关映射寄存器 37

2.3 寄存器区 40

2.4 复位、时钟和中断系统 54

2.4.1 复位模块 54

2.4.2 振荡器与时钟电路 56

2.4.3 中断系统 61

2.5 EEPROM和Flash的擦写操作 69

2.5.1 EEPROM的擦写操作 69

2.5.2 Flash的擦写操作 74

2.6 MC9S12片上外围功能模块简介 78

2.6.1 串行外设接口(SPI) 79

2.6.2 串行通信接口(SCI) 80

2.6.3 I2C总线接口 82

2.6.4 增强型捕捉定时器(ECT) 82

2.6.5 模数转换器(ATD) 84

2.6.6 脉宽调制模块(PWM ) 85

2.6.7 CAN控制器 85

2.7 MC9S12单片机最小系统的硬件设计 87

2.7.1 时钟电路 89

2.7.2 串行口的RS-232驱动电路 89

2.7.3 BDM接口电路及功能 89

2.7.4 电源电路 90

2.7.5 复位电路 90

2.7.6 LED调试显示 90

2.8 习题 90

第3章 MC9S12单片机的指令系统及汇编语言程序设计 91

3.1 指令格式及寻址方式 91

3.1.1 隐含寻址 91

3.1.2 立即数寻址 91

3.1.3 直接寻址 91

3.1.4 扩展寻址 91

3.1.5 相对寻址 92

3.1.6 变址寻址 92

3.1.7 累加器变址寻址 92

3.1.8 带自动加、减的5位偏移量的变址寻址 93

3.2 指令系统 93

3.2.1 加载、存储指令 93

3.2.2 传送、交换指令 95

3.2.3 MOVE指令 98

3.2.4 加法、减法指令 99

3.2.5 二-十进制调整指令 101

3.2.6 加一、减一指令 102

3.2.7 比较、测试指令 104

3.2.8 逻辑运算指令 105

3.2.9 清零、求补、取反指令 107

3.2.10 乘法、除法指令 109

3.2.11 乘加指令 112

3.2.12 位测试、位操作指令 113

3.2.13 移位、循环指令 114

3.2.14 模糊逻辑指令 118

3.2.15 最大值、最小值指令 122

3.2.16 查表差值指令 122

3.2.17 转移指令 124

3.2.18 循环控制指令 127

3.2.19 跳转、子程序调用指令 128

3.2.20 中断指令 129

3.2.21 堆栈操作指令 130

3.2.22 其他指令 131

3.3 汇编语言程序设计 132

3.3.1 常量的表示 133

3.3.2 常用汇编伪指令 133

3.3.3 宏定义 137

3.3.4 汇编程序设计举例 138

3.4 习题 143

第4章 MC9S12单片机开发工具—CodeWarrior软件 144

4.1 CodeWarrior的安装 144

4.1.1 系统需求 144

4.1.2 CodeWarrior的安装与卸载 144

4.2 CodeWarrior集成开发环境介绍 146

4.2.1 CodeWarrior的功能特点 146

4.2.2 集成环境与功能设置 146

4.3 用CodeWarrior开发MC9S12系列单片机 158

4.3.1 建立和打开工程 158

4.3.2 编写程序源代码 163

4.3.3 编译和链接 164

4.4 软件仿真调试方法 166

4.4.1 菜单栏 167

4.4.2 工具栏 167

4.4.3 子窗口 167

4.5 BDM调试方法 168

4.5.1 BDM的制作 168

4.5.2 安装BDM的USB驱动程序 170

4.5.3 BDM接头定义和使用 170

4.5.4 BDM调试过程 171

4.6 监控程序调试方法 173

4.6.1 监控程序的下载 174

4.6.2 使用监控程序进行调试 175

4.6.3 认识S格式文件 175

4.7 GCC调试工具 176

4.7.1 GCC简介 176

4.7.2 用GCC开发HCS12单片机程序 178

4.8 习题 179

第5章 MC9S12的C语言程序设计及调试 181

5.1 使用C语言的好处 181

5.2 C语言编程的常见问题 181

5.2.1 关于循环次数 181

5.2.2 赋值与相等 183

5.2.3 多文件C语言工程的头文件 183

5.2.4 运算符的优先级及括号的使用 183

5.2.5 位运算的左移与右移 184

5.2.6 有争议的goto语句 184

5.2.7 内部函数和外部函数 184

5.2.8 空指针null 184

5.2.9 程序设计风格 185

5.3 MC9S12的C编程与ANSIC的不同 185

5.3.1 变量 185

5.3.2 资源映射 189

5.3.3 C语言的中断 191

5.3.4 标准C库 191

5.3.5 C语言入口 191

5.3.6 程序的链接与定位 192

5.3.7 程序举例 193

5.4 习题 198

第6章 MC9S12单片机I/O接口和功能模块 199

6.1 通用I/O接口 199

6.1.1 I/O接口的功能及设置方法 199

6.1.2 程序举例 202

6.2 片内串行总线接口 203

6.2.1 SPI总线接口 203

6.2.2 SCI总线接口 212

6.2.3 I2C总线接口 218

6.3 增强型捕捉定时器模块 226

6.3.1 ECT模块的功能描述 227

6.3.2 ECT模块的寄存器设置 228

6.3.3 ECT的应用设置 244

6.3.4 ECT的应用举例 244

6.4 ATD模块 247

6.4.1 ATD模块的结构组成及特点 247

6.4.2 ATD模块的设置 249

6.4.3 ATD模块的应用设置 258

6.4.4 ATD模块的中断系统 260

6.4.5 ATD的应用举例 260

6.5 PWM模块 261

6.5.1 PWM模块的功能描述 262

6.5.2 PWM模块的寄存器设置 262

6.5.3 PWM模块的应用设置 272

6.5.4 PWM模块的复位和中断 277

6.5.5 PWM的应用举例 277

6.6 MSCAN模块 278

6.6.1 CAN的基本原理和应用领域 279

6.6.2 MSCAN的组成与工作过程 281

6.6.3 MSCAN的寄存器设置 282

6.6.4 MSCAN模块的功能描述 299

6.6.5 时间标记 304

6.6.6 运行模式 304

6.6.7 低能耗模式 304

6.6.8 MSCAN的中断 307

6.6.9 中断的确认 307

6.6.10 停止和等待模式的恢复 307

6.6.11 MSCAN的初始化 307

6.6.12 MSCAN中断接收数据的例子 308

6.7 习题 311

第7章 嵌入式实时操作系统μC/OS-Ⅱ 312

7.1 嵌入式系统和嵌入式操作系统 312

7.1.1 嵌入式系统的概念 312

7.1.2 嵌入式系统的基本要素 312

7.1.3 嵌入式系统体系结构 313

7.1.4 评价实时系统的指标 314

7.1.5 嵌入式系统的应用领域 314

7.2 嵌入式操作系统的几个主要概念 315

7.2.1 前后台系统 315

7.2.2 任务 315

7.2.3 上下文切换 315

7.2.4 内核 316

7.2.5 任务优先级 316

7.2.6 可重入型函数 318

7.2.7 调度 319

7.2.8 非占先式内核 320

7.2.9 占先式内核 321

7.2.10 代码临界区 321

7.2.11 时钟节拍 321

7.2.12 信号量 322

7.2.13 死锁 323

7.2.14 消息队列 323

7.2.15 中断 324

7.3 μC/OS-Ⅱ简介 324

7.3.1 公开源代码 325

7.3.2 占先式内核 325

7.3.3 基于优先级,不支持时间片轮转 325

7.3.4 对共享资源提供了保护机制 326

7.3.5 系统的可靠性 326

7.3.6 系统的开销 327

7.3.7 μC/OS-Ⅱ的移植 327

7.3.8 编译与启动 327

7.4 μC/OS-Ⅱ的任务 327

7.4.1 用户任务的结构 328

7.4.2 任务优先级 328

7.4.3 任务状态 329

7.4.4 任务堆栈 330

7.4.5 任务的数据结构—任务控制块 331

7.5 μC/OS-Ⅱ的任务调度 334

7.5.1 任务就绪表 334

7.5.2 获得就绪任务控制块的指针 338

7.5.3 任务的切换 339

7.5.4 调度器的上锁和开锁 339

7.6 任务操作函数 340

7.6.1 任务的创建 341

7.6.2 任务的删除 348

7.6.3 任务的挂起与“解挂” 349

7.6.4 改变任务的优先级 351

7.6.5 任务删除请求 352

7.6.6 任务堆栈检查 353

7.6.7 任务的查询 354

7.7 任务的同步和通信 356

7.7.1 任务间通信手段 356

7.7.2 事件控制块ECB 356

7.7.3 信号量 359

7.7.4 邮箱 364

7.7.5 消息队列 369

7.7.6 互斥量 376

7.8 事件标志组 379

7.9 μC/OS-Ⅱ中的时间管理 380

7.9.1 系统中断 380

7.9.2 时钟节拍 380

7.9.3 系统延时处理 381

7.9.4 系统时钟 384

7.9.5 时钟节拍函数 384

7.10 内存管理 385

7.11 多任务的启动 385

7.12 空闲任务 386

7.13 习题 386

第8章 μC/OS-Ⅱ的移植与使用 387

8.1 μC/OS-Ⅱ的文件体系结构 387

8.2 在MC9S12单片机上移植μC/OS-Ⅱ 387

8.2.1 移植需求 388

8.2.2 开发工具 388

8.3 μC/OS-Ⅱ在MC9S12单片机上移植的步骤 388

8.4 μC/OS-Ⅱ在MC9S12单片机上移植要点 389

8.4.1 不依赖编译器的数据类型 389

8.4.2 代码临界区函数OS_ENTER_CRITICAL和OS_EXIT_CRITICAL 390

8.4.3 定义函数OS_TASK_SW()执行任务切换 391

8.4.4 任务堆栈的增长方向 391

8.4.5 定义函数OSCtxSw实现用户级上下文切换,用汇编语言实现 391

8.4.6 定义函数OSIntCtxSw实现中断级任务切换 392

8.4.7 定义函数OSTickISR 393

8.4.8 定义OSTaskStkInit来初始化任务的堆栈 395

8.5 μC/OS-Ⅱ可裁剪性的实现 395

8.5.1 与函数相关的可裁剪常量 395

8.5.2 可裁剪常量的选择与设置 397

8.6 使用μC/OS-Ⅱ创建并运行任务 400

8.6.1 创建任务 400

8.6.2 主程序的编写 403

8.6.3 使用信号量进行共享资源的管理 404

8.6.4 使用邮箱进行任务间通信 405

8.6.5 使用消息队列进行任务间通信 406

8.7 习题 408

第9章 综合举例 409

9.1 MC9S12在直流电动机调速中的应用 409

9.1.1 直流电动机的速度控制方案 409

9.1.2 PID控制算法的调节规律 410

9.1.3 速度的设定以及速度的获取 411

9.1.4 直流电动机驱动模块 412

9.1.5 控制软件的编写 413

9.2 MC9S12单片机在汽油发动机控制中的应用 418

9.2.1 发动机的怠速控制 418

9.2.2 发动机的起动控制 424

9.2.3 发动机的加减速控制 427

9.2.4 发动机的停机控制 429

附录 432

附录A 汇编指令表与指令的机器码组织 432

附录B CPU12指令机器码表 461

附录C 基本实验系统原理图 467

参考文献 468

返回顶部