标题：Freescale系列单片机常用模块与综合系统设计实例精讲
图书信息
书名：Freescale系列单片机常用模块与综合系统设计实例精讲  作者：张跃常  戴卫恒 编著
ISBN 978-7-121-11090-0
出版日期：2010年7月 
定价：49.00元（含光盘1张）
开本：16开 
页码：368页
内 容 简 介
全书共分3篇24章：第一篇为基础知识篇，简要介绍了Freescale单片机的硬件结构与工作原理、指令系统、C语言开发基础及集成开发环境，引导读者入门；第二篇为常用模块设计实例篇，通过18个模块实例，详细介绍了Freescale单片机的各种开发技术和使用技巧，这些模块实例基础、实用，易学易懂，全部调试通过，几乎涵盖了Freescale单片机所有的开发技术；第三篇为综合系统设计实例篇，通过2个复杂项目，对前面的Freescale单片机常用模块进行了综合应用设计，经过此篇学习，读者的Freescale单片机设计能力将迅速提升，步入高级工程师的行列。 
本书配有一张光盘，包含了全书所有实例的硬件原理图和程序源代码，方便读者学习和使用。本书的读者对象为Freescale单片机的初、中级用户，特别适合计算机、自动化、电子及硬件等相关专业的大学生及从事Freescale单片机开发的工程师阅读使用。
前  言
Freescale系列单片机是飞思卡尔公司开发的旗舰产品。该公司原为摩托罗拉的半导体部，是全球最大的半导体公司之一，在我国的北京、上海、苏州和天津设有4个研发中心，在国内二十余所重点大学校园中建立了Freescale单片机实验室与培训合作机构。Freescale系列单片机逐渐成为全球电子产品市场的生力军。但目前市场上Freescale单片机类的图书比较少，而且以介绍编程语言和基础原理为主，而对应用开发的实例内容涉及甚少，从常用模块到综合应用系统的提高实例更是处于空白状态。本书的出版正是为了填补这种空白。
本书内容安排
全书基于Freescale的主流芯片HCS08而编写，通过实例精讲的形式，详细介绍了Freescale单片机常用模块与综合系统设计的方法与技巧。全书共分3篇24章，具体如下：
第一篇为基础知识篇，简要介绍了Freescale单片机的硬件结构与工作原理、指令系统、C语言开发基础及常用开发工具，引导读者熟悉Freescale单片机的硬件特点，掌握编程入门。
第二篇为常用模块设计实例篇，结合18个模块实例，详细介绍了Freescale单片机的各种开发技术和使用技巧。这些模块实例基础、实用，易学易懂，全部调试通过，读者学习后举一反三，可以掌握Freescale单片机绝大多数的开发技术。
第三篇为综合系统设计实例篇，通过2个复杂的项目，对前面的Freescale单片机常用模块进行综合应用设计。经过此篇的学习，读者的Freescale单片机设计能力可以迅速提升，继而步入高级工程师的行列。 
本书配有一张光盘，包含了全书所有实例的硬件原理图和程序源代码。
本书读者对象
本书主要针对Freescale单片机的初、中级用户编写，特别适合计算机、自动化、电子及硬件等相关专业的大学生及从事Freescale单片机开发的工程师阅读使用。 
本书优势和特色
与同类书相比，本书主要具备如下的一些优势和特色：
（1）本书内容系统丰富、从简到难，将基础知识与大量实例相结合，边讲边练，使读者学习轻松、上手容易。
（2）本书的18个Freescale单片机常用模块实例基础、典型、实用，几乎涵盖了所有的Freescale单片机开发技术，为读者提供了便捷的学习途径。
（3）最后安排了2个综合系统实例，对Freescale单片机的基本知识和常用模块进行了综合应用，有利于读者举一反三，实现从入门到精通的学习目的。
（4）本书在讲解方式上，不但详细介绍了Freescale单片机的硬件接口设计和模块化编程，而且提供了综合系统设计思路，并对实例的所有程序代码做了详细注释，帮助读者理解和巩固知识点，深化各项开发技术。本书主要由张跃常、戴卫恒编写，另外参与编写的人员还有：赵汶、唐清善、邱宝良、李宁宇、严剑忠、黄小宽、付军鹏、张广安、贾素龙、金平、徐春林、谢正义、郑贞平，在此一并向他们表示感谢！
由于时间仓促，再加之作者的水平有限，书中难免存在一些不足之处，欢迎广大读者批评指正。
编著者
2010.4目  录
第一篇  基础知识篇
第1章  Freescale单片机的硬件内部
结构 2
1.1  HCS08系列单片机的简介 2
1.1.1  HCS08系列MCU的基本特征 2
1.2  MC9S08JM60单片机的硬件结构 3
1.2.1  MC9S08JM60的CPU 3
1.2.2  JM60存储器的组织结构 5
1.2.3  JM60的复位、中断和系统配置 6
1.2.4  多功能时钟发生器（MCG）模块 12
1.2.5  I/O端口 17
1.2.6  KBI模块 29
1.2.7  定时器/PWM模块 31
1.2.8  IIC模块 35
1.2.9  FLASH模块 39
1.2.10  SCI模块 42
1.2.11  SPI模块 49
1.2.12  ADC模块 53
1.2.13  USB模块 58
1.3  本章总结 68
第2章  HCS08单片机的指令系统 69
2.1  HCS08内核的介绍 69
2.1.1  HCS08内核特点 69
2.1.2  HCS08 CPU寄存器 69
2.2  寻址方式 72
2.3  HCS08指令系统 74
2.3.1  数据传送指令 74
2.3.2  算术运算指令 77
2.3.3  逻辑运算指令 81
2.3.4  位操作指令 81
2.3.5  移位类指令 82
2.3.6  程序转移和控制类指令 83
2.4  本章总结 88
第3章  HCS08单片机的C语言程序设计 89
3.1  单片机C语言设计基础 89
3.1.1  数据结构 89
3.1.2  运算符与表达式 108
3.1.3  程序结构与函数 112
3.1.4  流程控制语句 120
3.2  HCS08单片机 C语言的扩展语法 128
3.2.1  基本数据类型 128
3.2.2  变量定义 129
3.2.3  变量定义修饰符 130
3.2.4  全局变量和局部变量 131
3.2.5  位定义和访问 132
3.2.6  中断服务程序定义 133
3.2.7  内嵌汇编和混合调用 134
3.3  本章总结 137
第4章  HCS08单片机的开发工具 138
4.1  CodeWarrior for Microcontrollers V6.2的安装 138
4.1.1  系统需求 138
4.1.2  CodeWarrior的安装与卸载 139
4.2  CodeWarrior for Microcontrollers V6.2功能使用 140
4.2.1  集成环境与功能设置 140
4.3  CodeWarrior开发HCS08单片机的过程 143
4.3.1  建立和打开工程 143
4.3.2  编译和链接 147
4.3.3  软件仿真调试方法 147
4.3.4  BDM调试方法 149
4.4  本章总结 150
第二篇  常用模块设计实例篇
第5章  通用IO模块：流水灯设计实例 152
5.1  实例内容说明 152
5.2  设计思路分析 153
5.3  硬件电路设计 153
5.3.1  电源电路 153
5.3.2  复位电路 153
5.3.3  BDM仿真调试电路 154
5.3.4  流水灯电路 154
5.3.5  单片机电路 154
5.4  软件设计与代码 155
5.4.1  软件设计流程 155
5.4.2  初始化程序 155
5.4.3  主程序 157
5.5  实例总结 157
第6章  通用IO模块：语音播放系统设计实例 158
6.1  实例内容说明 158
6.2  设计思路分析 159
6.3  硬件电路设计 159
6.3.1  ISD2560介绍 159
6.3.2  语音电路 160
6.3.3  单片机电路 161
6.4  软件设计与代码 161
6.4.1  软件设计流程 161
6.4.2  初始化程序 162
6.4.3  ISD2560录音、放音子程序 164
6.4.4  主程序 164
6.5  实例总结 166
第7章  液晶显示模块：温度测量系统设计实例 167
7.1  实例内容说明 167
7.2  设计思路分析 168
7.3  硬件电路设计 168
7.3.1  DS18B20介绍 169
7.3.2  温度传感器电路 169
7.3.3  液晶显示电路 170
7.3.4  单片机电路 170
7.4  软件设计与代码 171
7.4.1  软件设计流程 171
7.4.2  温度测量程序 171
7.4.3  LCD显示程序 173
7.4.4  主程序 174
7.5  实例总结 175
第8章  液晶显示模块：实时时钟设计实例 176
8.1  实例内容说明 176
8.2  设计思路分析 177
8.3  硬件电路设计 177
8.3.1  按键和LED电路 177
8.3.2  液晶显示电路 178
8.3.3  单片机电路 178
8.4  软件设计与代码 178
8.4.1  软件设计流程 178
8.4.2  时钟子程序 179
8.4.3  LCD显示程序 181
8.4.4  主程序 182
8.5  实例总结 185
第9章  KBI模块：扫描键盘设计实例 186
9.1  实例内容说明 186
9.2  设计思路分析 187
9.3  硬件电路设计 188
9.3.1  按键电路 188
9.3.2  LED显示电路 188
9.3.3  单片机电路 189
9.4  软件设计与代码 190
9.4.1  软件设计流程 190
9.4.2  键盘扫描子程序 190
9.4.3  LED显示程序 191
9.4.4  主程序 192
9.5  实例总结 193
第10章  定时器模块：用定时器控制蜂鸣器发声 194
10.1  实例内容说明 194
10.2  设计思路分析 195
10.2.1  蜂鸣器发声原理 195
10.2.2  蜂鸣器发声控制 195
10.3  硬件电路设计 196
10.3.1  蜂鸣器电路 196
10.3.2  单片机电路 196
10.4  软件设计与代码 196
10.4.1  软件设计流程 196
10.4.2  外设初始化程序 197
10.4.3  定时中断服务程序 197
10.4.4  蜂鸣器控制子程序 198
10.4.5  主程序 199
10.5  实例总结 199
第11章  定时器模块：电子钟系统设计实例 200
11.1  实例内容说明 200
11.2  设计思路分析 201
11.3  硬件电路设计 202
11.3.1  闹钟报警提示电路 202
11.3.2  按键电路 202
11.3.3  LCD显示电路 203
11.3.4  单片机电路 203
11.4  软件设计与代码 204
11.4.1  软件设计流程 204
11.4.2  初始化程序 204
11.4.3  按键扫描程序 205
11.4.4  LCD显示程序 206
11.4.5  主程序 208
11.5  实例总结 209
第12章  存储器模块：FLASH编程实现 210
12.1  实例内容说明 210
12.2  设计思路分析 211
12.2.1  寄存器介绍 211
12.2.2  FLASH编程和擦除命令的执行顺序 214
12.3  硬件电路设计 215
12.4  软件设计与代码 215
12.4.1  软件设计流程 215
12.4.2  FLASH操作子程序 216
12.4.3  主程序 217
12.5  实例总结 218
第13章  AD模块：加速度传感器系统设计实例 219
13.1  实例内容说明 219
13.2  设计思路分析 220
13.3  硬件电路设计 221
13.3.1  MMA1220D和MMA1260D的介绍 221
13.3.2  加速度传感器电路 222
13.3.3  LCD显示电路 222
13.3.4  单片机电路 223
13.4  软件设计与代码 224
13.4.1  软件设计流程 224
13.4.2  A/D采样子程序 224
13.4.3  加速度传感器子程序 225
13.4.4  LCD显示程序 228
13.4.5  主程序 228
13.5  实例总结 230
第14章  AD模块：烟雾检测系统设计实例 231
14.1  实例内容说明 231
14.2  设计思路分析 232
14.3  硬件电路设计 232
14.3.1  光电传感器电路 232
14.3.2  报警电路 233
14.3.3  单片机电路 233
14.4  软件设计与代码 234
14.4.1  软件设计流程 234
14.4.2  AD采样子程序 235
14.4.3  定时程序 235
14.4.4  主程序 236
14.5  实例总结 237
第15章  PWM模块：寻迹智能小车控制系统设计实例 238
15.1  实例内容说明 238
15.2  设计思路分析 239
15.2.1  PWM基本原理 239
15.2.2  实现方法 240
15.3  硬件电路设计 240
15.3.1  H形桥式电路 240
15.3.2  光电传感器电路 242
15.3.3  电源电路 242
15.3.4  单片机电路 242
15.4  软件设计与代码 243
15.4.1  软件设计流程 243
15.4.2  传感器采样处理子程序 244
15.4.3  智能车移动子程序 245
15.4.4  主程序 248
15.5  实例总结 248
第16章  通用串口通信模块：单片机与PC通信设计实例 249
16.1  实例内容说明 249
16.2  设计思路分析 250
16.2.1  电平转换芯片 250
16.3  硬件电路设计 250
16.3.1  MAX3232芯片介绍 250
16.3.2  串口电路 251
16.3.3  单片机电路 251
16.4  软件设计与代码 252
16.4.1  软件设计流程 252
16.4.2  串口初始化程序 253
16.4.3  串口中断服务程序 253
16.4.4  主程序 255
16.5  实例总结 255
第17章  RS-485总线通信模块：现场监测系统设计实例 256
17.1  实例内容说明 256
17.2  设计思路分析 257
17.2.1  RS-485总线 257
17.2.2  RS-485驱动芯片选取 258
17.3  硬件电路设计 258
17.3.1  SN75176芯片介绍 258
17.3.2  232/485转接卡 259
17.3.3  带485接口的单片机系统 259
17.4  软件设计与代码 260
17.4.1  软件设计流程 260
17.4.2  串口通信子程序 261
17.4.3  485通信收发子程序 262
17.4.4  主程序 264
17.5  实例总结 265
第18章  I2C总线通信模块：串行存储器接口设计实例 266
18.1  实例内容说明 266
18.2  设计思路分析 266
18.3  硬件电路设计 268
18.3.1  AT24C02芯片的介绍 268
18.3.2  串行存储器电路 269
18.3.3  单片机电路 269
18.4  软件设计与代码 270
18.4.1  软件设计流程 270
18.4.2  I2C模块初始化程序 271
18.4.3  AT24C02的读/写子程序 271
18.4.4  主程序 274
18.5  实例总结 275
第19章  I2C总线通信模块：I2C主从通信系统设计实例 276
19.1  实例内容说明 276
19.2  设计思路分析 277
19.3  硬件电路设计 278
19.4  软件设计与代码 279
19.4.1  软件设计流程 279
19.4.2  I2C程序 279
19.4.3  主程序 284
19.5  实例总结 287
第20章  SPI总线通信模块：电量监测仪设计实例 288
20.1  实例内容说明 288
20.2  设计思路分析 289
20.2.1  SPI协议 289
20.2.2  电能计量芯片的选择 291
20.3  硬件电路设计 291
20.3.1  CS5460A芯片的介绍 291
20.3.2  电量信号采集电路 293
20.3.3  显示单元电路 294
20.3.4  单片机系统 294
20.4  软件设计与代码 295
20.4.1  软件设计流程 295
20.4.2  CS5460A的操作 295
20.4.3  SPI的实现 296
20.4.4  CS5460A操作程序的实现 298
20.4.5  主程序 301
20.5  实例总结 302
第21章  SPI总线通信模块：SD卡数据存储系统设计实例 303
21.1  实例内容说明 303
21.2  设计思路分析 304
21.3  硬件电路设计 306
21.3.1  SD卡接口电路 306
21.3.2  单片机系统电路 307
21.4  软件设计与代码 308
21.4.1  软件设计流程 308
21.4.2  SD卡读/写子程序 308
21.4.3  主程序 312
21.5  实例总结 313
第22章  USB串行总线模块：数据传输系统设计实例 314
22.1  实例内容说明 314
22.2  设计思路分析 315
22.3  硬件电路设计 317
22.3.1  USB电路 317
22.3.2  加速度传感器电路 318
22.3.3  人机接口电路 318
22.3.4  单片机系统 318
22.4  软件设计与代码 319
22.4.1  软件设计流程 319
22.4.2  USB模块初始化程序 319
22.4.3  USB模块的相关程序 320
22.4.4  主程序 326
22.5  实例总结 326
第三篇  综合系统设计实例篇
第23章  出租车计价器系统设计实例 328
23.1  实例内容说明 328
23.2  设计思路分析 329
23.3  硬件电路设计 330
23.3.1  里程计算单元 330
23.3.2  显示电路 330
23.3.3  按键电路 331
23.3.4  单片机系统 331
23.4  软件设计与代码 332
23.4.1  软件设计流程 332
23.4.2  硬件层程序 332
23.4.3  应用程序接口层程序 334
23.4.4  应用层主程序 335
23.5  实例总结 344
第24章  手持式超声波测距仪系统设计
实例 345
24.1  实例内容说明 345
24.2  设计思路分析 346
24.3  硬件电路设计 346
24.3.1  接收单元 346
24.3.2  发送单元 347
24.3.3  按键电路 347
24.3.4  显示单元 348
24.3.5  单片机系统 348
24.4  软件设计与代码 348
24.4.1  软件设计流程 348
24.4.2  超声波发送子程序 349
24.4.3  超声波接收子程序 350
24.4.4  按键扫描子程序 352
24.4.5  测距仪主程序 355
24.5  实例总结 356