MC9S12XS单片机原理及嵌入式系统开发.pdf

MC9S12XS单片机原理及嵌入式系统开发.pdf
 

书籍描述

编辑推荐
《MC9S12XS单片机原理及嵌入式系统开发》选用全国大学生“飞思卡尔”杯智能汽车竞赛组委会推荐的MC9S12XS128,深入讲解基于MC9S12XS128的嵌入式系统设计,给出大量关于智能汽车竞赛的应用实例,配有教学课件,方便教学使用。

目录
第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 典型S12X系列单片机简介 14
2.3 MC9S12XS128简介 15
2.3.1 MC9S12XS128性能概述 15
2.3.2 MC9S12XS128内部结构、主要特性及引脚 15
2.3.3 MC9S12XS128引脚功能 24
2.4 CPU12(X)核 27
2.4.1 CPU12(X)核特性 27
2.4.2 编程模型 27
2.5 MC9S12XS128的存储器映射 30
2.6 MC9S12XS128内部锁相环模块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 S12X控制指令 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(ATDCTL1) 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章 MC9S12XS系列串行通信接口模块及其应用实例 234
11.1 SCI模块概述 234
11.2 SCI模块结构组成和特点 234
11.3 SCI模块寄存器 235
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL) 236
11.3.2 SCI控制寄存器1(SCICR1) 237
11.3.3 SCI可选状态寄存器1(SCIASR1) 238
11.3.4 SCI可选控制寄存器1(SCIACR1) 239
11.3.5 SCI可选控制寄存器2(SCIACR2) 240
11.3.6 SCI控制寄存器2(SCICR2) 240
11.3.7 SCI状态寄存器1(SCISR1) 241
11.3.8 SCI状态寄存器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.2 SPI模块结构组成和特点 252
12.3 SPI模块寄存器及设置 253
12.3.1 SPI控制寄存器1(SPICR1) 253
12.3.2 SPI控制寄存器2(SPICR2) 255
12.3.3 SPI波特率寄存器(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

文摘
版权页:

MC9S12XS单片机原理及嵌入式系统开发

插图:

MC9S12XS单片机原理及嵌入式系统开发

控制系统常常需要按照时间间隔(定时)或计数要求实现某些功能,因此,定时器/计数器往往是MCU内部的重要功能单元。虽然利用软件延时或中断方式也可实现定时或计数功能,但这会占用MCU的工作时间。使用专门的可编程定时器/计数器与MCU并行工作,可有效地提高MCU效率。可编程定时器/计数器在简单的软件编程设置下工作,根据需要的定时时间,用相关指令设置定时器/计数器的定时常数,并用指令启动定时器/计数器,则定时器/计数器开始工作。当定时/计数到预定值时,便自动产生一个定时输出。定时器/计数器开始工作后,MCU便可以去完成其他工作。这种方法最突出的优点是定时器/计数器不占用MCU时间,利用定时器/计数器产生的中断信号,还可以建立多任务环境,大大地提高了MCU效率。因此,这种方法在控制系统中得到了广泛的应用。
现在有很多专门的定时器/计数器接口芯片,但MCU内置的定时器/计数器可以简化应用系统设计。

内容简介
《MC9S12XS单片机原理及嵌入式系统开发》以全国大学生“飞思卡尔”杯智能汽车竞赛组委会推荐使用的飞思卡尔MC9S12XS128为主,详细讲述MC9S12XS128单片机的原理以及嵌入式系统的开发技术。《MC9S12XS单片机原理及嵌入式系统开发》首先介绍嵌入式系统和HCS12系列单片机的基础知识,对C语言的嵌入式编程进行了简要的说明,然后对MC9S12XS128的输入/输出端口、中断系统、脉宽调制、模/数转换、定时器、定时器、SPI和I2C等模块进行了详实的讲解,并给出相应的应用实例,最后针对全国大学生“飞思卡尔”杯智能汽车竞赛给出综合应用实例。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多