第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嵌入式系统软件 4
1.4嵌入式操作系统 5
1.4.1嵌入式操作系统的种类 5
1.4.2嵌入式操作系统的发展 5
1.4.3使用实时操作系统的必要性 6
1.4.4实时操作系统的优缺点 6
1.5嵌入式系统开发方法 6
第2章Freescale HCS12和HCS12X系列单片机简介 8
2.1 HCS12系列单片机概述 8
2.1.1 HCS12系列单片机的命名规则 8
2.1.2 HCS12系列单片机简介 9
2.2 HCS12X系列单片机概述 10
2.2.1 HCS12X系列单片机主要特点 10
2.2.2 XGATE协处理器与主处理器的关系 11
2.2.3 XGATE的基本特性 12
2.2.4典型S 12X系列单片机简介 14
2.3 MC9S 12XS 128简介 15
2.3.1 MC9S12XS128性能概述 15
2.3.2 MC9S 12XS 128内部结构、主要特性及引脚 15
2.3.3 MC9S12XS128引脚功能 24
2.4 CPU12(X)核 27
2.4.1 CPU12(X)核特性 27
2.4.2编程模型 27
2.5 MC9S 12XS 128的存储器映射 30
2.6 MC9S 12XS 128内部锁相环模块PLL 31
2.6.1 CRG时钟合成寄存器(SYNR) 32
2.6.2 CRG时钟参考分频寄存器(REFDV) 32
2.6.3 CRG时钟后分频寄存器(POSTDIV) 33
2.6.4 CRG标志寄存器(CRGFLG) 33
2.6.5 CRG时钟选择寄存器(CLKSEL) 34
2.6.6 CRG IPLL控制寄存器(PLLCTL) 35
2.6.7 CRG中断使能寄存器(CRGINT) 36
2.6.8 CRG IPLL模块应用实例 36
第3章S12X指令系统 38
3.1概述 38
3.2 S12X汇编指令的格式和符号说明 38
3.2.1操作码和操作数 39
3.2.2数据类型 39
3.2.3数据表示方法 39
3.2.4寄存器和存储器表示法 40
3.3寻址方式(Addressing Mode) 40
3.3.1隐含/固有寻址(Inherent Addressing, INH) 40
3.3.2立即寻址(Immediate Addressing, IMM) 41
3.3.3直接寻址(Direct Addressing, DIR) 42
3.3.4扩展寻址(Extended Addressing, EXT) 42
3.3.5相对寻址(Relative Addressing, REL) 43
3.3.6变址寻址(Indexed Addressing, IDX) 44
3.3.7全局寻址(Global Page Index Register) 50
3.4 S12X汇编指令系统 50
3.4.1数据传送指令 50
3.4.2算术运算指令 58
3.4.3逻辑运算指令 66
3.4.4高级函数指令 71
3.4.5程序控制指令 74
3.4.6 S 12X控制指令 77
3.5汇编程序伪指令 79
3.5.1段定义指令 79
3.5.2常量赋值指令 81
3.5.3常量存储指令 82
3.5.4分配变量指令 84
3.5.5汇编控制指令 85
3.5.6符号链接指令 85
第4章C语言的嵌入式编程 87
4.1编程语言的选择 87
4.2 C语言编程元素 88
4.2.1全局变量和局部变量 88
4.2.2头文件 88
4.2.3编译预处理 89
4.2.4数据类型 91
4.2.5运算符 93
4.2.6指针 95
4.2.7条件语句、循环语句及无限循环语句 95
4.2.8函数 98
4.3 C程序编译器与交叉编译器 101
4.4 CodeWarrior软件简介 102
4.4.1 CodeWarrior的安装 102
4.4.2 CodeWarrior使用简介 104
第5章MC9S12XS输入/输出端口模块及其应用实例 110
5.1输入/输出端口简介 110
5.2输入/输出端口寄存器及设置 110
5.2.1 PORTA、 PORTB、 PORTE和PORTK 112
5.2.2 PORTT、 PORTS、 PORTM、 PORTP、 PORTH和PORTJ 114
5.2.3 A/D端口用做数字I/O口 116
5.3输入/输出端口应用实例 118
5.3.1控制输出设备LED实例 118
5.3.2读取输入设备拨码开关状态实例 120
5.4输入/输出端口在智能车系统中的应用 121
5.4.1键盘接口设计 121
5.4.2 LED显示接口设计 122
5.4.3 LCD显示接口设计 124
第6章MC9S12系列中断系统 129
6.1 MC9S12系列中断系统概述 129
6.1.1复位 130
6.1.2中断 131
6.2 MC9S12系列中断优先级 132
6.3 MC9S12系列中断程序应用实例 135
第7章MC9S12XS系列脉宽调制模块及其应用实例 139
7.1 PWM模块概述 139
7.2 PWM模块结构组成和特点 139
7.3 PWM模块寄存器及设置 140
7.3.1 PWM使能寄存器(PWME) 141
7.3.2 PWM极性寄存器(PWMPOL ) 142
7.3.3 PWM时钟选择寄存器(PWMCLK) 143
7.3.4 PWM预分频时钟选择寄存器(PWMPRCLK) 144
7.3.5 PWM居中对齐使能寄存器(PWMCAE) 145
7.3.6 PWM控制寄存器(PWMCTL ) 146
7.3.7 PWM比例因子A寄存器(PWMSCLA) 148
7.3.8 PWM比例因子B寄存器(PWMSCLB) 148
7.3.9 PWM通道计数器(PWMCNT ) 149
7.3.10 PWM通道周期寄存器(PWMPER) 149
7.3.11 PWM通道占空比寄存器(PWMDTY) 150
7.3.12 PWM关闭寄存器(PWMSDN) 152
7.4 PWM模块应用实例 153
7.5 PWM模块在智能车系统中的应用 155
7.5.1应用PWM模块控制直流电动机 155
7.5.2应用PWM模块控制伺服电动机 157
第8章MC9S12XS128模/数转换模块及其应用实例 159
8.1 ATD模块概述 159
8.2 ATD模块结构组成和特点 159
8.3 ATD模块寄存器及设置 161
8.3.1 ATD控制寄存器0(ATDCTL0) 161
8.3.2 ATD控制寄存器1 (ATDCTL 1) 162
8.3.3 ATD控制寄存器2 (ATDCTL2 ) 164
8.3.4 ATD控制寄存器3 (ATDCTL3) 165
8.3.5 ATD控制寄存器4 (ATDCTL4) 167
8.3.6 ATD控制寄存器5 (ATDCTL5) 167
8.3.7 ATD状态寄存器0(ATDSTAT0) 169
8.3.8 ATD比较使能寄存器(ATDCMPE ) 170
8.3.9 ATD状态寄存器2 (ATDSTAT2) 170
8.3.10 ATD输入使能寄存器(ATDDIEN) 171
8.3.11 ATD比较大于寄存器(ATDCMPHT) 171
8.3.12 ATD转换结果寄存器(ATDDRn ) 172
8.4 ATD模块应用实例 173
8.5 ATD模块在智能车系统中的应用 174
8.5.1 ATD模块在基于光电管路径识别方案中的应用 174
8.5.2 ATD模块在基于摄像头路径识别方案中的应用 176
第9章MC9S12XS128定时器模块及其应用实例 180
9.1 TIM模块概述 181
9.2 TIM模块结构和工作原理 181
9.2.1 TIM模块结构 181
9.2.2 TIM模块工作原理 181
9.2.3 TIM模块寄存器 184
9.2.4 TIM模块中断系统 186
9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置 187
9.3.1自由运行主定时器与时钟频率设置 187
9.3.2 TIM模块基本寄存器及设置 188
9.4 TIM模块的输入捕捉功能及寄存器设置 191
9.4.1 TIM模块输入捕捉功能 192
9.4.2与输入捕捉功能相关的寄存器及设置 192
9.5 TIM模块的输出比较功能及寄存器设置 195
9.5.1 TIM模块输出比较功能 195
9.5.2与输出比较功能相关的寄存器及设置 196
9.6 TIM模块的脉冲累加器功能及寄存器设置 199
9.6.1 TIM模块脉冲累加器功能 199
9.6.2与脉冲累加器相关的寄存器及设置 201
9.7 TIM模块应用实例 203
9.7.1输入捕捉功能应用实例 203
9.7.2输出比较功能应用实例 205
9.7.3脉冲累加器功能应用实例 211
9.8 TIM模块在智能车系统中的应用 215
9.8.1 TIM模块输入捕捉功能在智能车系统中的应用 215
9.8.2 TIM模块脉冲累加器功能在智能车系统中的应用 215
第10章MC9S12XS128周期性中断定时器模块及其应用实例 217
10.1 PIT模块概述 217
10.2 PIT模块结构和工作原理 217
10.2.1 PIT模块结构 217
10.2.2 PIT模块工作原理 218
10.3 PIT模块寄存器及设置 220
10.3.1 PIT控制和强制装载微定时寄存器(PITCFLMT) 221
10.3.2 PIT强制装载定时寄存器(PITFLT) 221
10.3.3 PIT通道使能寄存器(PITCE) 222
10.3.4 PIT复用寄存器(PITMUX) 222
10.3.5 PIT中断使能寄存器(PITINTE) 222
10.3.6 PIT超时标志寄存器(PITTF ) 223
10.3.7 PIT微定时装载寄存器0和1 (PITMTLD0/1) 223
10.3.8 PIT装载寄存器0~3 (PITLD0~3) 223
10.3.9 PIT计数寄存器0~3 (PITCNT0~3) 224
10.4 PIT模块应用实例 224
10.5 PIT模块在智能车系统中的应用 226
第11章MCgS12XS系列串行通信接口模块及其应用实例 234
11.1 SCI模块概述 234
11.2 SCI模块结构组成和特点 234
11.3 SCI模块寄存器 235
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL) 236
11.3.2 SCT控制寄存器1(SCICR1) 237
11.3.3 SCT可选状态寄存器1(SCIASR1) 238
11.3.4 SCI可选控制寄存器1(SCIACR1) 239
11.3.5 SCT可选控制寄存器2(SCIACR2) 240
11.3.6 SCI控制寄存器2(SCICR2) 240
11.3.7 SCT状态寄存器1(SCISR1) 241
11.3.8 SCT状态寄存器2(SCISR2) 243
11.3.9 SCI数据寄存器(SCIDRH,SCIDRL) 244
11.4 SCI模块应用实例 244
11.5 SCI模块在智能车系统中的应用 248
第12章MC9S12系列SPI和I2C模块及其应用实例 251
12.1 SPI模块 251
12.2SPI模块结构组成和特点 252
12.3 SPI模块寄存器及设置 253
12.3.1 SPI控制寄存器1(SPICR1) 253
12.3.2 SPI控制寄存器2(SPICR2) 255
12.3.3SPI波特率寄存器(SPIBR) 256
12.3.4 SPI状态寄存器(SPISR) 258
12.3.5 SPI数据寄存器(SPIDR:SPIDRH,SPIDRL) 260
12.4 SPI模块应用实例 260
12.5 I2C总线接口 262
12.5.1 I2C总线概述 262
12.5.2 I2C总线工作原理 263
12.6 I2C模块结构组成和特点 265
12.7 I2C模块寄存器及设置 266
12.7.1 I2C总线地址寄存器(IBAD) 267
12.7.2 I2C总线分频寄存器(IBFD) 267
12.7.3 I2C总线控制寄存器(IBCR) 268
12.7.4 I2C总线状态寄存器(IBSR) 269
12.7.5 I2C总线数据输入/输出寄存器(IBDR) 271
12.8 I2C模块在智能车系统中的应用 271
第13章 综合应用实例 275
13.1概述 275
13.2综合应用实例1 275
13.2.1系统组成 275
13.2.2 A/D输入接口 276
13.2.3显示接口 276
13.2.4通信接口 277
13.2.5应用软件设计 277
13.2.6软件流程图 281
13.3综合应用实例2 283
13.3.1系统组成 283
13.3.2 MircoSD卡接口 283
13.3.3通信接口 284
13.3.4 SD卡工作电源 284
13.3.5应用软件设计 284
13.3.6 MircoSD卡应用软件设计 286
13.3.7软件流程图 288
13.4综合应用实例3 290
13.4.1系统组成 291
13.4.2 A/D输入接口 291
13.4.3显示接口 291
13.4.4直流电动机驱动接口 291
13.4.5测速输入信号调理电路 293
13.4.6伺服电动机驱动接口 293
13.4.7应用软件设计 293
13.4.8软件流程图 295
13.5综合应用实例4 297
13.5.1系统组成 297
13.5.2起始线信号检测方法 297
13.5.3应用软件设计 299
13.5.4软件流程图 300
附录A S12汇编指令系统汇总表 303
附录B S12汇编指令系统汇总表解释说明 317
附录C S12汇编指令机器码汇总表 322
附录D S12X汇编指令机器码汇总表解释说明 326
附录E HS12实验开发平台 327
参考文献 331