第1章 嵌入式系统简介 1
1.1 嵌入式系统 1
1.1.1 系统 1
1.1.2 嵌入式系统 1
1.1.3 嵌入式系统的分类 2
1.2 嵌入式系统硬件 3
1.2.1 嵌入式微处理器 3
1.2.2 嵌入式微控制器 3
1.2.3 嵌入式DSP处理器 4
1.2.4 嵌入式片上系统 4
1.3 嵌入式系统软件 5
1.4 嵌入式操作系统 5
1.4.1 嵌入式操作系统的种类 5
1.4.2 嵌入式操作系统的发展 5
1.4.3 使用实时操作系统的必要性 6
1.4.4 实时操作系统的优缺点 7
1.5 嵌入式系统开发方法 7
第2章 Freescale HCS12和HCS12X系列单片机简介 9
2.1 HCS 12系列单片机概述 9
2.1.1 HCS12系列单片机的命名规则 9
2.1.2 HCS12系列单片机简介 10
2.2 HCS12X系列单片机概述 11
2.2.1 HCS12X系列单片机主要特点 11
2.2.2 XGATE协处理器与主处理器的关系 12
2.2.3 XGATE的基本特性 13
2.2.4 典型S12X系列单片机简介 15
2.3 MC9S12DG128简介 16
2.3.1 MC9S12DG128性能概述 16
2.3.2 MC9S 12DG128内部结构及引脚 16
2.3.3 MC9S12DG128引脚功能 19
2.4 MC9S12DG128的运行模式 22
2.4.1 普通运行模式 22
2.4.2 特殊运行模式 23
2.5 MC9S12DG128的存储器映射 23
2.5.1 基本内存空间分配 23
2.5.2 存空间的扩展 25
2.5.3 相关寄存器 25
第3章 S12指令系统 28
3.1 概述 28
3.2 S12汇编指令的格式和符号说明 28
3.2.1 操作码和操作数 29
3.2.2 数据类型 29
3.2.3 数据表示方法 30
3.2.4 寄存器和存储器表示法 30
3.3 寻址方式 30
3.3.1 隐含/固有寻址 31
3.3.2 立即寻址 31
3.3.3 直接寻址 32
3.3.4 扩展寻址 33
3.3.5 相对寻址 35
3.3.6 变址寻址 36
3.4 S12汇编指令系统 43
3.4.1 数据传送指令 44
3.4.2 算术运算指令 52
3.4.3 逻辑运算指令 60
3.4.4 高级函数指令 64
3.4.5 程序控制指令 67
3.4.6 S12控制指令 71
3.4.7 模糊运算指令 73
3.5 汇编程序伪指令 80
3.5.1 段定义指令 80
3.5.2 常量赋值指令 82
3.5.3 常量存储指令 84
3.5.4 分配变量指令 87
3.5.5 汇编控制指令 88
3.5.6 符号链接指令 89
第4章 C语言的嵌入式编程 91
4.1 编程语言的选择 91
4.2 C语言编程元素 92
4.2.1 全局变量和局部变量 92
4.2.2 头文件 93
4.2.3 编译预处理 93
4.2.4 数据类型 96
4.2.5 运算符 98
4.2.6 指针 100
4.2.7 条件语句、循环语句及无限循环语句 101
4.2.8 函数 104
4.3 C程序编译器与交叉编译器 108
4.4 CodeWarrior软件简介 110
4.4.1 CodeWarrior的安装 110
4.4.2 CodeWarrior使用简介 112
第5章 S12输入/输出端口模块及其应用实例 117
5.1 输入/输出端口简介 117
5.2 输入/输出端口寄存器及设置 118
5.2.1 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ 118
5.2.2 PORTA、PORTB、PORTE和PORTK 122
5.3 输入/输出端口基础应用实例 124
5.3.1 输出设备LED控制实例 124
5.3.2 输入设备拨码开关读取实例&. 126
5.4 智能车系统中输入/输出端口的应用 127
5.4.1 键盘接口设计 127
5.4.2 LED显示接口设计 129
5.4.3 LCD显示接口设计 131
第6章 S12中断系统 137
6.1 S12中断系统概述 137
6.1.1 S12单片机的复位&. 138
6.1.2 S12单片机的中断 139
6.2 S12中断优先级 140
6.3 S12中断程序设计实例 144
第7章 S12脉宽调制模块及其应用实例 148
7.1 PWM模块概述 148
7.2 PWM模块结构组成和特点 148
7.3 PWM模块寄存器及设置 149
7.3.1 PWM允许寄存器 150
7.3.2 PWM极性寄存器 151
7.3.3 PWM时钟选择寄存器 152
7.3.4 PWM预分频时钟选择寄存器 153
7.3.5 PWM居中对齐允许寄存器 154
7.3.6 PWM控制寄存器 155
7.3.7 PWM比例因子寄存器A 157
7.3.8 PWM比例因子寄存器B 158
7.3.9 PWM通道计数寄存器 158
7.3.10 PWM通道周期寄存器 159
7.3.11 PWM通道占空比寄存器 159
7.3.12 PWM关断寄存器 161
7.4 PWM模块基础应用实例 162
7.5 智能车系统中PWM模块的应用 165
7.5.1 应用PWM模块控制直流电动机 165
7.5.2 应用PWM模块控制伺服电动机 169
第8章 S12模/数转换模块及其应用实例 171
8.1 ATD模块概述 171
8.2 ATD模块结构组成和特点 171
8.3 ATD模块寄存器及设置 172
8.3.1 ATD控制寄存器2 173
8.3.2 ATD控制寄存器3 174
8.3.3 ATD控制寄存器4 175
8.3.4 ATD控制寄存器5 176
8.3.5 ATD状态寄存器0 178
8.3.6 ATD测试寄存器1 179
8.3.7 ATD状态寄存器1 180
8.3.8 ATD输入使能寄存器 180
8.3.9 端口数据寄存器 181
8.3.10 ATD转换结果寄存器 181
8.4 ATD模块基础应用实例 182
8.5 智能车系统中ATD模块的应用 184
8.5.1 ATD模块在基于光电管路径识别方案中的应用 184
8.5.2 ATD模块在基于摄像头路径识别方案中的应用 186
第9章 S12增强型定时器模块及其应用实例 190
9.1 ECT模块概述 191
9.1.1 ECT的基本组成与工作原理 191
9.1.2 模块内存映射 195
9.1.3 ECT模块的中断系统 198
9.2 ECT模块的自由运行计数器及定时器基本寄存器 199
9.2.1 自由运行主定时器与时钟频率设置 199
9.2.2 ECT模块的基本寄存器 199
9.3 ECT模块的输入捕捉功能及寄存器设置 202
9.3.1 ECT模块的输入捕捉功能 203
9.3.2 与输入捕捉功能相关的寄存器 208
9.4 ECT模块的输出比较功能及寄存器设置 214
9.4.1 ECT模块的输出比较功能 214
9.4.2 与输出比较功能相关的寄存器 215
9.5 ECT模块的脉冲累加器功能及寄存器设置 218
9.5.1 ECT模块的脉冲累加器功能 218
9.5.2 与脉冲累加器相关的寄存器 223
9.6 ECT模块的模数递减计数器功能及寄存器设置 229
9.6.1 ECT模块的模数递减计数器功能 229
9.6.2 与模数递减计数器相关的寄存器 230
9.7 ECT模块基础应用实例 233
9.7.1 输入捕捉功能应用实例 233
9.7.2 输出比较功能应用实例 235
9.7.3 脉冲累加器功能应用实例 243
9.7.4 模数递减计数器功能应用实例 248
9.8 智能车系统中ECT模块的应用 250
9.8.1 ECT模块的输入捕捉功能在智能车系统中的应用 250
9.8.2 ECT模块的脉冲累加器功能在智能车系统中的应用 250
9.8.3 ECT模块的模数递减器功能在智能车系统中的应用 252
第10章 S12串行通信接口模块及其应用实例 253
10.1 SCI模块概述 253
10.2 SCI模块结构组成和特点 253
10.3 SCI模块寄存器 254
10.3.1 SCI波特率寄存器 255
10.3.2 SCI控制寄存器1 255
10.3.3 SCI控制寄存器2 257
10.3.4 SCI状态寄存器1 258
10.3.5 SCI状态寄存器2 260
10.3.6 SCI数据寄存器 260
10.4 SCI模块基础应用实例 261
10.5 智能车系统中SCI模块的应用 264
第11章 S12 SPI和I2C模块及其应用实例 268
11.1 SPI模块 268
11.2 SPI模块结构组成和特点 269
11.3 SPI模块寄存器及设置 270
11.3.1 SPI控制寄存器1 270
11.3.2 SPI控制寄存器2 272
11.3.3 SPI波特率寄存器 273
11.3.4 SPI状态寄存器 275
11.3.5 SPI数据寄存器 276
11.4 SPI模块基础应用实例 277
11.5 I2C总线接口 280
11.5.1 I2C总线概述 280
11.5.2 I2C总线工作原理 281
11.6 I2C模块结构组成和特点 283
11.7 I2C模块寄存器及设置 284
11.7.1 I2C总线地址寄存器 284
11.7.2 I2C总线分频寄存器 285
11.7.3 I2C总线控制寄存器 286
11.7.4 I2C总线状态寄存器 287
11.7.5 I2C总线数据输入/输出寄存器 289
11.8 I2C模块在智能车系统中的应用 289
第12章 μC/OS-Ⅱ在S12上的移植与应用 293
12.1 实时操作系统的概述 293
12.1.1 实时操作系统基本概念 294
12.1.2 RTOS常用术语 294
12.2 嵌入式实时操作系统μC/OS-Ⅱ 296
12.2.1 μC/OS-Ⅱ概述 296
12.2.2 μC/OS-Ⅱ与其他几种RTOS的比较 298
12.3 μC/OS-Ⅱ的任务 300
12.3.1 μC/OS-Ⅱ中的任务 300
12.3.2 任务的划分 301
12.4 μC/OS-Ⅱ在MC9S12DG128上的移植 301
12.4.1 定义内核大小和功能 303
12.4.2 与硬件相关代码 307
12.4.3 立自己的任务 315
附录A S12汇编指令系统汇总表 317
附录B S12汇编指令系统汇总表解释说明 331
附录C S12汇编指令机器码汇总表 336
附录D S12汇编指令机器码汇总表解释说明 340
附录E HS12实验开发平台 341
参考文献 344